Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mesonh/mesonh-code
  • quentin.rodier/mesonh-code-fork
  • benoit.vie/mesonh-code
  • joris.pianezze/mesonh-code
  • 8qq4g5s7/mesonh-code
  • jean.baptiste.filippi/meso-nh-fire-code
  • fdl68d9p/mesonh-code-sophia
7 results
Show changes
Commits on Source (2924)
Showing
with 603 additions and 270 deletions
conf/profile_mesonh
conf/profile_mesonh-*
exe/*
MY_RUN/INTEGRATION_CASES/**/*.des
MY_RUN/INTEGRATION_CASES/**/*.dir
MY_RUN/INTEGRATION_CASES/**/*.hdr
MY_RUN/INTEGRATION_CASES/**/*.nc
MY_RUN/INTEGRATION_CASES/**/ecmwf.OD.????????.??
MY_RUN/INTEGRATION_CASES/**/file_for_xtransfer
MY_RUN/INTEGRATION_CASES/**/OUTPUT_LISTING*
MY_RUN/INTEGRATION_CASES/**/PRESSURE
MY_RUN/KTEST/*/*/*.des
MY_RUN/KTEST/*/*/*.lfi
MY_RUN/KTEST/*/*/*.nc
......@@ -36,10 +44,25 @@ MY_RUN/KTEST/009_ICARTT/001_pgd1/*.asc
MY_RUN/KTEST/009_ICARTT/002_arp2lfi/ecmwf.OD.20040810.18-V2
MY_RUN/KTEST/009_ICARTT/002_arp2lfi/mocage.GLOB22.20040810.18
MY_RUN/KTEST/9??_*
pub/ncl-?.?.?
pub/ncl_ncarg*/
pub/FILEPP/filepp*
!pub/FILEPP/filepp*.tar.gz
pub/FILEPP/FILEPP*
pub/FILEPP/MNH_Expand_*
!pub/FILEPP/MNH_EXPAND_*.tar.gz
src/dir_obj-*
src/LIB/eccodes*
!src/LIB/eccodes*.tar.gz
src/LIB/grib_api*
!src/LIB/grib_api*.tar.gz
src/LIB/hdf5*
!src/LIB/hdf5*.tar.gz
src/LIB/libaec*
!src/LIB/libaec*.tar.gz
src/LIB/netcdf*
!src/LIB/netcdf*.tar.gz
src/LIB/MEGAN*
src/LIB/oasis3-mct*
!src/LIB/oasis3-mct*.tar.gz
src/LIB/toy*
!src/LIB/toy*.tar.gz
vscode_mod
This diff is collapsed.
!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
......@@ -10,14 +10,17 @@ program LFI2CDF
USE MODD_CONF, ONLY: CPROGRAM
USE MODD_CONFZ, ONLY: NB_PROCIO_R
USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX
USE MODD_GRID_n, ONLY: XXHAT, XXHATM, XYHAT, XYHATM
USE MODD_IO, ONLY: LVERB_OUTLST, LVERB_STDOUT, NIO_ABORT_LEVEL, NIO_VERB, NGEN_ABORT_LEVEL, NGEN_VERB
USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT
USE MODD_TIMEZ, ONLY: TIMEZ
USE MODE_FIELD, ONLY: INI_FIELD_LIST
use mode_field, only: Ini_field_list
USE MODE_IO, ONLY: IO_Init, IO_Config_set
use mode_ll
use mode_modeln_handler, only: Goto_model
USE mode_options
USE MODE_SET_GRID, ONLY: INTERP_HORGRID_TO_MASSPOINTS
USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll
USE mode_util
......@@ -48,6 +51,8 @@ program LFI2CDF
CPROGRAM = 'LFICDF'
CALL Goto_model(1)
CALL IO_Init()
CALL VERSION
CALL INI_CST
......@@ -91,12 +96,12 @@ program LFI2CDF
CALL IO_Config_set()
END IF
CALL INI_FIELD_LIST(1)
CALL INI_FIELD_LIST()
CALL OPEN_FILES(infiles, outfiles, nfiles_out, hinfile, houtfile, nbvar_infile, options, runmode)
IF (options(OPTLIST)%set) STOP
!Set and initialize parallel variables (necessary to read splitted files)
!Set and initialize parallel variables (necessary to read split files)
CALL SET_JP_ll(1,JPHEXT,JPVEXT,JPHEXT)
CALL SET_DAD0_ll()
CALL SET_DIM_ll(NIMAX_ll, NJMAX_ll, NKMAX)
......@@ -108,6 +113,12 @@ program LFI2CDF
CALL SET_YEND_ll(NJMAX_ll+2*JPHEXT, 1)
CALL INI_PARAZ_ll(IINFO_ll)
! This has to be done after INI_PARAZ_ll and after reading of XXHAT and XYHAT (in OPEN_FILES)
ALLOCATE(XXHATM(NIMAX_ll+2*JPHEXT))
ALLOCATE(XYHATM(NJMAX_ll+2*JPHEXT))
! Interpolations of positions to mass points
CALL INTERP_HORGRID_TO_MASSPOINTS( XXHAT, XYHAT, XXHATM, XYHATM )
IF (runmode == MODELFI2CDF .OR. runmode == MODECDF2CDF) THEN
IF (options(OPTVAR)%set) THEN
! nbvar_tbr is computed from number of requested variables
......
!MNH_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC Copyright 2015-2020 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
......@@ -8,7 +8,7 @@
! P. Wautelet 21/10/2019: add OPTDIR option to set directory for writing outfiles
!-----------------------------------------------------------------
module mode_options
USE MODE_FIELD, ONLY: TYPEUNDEF, TYPEINT, TYPELOG, TYPEREAL, TYPECHAR, TYPEDATE
use modd_field, only: TYPEUNDEF, TYPEINT, TYPELOG, TYPEREAL, TYPECHAR, TYPEDATE
implicit none
......
!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
......@@ -12,20 +12,23 @@
! P. Wautelet 19/09/2019: add possibility to provide a fallback file if some information are not found in the input file
! P. Wautelet 21/10/2019: add OPTDIR option to set directory for writing outfiles
! P. Wautelet 21/10/2019: if DTMOD and DTCUR not found, try to read the time coordinate
! P. Wautelet 10/11/2020: new data structures for netCDF dimensions
!-----------------------------------------------------------------
MODULE mode_util
use modd_field, only: tfieldmetadata, tfieldlist
USE MODD_IO, ONLY: TFILEDATA, TFILE_ELT
USE MODD_NETCDF, ONLY: DIMCDF, CDFINT
USE MODD_NETCDF, ONLY: CDFINT, tdimnc
USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX
use modd_precision, only: LFIINT
USE MODE_FIELD
use mode_field, only: Find_field_id_from_mnhname
USE MODE_IO_FIELD_READ
USE MODE_IO_FIELD_WRITE
use mode_io_tools_nc4, only: IO_Err_handle_nc4
use mode_msg
USE mode_options
USE NETCDF
IMPLICIT NONE
......@@ -53,8 +56,8 @@ MODULE mode_util
INTEGER(kind=CDFINT) :: NTYPE_FILE ! netCDF datatype (NF90_CHAR, NF90_INT...) (as present in input file)
INTEGER,DIMENSION(MAXRAW) :: src ! List of variables used to compute the variable (needed only if calc=.true.)
INTEGER :: tgt ! Target: id of the variable that use it (calc variable)
TYPE(TFIELDDATA) :: TFIELD ! Metadata about the field
TYPE(DIMCDF),DIMENSION(:),ALLOCATABLE :: TDIMS ! Dimensions of the field
TYPE(TFIELDMETADATA) :: TFIELD ! Metadata about the field
TYPE(tdimnc),DIMENSION(:),ALLOCATABLE :: TDIMS ! Dimensions of the field
END TYPE workfield
LOGICAL(KIND=LFIINT), PARAMETER :: ltrue = .TRUE.
......@@ -268,7 +271,7 @@ CONTAINS
maxvar = nbvar_tbr+nbvar_calc
DO ji=1,nbvar_tbr+nbvar_calc
print *,ji,'name=',trim(tpreclist(ji)%name),' calc=',tpreclist(ji)%calc,' tbw=',tpreclist(ji)%tbw,&
print *,ji,'name=',tpreclist(ji)%name,' calc=',tpreclist(ji)%calc,' tbw=',tpreclist(ji)%tbw,&
' tbr=',tpreclist(ji)%tbr,' found=',tpreclist(ji)%found
END DO
......@@ -385,7 +388,7 @@ END DO
ELSE
CALL FIND_FIELD_ID_FROM_MNHNAME(tpreclist(ji)%name,IID,IRESP,ONOWARNING=.TRUE.)
IF (IRESP==0) THEN
tpreclist(ji)%TFIELD = TFIELDLIST(IID)
tpreclist(ji)%TFIELD = TFIELDMETADATA( TFIELDLIST(IID) )
! Determine TDIMS
IF (runmode==MODELFI2CDF) THEN
ALLOCATE(tpreclist(ji)%TDIMS(tpreclist(ji)%TFIELD%NDIMS))
......@@ -408,11 +411,11 @@ END DO
ELSE !Field not found in list, try to determine characteristics
tpreclist(ji)%TFIELD%CMNHNAME = TRIM(tpreclist(ji)%name)
tpreclist(ji)%TFIELD%CSTDNAME = ''
tpreclist(ji)%TFIELD%CLONGNAME = TRIM(tpreclist(ji)%name)
tpreclist(ji)%TFIELD%CUNITS = ''
!Set in IO_Metadata_get_nc4 (and not used for LFI) tpreclist(ji)%TFIELD%CLONGNAME = TRIM(tpreclist(ji)%name)
!Set in IO_Metadata_get_nc4 (and not used for LFI) tpreclist(ji)%TFIELD%CUNITS = ''
tpreclist(ji)%TFIELD%CDIR = 'XY' !Assumption...
tpreclist(ji)%TFIELD%CLBTYPE = 'NONE'
tpreclist(ji)%TFIELD%CCOMMENT = ''
!Set in IO_Metadata_get_nc4 (and not used for LFI) tpreclist(ji)%TFIELD%CCOMMENT = ''
!
IF (runmode==MODELFI2CDF) THEN
tpreclist(ji)%TFIELD%NGRID = 1 !Assumption
......@@ -426,7 +429,7 @@ END DO
CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,&
tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP)
!
IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(3)%LEN==1) THEN
IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(3)%nlen==1) THEN
CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 2D')
!Try again with 2D
tpreclist(ji)%TFIELD%NDIMS = 2
......@@ -434,7 +437,7 @@ END DO
tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP)
END IF
!
IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(2)%LEN==1) THEN
IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(2)%nlen==1) THEN
CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 1D')
!Try again with 1D
tpreclist(ji)%TFIELD%NDIMS = 1
......@@ -567,7 +570,6 @@ END DO
tpreclist(ji)%TFIELD%NTYPE = tpreclist(idx_var)%TFIELD%NTYPE
tpreclist(ji)%TFIELD%NDIMS = tpreclist(idx_var)%TFIELD%NDIMS
#if 0
!PW: TODO?
tpreclist(ji)%TFIELD%NFILLVALUE
tpreclist(ji)%TFIELD%XFILLVALUE
tpreclist(ji)%TFIELD%NVALIDMIN
......@@ -730,7 +732,7 @@ END DO
SELECT CASE(tpreclist(ji)%TFIELD%NTYPE)
CASE (TYPEINT)
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%LEN
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%nlen
IF (.NOT.tpreclist(ji)%calc) THEN
INSRC = 1
......@@ -806,7 +808,7 @@ END DO
CASE (TYPELOG)
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%LEN
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%nlen
tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_in(ji)
SELECT CASE(IDIMS)
......@@ -830,7 +832,7 @@ END DO
CASE (TYPEREAL)
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%LEN
IDIMLEN(1:IDIMS) = tpreclist(ji)%TDIMS(1:IDIMS)%nlen
IF (.NOT.tpreclist(ji)%calc) THEN
INSRC = 1
......@@ -1023,7 +1025,7 @@ END DO
if ( options( OPTFALLBACK )%set ) then
inb_procio_r_save = NB_PROCIO_R
NB_PROCIO_R = 1
CALL IO_FILE_ADD2LIST(INFILES(2)%TFILE,options( OPTFALLBACK )%cvalue,'UNKNOWN','READ',HFORMAT='NETCDF4')
CALL IO_FILE_ADD2LIST(INFILES(2)%TFILE,options( OPTFALLBACK )%cvalue,'MNH','READ',HFORMAT='NETCDF4')
CALL IO_FILE_OPEN(INFILES(2)%TFILE)
NB_PROCIO_R = inb_procio_r_save
end if
......@@ -1171,7 +1173,7 @@ END DO
istatus = NF90_INQ_VARID( infiles(1)%tfile%nncid, 'time', ivar_id )
if ( istatus == NF90_NOERR ) then
allocate( tdtcur )
istatus = NF90_GET_VAR( infiles(1)%tfile%nncid, ivar_id, tdtcur%time )
istatus = NF90_GET_VAR( infiles(1)%tfile%nncid, ivar_id, tdtcur%xtime )
if ( istatus == NF90_NOERR ) then
istatus = NF90_INQUIRE_ATTRIBUTE( infiles(1)%tfile%nncid, ivar_id, 'units', len = ilen )
if ( istatus == NF90_NOERR ) then
......@@ -1179,14 +1181,14 @@ END DO
istatus = NF90_GET_ATT( infiles(1)%tfile%nncid, ivar_id, 'units', yunits )
! Extract date from yunits
idx = INDEX( yunits, 'since ' )
Read( yunits(idx+6 :idx+9 ) , '( I4.4 )' ) tdtcur%tdate%year
Read( yunits(idx+11:idx+12 ), '( I2.2 )' ) tdtcur%tdate%month
Read( yunits(idx+14:idx+15 ), '( I2.2 )' ) tdtcur%tdate%day
Read( yunits(idx+6 :idx+9 ) , '( I4.4 )' ) tdtcur%nyear
Read( yunits(idx+11:idx+12 ), '( I2.2 )' ) tdtcur%nmonth
Read( yunits(idx+14:idx+15 ), '( I2.2 )' ) tdtcur%nday
if ( .not. associated( tdtmod ) ) then
allocate( tdtmod )
tdtmod = tdtcur
tdtmod%time = 0.
tdtmod%xtime = 0.
end if
gok = .true.
......@@ -1372,6 +1374,7 @@ END DO
INTEGER(KIND=CDFINT) :: IVAR_ID
INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID
LOGICAL :: GSPLIT_AT_ENTRY
LOGICAL :: GSPLIT_INFO_AVAILABLE
CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Metadata_get_nc4','called')
......@@ -1387,9 +1390,12 @@ END DO
if ( istatus /= NF90_NOERR ) call IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQUIRE_VARIABLE', '' )
!split_variable and other attributes were added in MesoNH > 5.4.2
GSPLIT_INFO_AVAILABLE = .FALSE.
ISTATUS = NF90_INQUIRE_ATTRIBUTE(IFILE_ID, KVAR_ID, 'split_variable', LEN=ILENG)
IF (ISTATUS == NF90_NOERR) THEN
IF (GSPLIT_AT_ENTRY) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Metadata_get_nc4','split variable delcaration inside a split file')
GSPLIT_INFO_AVAILABLE = .TRUE.
IF (GSPLIT_AT_ENTRY) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Metadata_get_nc4','split variable declaration inside a split file')
ALLOCATE(CHARACTER(LEN=ILENG) :: YSPLIT)
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'split_variable', YSPLIT)
......@@ -1420,7 +1426,6 @@ END DO
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'split_nblocks', iblocks)
IF (istatus /= NF90_NOERR) CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_GET_ATT', 'split_nblocks' )
!PW: todo:check tfiles_ioz exist
IFILE_ID = TPFILE%TFILES_IOZ(1)%TFILE%NNCID
istatus = NF90_INQ_VARID(IFILE_ID,trim(TPREC%NAME)//'0001',ivar_id)
......@@ -1438,65 +1443,14 @@ END DO
DEALLOCATE(YSPLIT)
END IF
ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'grid',TPREC%NGRID_FILE)
!On MesoNH versions < 5.4.0, the grid number was stored in 'GRID' instead of 'grid'
IF (ISTATUS /= NF90_NOERR) ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'GRID',TPREC%NGRID_FILE)
IF (ISTATUS /= NF90_NOERR) TPREC%NGRID_FILE = 0
ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'units',TPREC%CUNITS_FILE)
IF (ISTATUS /= NF90_NOERR) TPREC%CUNITS_FILE = ''
!split_variable and other attributes were added in MesoNH > 5.4.2
ISTATUS = NF90_INQUIRE_ATTRIBUTE(IFILE_ID, KVAR_ID, 'split_variable', LEN=ILENG)
IF (ISTATUS == NF90_NOERR) THEN
IF (GSPLIT_AT_ENTRY) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Metadata_get_nc4','split variable declaration inside a split file')
ALLOCATE(CHARACTER(LEN=ILENG) :: YSPLIT)
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'split_variable', YSPLIT)
IF (istatus /= NF90_NOERR) call IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_GET_ATT', 'split_variable' )
IF ( YSPLIT == 'yes' ) then
TPREC%LSPLIT = .true.
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'ndims', TPREC%NDIMS_FILE)
IF (istatus /= NF90_NOERR) CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_GET_ATT', 'ndims' )
IF ( TPREC%NDIMS_FILE/=3 ) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Metadata_get_nc4', &
'split variable with ndims/=3 not supported')
ISTATUS = NF90_INQUIRE_ATTRIBUTE(IFILE_ID, KVAR_ID, 'time_dependent', LEN=ILENG)
IF (istatus /= NF90_NOERR) &
CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQUIRE_ATTRIBUTE', 'time_dependent' )
ALLOCATE(CHARACTER(LEN=ILENG) :: YTIMEDEP)
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'time_dependent', YTIMEDEP)
IF (istatus /= NF90_NOERR) CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_GET_ATT', 'time_dependent' )
IF ( YTIMEDEP == 'yes' ) then
TPREC%TFIELD%LTIMEDEP = .TRUE.
ELSE IF ( YTIMEDEP == 'no' ) THEN
TPREC%TFIELD%LTIMEDEP = .FALSE.
ELSE
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Metadata_get_nc4','unknown value '//trim(YTIMEDEP)// &
' for time_dependent attribute' )
END IF
ISTATUS = NF90_GET_ATT(IFILE_ID, KVAR_ID, 'split_nblocks', iblocks)
IF (istatus /= NF90_NOERR) CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_GET_ATT', 'split_nblocks' )
!PW: todo:check tfiles_ioz exist
IFILE_ID = TPFILE%TFILES_IOZ(1)%TFILE%NNCID
istatus = NF90_INQ_VARID(IFILE_ID,trim(TPREC%NAME)//'0001',ivar_id)
IF (ISTATUS /= NF90_NOERR) &
CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQ_VARID', trim(TPREC%NAME)//'0001' )
ISTATUS = NF90_INQUIRE_VARIABLE(IFILE_ID, IVAR_ID, DIMIDS = IDIMS_ID)
IF (ISTATUS /= NF90_NOERR) &
CALL IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQUIRE_VARIABLE', trim(TPREC%NAME)//'0001' )
!Reset IFILE_ID to master file (if split files)
IFILE_ID = TPFILE%NNCID
DEALLOCATE(YTIMEDEP)
ELSE IF ( YSPLIT /= 'no' ) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Metadata_get_nc4','unknown value '//trim(YSPLIT)//' for split_variable attribute' )
END IF
ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'long_name',TPREC%TFIELD%CLONGNAME)
IF (ISTATUS /= NF90_NOERR) TPREC%TFIELD%CLONGNAME = TRIM( TPREC%TFIELD%CMNHNAME )
DEALLOCATE(YSPLIT)
END IF
ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'comment',TPREC%TFIELD%CCOMMENT)
IF (ISTATUS /= NF90_NOERR) TPREC%TFIELD%CCOMMENT = ''
ISTATUS = NF90_GET_ATT(IFILE_ID,KVAR_ID,'grid',TPREC%NGRID_FILE)
!On MesoNH versions < 5.4.0, the grid number was stored in 'GRID' instead of 'grid'
......@@ -1549,8 +1503,15 @@ END DO
END IF
IF (TPREC%LSPLIT) THEN
#if 0
IF( (.NOT.TPREC%TFIELD%LTIMEDEP .AND. TPREC%NDIMS_FILE/=2) &
.OR. ( TPREC%TFIELD%LTIMEDEP .AND. TPREC%NDIMS_FILE/=3) ) &
#else
IF( ( GSPLIT_INFO_AVAILABLE .AND. TPREC%NDIMS_FILE/=3 ) &
.OR. ( .NOT.GSPLIT_INFO_AVAILABLE .AND. &
( (.NOT.TPREC%TFIELD%LTIMEDEP .AND. TPREC%NDIMS_FILE/=2) &
.OR. ( TPREC%TFIELD%LTIMEDEP .AND. TPREC%NDIMS_FILE/=3) ) ) ) &
#endif
CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Metadata_get_nc4',trim(TPREC%NAME)//': split variables can only be 3D')
!Split variables are Z-split
!Move time dimension to last (4th) position
......@@ -1591,14 +1552,14 @@ END DO
SUBROUTINE IO_Dims_fill_nc4(TPFILE,TPREC,KRESP)
USE MODD_IO, ONLY: TFILEDATA
use mode_io_tools_nc4, only: IO_Dimcdf_get_nc4, IO_Dim_find_byname_nc4
use mode_io_tools_nc4, only: IO_Dim_find_create_nc4, IO_Dim_find_byname_nc4
TYPE(TFILEDATA),INTENT(IN) :: TPFILE
TYPE(workfield),INTENT(INOUT) :: TPREC
INTEGER, INTENT(OUT) :: KRESP
integer :: iidx
INTEGER :: JJ
TYPE(DIMCDF),POINTER :: TZDIMPTR
CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dims_fill_nc4','called')
......@@ -1620,13 +1581,13 @@ END DO
CALL IO_Dim_find_byname_nc4(TPFILE,TPREC%CDIMNAMES_FILE(JJ),TPREC%TDIMS(JJ),KRESP)
!If dimension not found => create it
IF (KRESP/=0) THEN
TZDIMPTR => IO_Dimcdf_get_nc4(TPFILE,TPREC%NDIMSIZES_FILE(JJ))
TPREC%TDIMS(JJ) = TZDIMPTR
call IO_Dim_find_create_nc4( tpfile, tprec%ndimsizes_file(jj), iidx )
tprec%tdims(jj) = tpfile%tncdims%tdims(iidx)
KRESP = 0
END IF
IF (TRIM(TPREC%TDIMS(JJ)%name)/='time' .AND. &
TPREC%TDIMS(JJ)%len /= TPREC%NDIMSIZES_FILE(JJ)) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILL_DIMS_NC4','problem with dimensions for '//TPREC%TFIELD%CMNHNAME)
IF (TRIM(TPREC%TDIMS(JJ)%cname)/='time' .AND. &
TPREC%TDIMS(JJ)%nlen /= TPREC%NDIMSIZES_FILE(JJ)) THEN
CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dims_fill_nc4','problem with dimensions for '//TPREC%TFIELD%CMNHNAME)
KRESP = -3
EXIT
END IF
......
#!/usr/bin/env python3
"""
@author: Quentin Rodier
Creation : 07/01/2021
Last modifications
"""
import matplotlib as mpl
mpl.use('Agg')
import cartopy.crs as ccrs
from read_MNHfile import read_netcdf
from Panel_Plot import PanelPlot
import os
os.system('rm -f tempgraph*')
#
# User's parameter / Namelist
#
#
path="../RUN/"
LnameFiles = ['16JA1.1.WENO5.004dg.nc', '16JA2.2.WENO5.002dg.nc']
Dvar_input = {
'f1':['MRV700HPA','THT850HPA','UT850HPA','VT850HPA','UT700HPA','VT700HPA', 'ALT_PRESSURE','ALT_U','ALT_V', 'ZS', 'latitude', 'longitude'],
'f2':['MRV700HPA','THT850HPA','UT850HPA','VT850HPA','UT700HPA','VT700HPA', 'ALT_PRESSURE', 'ZS', 'ALT_U','ALT_V','latitude', 'longitude']
}
# Read the variables in the files
Dvar = {}
Dvar = read_netcdf(LnameFiles, Dvar_input, path=path, removeHALO=True)
################################################################
######### PANEL 1
###############################################################
Panel1 = PanelPlot(2,2, [15,10],'16 JAN domaine 1 ', minmaxpad=1.05, minmaxTextSize=7.7, colorbaraspect=14)
Lplot = [ Dvar['f1']['ZS'],Dvar['f1']['THT850HPA'], Dvar['f1']['MRV700HPA'],Dvar['f1']['ALT_PRESSURE']]
lon = [Dvar['f1']['longitude']]*len(Lplot)
lat = [Dvar['f1']['latitude']]*len(Lplot)
Ltitle = ['Orography', 'Potential Temperature at 850hPa', 'Water vapor mixing at 700hPa','Pressure at z = 9000m']
Lcbarlabel = ['m','K', 'g/kg', 'hPa']
Lxlab = ['longitude']*len(Lplot)
Lylab = ['latitude']*len(Lplot)
Lminval = [0, 280, 0.5, 270]
Lmaxval = [1500, 293, 4.2, 303]
Lstep = [10, 0.25, 0.1, 1]
Lstepticks = [500, 2, 0.5, 5]
Lfacconv = [1.0, 1.0, 1.0, 1./100.0]
Lcolormap = ['terrain', 'gist_rainbow_r', 'gist_rainbow_r', 'gist_rainbow_r']
Lprojection = [ccrs.PlateCarree()]*len(Lplot)
Llvl = [0, 0, 0, 0]
fig1 = Panel1.psectionH(lon=lon, lat=lat, Lvar=Lplot, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval,
Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lproj=Lprojection, Lfacconv=Lfacconv)
Lplot1 = [ Dvar['f1']['UT850HPA'], Dvar['f1']['UT700HPA'], Dvar['f1']['ALT_U']]
Lplot2 = [ Dvar['f1']['VT850HPA'], Dvar['f1']['VT700HPA'], Dvar['f1']['ALT_V']]
Ltitle = ['Wind at 850hPa', 'Wind at 700hPa', 'Wind at 9000m']
Lxlab = ['longitude']*len(Lplot1)
Lylab = ['latitude']*len(Lplot1)
Llegendval = [20,20,40]
Llegendlabel = ['(m/s)']*len(Lplot1)
Larrowstep = [2]*len(Lplot1)
Lwidth = [0.002]*len(Lplot1)
Lcolor = ['black']*len(Lplot1)
Lprojection = [ccrs.PlateCarree()]*len(Lplot1)
Llvl = [0]*len(Lplot1)
fig2 = Panel1.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab,
Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, Lproj=Lprojection,
Lcolor=Lcolor, Llegendval=Llegendval, Llegendlabel=Llegendlabel, Lid_overlap=[2,4,6], ax=fig1.axes)
Panel1.save_graph(1,fig2)
################################################################
######### PANEL 2
###############################################################
Panel2 = PanelPlot(2,2, [15,10],'16 JAN domaine 2 ', minmaxpad=1.05, minmaxTextSize=8, colorbaraspect=14)
Lplot = [ Dvar['f2']['ZS'],Dvar['f2']['THT850HPA'], Dvar['f2']['MRV700HPA'],Dvar['f2']['ALT_PRESSURE']]
lon = [Dvar['f2']['longitude']]*len(Lplot)
lat = [Dvar['f2']['latitude']]*len(Lplot)
Ltitle = ['Orography', 'Potential Temperature at 850hPa', 'Water vapor mixing at 700hPa','Pressure at z = 9000m']
Lcbarlabel = ['m','K', 'g/kg', 'hPa']
Lxlab = ['longitude']*len(Lplot)
Lylab = ['latitude']*len(Lplot)
Lminval = [0, 285, 0.9, 280]
Lmaxval = [2600, 293, 4, 294]
Lstep = [10, 0.5, 0.1, 0.5]
Lstepticks = [500, 1, 0.2, 5]
Lfacconv = [1.0, 1.0, 1.0, 1./100.0]
Lcolormap = ['terrain', 'gist_rainbow_r', 'gist_rainbow_r', 'gist_rainbow_r']
Lprojection = [ccrs.PlateCarree()]*len(Lplot)
Llvl = [0]*len(Lplot)
fig1 = Panel2.psectionH(lon=lon, lat=lat, Lvar=Lplot, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab, Ltitle=Ltitle, Lminval=Lminval, Lmaxval=Lmaxval,
Lstep=Lstep, Lstepticks=Lstepticks, Lcolormap=Lcolormap, Lcbarlabel=Lcbarlabel, Lproj=Lprojection, Lfacconv=Lfacconv)
Lplot1 = [ Dvar['f2']['UT850HPA'], Dvar['f2']['UT700HPA'], Dvar['f2']['ALT_U']]
Lplot2 = [ Dvar['f2']['VT850HPA'], Dvar['f2']['VT700HPA'], Dvar['f2']['ALT_V']]
Ltitle = ['Wind at 850hPa', 'Wind at 700hPa', 'Wind at 9000m']
Llegendval = [20,20,40]
Lxlab = ['longitude']*len(Lplot1)
Lylab = ['latitude']*len(Lplot1)
Llegendlabel = ['(m/s)']*len(Lplot1)
Larrowstep = [2]*len(Lplot1)
Lwidth = [0.002]*len(Lplot1)
Lcolor = ['black']*len(Lplot1)
Lprojection = [ccrs.PlateCarree()]*len(Lplot1)
Llvl = [0]*len(Lplot1)
fig2 = Panel2.pvector(Lxx=lon, Lyy=lat, Lvar1=Lplot1, Lvar2=Lplot2, Lcarte=[], Llevel=Llvl, Lxlab=Lxlab, Lylab=Lylab,
Ltitle=Ltitle, Lwidth=Lwidth, Larrowstep=Larrowstep, Lproj=Lprojection,
Lcolor=Lcolor, Llegendval=Llegendval, Llegendlabel=Llegendlabel, Lid_overlap=[2,4,6], ax=fig1.axes)
Panel2.save_graph(2,fig2)
#!/bin/sh
#SBATCH -J tools
#SBATCH -N 1 # nodes number
#SBATCH -n 1 # CPUs number (on all nodes)
#SBATCH -o tools.eo%j #
#SBATCH -e tools.eo%j #
#SBATCH -t 01:00:00 # time limit
# Echo des commandes
ulimit -c 0
ulimit -s unlimited
# Arrete du job des la premiere erreur
set -e
. ~rodierq/DEV_57/MNH-PHYEX070-b95d84d7/conf/profile_mesonh-LXifort-R8I4-MNH-V5-6-2-ECRAD140-MPIAUTO-O2
ln -sf ${SRC_MESONH}/src/LIB/Python/* .
module purge
module load python/3.7.6
python3 plot_16JAN.py
convert *.png 16JAN.pdf
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_DIAG
CISO='TKPREV',
LVAR_RS=T,
LVAR_TURB=F,
NCONV_KF=1,
LVAR_MRW=T,
LVAR_MRSV=F,
LTRAJ=F,
LTPZH=T,
CBLTOP="RICHA",
LMSLP=T,
LAGEO=T,
LTHW=T,
LCLD_COV=T,
NCAPE=1,
LRADAR=T,
LDIAG(:)=.FALSE.,
LISOAL=T, XISOAL(1)=9000,
LISOPR=T, XISOPR(1)=850, XISOPR(2)=700 /
&NAM_DIAG_FILE YINIFILE(1) = "16JA1.1.WENO5.004" ,
YINIFILEPGD(1) = "16JAN98_36km.neste1",
YSUFFIX='dg' /
&NAM_DIAG_SURFn N2M=2 LSURF_BUDGET=T /
&NAM_DIAG_ISBAn LPGD=F LSURF_EVAP_BUDGET=T /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_DIAG CISO='', LVAR_RS=F, LVAR_LS=F, LVAR_PR=T, LTOTAL_PR=T,
LISOAL=T, XISOAL(1)=9000,
LISOPR=T, XISOPR(1)=850, XISOPR(2)=700 /
&NAM_BLANK /
&NAM_DIAG_FILE YINIFILE(1) = "16JA2.2.WENO5.002",
YINIFILEPGD(1) = "16JAN98_9km.neste1",
YSUFFIX = "dg" /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_LUNITn CINIFILE = "15JAN_12_MNH" ,
CINIFILEPGD = "16JAN98_36km.neste1",
CCPLFILE(1) = "15JAN_18_MNH",
CCPLFILE(2) = "16JAN_00_MNH" /
&NAM_CONFZ
NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=1
/
&NAM_DYNn XTSTEP = 120., CPRESOPT = "ZRESI", NITR = 8,
LHORELAX_UVWTH = T, LHORELAX_RV = T, LVE_RELAX = T,
NRIMX = 5, NRIMY = 5, XRIMKMAX = 0.0083, XT4DIFU = 5000.,XT4DIFTH = 5000. /
&NAM_ADVn CUVW_ADV_SCHEME = "WENO_K" ,CMET_ADV_SCHEME = "PPM_01",NWENO_ORDER=5,CTEMP_SCHEME='RK53' /
&NAM_PARAMn CTURB = "TKEL", CRAD = "ECMW",
CDCONV = "KAFR", CCLOUD= "KESS",CSCONV="KAFR" /
&NAM_PARAM_RADn XDTRAD = 3600., XDTRAD_CLONLY = 3600., NRAD_COLNBR= 400 /
&NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T, LDOWN = T /
&NAM_LBCn CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
&NAM_TURBn CTURBLEN = "BL89", CTURBDIM = "1DIM",
LTURB_DIAG = F, LTURB_FLX = F /
&NAM_CONF CCONF = "START", NMODEL = 1, NVERB = 5,
CEXP = "16JA1 ", CSEG = "WENO5",NHALO=3 /
&NAM_DYN XSEGLEN = 43200., LCORIO = T, LNUMDIFU = F,LNUMDIFTH = F,
XALKTOP = 0.001, XALZBOT = 15000. /
&NAM_BACKUP XBAK_TIME(1,1)=10800., XBAK_TIME(1,2)=21600.,XBAK_TIME(1,3)=32400.,XBAK_TIME(1,4)=43200./
&NAM_DIAG_SURFn /
&NAM_ISBA CALBEDO = "DRY" /
&NAM_ISBAn CSCOND = "NP89",
CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
&NAM_SSOn CROUGH="Z01D"/
&NAM_DIAG_ISBAn /
&NAM_SEAFLUXn CSEA_ALB="UNIF" /
&NAM_BLANK /
&NAM_SGH_ISBAn CRUNOFF = "WSAT"/
&NAM_NEBn LSUBG_COND= F /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_LUNITn CINIFILE = "16JA1.1.WENO5.004",
CINIFILEPGD = "16JAN98_36km.neste1",
CCPLFILE(1) = "16JAN_06_MNH" /
&NAM_DYNn XTSTEP = 120., CPRESOPT = "ZRESI", NITR = 8,
LHORELAX_UVWTH = T, LHORELAX_RV = T, LVE_RELAX = T,
NRIMX = 5, NRIMY = 5, XRIMKMAX = 0.0083, XT4DIFU = 5000. /
&NAM_ADVn CUVW_ADV_SCHEME = "WENO_K", CMET_ADV_SCHEME = "PPM_01",NWENO_ORDER=5,CTEMP_SCHEME='RK53' /
&NAM_PARAMn CTURB = "TKEL", CRAD = "ECMW",
CDCONV = "KAFR", CSCONV="KAFR",CCLOUD= "KESS" /
&NAM_PARAM_RADn XDTRAD = 3600., XDTRAD_CLONLY = 3600., NRAD_COLNBR = 400 /
&NAM_LBCn CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
&NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T,
LDOWN = T /
&NAM_TURBn CTURBLEN = "BL89", CTURBDIM = "1DIM" /
&NAM_CH_MNHCn LUSECHEM = F /
&NAM_CONF CCONF = "START", NVERB=5, NMODEL = 2,
CEXP = "16JA2", CSEG = "WENO5",NHALO=3 /
&NAM_DYN XSEGLEN = 21600., LCORIO = T, LNUMDIFU = F,
XALKTOP = 0.001, XALZBOT = 14500. /
&NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 2, XWAY(2) = 2. /
&NAM_BACKUP XBAK_TIME(1,1) = 10800., XBAK_TIME(1,2) = 21600. ,
XBAK_TIME(2,1) = 10800., XBAK_TIME(2,2) = 21600. /
&NAM_DIAG_SURFn /
&NAM_ISBA CALBEDO = "DRY" /
&NAM_ISBAn CSCOND = "NP89",
CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
&NAM_SSOn CROUGH="Z01D"/
&NAM_DIAG_ISBAn /
&NAM_SGH_ISBAn
CRUNOFF = "WSAT" /
&NAM_SEAFLUXn CSEA_ALB="UNIF" /
&NAM_BLANK /
&NAM_NEBn LSUBG_COND = F /
&NAM_LUNITn CINIFILE = "16JAN_00_MNH2",
CINIFILEPGD = "16JAN98_9km.neste1" /
&NAM_DYNn CPRESOPT = "ZRESI", NITR = 8, XRELAX = 1.,
LHORELAX_UVWTH = F, LHORELAX_RV = F, LHORELAX_RC= F, LHORELAX_RR= F,
LHORELAX_RS= F, LHORELAX_RI= F, LHORELAX_RG= F, LHORELAX_TKE= F,
NRIMX = 0, NRIMY = 0, LVE_RELAX = T, XT4DIFU = 1500. /
&NAM_ADVn CUVW_ADV_SCHEME = "WENO_K", CMET_ADV_SCHEME = "PPM_01",NWENO_ORDER=5,CTEMP_SCHEME='RK53' /
&NAM_PARAMn CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW", CDCONV = "KAFR" ,
CSCONV="KAFR" /
&NAM_PARAM_RADn XDTRAD = 1800., XDTRAD_CLONLY = 1800., LCLEAR_SKY = F,
NRAD_COLNBR = 400 /
&NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T,
LDOWN = T /
&NAM_LBCn CLBCX = 2*"OPEN", CLBCY = 2*"OPEN", XCPHASE = 20. /
&NAM_TURBn XIMPL = 1., CTURBLEN = "BL89", CTURBDIM = "1DIM" ,
LTURB_FLX = F, LTURB_DIAG = F /
&NAM_CH_MNHCn LUSECHEM = F /
&NAM_DIAG_SURFn /
&NAM_ISBA CALBEDO = "DRY" /
&NAM_ISBAn CSCOND = "NP89",
CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' /
&NAM_SSOn CROUGH="Z01D"/
&NAM_DIAG_ISBAn /
&NAM_SGH_ISBAn
CRUNOFF = "WSAT" /
&NAM_SEAFLUXn CSEA_ALB="UNIF" /
&NAM_BLANK /
&NAM_NEBn LSUBG_COND = F /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_PGD1 YPGD1 = '16JAN98_36km' /
&NAM_PGD2 YPGD2 = '16JAN98_9km', IDAD = 1 /
&NAM_NEST_PGD YNEST = 'e1' /
"
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_PGDFILE CPGDFILE='16JAN98_36km' /
&NAM_CONF_PROJ XLAT0=50., XLON0=-2.8, XRPK=0.58, XBETA=0. /
&NAM_CONF_PROJ_GRID XLATCEN=48., XLONCEN=-1.,
NIMAX=80, NJMAX=60, XDX=36000., XDY=36000. /
&NAM_COVER YCOVER='ECOCLIMAP_v2.0', YCOVERFILETYPE='DIRECT' /
&NAM_ZS YZS='gtopo30', YZSFILETYPE='DIRECT' /
&NAM_ISBA YCLAY='CLAY_HWSD_MOY', YCLAYFILETYPE='DIRECT' ,
YSAND='SAND_HWSD_MOY', YSANDFILETYPE='DIRECT' /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_PGDFILE CPGDFILE='16JAN98_9km' ,NHALO=20/
&NAM_PGD_GRID YINIFILE='16JAN98_36km' YINIFILETYPE='MESONH' /
&NAM_INIFILE_CONF_PROJ IXOR=40, IYOR=16, IXSIZE=18, IYSIZE=15, IDXRATIO=4, IDYRATIO=4 /
&NAM_COVER YCOVER='ECOCLIMAP_v2.0', YCOVERFILETYPE='DIRECT' /
&NAM_ZS YZS='gtopo30', YZSFILETYPE='DIRECT' /
&NAM_ISBA YCLAY='CLAY_HWSD_MOY', YCLAYFILETYPE='DIRECT' ,
YSAND='SAND_HWSD_MOY', YSANDFILETYPE='DIRECT' /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_FILE_NAMES HATMFILE ='ecmwf.EI.19980115.12' , HATMFILETYPE='GRIBEX',
HPGDFILE ='16JAN98_36km.neste1' , CINIFILE='15JAN_12_MNH' /
&NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
ZDZGRD=60., ZDZTOP=700.,
ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_FILE_NAMES HATMFILE ='ecmwf.EI.19980115.18' , HATMFILETYPE='GRIBEX',
HPGDFILE ='16JAN98_36km.neste1' , CINIFILE='15JAN_18_MNH' /
&NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
ZDZGRD=60., ZDZTOP=700.,
ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_FILE_NAMES HATMFILE ='ecmwf.EI.19980116.00' , HATMFILETYPE='GRIBEX',
HPGDFILE ='16JAN98_36km.neste1' , CINIFILE='16JAN_00_MNH' /
&NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
ZDZGRD=60., ZDZTOP=700.,
ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /
&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F /
&NAM_FILE_NAMES HATMFILE ='ecmwf.EI.19980116.06' , HATMFILETYPE='GRIBEX',
HPGDFILE ='16JAN98_36km.neste1' , CINIFILE='16JAN_06_MNH' /
&NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
ZDZGRD=60., ZDZTOP=700.,
ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /
&NAM_CONFIO LCDF4=F LLFIOUT=F LLFIREAD=F /
&NAM_FILE_NAMES HATMFILE ='16JA1.1.WENO5.004.spa04' , HATMFILETYPE='MESONH',
HPGDFILE ='16JAN98_9km.neste1' , CINIFILE='16JAN_00_MNH2' /
&NAM_REAL_CONF NVERB=10 /
&NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
ZDZGRD=60., ZDZTOP=700.,
ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /