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