OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_table.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_table1 ../starter/source/tools/curve/hm_read_table.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| hm_option_count ../starter/source/devtools/hm_reader/hm_option_count.F
29!|| hm_read_table1_0 ../starter/source/tools/curve/hm_read_table1_0.F
30!|| hm_read_table1_1 ../starter/source/tools/curve/hm_read_table1_1.F
31!||--- uses -----------------------------------------------------
32!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
33!|| message_mod ../starter/share/message_module/message_mod.F
34!|| reader_old_mod ../starter/share/modules1/reader_old_mod.F90
35!|| submodel_mod ../starter/share/modules1/submodel_mod.F
36!|| table_mod ../starter/share/modules1/table_mod.F
37!||====================================================================
38 SUBROUTINE hm_read_table1(NTABLE, TABLE ,NFUNCT ,NPC ,PLD,NOM_OPT, UNITAB, LSUBMODEL)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE table_mod
43 USE message_mod
46 USE unitab_mod
48 USE reader_old_mod , ONLY : kfunct, nslash
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "scr17_c.inc"
57#include "units_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER NTABLE,NFUNCT,NPC(*)
62 my_real pld(*)
63 TYPE(ttable) TABLE(*)
64 INTEGER NOM_OPT(LNOPT1,*)
65 TYPE(submodel_data), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
66 TYPE(unit_type_), INTENT(IN) :: UNITAB
67
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER NFUNCT0, NTABLE0,NTABLE1, NFUNCT_PYTHON
72 INTEGER L
73 CHARACTER :: MESS*40
74 DATA mess/' FUNCTION & TABLE DEFINITION '/
75 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
76C======================================================================|
77 IF(ntable == 0) RETURN
78! Initialization
79 is_encrypted = .false.
80 is_available = .false.
81
82 CALL hm_option_count('/FUNCT', nfunct0)
83 CALL hm_option_count('/FUNCT_PYTHON', nfunct_python)
84 nfunct0=nslash(kfunct)+nfunct0
85 ! python functions are not associated with a table
86 WRITE (iout,2000) ntable-(nfunct0-nfunct_python)
87
88 l =nfunct0 ! total number /TABLE + /FUNCT
89 CALL hm_option_count('/table/0', NTABLE0)
90 CALL HM_OPTION_COUNT('/table/1', NTABLE1)
91C----------------------------
92C ORDER 1 TABLES
93C----------------------------
94C----------------------------
95C /FUNCT/TABLE/0/id, NDIM=1
96C----------------------------
97 IF (NTABLE0> 0) THEN
98 CALL HM_READ_TABLE1_0(NTABLE0,NTABLE, TABLE ,NFUNCT ,NPC ,PLD,L,NOM_OPT, UNITAB, LSUBMODEL)
99 ENDIF
100C----------------------------
101C /FUNCT/TABLE/1/id, NDIM=1
102C----------------------------
103 IF(NTABLE1> 0) THEN
104 CALL HM_READ_TABLE1_1(NTABLE1,NTABLE, TABLE ,NFUNCT ,NPC ,PLD,L,NOM_OPT, UNITAB, LSUBMODEL)
105 ENDIF
106C
107 RETURN
108C-----------------------------------------------------------------
1092000 FORMAT(//
110 . ' tables'/
111 . ' ------'/
112 . ' number of tables . . . . . . . . . . =',I10/)
113 END
114!||====================================================================
115!|| hm_read_table2 ../starter/source/tools/curve/hm_read_table.F
116!||--- called by ------------------------------------------------------
117!|| lectur ../starter/source/starter/lectur.F
118!||--- calls -----------------------------------------------------
119!|| hm_option_count ../starter/source/devtools/hm_reader/hm_option_count.F
120!|| hm_read_table2_0 ../starter/source/tools/curve/hm_read_table2_0.F
121!|| hm_read_table2_1 ../starter/source/tools/curve/hm_read_table2_1.F
122!|| udouble ../starter/source/system/sysfus.F
123!||--- uses -----------------------------------------------------
124!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
125!|| message_mod ../starter/share/message_module/message_mod.F
126!|| submodel_mod ../starter/share/modules1/submodel_mod.F
127!|| table_mod ../starter/share/modules1/table_mod.F
128!||====================================================================
129 SUBROUTINE HM_READ_TABLE2(NTABLE, TABLE ,NFUNCT , UNITAB, LSUBMODEL)
130C-----------------------------------------------
131C M o d u l e s
132C-----------------------------------------------
133 USE TABLE_MOD
134 USE MESSAGE_MOD
135 USE SUBMODEL_MOD
136 USE HM_OPTION_READ_MOD
137 USE UNITAB_MOD
138 USE NAMES_AND_TITLES_MOD , ONLY : NCHARTITLE, NCHARFIELD
139C-----------------------------------------------
140C I m p l i c i t T y p e s
141C-----------------------------------------------
142#include "implicit_f.inc"
143C-----------------------------------------------
144C D u m m y A r g u m e n t s
145C-----------------------------------------------
146 INTEGER NTABLE,NFUNCT
147 TYPE(TTABLE) TABLE(*)
148 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
149 TYPE(UNIT_TYPE_), INTENT(IN) :: UNITAB
150C-----------------------------------------------
151C L o c a l V a r i a b l e s
152C-----------------------------------------------
153 INTEGER NTABLE1, NTABLE0, IDTAB(NTABLE)
154 INTEGER I, J, L, IDS
155 my_real BID
156 CHARACTER :: MESS*40
157 DATA MESS/' FUNCTION & table definition '/
158 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
159C======================================================================|
160c
161 IF(NTABLE == 0) RETURN
162! Initialization
163 IS_ENCRYPTED = .FALSE.
164 IS_AVAILABLE = .FALSE.
165 L = NFUNCT
166C----------------------------
167C HIGHER ORDERS TABLES
168C----------------------------
169 CALL HM_OPTION_COUNT('/table/0', NTABLE0)
170 CALL HM_OPTION_COUNT('/table/1', NTABLE1)
171C----------------------------
172C /FUNCT/TABLE/0/id, NDIM>1
173C----------------------------
174 IF (NTABLE0> 0) THEN
175 CALL HM_READ_TABLE2_0(NTABLE0,TABLE,L ,NFUNCT , UNITAB, LSUBMODEL)
176 ENDIF
177C----------------------------
178C /FUNCT/TABLE/1/id, NDIM>1
179C----------------------------
180 IF (NTABLE1> 0) THEN
181 CALL HM_READ_TABLE2_1(NTABLE,NTABLE1, TABLE, L , UNITAB, LSUBMODEL)
182 ENDIF
183C-------------------------------------
184C Search for double id (Functions & Tables)
185C-------------------------------------
186 DO L=1,NTABLE
187 IDTAB(L)=TABLE(L)%NOTABLE
188 END DO
189 IDS = 79
190 I = 0
191 J = 0
192c CALL ANCNTS(IDS,I)
193 CALL UDOUBLE(IDTAB,1,NTABLE,MESS,0,BID)
194c CALL ANCNTG(IDS,I,J)
195 IDS = 56
196c CALL ANCHECK(IDS)
197 RETURN
198 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_read_table1(ntable, table, nfunct, npc, pld, nom_opt, unitab, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharfield
integer nsubmod