diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 5614e45ee1af7209f3edd1fb9763ffb56b9397e6..c967a7961275d7a20dc649038517033ea4343a93 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -1,8 +1,11 @@ MODULE mode_util - USE MODE_FIELDTYPE + USE MODD_IO_ll, ONLY: TFILE_ELT + USE MODD_PARAM + USE mode_dimlist + USE MODE_FIELDTYPE USE mode_options - USE MODD_PARAM + USE netcdf IMPLICIT NONE @@ -27,6 +30,7 @@ MODULE mode_util INTEGER :: nbfiles = 0 ! TYPE(filestruct),DIMENSION(:),ALLOCATABLE :: files TYPE(filestruct),DIMENSION(MAXFILES) :: files + TYPE(TFILE_ELT),DIMENSION(MAXFILES) :: TFILES END TYPE filelist_struct @@ -1167,6 +1171,8 @@ END DO END SUBROUTINE UPDATE_VARID_IN 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 CHARACTER(LEN=*), INTENT(IN) :: hinfile CHARACTER(LEN=*), INTENT(IN) :: houtfile @@ -1189,19 +1195,20 @@ END DO ! Cas LFI -> NetCDF infiles%nbfiles = infiles%nbfiles + 1 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)%status = READING ilu = infiles%files(idx)%lun_id - CALL LFIOUV(iresp,ilu,ltrue,hinfile,'OLD',lfalse& - & ,lfalse,iverb,inap,inaf) infiles%files(idx)%opened = .TRUE. nbvar_infile = inaf IF (options(OPTLIST)%set) THEN CALL LFILAF(iresp,ilu,lfalse) - CALL LFIFER(iresp,ilu,'KEEP') + CALL IO_FILE_CLOSE_ll(INFILES%TFILES(idx)%TFILE) return END IF diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 8134fb55b0c0e12e5ed69e752fa7ab4d0fddae45..0a2e51729ef8f3402b472ed756b8a62618956c24 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -53,7 +53,7 @@ END SUBROUTINE SET_FMPACK_ll 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 MODE_FIELD, ONLY: TFIELDDATA,TYPEINT USE MODE_FMREAD @@ -149,7 +149,7 @@ SELECT CASE(TPFILE%CTYPE) CASE DEFAULT !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 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) @@ -409,6 +409,7 @@ END SUBROUTINE FMOPEN_ll SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO) ! +USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_ll, ONLY: TFILEDATA USE MODE_IO_ll, ONLY : CLOSE_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME @@ -502,7 +503,7 @@ SELECT CASE(TPFILE%CTYPE) CASE DEFAULT !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) 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) ! !! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL !------------------------------------------------------------------------------- +USE MODD_CONF, ONLY : CPROGRAM USE MODD_IO_ll, ONLY : TFILEDATA USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE #if !defined(MNH_SGI) @@ -624,7 +626,7 @@ IF (TPFILE%LMASTER) THEN IF (ASSOCIATED(TPFILE%TNCDIMS)) CALL CLEANIOCDF(TPFILE%TNCDIMS) END IF #endif - IF (IRESP == 0) THEN + IF (IRESP == 0 .AND. CPROGRAM/='LFICDF') THEN !! Write in pipe #if defined(MNH_LINUX) || defined(MNH_SP4) YTRANS='xtransfer.x' diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index d7d27962efd4d863cae4ad093c1fc14b2ee5f3cb..6e1695126c2f41ecf4e146a4b88274af48ba3069 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -930,7 +930,7 @@ ELSE !PW: TODO?: temporary to detect non-initialisation ! should disappear except at the beginning of a run 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 ! SELECT CASE(HDOMAIN)