43
44
45
52
53
54
55#include "implicit_f.inc"
56
57
58
59#include "com04_c.inc"
60#include "units_c.inc"
61#include "param_c.inc"
62
63
64
65 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
66 INTEGER NUM
67 INTEGER ,INTENT(IN) :: NIMTEMP
68 INTEGER ,INTENT(IN) :: NIFT
69 INTEGER ,INTENT(IN) :: LFACTHER
70 INTEGER IBFT(NIFT,*), ITAB(*), (*), NWORK(*)
72 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
73 TYPE (GROUP_) , DIMENSION(NGRNOD)
74
75
76
77 INTEGER :: I, NOD, NCUR, SENS_ID, ID, UID
78 INTEGER :: K, IGU, , NN, J, NUM0, IFLAGUNIT
79 my_real :: fac1,fac2,facx,facy,fac2_dim,facx_dim,facy_dim
80 CHARACTER MESS*40
81 CHARACTER(LEN=NCHARTITLE) :: TITR
82 LOGICAL IS_AVAILABLE
83
84
85
86 INTEGER NODGRNR5
87 DATA mess/'IMPOSED TEMPERATURE DEFINITION '/
88
89 is_available = .false.
90 num = 0
91 i = 0
92
93
94
96
97
98
99 DO k=1,nimtemp
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=
'IMPOSED TEMPERATURE',
115 . c2='IMPOSED TEMPERATURE',
116 . c3=titr)
117 ENDIF
118
119
120
121 CALL hm_get_intv(
'curveid',ncur,is_available,lsubmodel)
122 CALL hm_get_intv(
'rad_sensor_id',sens_id,is_available,lsubmodel)
123 CALL hm_get_intv(
'entityid',igu,is_available,lsubmodel)
124
125
126
127 CALL hm_get_floatv(
'xscale',facx,is_available,lsubmodel,unitab)
129 CALL hm_get_floatv(
'magnitude',facy,is_available,lsubmodel,unitab)
131 CALL hm_get_floatv(
'rad_tstart',fac1,is_available,lsubmodel,unitab
132 CALL hm_get_floatv(
'rad_tstop',fac2,is_available,lsubmodel,unitab)
134
135 IF (facy == zero) facy=facy_dim
136 IF (facx == zero) facx=facx_dim
137 IF (fac2 == zero) fac2=ep30 * fac2_dim
138 facx = one / facx
139
140 num0 = num
141 nn =
nodgrnr5(igu ,igrs ,nwork(1+nift*num0),igrnod ,
142 . itabm1 ,mess )
143 num = num + nn
144
145 DO j=nn,1,-1
146
147
148
149 nwork(1+nift*(i+j-1))=nwork(j+nift*num0)
150 ENDDO
151
152 IF(nn > 0 )WRITE(iout, 2001)
153 DO j=1,nn
154 i=i+1
155 nod = itab(iabs(ibft(1,i)))
156 ibft(2,i)= ncur
157 ibft(3,i)= sens_id
158 ibft(4,i) = 0
159
160 fac(1,i)= fac1
161 fac(2,i)= fac2
162 fac(3,i)= facx
163 fac(4,i)= facy
164
165 WRITE (iout,'(3X,I10,3X,I10,3X,I10,2X,
166 . 1PG20.13,2X,1PG20.13,2X,G20.13,2X,G20.13)')
167 . itab(iabs(ibft(1,i))),
168 . ibft(2,i),sens_id,fac(4,i),1/facx,fac(1,i),fac
169
170 ENDDO
171 ENDDO
172
173 RETURN
174
175 2001 FORMAT(//
176 .' IMPOSED TEMPERATURE '/
177 .' ------------------- '/
178 . 9x,'NODE LOAD_CURVE SENSOR FSCALE ',
179 . 9x,'ASCALE START_TIME STOP_TIME ')
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)