5 &(fformat,fid,varsor,npoin,record,at,var_list,trouve,alire,listin,
55 TYPE(
bief_obj),
INTENT(INOUT) :: VARSOR
56 INTEGER,
INTENT(IN) :: NPOIN
57 INTEGER,
INTENT(IN) :: MAXVAR
58 INTEGER,
INTENT(IN) :: FID
59 INTEGER,
INTENT(INOUT) :: RECORD
60 INTEGER,
INTENT(INOUT) :: TROUVE(maxvar)
61 INTEGER,
INTENT(IN) :: ALIRE(maxvar)
62 CHARACTER(LEN=8),
INTENT(IN) :: FFORMAT
63 CHARACTER(LEN=32),
INTENT(IN) :: VAR_LIST(maxvar)
64 DOUBLE PRECISION,
INTENT(INOUT) :: AT
65 LOGICAL,
INTENT(IN) :: LISTIN,LASTRECORD
70 INTEGER :: L,IERR,IPLAN,I,IP1,IP2
71 LOGICAL :: INTERPOLATE
72 INTEGER :: NPOIN_PREV, NPLAN_PREV, NPLAN, NPOIN2
73 DOUBLE PRECISION,
ALLOCATABLE :: WD(:)
74 DOUBLE PRECISION :: TETA,ARG
75 CHARACTER(LEN=16),
ALLOCATABLE :: VARNAME(:),VARUNIT(:)
76 CHARACTER(LEN=80) :: TITLE
86 CALL check_call(ierr,
'READ_DATASET:GET_MESH_NPOIN')
88 CALL check_call(ierr,
'READ_DATASET:GET_MESH_NPLAN')
93 CALL check_call(ierr,
'BIEF_VALIDA:GET_MESH_TITLE')
96 CALL check_call(ierr,
'BIEF_VALIDA:GET_DATA_NVAR')
98 ALLOCATE(varname(nvar),stat=ierr)
99 CALL check_allocate(ierr,
'VARNAME')
100 ALLOCATE(varunit(nvar),stat=ierr)
101 CALL check_allocate(ierr,
'VARUNIT')
104 CALL check_call(ierr,
'BIEF_VALIDA:GET_DATA_NVAR')
106 IF(listin)
WRITE(
lu,301) title
107 301
FORMAT(1x,//,1x,
'TITLE OF PREVIOUS COMPUTATION: ',a72,/)
110 IF(listin)
WRITE(
lu,111) varname(ivar),varunit(ivar)
111 111
FORMAT(1x,
'NAME: ',a16,
' UNIT: ' ,a16)
113 DEALLOCATE(varname,varunit)
118 IF(npoin_prev.NE.npoin)
THEN 120 npoin2=npoin_prev/nplan_prev
122 ALLOCATE(wd(npoin_prev),stat=ierr)
123 CALL check_allocate(ierr,
'READ_DATASET:WD')
130 CALL check_call(ierr,
'READ_DATASET:GET_DATA_NTIMESTEP')
148 CALL check_call(ierr,
'READ_DATASET:GET_DATA_TIME')
151 DO l=1,min(maxvar,varsor%N)
153 IF((alire(l).EQ.1) .AND.
154 & (
ASSOCIATED(varsor%ADR(l)%P)) .AND.
155 & (var_list(l)(1:1).NE.
' ') )
THEN 158 IF(varsor%ADR(l)%P%DIM1.GE.npoin_prev)
THEN 162 & wd,npoin_prev,ierr)
168 CALL check_call(ierr,
'READ_DATASET:GET_DATA_VALUE')
172 CALL ov(
'X=Y ', x=varsor%ADR(l)%P%R, y=wd,dim1=npoin2)
174 & x=varsor%ADR(l)%P%R(npoin-npoin2+1:npoin),
175 & y=wd(npoin_prev-npoin2+1:npoin_prev),
180 arg=(nplan_prev-1)*float(iplan-1)/float(nplan-1)
187 varsor%ADR(l)%P%R(i+npoin2*(iplan-1))=
188 & teta *wd(i+npoin2*ip2)+(1.d0-teta)*wd(i+npoin2*ip1)
196 & varsor%ADR(l)%P%R,npoin_prev,ierr)
202 CALL check_call(ierr,
'READ_DATASET:GET_DATA_VALUE')
214 IF(interpolate)
DEALLOCATE(wd)
216 IF(listin)
WRITE(
lu,131) irec+1
217 131
FORMAT(/,1x,
'READ_DATASET : READ OF RECORD ',1i5)
219 IF(listin)
WRITE(
lu,141) at
220 141
FORMAT(//,1x,
'TIME OF RECORD: ',g16.7,
' S')
224 76
FORMAT(/,1x,
'TIME STEP : ',i16,/,1x,
'IS NOT IN THE FILE')
subroutine get_mesh_npoin(FFORMAT, FID, TYP_ELEM, NPOIN, IERR)
subroutine ov(OP, X, Y, Z, C, DIM1)
subroutine get_data_nvar(FFORMAT, FID, NVAR, IERR)
subroutine get_data_var_list(FFORMAT, FID, NVAR, VARLIST, UNITLIST, IERR)
integer, parameter point_bnd_elt_type
subroutine get_data_value(FFORMAT, FID, RECORD, VAR_NAME, RES_VALUE, N, IERR)
integer, parameter hermes_record_unknown_err
subroutine get_mesh_title(FFORMAT, FID, TITLE, IERR)
subroutine get_mesh_nplan(FFORMAT, FID, NPLAN, IERR)
subroutine read_dataset(FFORMAT, FID, VARSOR, NPOIN, RECORD, AT, VAR_LIST, TROUVE, ALIRE, LISTIN, LASTRECORD, MAXVAR)
integer, parameter hermes_var_unknown_err
subroutine get_data_time(FFORMAT, FID, RECORD, TIME, IERR)
subroutine get_data_ntimestep(FFORMAT, FID, NTIMESTEP, IERR)