Skip to content
Snippets Groups Projects
Commit eb67b9ca authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 23/02/2018: lfi2cdf: add TFILEDATA structures and begin to use them

parent 1083c794
No related branches found
No related tags found
No related merge requests found
MODULE mode_util MODULE mode_util
USE MODE_FIELDTYPE USE MODD_IO_ll, ONLY: TFILE_ELT
USE MODD_PARAM
USE mode_dimlist USE mode_dimlist
USE MODE_FIELDTYPE
USE mode_options USE mode_options
USE MODD_PARAM
USE netcdf USE netcdf
IMPLICIT NONE IMPLICIT NONE
...@@ -27,6 +30,7 @@ MODULE mode_util ...@@ -27,6 +30,7 @@ MODULE mode_util
INTEGER :: nbfiles = 0 INTEGER :: nbfiles = 0
! TYPE(filestruct),DIMENSION(:),ALLOCATABLE :: files ! TYPE(filestruct),DIMENSION(:),ALLOCATABLE :: files
TYPE(filestruct),DIMENSION(MAXFILES) :: files TYPE(filestruct),DIMENSION(MAXFILES) :: files
TYPE(TFILE_ELT),DIMENSION(MAXFILES) :: TFILES
END TYPE filelist_struct END TYPE filelist_struct
...@@ -1167,6 +1171,8 @@ END DO ...@@ -1167,6 +1171,8 @@ END DO
END SUBROUTINE UPDATE_VARID_IN END SUBROUTINE UPDATE_VARID_IN
SUBROUTINE OPEN_FILES(infiles,outfiles,hinfile,houtfile,nbvar_infile,options,runmode) SUBROUTINE OPEN_FILES(infiles,outfiles,hinfile,houtfile,nbvar_infile,options,runmode)
USE MODE_FM, ONLY: IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll
USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST
TYPE(filelist_struct),INTENT(OUT) :: infiles, outfiles TYPE(filelist_struct),INTENT(OUT) :: infiles, outfiles
CHARACTER(LEN=*), INTENT(IN) :: hinfile CHARACTER(LEN=*), INTENT(IN) :: hinfile
CHARACTER(LEN=*), INTENT(IN) :: houtfile CHARACTER(LEN=*), INTENT(IN) :: houtfile
...@@ -1189,19 +1195,20 @@ END DO ...@@ -1189,19 +1195,20 @@ END DO
! Cas LFI -> NetCDF ! Cas LFI -> NetCDF
infiles%nbfiles = infiles%nbfiles + 1 infiles%nbfiles = infiles%nbfiles + 1
idx = infiles%nbfiles idx = infiles%nbfiles
infiles%files(idx)%lun_id = 11 CALL IO_FILE_ADD2LIST(INFILES%TFILES(idx)%TFILE,HINFILE(1:LEN_TRIM(HINFILE)-4),'UNKNOWN','READ', &
HFORMAT='LFI',KLFIVERB=0)
CALL IO_FILE_OPEN_ll(INFILES%TFILES(idx)%TFILE)
infiles%files(idx)%lun_id = INFILES%TFILES(idx)%TFILE%NLFIFLU
infiles%files(idx)%format = LFI_FORMAT infiles%files(idx)%format = LFI_FORMAT
infiles%files(idx)%status = READING infiles%files(idx)%status = READING
ilu = infiles%files(idx)%lun_id ilu = infiles%files(idx)%lun_id
CALL LFIOUV(iresp,ilu,ltrue,hinfile,'OLD',lfalse&
& ,lfalse,iverb,inap,inaf)
infiles%files(idx)%opened = .TRUE. infiles%files(idx)%opened = .TRUE.
nbvar_infile = inaf nbvar_infile = inaf
IF (options(OPTLIST)%set) THEN IF (options(OPTLIST)%set) THEN
CALL LFILAF(iresp,ilu,lfalse) CALL LFILAF(iresp,ilu,lfalse)
CALL LFIFER(iresp,ilu,'KEEP') CALL IO_FILE_CLOSE_ll(INFILES%TFILES(idx)%TFILE)
return return
END IF END IF
......
...@@ -53,7 +53,7 @@ END SUBROUTINE SET_FMPACK_ll ...@@ -53,7 +53,7 @@ END SUBROUTINE SET_FMPACK_ll
SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS) SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS)
! !
USE MODD_CONF, ONLY: NMNHVERSION USE MODD_CONF, ONLY: CPROGRAM, NMNHVERSION
USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA
USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT
USE MODE_FMREAD USE MODE_FMREAD
...@@ -149,7 +149,7 @@ SELECT CASE(TPFILE%CTYPE) ...@@ -149,7 +149,7 @@ SELECT CASE(TPFILE%CTYPE)
CASE DEFAULT CASE DEFAULT
!Do not open '.des' file if OUTPUT !Do not open '.des' file if OUTPUT
IF(TPFILE%CTYPE/='OUTPUT') THEN IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN
CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list
CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des')
CALL OPEN_ll(TZFILE_DES,FORM='FORMATTED',DELIM='QUOTE',IOSTAT=IRESP,RECL=1024*8,OPARALLELIO=OPARALLELIO) CALL OPEN_ll(TZFILE_DES,FORM='FORMATTED',DELIM='QUOTE',IOSTAT=IRESP,RECL=1024*8,OPARALLELIO=OPARALLELIO)
...@@ -409,6 +409,7 @@ END SUBROUTINE FMOPEN_ll ...@@ -409,6 +409,7 @@ END SUBROUTINE FMOPEN_ll
SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO) SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO)
! !
USE MODD_CONF, ONLY: CPROGRAM
USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_IO_ll, ONLY: TFILEDATA
USE MODE_IO_ll, ONLY : CLOSE_ll USE MODE_IO_ll, ONLY : CLOSE_ll
USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
...@@ -502,7 +503,7 @@ SELECT CASE(TPFILE%CTYPE) ...@@ -502,7 +503,7 @@ SELECT CASE(TPFILE%CTYPE)
CASE DEFAULT CASE DEFAULT
!Do not close (non-existing) '.des' file if OUTPUT !Do not close (non-existing) '.des' file if OUTPUT
IF(TPFILE%CTYPE/='OUTPUT') THEN IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN
CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP)
IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TPFILE%CNAME)//'.des not in filelist')
! !
...@@ -551,6 +552,7 @@ SUBROUTINE FMCLOS_ll(TPFILE,HSTATU,KRESP,OPARALLELIO) ...@@ -551,6 +552,7 @@ SUBROUTINE FMCLOS_ll(TPFILE,HSTATU,KRESP,OPARALLELIO)
! !
!! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL !! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
USE MODD_CONF, ONLY : CPROGRAM
USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_IO_ll, ONLY : TFILEDATA
USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE
#if !defined(MNH_SGI) #if !defined(MNH_SGI)
...@@ -624,7 +626,7 @@ IF (TPFILE%LMASTER) THEN ...@@ -624,7 +626,7 @@ IF (TPFILE%LMASTER) THEN
IF (ASSOCIATED(TPFILE%TNCDIMS)) CALL CLEANIOCDF(TPFILE%TNCDIMS) IF (ASSOCIATED(TPFILE%TNCDIMS)) CALL CLEANIOCDF(TPFILE%TNCDIMS)
END IF END IF
#endif #endif
IF (IRESP == 0) THEN IF (IRESP == 0 .AND. CPROGRAM/='LFICDF') THEN
!! Write in pipe !! Write in pipe
#if defined(MNH_LINUX) || defined(MNH_SP4) #if defined(MNH_LINUX) || defined(MNH_SP4)
YTRANS='xtransfer.x' YTRANS='xtransfer.x'
......
...@@ -930,7 +930,7 @@ ELSE ...@@ -930,7 +930,7 @@ ELSE
!PW: TODO?: temporary to detect non-initialisation !PW: TODO?: temporary to detect non-initialisation
! should disappear except at the beginning of a run ! should disappear except at the beginning of a run
GWRITE_OUTLST = .FALSE. GWRITE_OUTLST = .FALSE.
IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not associated' IF (GWRITE_STDOUT .AND. CPROGRAM/='LFICDF') WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not associated'
END IF END IF
! !
SELECT CASE(HDOMAIN) SELECT CASE(HDOMAIN)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment