52
53
54
55
56
57
58
63 USE format_mod , ONLY : fmw_i_a
64
65
66
67#include "implicit_f.inc"
68
69
70
71#include "scr03_c.inc"
72#include "scr17_c.inc"
73#include "com04_c.inc"
74#include "units_c.inc"
75#include "param_c.inc"
76#include "r2r_c.inc"
77
78
79
80 INTEGER,INTENT(IN) :: ITYP,NV,NUM,NVG,IVARG(18,*),NV0,FLAGABF
81 INTEGER,INTENT(INOUT) :: ITHGRP(NITHGR), IGS, IFI, IAD, NSNE, NVARABF, ITHVAR(*), ITHBUF(*)
82 CHARACTER*10,INTENT(IN) :: VARE(NV),KEY,VARG()
83 TYPE (SURF_),INTENT(INOUT), DIMENSION(NSURF) :: IGRSURF
84 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
85
86
87
88 INTEGER J,JJ, I,ISU,ID,NNE,NOSYS,NTOT,KK,,
89 . OK,IGRS,NSU,K,L,JREC,CONT,IAD0,IADV,NTRI,
90 . IFITMP,IADFIN,NVAR,M,N,IAD1,IAD2,ISK,IPROC,ITITLE(LTITR),
91 . IDS,IDSMAX,
92 . NUM_FOUND
93 CHARACTER(LEN=NCHARTITLE) :: TITR
94 CHARACTER MESS*40
95 LOGICAL IS_AVAILABLE
96
97
98
99 INTEGER USR2SYS,ULIST2S,LISTCNT,NINTRN,THVARC,HM_THVARC
100 INTEGER R2R_LISTCNT,R2R_EXIST
101 DATA mess/'TH GROUP DEFINITION '/
102
103
104
106 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
107 ithgrp(2)=ityp
108 ithgrp(3)=0
109 ifitmp=ifi+1000
110
112
113
115
117 IF(ityp /= 116)THEN
118 CALL ancmsg(msgid=1109,msgtype=msgerror,anmode=aninfo_blind_1,i1
119 ENDIF
120 igs = igs - 1
121 ithgrp(1:nithgr)=0
122 ELSE
123 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
125 ithgrp(7)=iad
128 nne=idsmax
129 ithgrp(4)=nne
130 ithgrp(5)=iad
131 iad2=iad+3*nne
132 ithgrp(8)=iad2
133 ifi=ifi+3*nne+40*nne
134 CALL zeroin(iad,iad+43*nne-1,ithbuf)
135
136 num_found=0
137 DO k = 1,idsmax
139 n=0
140 IF(ids/=0)THEN
141 IF (nsubdom>0) THEN
142
144 ENDIF
145 DO j=1,num
146 IF(ids == igrsurf(j)%ID)THEN
147 n=j
148 igrsurf(j)%TH_SURF=1
149 num_found=num_found+1
150 EXIT
151 ENDIF
152 ENDDO
153 nsne=nsne+1
154 ithbuf(iad)=n
155 iad=iad+1
156 ENDIF
157 IF(n == 0)THEN
158 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
159 CALL ancmsg(msgid=257, msgtype=msgwarning, anmode=aninfo_blind_1, i1=ithgrp(1), i2=ids, c1=titr, c2=key)
160 ENDIF
161 ENDDO
162
163 iad = ithgrp(5)
164 CALL hord(ithbuf(iad),num_found)
165
166 DO i=1,nne
167 n=ithbuf(iad)
168 IF(n > 0)THEN
169 ithbuf(iad+2*nne)=igrsurf(n)%ID
170 DO j=1,40
171 CALL fretitl(igrsurf(n)%TITLE,ititle,ltitr)
172 ithbuf(iad2+j-1)=ititle(j)
173 ENDDO
174 iad=iad+1
175 iad2=iad2+40
176 ENDIF
177 ENDDO
178
179 iad=iad2
180
181
182
183
185 iad0=ithgrp(7)
186 ithgrp(9)=nvarabf
187 DO j=iad0,iad0+
nvar-1
188 DO k=1,10
189 ithvar((ithgrp(9)+(j-iad0)-1)*10+k)=ichar(vare(ithbuf(j))(k:k))
190 ENDDO
191 ENDDO
192 nvarabf = nvarabf +
nvar
193
194
195
196 IF(ipri<1)RETURN
197 n=ithgrp(4)
198 iad1=ithgrp(5)
200 iad0=ithgrp(7)
201 iad2=ithgrp(8)
202 WRITE(iout,'(//)')
203 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
204 WRITE(iout,
'(A,I10,3A,I3,A,I5,2A)')
' TH GROUP:',ithgrp(1),
',',trim(titr),
',',
nvar,
' VAR',n, key,
':'
205 WRITE(iout,'(A)')' -------------------'
206 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0+
nvar-1)
207 WRITE(iout,'(3A)')' ',key,' NAME '
208 DO k=iad1,iad1+n-1
210 iad2=iad2+40
211 WRITE(iout,fmt=fmw_i_a)igrsurf(ithbuf(k))%ID,titr(1:40)
212 ENDDO
213
214 ENDIF
215 RETURN
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer function hm_thvarc(vare, nv, ivar, varg, nvg, ivarg, nv0, id, titr, lsubmodel)
subroutine hord(nel, nsel)
integer, parameter nchartitle
integer function nvar(text)
integer function r2r_exist(typ, id)
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 zeroin(n1, n2, ma)