diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index b305c1aaada034e98869801a7a6006abb2793353..3007bf5c4793fcfcdcf5620e9cbc722b3c6d8bbb 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -812,7 +812,7 @@ END DO TYPE(option),DIMENSION(:), INTENT(IN) :: options INTEGER, INTENT(IN) :: runmode - INTEGER :: idx + INTEGER :: idx, IRESP2 INTEGER(KIND=IDCDF_KIND) :: omode INTEGER(KIND=IDCDF_KIND) :: status INTEGER(KIND=LFI_INT) :: ilu,iresp @@ -857,41 +857,39 @@ END DO ALLOCATE(NIMAX_ll,NJMAX_ll,NKMAX) CALL IO_READ_FIELD(INFILES(1)%TFILE,'IMAX',NIMAX_ll) CALL IO_READ_FIELD(INFILES(1)%TFILE,'JMAX',NJMAX_ll) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'KMAX',NKMAX) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'KMAX',NKMAX,IRESP2) + IF (IRESP2/=0) NKMAX = 0 ! CALL IO_READ_FIELD(INFILES(1)%TFILE,'PROGRAM',CPROGRAM_ORIG) ! ALLOCATE(CSTORAGE_TYPE) CALL IO_READ_FIELD(INFILES(1)%TFILE,'STORAGE_TYPE',CSTORAGE_TYPE) ! - IF ( TRIM(CPROGRAM_ORIG)/='PGD' & - .AND. .NOT.(TRIM(CPROGRAM_ORIG)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX - ALLOCATE(XXHAT(NIMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'XHAT',XXHAT) - ALLOCATE(XYHAT(NJMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'YHAT',XYHAT) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) - ! - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LAT0',XLAT0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LON0',XLON0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'BETA',XBETA) - ! - IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(INFILES(1)%TFILE,'RPK', XRPK) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LATORI',XLATORI) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LONORI',XLONORI) - ENDIF - ! - IF (TRIM(CPROGRAM_ORIG)/='NESPGD') THEN - ALLOCATE(XZHAT(NKMAX+2*JPVEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'ZHAT',XZHAT) - ALLOCATE(LSLEVE) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'SLEVE',LSLEVE) - ALLOCATE(TDTMOD) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTMOD',TDTMOD) - END IF - END IF + ALLOCATE(XXHAT(NIMAX_ll+2*JPHEXT)) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'XHAT',XXHAT) + ALLOCATE(XYHAT(NJMAX_ll+2*JPHEXT)) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'YHAT',XYHAT) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) + ! + CALL IO_READ_FIELD(INFILES(1)%TFILE,'LAT0',XLAT0) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'LON0',XLON0) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'BETA',XBETA) ! + IF (.NOT.LCARTESIAN) THEN + CALL IO_READ_FIELD(INFILES(1)%TFILE,'RPK', XRPK) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'LATORI',XLATORI) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'LONORI',XLONORI) + ENDIF + ! + IF (TRIM(CPROGRAM_ORIG)/='PGD' .AND. TRIM(CPROGRAM_ORIG)/='NESPGD' .AND. TRIM(CPROGRAM_ORIG)/='ZOOMPG' & + .AND. .NOT.(TRIM(CPROGRAM_ORIG)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX + ALLOCATE(XZHAT(NKMAX+2*JPVEXT)) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'ZHAT',XZHAT) + ALLOCATE(LSLEVE) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'SLEVE',LSLEVE) + ALLOCATE(TDTMOD) + CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTMOD',TDTMOD) + END IF ! ! Outfiles ! @@ -905,7 +903,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,HOUTFILE,'UNKNOWN','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE) + CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(idx)%tfile%LNCCOMPRESS = .TRUE. @@ -928,7 +926,7 @@ END DO CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,houtfile,'UNKNOWN','WRITE', & HFORMAT='LFI',KLFIVERB=0,OOLD=.TRUE.) LIOCDF4 = .FALSE. !Necessary to open correctly the LFI file - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE) + CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) LIOCDF4 = .TRUE. END IF ! @@ -939,7 +937,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,'dummy_file','UNKNOWN','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE) + CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END IF PRINT *,'--> Converted to file: ', TRIM(houtfile) @@ -992,7 +990,7 @@ END DO filename = trim(houtfile)//'.'//TRIM(YVARS(ji)) CALL IO_FILE_ADD2LIST(outfiles(ji)%TFILE,filename,'UNKNOWN','WRITE', & HFORMAT='NETCDF4') - CALL IO_FILE_OPEN_ll(outfiles(ji)%TFILE) + CALL IO_FILE_OPEN_ll(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(ji)%tfile%LNCCOMPRESS = .TRUE.