42
43
44
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "param_c.inc"
59#include "units_c.inc"
60#include "com04_c.inc"
61
62
63
64 INTEGER ,INTENT(IN) :: NCONVEC
65 INTEGER ,INTENT(IN) :: NICONV
66 INTEGER ,INTENT(IN) :: NUMCONV
67 INTEGER ,INTENT(IN) :: LFACTHER
68 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
69 INTEGER IB(NICONV,*), ITAB(*), IXS(NIXS,*)
70 TYPE (SURF_) , DIMENSION(NSURF) ::
71 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
73
74
75
76 INTEGER K, M, I1, I2, I3, I4, IFU, I, ISENS,NPR0,NN,ISU,IS,
77 . ID,J,UID,IFLAGUNIT,ITY
79 . fcx,fcy,temp,h, tstart,tstop,fcx_dim,fcy_dim,tstop_dim
80 CHARACTER MESS*40
81 CHARACTER(LEN=NCHARTITLE) :: TITR
82 LOGICAL IS_AVAILABLE
83
84
85
86 INTEGER USR2SYS
87 DATA mess/'CONVECTION FLUX DEFINITION '/
88
89 is_available = .false.
90 k=0
91
92
93
95
96
97
98 DO i=1,nconvec
99 titr = ''
101 . unit_id = uid,
103 . option_titr = titr)
104 iflagunit = 0
105 DO j=1,unitab%NUNITS
106 IF (unitab%UNIT_ID(j) == uid) THEN
107 iflagunit = 1
108 EXIT
109 ENDIF
110 ENDDO
111 IF (uid /= 0.AND.iflagunit == 0) THEN
112 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
113 . i2=uid,i1=
id,c1=
'CONVECTION HEAT',
114 . c2='CONVECTION HEAT',
115 . c3=titr)
116 ENDIF
117
118
119
120 CALL hm_get_intv(
'entityid',isu,is_available,lsubmodel)
121 CALL hm_get_intv(
'curveid',ifu,is_available,lsubmodel)
122 CALL hm_get_intv(
'rad_sensor_id',isens,is_available,lsubmodel)
123
124
125
126 CALL hm_get_floatv(
'xscale',fcx,is_available,lsubmodel,unitab)
128 CALL hm_get_floatv(
'magnitude',fcy,is_available,lsubmodel,unitab)
130 CALL hm_get_floatv(
'rad_tstart',tstart,is_available,lsubmodel,unitab)
131 CALL hm_get_floatv(
'rad_tstop',tstop,is_available,lsubmodel,unitab)
134
135 IF (fcx == zero) fcx = fcx_dim
136 IF (fcy == zero) fcy = fcy_dim
137 IF(tstop == zero) tstop= ep30 * tstop_dim
138
139 is=0
140 DO j=1,nsurf
141 IF (isu == igrsurf(j)%ID) is=j
142 ENDDO
143 IF(is > 0)THEN
144 nn=igrsurf(is)%NSEG
145 DO j=1,nn
146 k=k+1
147 ib(1,k)=igrsurf(is)%NODES(j,1)
148 ib(2,k)=igrsurf(is)%NODES(j,2)
149 ib(3,k)=igrsurf(is)%NODES(j,3)
150 ity =igrsurf(is)%ELTYP(j)
151 IF(ity==7)THEN
152
153 ib(4,k)=0
154 ELSE
155 ib(4,k)=igrsurf(is)%NODES(j,4)
156 ENDIF
157 ib(5,k) = ifu
158 ib(6,k) = isens
159 ib(7,k) = igrsurf(is)%ELTYP(j)
160 ib(8,k) = igrsurf(is)%ELEM(j)
161 IF(ity == 1) THEN
162 ib(9,k) = ixs(11,igrsurf(is)%ELEM(j))
163 ELSE
164 ib(9,k) = 0
165 ENDIF
166
167 fac(1,k) = fcy
168 fac(2,k) = one/fcx
169 fac(3,k) = h
170 fac(4,k) = tstart
171 fac(5,k) = tstop
172 fac(6,k) = one
173 ENDDO
174 ENDIF
175 ENDDO
176
177 i1=1
178 i2=min0(50,numconv)
179
180 90 WRITE (iout,2000)
181 WRITE (iout,2001)
182 DO i=i1,i2
183 WRITE (iout,'(5(1X,I10),1X,1G20.13,2(1X,I10),1X,4G20.13)') i,
184 . itab(ib(1,i)),itab(ib(2,i)),itab(ib(3,i)),itab(ib(4,i)),
185 . fac(3,i),ib(5,i),ib(6,i),fac(4,i),fac(5,i),one/fac(2,i),
186 . fac(1,i)
187 ENDDO
188 IF(i2 == numconv)GOTO 200
189 i1=i1+50
190 i2=min0(i2+50,numconv)
191 GOTO 90
192 200 RETURN
193 300
CALL ancmsg(msgid=157,
194 . msgtype=msgerror,
195 . anmode=aninfo,
196 . i1=k)
197
198 2000 FORMAT(//
199 .' CONVECTION HEAT '/
200 .' ---------------- ')
201 2001 FORMAT(/
202 .' SEGMENT NODE1 NODE2 NODE3 NODE4 ',10x,'H',10x,
203 .' CURVE SENSOR T-START T-STOP', 8x,
204 .' SCALE-X SCALE-Y')
205
206
207 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
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)