48
49
50
55
56
57
58#include "implicit_f.inc"
59
60
61
62#include "scr23_c.inc"
63#include "scr17_c.inc"
64#include "scr03_c.inc"
65#include "com04_c.inc"
66#include "units_c.inc"
67#include "param_c.inc"
68
69
70
71 INTEGER NIX,ITYP,ITABM1(*),KXX(NIXX,*),IXX(*),
72 . ITAB(*),ITHGRP(NITHGR),ITHBUF(*),
73 . IFI,IAD,NV,NVG,IVARG(18,*),NSNE,
74 . IVNS2R(18,*),NV0,ITHVAR(*),FLAGABF,NVARABF
75 CHARACTER*10 VARE(NV),KEY,VARG(NVG)
76 CHARACTER(LEN=NCHARTITLE)::TITR
77
78
79
80 INTEGER J,JJ, I,ISU,ID,NNE,NOSYS,J10(10),NTOT,KK,IER,
81 . OK,IGS,IGRS,NSU,K,L,JREC,CONT,IAD0,IADV,NTRI,NL,
82 . IFITMP,IADFIN,NVAR,M,N,IAD1,IAD2,ISK,IPROC,
83 . IDNS, INS, IUN, IST, NST, IDST
84 CHARACTER(LEN=NCHARTITLE) :: TITLE
85 CHARACTER :: MESS*40,CSTRAND1*9,CSTRAND2*13
86 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
87 LOGICAL IS_AVAILABLE
88 INTEGER LENTRIM
89
90
91
92 INTEGER NINTRN,THVARC,HM_THVARC
93 DATA mess/'TH GROUP DEFINITION '/
94 DATA iun/1/,
95 . cstrand1/'STRAND_ID'/,cstrand2/'STRAND_NUMBER'/
96
98 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
99 ithgrp(2)=ityp
100 ithgrp(3)=0
101 ifitmp=ifi+1000
102
104
105
108 . msgtype=msgerror,
109 . anmode=aninfo_blind_1,
111 . c1=titr )
112
114 ithgrp(7)=iad
117
118
119
120
121
122
123
124 CALL hm_get_intv(
'ids',idns,is_available,lsubmodel)
125 ins =
nintrn(idns,kxx,nixx,numelx,ithgrp(1),titr)
126 nne =kxx(3,ins)-1
127
128
129
130
131
132
133
134
135 .
136 .
137 .
138 .
139 .
140
141
142
143
144
145
146
147 CALL hm_get_intv(
'Num_Cards',nst,is_available,lsubmodel)
148
149
150 ithgrp(4)=nst
151 ithgrp(5)=iad
152 iad2=iad+4*nst
153 ithgrp(8)=iad2
154 ifi=ifi+4*nst+40*nst
155 CALL zeroin(iad,iad+44*nst-1,ithbuf)
156
157 DO k=1,nst
158
159 ithbuf(iad)=ins
160
164 lentrim = len_trim(title)
165 title = title(1:lentrim)
166
167 IF (ist > nne) THEN
168 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
170 . msgtype=msgerror,
171 . anmode=aninfo_blind_1,
172 . i1=ithgrp(1),
173 . c1=titr,
174 . i2=ist)
175 GOTO 999
176 ENDIF
177
178
179 ithbuf(iad+2*nst)=idst
180 ithbuf(iad+3*nst)=ist
181 iproc=0
182 ithbuf(iad+nst)=iproc
183 CALL fretitl(title,ithbuf(iad2),40)
184 iad=iad+1
185 iad2=iad2+40
186 ENDDO
187
188 iad = ithgrp(5)
189 iad2= ithgrp(8)
190 iad=iad2+40*nst
191
192 nsne=nsne+nst
193
194
195
196
198 iad0 = ithgrp(7)
199 ithgrp(9) = nvarabf
200 DO j = iad0,iad0+
nvar-1
201 DO k = 1,10
202 ithvar((ithgrp(9)+(j-iad0)-1)*10+k) = ichar(vare(ithbuf(j))(k:k))
203 ENDDO
204 ENDDO
205 nvarabf = nvarabf +
nvar
206
207
208
209
210 IF(ipri >= 1) THEN
211 n=ithgrp(4)
212 iad1=ithgrp(5)
214 iad0=ithgrp(7)
215 iad2=ithgrp(8)
216 WRITE(iout,'(//)')
217 CALL FRETITL2(TITR,ITHGRP(NITHGR-LTITR+1),LTITR)
218 WRITE(IOUT,'(a,i10,3a,i3,a,i2,2a,i10)')' th group:',ITHGRP(1),',',TRIM(TITR),',',NVAR,' var',IUN,KEY,':',IDNS
219 WRITE(IOUT,'(a)')' -------------------'
220 WRITE(IOUT,'(10a10)')(VARE(ITHBUF(J)),J=IAD0,IAD0+NVAR-1)
221 WRITE(IOUT,'(4a)')CSTRAND1,' ',CSTRAND2,' p_spmd name '
222 DO K=IAD1,IAD1+N-1
223 CALL FRETITL2(TITR,ITHBUF(IAD2),40)
224 WRITE(IOUT,'(3i10,2a)')ITHBUF(K+2*N),ITHBUF(K+3*N),ITHBUF(K+N),' ',TITR(1:40)
225 IAD2=IAD2+40
226 ENDDO
227 ENDIF
228
229 IAD1=ITHGRP(7)
230 DO I=1,NVAR
231 ITHBUF(IAD1+I-1)=IVNS2R(ITHBUF(IAD1+I-1),1)
232 ENDDO
233
234 RETURN
235 999 CALL FREERR(1)
236 RETURN
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string_index(name, sval, index, size, is_available)
integer function hm_thvarc(vare, nv, ivar, varg, nvg, ivarg, nv0, id, titr, lsubmodel)
integer, parameter nchartitle
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)
integer function nintrn(iext, ntn, m, n, id, titr)
subroutine zeroin(n1, n2, ma)