1 : C SOPAPF SOURCE FANDEUR 10/12/14 21:19:46 6812 2 : SUBROUTINE SOPAPF(MSOLUT,IPAS,ITAB,ITBBE2,IFORM) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : C-------------------------------------------------------------------- 6 : C SORTIE PAS A PAS D UN MSOLUT : SORTIE DU PAS IPAS 7 : C 8 : C APPELE PAR : SOPAPF 9 : C APPELE : ECDES ECDIFE ECDIFR 10 : C PROGRAMME PAR : FARVAC -REPRIS PAR LENA 11 : C-------------------------------------------------------------------- 12 : -INC CCOPTIO 13 : -INC SMSOLUT 14 : -INC SMCHPOI 15 : 16 : SEGMENT/ITAB/(TAB(N1),ITABB(N2)) 17 : SEGMENT/ITBBE2/(ITABE2(NN)) 18 : DATA IQUOI/1/ 19 : C-------------------------------------------------------------------- 20 : C WRITE(IOSAU,8003) IQUOI 20 : CALL ECDES (IOSAU,IQUOI,IFORM) 21 : SEGACT MSOLUT 22 : SEGACT ITAB,ITBBE2 23 : N1=TAB(/1) 24 : N2=ITABB(/1) 25 : DO 11 I=1,N1 26 : 11 TAB(I)=0. 27 : DO 17 I=1,N2 28 : 17 ITABB(I)=0 29 : C 30 : C CAS D UN MODE 31 : C 32 : IF(ITYSOL.NE.'MODE ') GOTO 12 33 : MSOLEN=MSOLIS(4) 34 : SEGACT MSOLEN 35 : MMODE=ISOLEN(IPAS) 36 : SEGACT MMODE 37 : TAB(3)=FMMODD(1) 38 : TAB(4)=FMMODD(2) 39 : TAB(5)=FMMODD(3) 40 : TAB(6)=FMMODD(4) 41 : TAB(7)=FMMODD(5) 42 : ITABB(1)=IMMODD(1) 43 : ITABB(2)=IMMODD(2) 44 : ITABB(3)=IMMODD(3) 45 : SEGDES MMODE,MSOLEN 46 : GOTO 20 47 : C 48 : C CAS D UN DYNAMIQUE 49 : C 50 : 12 IF(ITYSOL.NE.'DYNAMIQU') GOTO 13 51 : MSOLRE=MSOLIS(1) 52 : SEGACT MSOLRE 53 : TAB(2)=SOLRE(IPAS) 54 : SEGDES MSOLRE 55 : MSOLEN=MSOLIS(2) 56 : IF(MSOLEN.EQ.0) GOTO 20 57 : SEGACT MSOLEN 58 : ITABB(1)=ISOLEN(IPAS) 59 : SEGDES MSOLEN 60 : GOTO 20 61 : 13 CONTINUE 62 : GOTO 20 63 : C 64 : C DANS TOUS LES CAS 65 : C 66 : 20 CONTINUE 67 : NIPO1=ITABB(/1)-4 68 : DO 21 I=NIPO1+2,ITABE2(/1) 69 : 21 ITABE2(I)=0 70 : DO 22 I=1,NIPO1 71 : II=I+4 72 : MSOLEN=MSOLIS(II) 73 : IF(MSOLEN.EQ.0) GOTO 23 74 : SEGACT MSOLEN 75 : IM=ISOLEN(IPAS) 76 : ITABE2(I+NIPO1+1)=IM 77 : SEGDES MSOLEN 78 : IF(IM.EQ.0) GO TO 23 79 : ITABB(I+4)=ITABB(I+3)+ITABE2(I+1)-ITABE2(I) 80 : GOTO 22 81 : 23 CONTINUE 82 : ITABB(I+4)=ITABB(I+3) 83 : 22 CONTINUE 83 : CALL ECDIFR(IOSAU,N1,TAB,IFORM) 83 : CALL ECDIFE(IOSAU,N2,ITABB,IFORM) 84 : C 85 : DO 25 I=1,NIPO1 86 : IM=ITABE2(NIPO1+1+I) 87 : IF(IM.EQ.0) GOTO25 88 : ISOLIT=MSOLIT(I+4) 89 : IF(ISOLIT.NE.2) GOTO 200 90 : C CHPOINT +++++++++++++++++++++++++ 91 : MCHPOI=IM 92 : SEGACT MCHPOI 93 : NSOU=IPCHP(/1) 94 : DO 101 ISOU=1,NSOU 95 : MSOUPO=IPCHP(ISOU) 96 : SEGACT MSOUPO 97 : MPOVAL=IPOVAL 98 : SEGACT MPOVAL 99 : L=VPOCHA(/1)*VPOCHA(/2) 99 : CALL ECDIFR(IOSAU,L,VPOCHA,IFORM) 100 : SEGDES MPOVAL,MSOUPO 101 : 101 CONTINUE 102 : SEGDES MCHPOI 103 : GOTO 25 104 : C 105 : 200 IF(ISOLIT.NE.5) GOTO 300 106 : WRITE(IOIMP,*) 'SOPAPF : ISOLIT=5 CAS N ETANT PLUS UTILSE' 107 : C 108 : 300 CONTINUE 109 : 25 CONTINUE 110 : C 111 : SEGDES MSOLUT 112 : SEGDES ITAB,ITBBE2 113 : RETURN 114 : END 115 : 116 :
© Cast3M 2003 - All rights reserved.
Disclaimer