diff --git a/src/LIB/SURCOUCHE/src/modd_field.f90 b/src/LIB/SURCOUCHE/src/modd_field.f90 index b81b59f1f0354c2041f9908b0d3c7fb7230e0f3d..cf3e014068caca76b99fbcba63b96680894a39d6 100644 --- a/src/LIB/SURCOUCHE/src/modd_field.f90 +++ b/src/LIB/SURCOUCHE/src/modd_field.f90 @@ -12,6 +12,7 @@ ! P. Wautelet 27/01/2020: create the tfield_metadata_base abstract datatype ! P. Wautelet 14/09/2020: add ndimlist field to tfield_metadata_base ! P. Wautelet 10/11/2020: new data structures for netCDF dimensions +! P. Wautelet 08/10/2021: add 2 new dimensions: LW_bands (NMNHDIM_NLWB) and SW_bands (NMNHDIM_NSWB) !----------------------------------------------------------------- module modd_field @@ -42,49 +43,52 @@ integer, parameter :: NMNHDIM_TIME = 9 integer, parameter :: NMNHDIM_ONE = 10 -integer, parameter :: NMNHDIM_LASTDIM_NODIACHRO = 10 ! Index of the last defined dimension for non-diachronic files +integer, parameter :: NMNHDIM_NSWB = 11 +integer, parameter :: NMNHDIM_NLWB = 12 -integer, parameter :: NMNHDIM_COMPLEX = 11 +integer, parameter :: NMNHDIM_LASTDIM_NODIACHRO = 12 ! Index of the last defined dimension for non-diachronic files -integer, parameter :: NMNHDIM_BUDGET_CART_NI = 12 -integer, parameter :: NMNHDIM_BUDGET_CART_NJ = 13 -integer, parameter :: NMNHDIM_BUDGET_CART_NI_U = 14 -integer, parameter :: NMNHDIM_BUDGET_CART_NJ_U = 15 -integer, parameter :: NMNHDIM_BUDGET_CART_NI_V = 16 -integer, parameter :: NMNHDIM_BUDGET_CART_NJ_V = 17 -integer, parameter :: NMNHDIM_BUDGET_CART_LEVEL = 18 -integer, parameter :: NMNHDIM_BUDGET_CART_LEVEL_W = 19 +integer, parameter :: NMNHDIM_COMPLEX = 13 -integer, parameter :: NMNHDIM_BUDGET_MASK_LEVEL = 20 -integer, parameter :: NMNHDIM_BUDGET_MASK_LEVEL_W = 21 -integer, parameter :: NMNHDIM_BUDGET_MASK_NBUMASK = 22 +integer, parameter :: NMNHDIM_BUDGET_CART_NI = 14 +integer, parameter :: NMNHDIM_BUDGET_CART_NJ = 15 +integer, parameter :: NMNHDIM_BUDGET_CART_NI_U = 16 +integer, parameter :: NMNHDIM_BUDGET_CART_NJ_U = 17 +integer, parameter :: NMNHDIM_BUDGET_CART_NI_V = 18 +integer, parameter :: NMNHDIM_BUDGET_CART_NJ_V = 19 +integer, parameter :: NMNHDIM_BUDGET_CART_LEVEL = 20 +integer, parameter :: NMNHDIM_BUDGET_CART_LEVEL_W = 21 -integer, parameter :: NMNHDIM_BUDGET_TIME = 23 +integer, parameter :: NMNHDIM_BUDGET_MASK_LEVEL = 22 +integer, parameter :: NMNHDIM_BUDGET_MASK_LEVEL_W = 23 +integer, parameter :: NMNHDIM_BUDGET_MASK_NBUMASK = 24 -integer, parameter :: NMNHDIM_BUDGET_LES_TIME = 24 -integer, parameter :: NMNHDIM_BUDGET_LES_AVG_TIME = 25 -integer, parameter :: NMNHDIM_BUDGET_LES_LEVEL = 26 -integer, parameter :: NMNHDIM_BUDGET_LES_SV = 27 -integer, parameter :: NMNHDIM_BUDGET_LES_PDF = 28 +integer, parameter :: NMNHDIM_BUDGET_TIME = 25 + +integer, parameter :: NMNHDIM_BUDGET_LES_TIME = 26 +integer, parameter :: NMNHDIM_BUDGET_LES_AVG_TIME = 27 +integer, parameter :: NMNHDIM_BUDGET_LES_LEVEL = 28 +integer, parameter :: NMNHDIM_BUDGET_LES_SV = 29 +integer, parameter :: NMNHDIM_BUDGET_LES_PDF = 30 integer, parameter :: NMNHDIM_BUDGET_LES_MASK = 100 ! This is not a true dimension -integer, parameter :: NMNHDIM_SPECTRA_2PTS_NI = 29 -integer, parameter :: NMNHDIM_SPECTRA_2PTS_NJ = 30 -integer, parameter :: NMNHDIM_SPECTRA_SPEC_NI = 31 -integer, parameter :: NMNHDIM_SPECTRA_SPEC_NJ = 32 -integer, parameter :: NMNHDIM_SPECTRA_LEVEL = 33 +integer, parameter :: NMNHDIM_SPECTRA_2PTS_NI = 31 +integer, parameter :: NMNHDIM_SPECTRA_2PTS_NJ = 32 +integer, parameter :: NMNHDIM_SPECTRA_SPEC_NI = 33 +integer, parameter :: NMNHDIM_SPECTRA_SPEC_NJ = 34 +integer, parameter :: NMNHDIM_SPECTRA_LEVEL = 35 -integer, parameter :: NMNHDIM_SERIES_LEVEL = 34 -integer, parameter :: NMNHDIM_SERIES_LEVEL_W = 35 -integer, parameter :: NMNHDIM_SERIES_TIME = 36 ! Time dimension for time series +integer, parameter :: NMNHDIM_SERIES_LEVEL = 36 +integer, parameter :: NMNHDIM_SERIES_LEVEL_W = 37 +integer, parameter :: NMNHDIM_SERIES_TIME = 38 ! Time dimension for time series -integer, parameter :: NMNHDIM_FLYER_TIME = 37 ! Time dimension for aircraft/balloon (dimension local to each flyer) -integer, parameter :: NMNHDIM_PROFILER_TIME = 38 ! Time dimension for profilers -integer, parameter :: NMNHDIM_STATION_TIME = 39 ! Time dimension for stations +integer, parameter :: NMNHDIM_FLYER_TIME = 39 ! Time dimension for aircraft/balloon (dimension local to each flyer) +integer, parameter :: NMNHDIM_PROFILER_TIME = 40 ! Time dimension for profilers +integer, parameter :: NMNHDIM_STATION_TIME = 41 ! Time dimension for stations -integer, parameter :: NMNHDIM_PAIR = 40 ! For values coming by pair (ie boundaries) +integer, parameter :: NMNHDIM_PAIR = 42 ! For values coming by pair (ie boundaries) -integer, parameter :: NMNHDIM_LASTDIM_DIACHRO = 40 ! Index of the last defined dimension for diachronic files +integer, parameter :: NMNHDIM_LASTDIM_DIACHRO = 42 ! Index of the last defined dimension for diachronic files integer, parameter :: NMNHDIM_BUDGET_NGROUPS = 101 ! This is not a true dimension integer, parameter :: NMNHDIM_FLYER_PROC = 102 ! This is not a true dimension diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 index 477c389dbf6ffe6691029ff11a627e431b2e0a84..50412e8c08015401031defdfdbec37509180e520 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 @@ -19,6 +19,7 @@ ! P. Wautelet 18/03/2021: workaround for an intel compiler bug ! P. Wautelet 04/05/2021: improve IO_Vdims_fill_nc4 if l2d and lpack ! P. Wautelet 27/05/2021: improve IO_Mnhname_clean to autocorrect names to be CF compliant +! P. Wautelet 08/10/2021: add 2 new dimensions: LW_bands and SW_bands !----------------------------------------------------------------- #ifdef MNH_IOCDF4 module mode_io_tools_nc4 @@ -254,7 +255,7 @@ use modd_dyn, only: xseglen use modd_dyn_n, only: xtstep use modd_field, only: NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NI_U, NMNHDIM_NJ_U, NMNHDIM_NI_V, NMNHDIM_NJ_V, & NMNHDIM_LEVEL, NMNHDIM_LEVEL_W, NMNHDIM_TIME, & - NMNHDIM_ONE, NMNHDIM_COMPLEX, & + NMNHDIM_ONE, NMNHDIM_NSWB, NMNHDIM_NLWB, NMNHDIM_COMPLEX, & NMNHDIM_BUDGET_CART_NI, NMNHDIM_BUDGET_CART_NJ, NMNHDIM_BUDGET_CART_NI_U, & NMNHDIM_BUDGET_CART_NJ_U, NMNHDIM_BUDGET_CART_NI_V, NMNHDIM_BUDGET_CART_NJ_V, & NMNHDIM_BUDGET_CART_LEVEL, NMNHDIM_BUDGET_CART_LEVEL_W, & @@ -274,7 +275,9 @@ use modd_les, only: lles_pdf, nles_k, npdf, nspectra_k, xles_temp_mean use modd_les_n, only: nles_times, nspectra_ni, nspectra_nj use modd_nsv, only: nsv USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT +use modd_param_n, only: crad use modd_profiler_n, only: numbprofiler, tprofiler +use modd_radiations_n, only: nlwb_mnh, nswb_mnh use modd_series, only: lseries use modd_series_n, only: nsnbstept use modd_station_n, only: numbstat, tstation @@ -336,6 +339,11 @@ if ( tpfile%ctype == 'MNHDIACHRONIC' .or. ( lpack .and. l2d ) ) then call IO_Add_dim_nc4( tpfile, NMNHDIM_ONE, 'one', 1 ) end if +if ( tpfile%ctype /= 'MNHDIACHRONIC' .and. crad /= 'NONE' ) then + call IO_Add_dim_nc4( tpfile, NMNHDIM_NSWB, 'SW_bands', nswb_mnh ) !number of SW bands practically used + call IO_Add_dim_nc4( tpfile, NMNHDIM_NLWB, 'LW_bands', nlwb_mnh ) !number of LW bands practically used +end if + !Write dimensions used in diachronic files if ( tpfile%ctype == 'MNHDIACHRONIC' ) then !Dimension of size 2 used for NMNHDIM_COMPLEX