C SOPAPF SOURCE FANDEUR 10/12/14 21:19:46 6812 SUBROUTINE SOPAPF(MSOLUT,IPAS,ITAB,ITBBE2,IFORM) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C-------------------------------------------------------------------- C SORTIE PAS A PAS D UN MSOLUT : SORTIE DU PAS IPAS C C APPELE PAR : SOPAPF C APPELE : ECDES ECDIFE ECDIFR C PROGRAMME PAR : FARVAC -REPRIS PAR LENA C-------------------------------------------------------------------- -INC CCOPTIO -INC SMSOLUT -INC SMCHPOI SEGMENT/ITAB/(TAB(N1),ITABB(N2)) SEGMENT/ITBBE2/(ITABE2(NN)) DATA IQUOI/1/ C-------------------------------------------------------------------- C WRITE(IOSAU,8003) IQUOI CALL ECDES (IOSAU,IQUOI,IFORM) SEGACT MSOLUT SEGACT ITAB,ITBBE2 N1=TAB(/1) N2=ITABB(/1) DO 11 I=1,N1 11 TAB(I)=0. DO 17 I=1,N2 17 ITABB(I)=0 C C CAS D UN MODE C IF(ITYSOL.NE.'MODE ') GOTO 12 MSOLEN=MSOLIS(4) SEGACT MSOLEN MMODE=ISOLEN(IPAS) SEGACT MMODE TAB(3)=FMMODD(1) TAB(4)=FMMODD(2) TAB(5)=FMMODD(3) TAB(6)=FMMODD(4) TAB(7)=FMMODD(5) ITABB(1)=IMMODD(1) ITABB(2)=IMMODD(2) ITABB(3)=IMMODD(3) SEGDES MMODE,MSOLEN GOTO 20 C C CAS D UN DYNAMIQUE C 12 IF(ITYSOL.NE.'DYNAMIQU') GOTO 13 MSOLRE=MSOLIS(1) SEGACT MSOLRE TAB(2)=SOLRE(IPAS) SEGDES MSOLRE MSOLEN=MSOLIS(2) IF(MSOLEN.EQ.0) GOTO 20 SEGACT MSOLEN ITABB(1)=ISOLEN(IPAS) SEGDES MSOLEN GOTO 20 13 CONTINUE GOTO 20 C C DANS TOUS LES CAS C 20 CONTINUE NIPO1=ITABB(/1)-4 DO 21 I=NIPO1+2,ITABE2(/1) 21 ITABE2(I)=0 DO 22 I=1,NIPO1 II=I+4 MSOLEN=MSOLIS(II) IF(MSOLEN.EQ.0) GOTO 23 SEGACT MSOLEN IM=ISOLEN(IPAS) ITABE2(I+NIPO1+1)=IM SEGDES MSOLEN IF(IM.EQ.0) GO TO 23 ITABB(I+4)=ITABB(I+3)+ITABE2(I+1)-ITABE2(I) GOTO 22 23 CONTINUE ITABB(I+4)=ITABB(I+3) 22 CONTINUE CALL ECDIFR(IOSAU,N1,TAB,IFORM) CALL ECDIFE(IOSAU,N2,ITABB,IFORM) C DO 25 I=1,NIPO1 IM=ITABE2(NIPO1+1+I) IF(IM.EQ.0) GOTO25 ISOLIT=MSOLIT(I+4) IF(ISOLIT.NE.2) GOTO 200 C CHPOINT +++++++++++++++++++++++++ MCHPOI=IM SEGACT MCHPOI NSOU=IPCHP(/1) DO 101 ISOU=1,NSOU MSOUPO=IPCHP(ISOU) SEGACT MSOUPO MPOVAL=IPOVAL SEGACT MPOVAL L=VPOCHA(/1)*VPOCHA(/2) CALL ECDIFR(IOSAU,L,VPOCHA,IFORM) SEGDES MPOVAL,MSOUPO 101 CONTINUE SEGDES MCHPOI GOTO 25 C 200 IF(ISOLIT.NE.5) GOTO 300 WRITE(IOIMP,*) 'SOPAPF : ISOLIT=5 CAS N ETANT PLUS UTILSE' C 300 CONTINUE 25 CONTINUE C SEGDES MSOLUT SEGDES ITAB,ITBBE2 RETURN END