OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
lec_inimap2d_file.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine lec_inimap2d_file (inimap2d, filename, id, title)

Function/Subroutine Documentation

◆ lec_inimap2d_file()

subroutine lec_inimap2d_file ( type(inimap2d_struct), intent(inout) inimap2d,
character(len=ncharline), intent(inout) filename,
integer, intent(in) id,
character(len=nchartitle) title )

Definition at line 35 of file lec_inimap2d_file.F.

36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE inimap2d_mod
40 USE func2d_mod
41 USE message_mod
42 USE groupdef_mod
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "units_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 TYPE(INIMAP2D_STRUCT), INTENT(INOUT) :: INIMAP2D
57 CHARACTER(LEN=NCHARLINE), INTENT(INOUT) :: FILENAME
58 INTEGER, INTENT(IN) :: ID
59 CHARACTER(LEN=NCHARTITLE)::TITLE
60C-----------------------------------------------
61C E x t e r n a l F u n c t i o n s
62C-----------------------------------------------
63 INTEGER USR2SYS
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 CHARACTER MESS*40,BUFFER*14
68 CHARACTER(LEN=NCHARLINE) :: ROOTNAME
69 DATA mess/'INFILE'/
70 INTEGER NUM_CENTROIDS,N_CYCLE,K,ISUBMAT,NBMAT,NUM_NODE_VEL,INPUT_VERSION,NB_COMP
71 my_real x_scale,y_scale,x_shift,y_shift,tt
72 INTEGER :: LEN, LEN_TMP_NAME
73 CHARACTER :: TMP_NAME*2048, FILNAM*204
74 INTEGER :: IFILNAM(2048),II, NCYCLE, NCELL_TOT, INIVERS
75 LOGICAL FILE_EXIST
76C-----------------------------------------------
77C S o u r c e L i n e s
78C-----------------------------------------------
79 len = len_trim(filename)
80 filnam=filename(:len)
81 IF(len >= 3)THEN
82 IF( filnam(len-2:len) == ".gz")THEN
83 filnam(len-2:len)=' '
84 len=len-3
85 ENDIF
86 ENDIF
87 len_tmp_name = outfile_name_len + len
88 !TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:LEN)
89 tmp_name=filnam(1:len)
90 DO ii=1,len_tmp_name
91 ifilnam(ii)=ichar(tmp_name(ii:ii))
92 END DO
93 CALL cur_fil_c(iuinimap)
94 CALL open_c(ifilnam,len_tmp_name,7)
95 file_exist=.false.
96 inquire( file=trim(filename), exist=file_exist )
97 IF(.NOT.file_exist) THEN
98 inquire( file=trim(filename)//".gz", exist=file_exist )
99 IF(.NOT.file_exist) THEN
100 CALL ancmsg(msgid = 1885, anmode = aninfo, msgtype = msgerror, i1 = id, c1=title)
101 inimap2d%CORRECTLY_READ = .false.
102 return
103 ENDIF
104 ENDIF
105
106 CALL read_i_c(inivers,1)
107 CALL read_db(tt,1)
108 CALL read_i_c(ncycle,1)
109 CALL read_i_c(num_centroids,1)
110 CALL read_i_c(num_node_vel,1)
111 CALL read_i_c(nbmat,1)
112
113 IF(.NOT.ALLOCATED(inimap2d%SUBMAT))ALLOCATE(inimap2d%SUBMAT(nbmat))
114
115 !---ABSCISSA
116 IF(.NOT.ALLOCATED(inimap2d%XVAL))ALLOCATE(inimap2d%XVAL(2,num_centroids))
117 DO k=1,num_centroids
118 CALL read_db(inimap2d%XVAL(1,k),1)
119 ENDDO
120 DO k=1,num_centroids
121 CALL read_db(inimap2d%XVAL(2,k),1)
122 ENDDO
123
124 !---VOLUME FRACTION
125 DO isubmat=1,nbmat
126 IF(.NOT.ALLOCATED(inimap2d%SUBMAT(isubmat)%VFRAC))ALLOCATE(inimap2d%SUBMAT(isubmat)%VFRAC(1,num_centroids))
127 DO k=1, num_centroids
128 CALL read_db(inimap2d%SUBMAT(isubmat)%VFRAC(1,k),1)
129 ENDDO
130 ENDDO
131
132 !---DENSITIES
133 DO isubmat=1,nbmat
134 IF(.NOT.ALLOCATED(inimap2d%SUBMAT(isubmat)%RHO))ALLOCATE(inimap2d%SUBMAT(isubmat)%RHO(1,num_centroids))
135 DO k=1, num_centroids
136 CALL read_db(inimap2d%SUBMAT(isubmat)%RHO(1,k),1)
137 ENDDO
138 ENDDO
139
140 !---PRESSURE
141 DO isubmat=1,nbmat
142 IF(.NOT.ALLOCATED(inimap2d%SUBMAT(isubmat)%PRES))ALLOCATE(inimap2d%SUBMAT(isubmat)%PRES(1,num_centroids))
143 DO k=1, num_centroids
144 CALL read_db(inimap2d%SUBMAT(isubmat)%PRES(1,k),1)
145 ENDDO
146 ENDDO
147
148 !---VELOCITY
149 IF(.NOT.ALLOCATED(inimap2d%XVAL_V))ALLOCATE(inimap2d%XVAL_V(2,num_node_vel))
150 IF(.NOT.ALLOCATED(inimap2d%VEL))ALLOCATE(inimap2d%VEL(2,num_node_vel))
151 IF(num_node_vel == num_centroids)THEN
152 DO k=1, num_node_vel
153 CALL read_db( inimap2d%VEL(1,k), 1)
154 inimap2d%XVAL_V(1,k) = inimap2d%XVAL(1,k)
155 ENDDO
156 DO k=1, num_node_vel
157 CALL read_db( inimap2d%VEL(2,k), 1)
158 inimap2d%XVAL_V(2,k) = inimap2d%XVAL(2,k)
159 ENDDO
160 ELSE
161 DO k=1, num_node_vel ; CALL read_db( inimap2d%XVAL_V(1,k), 1) ; ENDDO
162 DO k=1, num_node_vel ; CALL read_db( inimap2d%XVAL_V(2,k), 1) ; ENDDO
163 DO k=1, num_node_vel ; CALL read_db( inimap2d%VEL(1,k), 1) ; ENDDO
164 DO k=1, num_node_vel ; CALL read_db( inimap2d%VEL(2,k), 1) ; ENDDO
165 ENDIF
166
167 CALL close_c()
168
169 inimap2d%NBMAT = nbmat
170 inimap2d%NUM_CENTROIDS = num_centroids
171 inimap2d%NUM_NODE_VEL = num_node_vel
172 inimap2d%FUNC_VEL = -1
173 IF(.NOT.ALLOCATED(inimap2d%FUNC_ALPHA))ALLOCATE(inimap2d%FUNC_ALPHA(nbmat))
174 IF(.NOT.ALLOCATED(inimap2d%FUNC_RHO))ALLOCATE(inimap2d%FUNC_RHO(nbmat))
175 IF(.NOT.ALLOCATED(inimap2d%FUNC_ENER))ALLOCATE(inimap2d%FUNC_ENER(nbmat))
176 IF(.NOT.ALLOCATED(inimap2d%FUNC_PRES))ALLOCATE(inimap2d%FUNC_PRES(nbmat))
177 DO isubmat=1,nbmat
178 inimap2d%FUNC_ALPHA(isubmat) = -1
179 inimap2d%FUNC_RHO(isubmat) = -1
180 inimap2d%FUNC_ENER(isubmat) = -1
181 inimap2d%FUNC_PRES(isubmat) = -1
182 ENDDO
183
184 IF(.NOT.ALLOCATED(inimap2d%FAC_RHO))ALLOCATE(inimap2d%FAC_RHO(nbmat))
185 IF(.NOT.ALLOCATED(inimap2d%FAC_PRES_ENER))ALLOCATE(inimap2d%FAC_PRES_ENER(nbmat))
186 DO isubmat=1,nbmat
187 inimap2d%FAC_RHO(isubmat) = one
188 inimap2d%FAC_PRES_ENER(isubmat) = one
189 ENDDO
190 inimap2d%FAC_VEL = one
191
192
193 RETURN
194
195 999 CALL ancmsg(msgid = 1885, anmode = aninfo, msgtype = msgerror,
196 . i1 = inimap2d%ID, c1 = inimap2d%TITLE)
197
#define my_real
Definition cppsort.cpp:32
initmumps id
integer outfile_name_len
integer, parameter nchartitle
integer, parameter ncharline
subroutine read_db(a, n)
Definition read_db.F:88
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
void read_i_c(int *w, int *len)
void close_c()
void cur_fil_c(int *nf)
void open_c(int *ifil, int *len, int *mod)