OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_imptemp.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_imptemp ../starter/source/constraints/thermic/hm_read_imptemp.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
30!|| hm_get_floatv_dim ../starter/source/devtools/hm_reader/hm_get_floatv_dim.F
31!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| hm_option_read_key ../starter/source/devtools/hm_reader/hm_option_read_key.F
33!|| hm_option_start ../starter/source/devtools/hm_reader/hm_option_start.F
34!|| nodgrnr5 ../starter/source/starter/freform.F
35!||--- uses -----------------------------------------------------
36!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
37!|| message_mod ../starter/share/message_module/message_mod.F
38!|| submodel_mod ../starter/share/modules1/submodel_mod.F
39!||====================================================================
40 SUBROUTINE hm_read_imptemp(IBFT ,FAC ,NUM ,ITABM1,
41 . IGRNOD ,NWORK ,ITAB ,UNITAB,LSUBMODEL,
42 . NIMTEMP,NIFT,LFACTHER)
43C-----------------------------------------------
44C M o d u l e s
45C-----------------------------------------------
46 USE unitab_mod
47 USE message_mod
48 USE groupdef_mod
49 USE submodel_mod
52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59#include "com04_c.inc"
60#include "units_c.inc"
61#include "param_c.inc"
62C-----------------------------------------------
63C D u m m y A r g u m e n t s
64C-----------------------------------------------
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(*), ITABM1(*), NWORK(*)
71 my_real :: fac(lfacther,*)
72 TYPE(submodel_data),INTENT(IN)::LSUBMODEL(*)
73 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER :: I, NOD, NCUR, SENS_ID, ID, UID
78 INTEGER :: K, IGU, IGRS, 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
83C-----------------------------------------------
84C E x t e r n a l F u n c t i o n s
85C-----------------------------------------------
86 INTEGER NODGRNR5
87 DATA MESS/'IMPOSED TEMPERATURE DEFINITION '/
88C======================================================================|
89 is_available = .false.
90 num = 0
91 i = 0
92C--------------------------------------------------
93C START BROWSING MODEL IMPTEMP
94C--------------------------------------------------
95 CALL hm_option_start('/IMPTEMP')
96C--------------------------------------------------
97C BROWSING /IMPTEMP OPTIONS 1->NIMTEMP
98C--------------------------------------------------
99 DO k=1,nimtemp
100 titr = ''
101 CALL hm_option_read_key(lsubmodel,
102 . unit_id = uid,
103 . option_id = id,
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
118C--------------------------------------------------
119C EXTRACT DATAS (INTEGER VALUES)
120C--------------------------------------------------
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)
124C--------------------------------------------------
125C EXTRACT DATAS (REAL VALUES)
126C--------------------------------------------------
127 CALL HM_GET_FLOATV('xscale',FACX,IS_AVAILABLE,LSUBMODEL,UNITAB)
128 CALL HM_GET_FLOATV_DIM('xscale',FACX_DIM,IS_AVAILABLE,LSUBMODEL,UNITAB)
129 CALL HM_GET_FLOATV('magnitude',FACY,IS_AVAILABLE,LSUBMODEL,UNITAB)
130 CALL HM_GET_FLOATV_DIM('magnitude',FACY_DIM,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)
133 CALL HM_GET_FLOATV_DIM('rad_tstop',FAC2_DIM,IS_AVAILABLE,LSUBMODEL,UNITAB)
134C--------------------------------------------------
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
139C--------------------------------------------------
140 NUM0 = NUM
141 NN = NODGRNR5(IGU ,IGRS ,NWORK(1+NIFT*NUM0),IGRNOD ,
142 . ITABM1 ,MESS )
143 NUM = NUM + NN
144C
145 DO J=NN,1,-1
146C !! IBFV ET NWORK ONT LA MEME ADRESSE
147C !! IBFV ECRASE PROGRESSIVEMENT NWORK
148C IBFV(1,I+J)=NWORK(J+5*NUM0)
149 NWORK(1+NIFT*(I+J-1))=NWORK(J+NIFT*NUM0)
150 ENDDO
151C
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
159C
160 FAC(1,I)= FAC1
161 FAC(2,I)= FAC2
162 FAC(3,I)= FACX
163 FAC(4,I)= FACY
164C
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(2,i)
169C
170 ENDDO
171 ENDDO
172C
173 RETURN
174C
175 2001 FORMAT(//
176 .' IMPOSED TEMPERATURE '/
177 .' ------------------- '/
178 . 9x,'NODE LOAD_CURVE SENSOR FSCALE ',
179 . 9x,'ASCALE START_TIME STOP_TIME ')
180 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine hm_read_imptemp(ibft, fac, num, itabm1, igrnod, nwork, itab, unitab, lsubmodel, nimtemp, nift, lfacther)
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)
Definition message.F:889