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

Go to the source code of this file.

Functions/Subroutines

subroutine lec_inimap1d_file (inimap1d, filename, id, title)

Function/Subroutine Documentation

◆ lec_inimap1d_file()

subroutine lec_inimap1d_file ( type(inimap1d_struct), intent(inout) inimap1d,
character(len=ncharline), intent(inout) filename,
integer, intent(in) id,
character(len=nchartitle) title )

Definition at line 33 of file lec_inimap1d_file.F.

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