48
49
50
51
52
53
54
59 USE format_mod , ONLY : fmw_i_a
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "scr03_c.inc"
68#include "scr17_c.inc"
69#include "com04_c.inc"
70#include "units_c.inc"
71#include "param_c.inc"
72#include "r2r_c.inc"
73
74
75
76 INTEGER,INTENT(IN) :: ITYP,NV,NUM,NVG,IVARG(18,*),NV0,FLAGABF
77 INTEGER,INTENT(INOUT) :: ITHGRP(NITHGR), IGS, IFI, IAD, NSNE, NVARABF, ITHVAR(*), ITHBUF(*)
78 CHARACTER*10,INTENT(IN) :: VARE(NV),KEY,VARG(NVG)
79 TYPE (SURF_),INTENT(INOUT), DIMENSION(NSURF) :: IGRSURF
80 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
81
82
83
84 INTEGER J, I,ID,NNE,
85 . K,IAD0,
86 . IFITMP,NVAR,N,IAD1,IAD2,ITITLE(LTITR),
87 . IDS,IDSMAX,
88 . NUM_FOUND
89 CHARACTER(LEN=NCHARTITLE) :: TITR
90 CHARACTER MESS*40
91 LOGICAL IS_AVAILABLE
92
93
94
95 INTEGER HM_THVARC
96 INTEGER R2R_EXIST
97 DATA mess/'TH GROUP DEFINITION '/
98
99
100
102 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
103 ithgrp(2)=ityp
104 ithgrp(3)=0
105 ifitmp=ifi+1000
106
108
109
111
113 IF(ityp /= 116)THEN
114 CALL ancmsg(msgid=1109,msgtype=msgerror,anmode=aninfo_blind_1,i1=
id,c1=titr )
115 ENDIF
116 igs = igs - 1
117 ithgrp(1:nithgr)=0
118 ELSE
119 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
121 ithgrp(7)=iad
124 nne=idsmax
125 ithgrp(4)=nne
126 ithgrp(5)=iad
127 iad2=iad+3*nne
128 ithgrp(8)=iad2
129 ifi=ifi+3*nne+40*nne
130 CALL zeroin(iad,iad+43*nne-1,ithbuf)
131
132 num_found=0
133 DO k = 1,idsmax
135 n=0
136 IF(ids/=0)THEN
137 IF (nsubdom>0) THEN
138
140 ENDIF
141 DO j=1,num
142 IF(ids == igrsurf(j)%ID)THEN
143 n=j
144 igrsurf(j)%TH_SURF=1
145 num_found=num_found+1
146 EXIT
147 ENDIF
148 ENDDO
149 nsne=nsne+1
150 ithbuf(iad)=n
151 iad=iad+1
152 ENDIF
153 IF(n == 0)THEN
154 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
155 CALL ancmsg(msgid=257, msgtype=msgwarning, anmode=aninfo_blind_1, i1=ithgrp(1), i2=ids, c1=titr, c2=key)
156 ENDIF
157 ENDDO
158
159 iad = ithgrp(5)
160 CALL hord(ithbuf(iad),num_found)
161
162 DO i=1,nne
163 n=ithbuf(iad)
164 IF(n > 0)THEN
165 ithbuf(iad+2*nne)=igrsurf(n)%ID
166 DO j=1,40
167 CALL fretitl(igrsurf(n)%TITLE,ititle,ltitr)
168 ithbuf(iad2+j-1)=ititle(j)
169 ENDDO
170 iad=iad+1
171 iad2=iad2+40
172 ENDIF
173 ENDDO
174
175 iad=iad2
176
177
178
179
181 iad0=ithgrp(7)
182 ithgrp(9)=nvarabf
183 DO j=iad0,iad0+
nvar-1
184 DO k=1,10
185 ithvar((ithgrp(9)+(j-iad0)-1)*10+k)=ichar(vare(ithbuf(j))(k:k))
186 ENDDO
187 ENDDO
188 nvarabf = nvarabf +
nvar
189
190
191
192 IF(ipri<1)RETURN
193 n=ithgrp(4)
194 iad1=ithgrp(5)
196 iad0=ithgrp(7)
197 iad2=ithgrp(8)
198 WRITE(iout,'(//)')
199 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
200 WRITE(iout,
'(A,I10,3A,I3,A,I5,2A)')
' TH GROUP:',ithgrp(1),
',',trim(titr),
',',
nvar' VAR',n, key,
':'
201 WRITE(iout,'(A)')' -------------------'
202 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0+
nvar-1)
203 WRITE(iout,'(3A)')' ',key,' NAME '
204 DO k=iad1,iad1+n-1
206 iad2=iad2+40
207 WRITE(iout,fmt=fmw_i_a)igrsurf(ithbuf(k))%ID,titr(1:40)
208 ENDDO
209
210 ENDIF
211 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)