45
46
47
54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "com01_c.inc"
62#include "com04_c.inc"
63
64
65
66 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
67 INTEGER ITAB(*), ITABM1(*),INITIDS(*)
68 INTEGER ,INTENT(IN) :: NINTEMP
69 INTEGER ,INTENT(IN) :: ITHERM_FE
71 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
72
73 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
74
75
76
77 INTEGER I,J,N,NNOD,NOSYS,ITYPE,ID,ISK,IGR,IGRS,NBTEMP,BID,
78 . FLAG_FMT,FLAG_FMT_TMP,IFIX_TMP,UID,TYP,NOD,NODSYS,NB_LINE
80 . temp0
81 CHARACTER MESS*40
82 CHARACTER(LEN=NCHARTITLE) :: TITR
83 CHARACTER(LEN=NCHARKEY) :: KEY
84 LOGICAL IS_AVAILABLE
85 my_real,
DIMENSION(:),
ALLOCATABLE :: list_temp0
86 INTEGER, DIMENSION(:), ALLOCATABLE ::
87
88
89
90 INTEGER USR2SYS, USRTOS
91 DATA mess/'INITIAL TEMPERATURE DEFINITION '/
92
93 bid =0
94 nbtemp = 0
95 is_available = .false.
96 nb_line = 0
97
98
99
101
102
103
104 DO i=1,nintemp
105 titr = ''
107 . unit_id = uid,
109 . option_titr = titr)
110
111
112
113
114
115
116
117
118
119 CALL hm_get_intv(
'distribution',typ,is_available,lsubmodel
120 CALL hm_get_intv(
'entityid',igr,is_available,lsubmodel)
121 IF (typ == 1) THEN
122 CALL hm_get_intv(
'grnd_ID',igr,is_available,lsubmodel)
123 CALL hm_get_intv(
'distribution_table_count',nb_line,is_available,lsubmodel)
124 IF(.NOT.ALLOCATED(list_nod)) ALLOCATE(list_nod(nb_line))
125 list_nod(1:nb_line) = 0
126 IF(.NOT.ALLOCATED(list_temp0)) ALLOCATE(list_temp0(nb_line))
127 list_temp0(1:nb_line) = zero
128 DO j=1,nb_line
130 ENDDO
131 ENDIF
132
133
134
135 IF (typ == 0) THEN
136 CALL hm_get_floatv(
'magnitude',temp0,is_available,lsubmodel,unitab)
137 ELSEIF (typ == 1) THEN
139 DO j=1,nb_line
141 ENDDO
142 ENDIF
143
144 nbtemp = nbtemp+1
146 igrs=0
147 IF (typ == 0) THEN
148 IF (igr == 0)THEN
150 . msgtype=msgerror,
151 . anmode=aninfo,
152 . c1='/INITEM',
153 . c2='/INITEM',
154 . c3=titr,
156 ENDIF
157 DO j=1,ngrnod
158 IF (igr == igrnod(j)%ID) igrs=j
159 ENDDO
160 IF(igrs /= 0)THEN
161 DO j=1,igrnod(igrs)%NENTITY
162 nosys=igrnod(igrs)%ENTITY(j)
163 temp(nosys)= temp0
164 ENDDO
165 nnod=igrnod(igrs)%NENTITY
166 ELSE
168 . msgtype=msgerror,
169 . anmode=aninfo,
170 . c1='IN /INITEM OPTION',
171 . i1=igr)
172 ENDIF
173 ELSE
174 DO j=1,ngrnod
175 IF (igr == igrnod(j)%ID) igrs=j
176 ENDDO
177 IF(igrs /= 0)THEN
178 DO j=1,igrnod(igrs)%NENTITY
179 nosys=igrnod(igrs)%ENTITY(j)
180 temp(nosys)= temp0
181 ENDDO
182 nnod=igrnod(igrs)%NENTITY
183 ENDIF
184 DO j=1,nb_line
185 nodsys=
usr2sys(list_nod(j),itabm1,mess,
id)
186 IF (list_nod(j) == 0) THEN
188 . msgtype=msgerror,
189 . anmode=aninfo,
190 . c1='/INITEM',
192 . i2=nod)
193 ENDIF
194 IF (nodsys /= 0) temp(nodsys)= list_temp0(j)
195 ENDDO
196 ENDIF
197 IF(ALLOCATED(list_temp0)) DEALLOCATE(list_temp0)
198 IF(ALLOCATED(list_nod)) DEALLOCATE(list_nod)
199 ENDDO
200
201 CALL udouble(initids,1,nbtemp,mess,0,bid)
202
203
204
205 j=0
206 RETURN
207
2082000 FORMAT(/, ' INITIAL TEMPERATURE ',/' -------------------',//
209 + 6x,'NODE',17x,'TEMP ' )
210 RETURN
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
integer, parameter nchartitle
integer, parameter ncharkey
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)
integer function usr2sys(iu, itabm1, mess, id)
subroutine udouble(list, ilist, nlist, mess, ir, rlist)