38
39
40
44
45
46
47#include "implicit_f.inc"
48
49
50
51 INTEGER IKAD(0:*),KDYNAIN
52 CHARACTER KEY0(*)*5
53
54
55
56#include "units_c.inc"
57#include "scr16_c.inc"
58
59
60
61 INTEGER NVAR
62
63
64
65 INTEGER I, NBC, K, IKEY, IV2(10), J
66 CHARACTER(LEN=120) :: LINE
67 CHARACTER(LEN=NCHARKEY) :: KEY2
68 CHARACTER(LEN=NCHARKEY) :: KEY3
69 CHARACTER(LEN=NCHARKEY) :: KEY4
70 CHARACTER(LEN=NCHARKEY) :: KEY5
71 CHARACTER(LEN=NCHARKEY) :: KEY6
72 CHARACTER(LEN=NCHARKEY) :: KEY7
73 CHARACTER(LEN=NCHARKEY) :: KEY8
74 CHARACTER(LEN=NCHARLINE100) :: CARTE
75 TYPE (DYNAIN_DATABASE), INTENT(INOUT) :: DYNAIN_DATA
76
77
78
79
80 ikey=kdynain
81
82 dynain_data%TDYNAIN0 = zero
83 dynain_data%DTDYNAIN0 = zero
84
85 DO i = 1,dynain_data%MX_DYNAIN
86 dynain_data%DYNAIN_C(i) = 0
87 ENDDO
88
89 dynain_data%NDYNAINPRT=0
90 dynain_data%NDYNAINALL=0
91 dynain_data%ZIPDYNAIN=0
92
93
94 IF (ikad(ikey) /= ikad(ikey+1)) THEN
95 k = 0
96 1175 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)')line
97 CALL fredec_8key_i(line,key2,key3,key4,key5,key6,key7,key8,nbc)
98 k=k+1
99 IF (key2(1:5) == 'DT ') THEN
100 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
101 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
102 IF(
nvar(carte) ==2 )
THEN
103 READ(iusc2,*)dynain_data%TDYNAIN0,dynain_data%DTDYNAIN0
104 ELSE
105 READ(iusc2,*)dynain_data%TDYNAIN0,dynain_data%DTDYNAIN0,dynain_data%ZIPDYNAIN
106 ENDIF
107 k=k+1
108 IF (key3(1:3) == 'ALL') THEN
109 dynain_data%NDYNAINPRT = 0
110 dynain_data%NDYNAINALL = 1
111 IF (nbc /= 1) THEN
112 CALL ancmsg(msgid=73,anmode=aninfo,
113 . c1=key0(ikey),c2=line(1:35))
115 ENDIF
116 ELSE
117 DO i=2,nbc
118 READ(iusc1,rec=ikad(ikey)+k,fmt='(A)',err=9990)carte
119 CALL wriusc2(ikad(ikey)+k,1,key0(ikey))
120 k=k+1
121 READ(iusc2,*,err=9990,END=9990)(IV2(J),J=1,NVAR(CARTE))
123 WRITE(iin,'(I10)')iv2(j)
124 dynain_data%NDYNAINPRT=dynain_data%NDYNAINPRT+1
125 ENDDO
126 ENDDO
127 IF(dynain_data%NDYNAINPRT == 0)THEN
128 CALL ancmsg(msgid=291,anmode=aninfo)
130 ENDIF
131 ENDIF
132 ELSE
133 IF (key2(1:5) == 'SHELL') THEN
134 IF (key3(1:5) == 'STRES') THEN
135 IF (key4(1:5) == 'FULL ') THEN
136 dynain_data%DYNAIN_C(4) = 1
137 ELSE
138 GOTO 9990
139 ENDIF
140 ELSEIF (key3(1:5) == 'STRAI') THEN
141 IF (key4(1:5) == 'FULL ') THEN
142 dynain_data%DYNAIN_C(5) = 1
143 ELSE
144 GOTO 9990
145 ENDIF
146 ELSE
147 GOTO 9990
148 ENDIF
149
150 endif
151 ENDIF
152
153 IF (ikad(ikey)+k /= ikad(ikey+1)) GOTO 1175
154
155 ENDIF
156
157 dynain_data%NC_DYNAIN = 0
158 DO i = 1,dynain_data%MX_DYNAIN
159 dynain_data%NC_DYNAIN = dynain_data%NC_DYNAIN + dynain_data%DYNAIN_C(i)
160 ENDDO
161
162 RETURN
163
164 9990 CONTINUE
165 CALL ancmsg(msgid=73,anmode=aninfo,
166 . c1=key0(ikey),c2=line(1:35))
subroutine fredec_8key_i(cart, key2, key3, key4, key5, key6, key7, key8, nbc)
integer, parameter ncharline100
integer, parameter ncharkey
integer function nvar(text)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine wriusc2(irec, nbc, key0)