C RECDEP SOURCE CHAT 05/01/13 02:46:37 5004 SUBROUTINE RECDEP(IPBASE,ICH1,IRET) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C*********************************************************************** C RECOMBINAISON DES DEPLACEMENTS POUR LA BASE IPBASE C LE CHAMPOINT DES CONTIBUTIONS MODALES EST ICH1 C LE CHAMPOINT RESULTAT EST DANS IRET C C M. PETIT JUILLET 88 C*********************************************************************** -INC CCOPTIO -INC SMBASEM -INC SMSOLUT C MBASEM=IPBASE SEGACT MBASEM NBAS=LISBAS(/1) C C BOUCLE 100 SUR LES SOUS- BASES C DO 100 IBAS=1,NBAS MSOBAS=LISBAS(IBAS) SEGACT MSOBAS IBMODE=IBSTRM(2) IBSOLS=IBSTRM(3) SEGDES MSOBAS C IRET1=0 IRET2=0 C C ON RECOMBINE LES MODES RESULTAT DANS IRET1 C IF(IBMODE.EQ.0) GO TO 11 MSOLUT=IBMODE SEGACT MSOLUT KDEPL=MSOLIS(5) KMEL1=MSOLIS(3) SEGDES MSOLUT IF(KDEPL.NE.0) GO TO 15 MOTERR(1:8)=ITYSOL CALL ERREUR(61) GO TO 999 15 CONTINUE CALL RCODP1(ICH1,KDEPL,KMEL1,IRET1) IF(IERR.NE.0) GO TO 999 C C ON RECOMBINE LES SOLUTIONS STATIQUES RESULTAT DANS IRET2 C 11 IF(IBSOLS.EQ.0) GO TO 12 MSOLUT=IBSOLS SEGACT MSOLUT KDEPL=MSOLIS(5) KMEL1=MSOLIS(3) SEGDES MSOLUT IF(KDEPL.NE.0) GO TO 16 MOTERR(1:8)=ITYSOL CALL ERREUR(61) GO TO 999 16 CONTINUE CALL RCODP1(ICH1,KDEPL,KMEL1,IRET2) IF(IERR.NE.0) GO TO 999 C 12 CONTINUE IF(IRET1.NE.0. AND .IRET2.NE.0) GO TO 13 IF(IRET1.NE.0) IRET3=IRET1 IF(IRET2.NE.0) IRET3=IRET2 GO TO 14 C 13 CALL ADCHPO(IRET1,IRET2,IRET3,1D0,1D0) CALL DTCHPO(IRET1) CALL DTCHPO(IRET2) C 14 CONTINUE IF(IBAS.EQ.1) THEN IRE1=IRET3 IRET=IRET3 GO TO 100 ENDIF CALL ADCHPO(IRE1,IRET3,IRET,1D0,1D0) IF(IERR.NE.0) GO TO 999 CALL DTCHPO(IRE1) CALL DTCHPO(IRET3) IRE1=IRET 100 CONTINUE SEGDES MBASEM C 999 CONTINUE RETURN END