39
40
41
42 USE my_alloc_mod
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "com04_c.inc"
56
57
58
59 INTEGER INSEG,FLAG,ICOUNT,ITER
60 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
61
62
63
64 INTEGER I,K,L,J,ID,IGS,IGRS,JREC,IAD0,IADV,NSEG,NSEGV,
65 . FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP,SKIPFLAG,UID,NSEG_TOT,
66 . NSETS,NENTITY,KK,JJ
67 CHARACTER(LEN=NCHARTITLE) :: TITR
68 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
69
70 TYPE () , DIMENSION(NSLIN+NSETS) :: IGRSLIN
71 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 IF (flag == 0) icount=0
90
91
93 DO igs=1,nslin
96 . option_titr = titr ,
97 . unit_id = uid,
98 . keyword2 = key ,
99 . keyword3 = key2)
100 skipflag = 0
101 nseg=0
102 IF (key(1:4) == 'LINE') THEN
103 IF (flag == 0 .AND. igrslin(igs)%NSEG == -1) THEN
104 CALL hm_get_intv (
'idsmax' ,nentity,is_available,lsubmodel)
105 IF (skipflag == 0) THEN
106 DO kk=1,nentity
108 IF (jj /= 0) THEN
109 igrs=0
110 DO k=1,nslin
111 IF (jj == igrslin(k)%ID) THEN
112 igrs=k
113 EXIT
114 ENDIF
115 ENDDO
116 IF (igrs == 0)THEN
118 . msgtype=msgerror,
119 . anmode=aninfo,
121 . c1=titr,
122 . i2=jj)
123
124 ELSEIF (igrslin(igrs)%LEVEL == 0)THEN
125
126 IF (iter > nslin) GOTO 900
127 igrslin(igs)%NSEG=-1
128 igrslin(igs)%LEVEL=0
129 icount=1
130 nseg = 0
131 skipflag = 1
132 cycle
133 ELSE
134
135 nsegv=igrslin(igrs)%NSEG
136 nseg=nseg+nsegv
137 ENDIF
138 ENDIF
139 ENDDO
140 ENDIF
141 IF (skipflag == 0) THEN
142 inseg=inseg+6*nseg
143 igrslin(igs)%NSEG= nseg
144 CALL my_alloc(igrslin(igs)%NODES,nseg
145 igrslin(igs)%NODES(1:nseg,1:2) = 0
146 CALL my_alloc(igrslin(igs)%ELTYP,nseg)
147 igrslin(igs)%ELTYP(1:nseg) = 0
148 CALL my_alloc(igrslin(igs)%ELEM,nseg)
149 igrslin(igs)%ELEM(1:nseg) = 0
150 CALL my_alloc(igrslin(igs)%PROC,nseg)
151 igrslin(igs)%PROC(1:nseg) = 0
152 ENDIF
153
154 ELSEIF (flag == 1 .AND. igrslin(igs)%LEVEL == 0 .AND. igrslin(igs)%NSEG > -1) THEN
155 nseg_tot = 0
156 CALL hm_get_intv (
'idsmax' ,nentity,is_available,lsubmodel)
157 DO kk=1,nentity
159 IF (jj /= 0) THEN
160 igrs=0
161 DO k=1,nslin
162 IF (jj == igrslin(k)%ID) THEN
163 igrs=k
164 EXIT
165 ENDIF
166 ENDDO
167 IF (igrslin(igrs)%NSEG == -1) THEN
168 cycle
169 ELSE
170 nsegv=igrslin(igrs)%NSEG
171 DO l=1,nsegv
172 nseg_tot = nseg_tot + 1
173 igrslin(igs)%NODES(nseg_tot
174 igrslin(igs)%NODES(nseg_tot,2) = igrslin(igrs)%NODES(l,2)
175 igrslin(igs)%ELTYP(nseg_tot) = igrslin(igrs)%ELTYP(l)
176 igrslin(igs)%ELEM(nseg_tot) = igrslin(igrs)%ELEM(l)
177 ENDDO
178 ENDIF
179 ENDIF
180 ENDDO
181 igrslin(igs)%LEVEL=1
182 ENDIF
183 ENDIF
184 ENDDO
185
186 RETURN
187 900 CONTINUE
189 . msgtype=msgerror,
190 . anmode=aninfo,
191 . c1='LINE',
192 . c2='LINE',
194 . c3='LINE',
195 . c4=titr,
196 . c5='LINE',
197 . i2=igrslin(igs)%ID)
198
199 RETURN
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
integer, parameter ncharkey
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)