46#include "implicit_f.inc"
55 TYPE(),
INTENT(INOUT) :: INIMAP1D
56 CHARACTER(LEN=NCHARLINE),
INTENT(INOUT) :: FILENAME
57 INTEGER,
INTENT(IN) :: ID
58 CHARACTER(LEN=NCHARTITLE)::TITLE
62 CHARACTER MESS*40,BUFFER*14
63 CHARACTER(LEN=NCHARLINE) :: ROOTNAME
65 INTEGER NUM_CENTROIDS,N_CYCLE,K,ISUBMAT,,NUM_NODE_VEL,INPUT_VERSION
66 my_real x_scale,y_scale,x_shift,y_shift,tt
68 INTEGER :: LEN, LEN_TMP_NAME
69 CHARACTER :: TMP_NAME*2048, FILNAM*2048
70 INTEGER :: IFILNAM(2048),II, NCYCLE, NCELL_TOT, INIVERS
75 len = len_trim(filename)
76 filnam=filename(1:len)
78 IF( filnam(len-2:len) ==
".gz")
THEN
85 tmp_name=filnam(1:len)
87 ifilnam(ii)=ichar(tmp_name(ii:ii))
90 CALL open_c(ifilnam,len_tmp_name,7)
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.
109 IF(.NOT.
ALLOCATED(inimap1d%SUBMAT))
ALLOCATE(inimap1d%SUBMAT(nbmat))
112 IF(.NOT.
ALLOCATED(inimap1d%X))
ALLOCATE(inimap1d%X(num_centroids))
113 CALL read_db( inimap1d%X(1),num_centroids)
117 inimap1d%X(k) = inimap1d%X(k)+x_shift
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)
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)
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)
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
144 inimap1d%X_VEL(k) = inimap1d%X(k)
147 CALL read_db( inimap1d%X_VEL(1),num_node_vel )
148 CALL read_db( inimap1d%VEL(1),num_node_vel )
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))
173 inimap1d%FUNC_ALPHA(isubmat) = -1
174 inimap1d%FUNC_RHO(isubmat) = -1
175 inimap1d%FUNC_ENER(isubmat) = -1
176 inimap1d%FUNC_PRES(isubmat) = -1
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))
182 inimap1d%FAC_RHO(isubmat) = one
183 inimap1d%FAC_PRES_ENER(isubmat) = one
185 inimap1d%FAC_VEL = one
190 999
CALL ancmsg(msgid = 1884, anmode = aninfo, msgtype = msgerror,
191 . i1 = inimap1d%ID, c1=inimap1d%TITLE)
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)