From 40a5f1f7bff056b091ded6bc3cc1e6eb4dc0ca78 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 2 Oct 2017 15:55:15 +0200 Subject: [PATCH] Philippe 02/10/2017: IO: split NAM_OUTPUT in NAM_BACKUP and NAM_OUTPUT --- .../KTEST/001_2Drelief/002_mesonh/EXSEG1.nam | 2 +- .../001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH | 2 +- .../001_2Drelief/002_mesonh/EXSEG1.nam_WENO | 2 +- .../001_2Drelief/002_mesonh/README.namelist | 2 +- .../KTEST/002_3Drelief/002_mesonh/EXSEG1.nam | 2 +- .../002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH | 2 +- .../002_3Drelief/002_mesonh/EXSEG1.nam_WENO | 2 +- .../002_3Drelief/002_mesonh/README.namelist | 2 +- MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam | 2 +- .../003_KW78/002_mesonh/EXSEG1.nam_CEN4TH | 2 +- .../KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO | 2 +- .../KTEST/003_KW78/002_mesonh/README.namelist | 2 +- .../KTEST/004_Reunion/003_mesonh/EXSEG1.nam | 2 +- .../004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH | 2 +- .../004_Reunion/003_mesonh/EXSEG1.nam_WENO | 2 +- .../004_Reunion/003_mesonh/README.namelist | 2 +- .../007_16janvier/008_run2/EXSEG1.nam.src | 6 +- .../008_run2/EXSEG1.nam.src_CEN4TH | 2 +- .../008_run2/EXSEG1.nam.src_WENO | 2 +- .../007_16janvier/008_run2/EXSEG2.nam.src | 4 +- .../007_16janvier/008_run2/README.namelist | 2 +- .../007_16janvier/008_run2/run_mesonh_xyz | 2 +- .../KTEST/007_16janvier/009_diag/DIAG1.nam1 | 5 +- .../KTEST/007_16janvier/009_diag/DIAG1.nam2 | 1 + .../008_run2/run_mesonh_xyz.ihm | 2 +- .../009_ICARTT/003_mesonh/EXSEG1.nam.src | 2 +- .../KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam | 2 +- MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam | 2 +- MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam | 2 +- MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam | 2 +- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 4 +- src/MNH/default_desfmn.f90 | 8 +-- src/MNH/{modd_output.f90 => modd_bakout.f90} | 13 ++-- src/MNH/modeln.f90 | 2 +- src/MNH/modn_backup.f90 | 54 ++++++++++++++++ src/MNH/modn_output.f90 | 12 ++-- src/MNH/read_desfmn.f90 | 61 ++++++++++++++---- src/MNH/read_exsegn.f90 | 64 +++++++++++++++---- src/MNH/write_desfmn.f90 | 9 ++- 39 files changed, 212 insertions(+), 83 deletions(-) rename src/MNH/{modd_output.f90 => modd_bakout.f90} (91%) create mode 100644 src/MNH/modn_backup.f90 diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam index e9ee7ee30..aa9fbf128 100644 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam @@ -16,4 +16,4 @@ / &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.T. / -&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / +&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH index e9ee7ee30..aa9fbf128 100644 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_CEN4TH @@ -16,4 +16,4 @@ / &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.T. / -&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / +&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO index 701945300..2bb366fb8 100644 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam_WENO @@ -16,4 +16,4 @@ / &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.F. / -&NAM_OUTPUT XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / +&NAM_BACKUP XBAK_TIME(1,1) = 360., XBAK_TIME(1,2) = 720., XBAK_TIME(1,3) = 1080. / diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist b/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist index 1f8db2472..d8d2e14a6 100644 --- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist +++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/README.namelist @@ -78,7 +78,7 @@ XALKTOP = 0.005 ; maximum value of the Rayleigh damping (in s-1) XALZBOT = 12570. ; height (in meter) in the physical space of the upper absorbing layer base LNUMDIFU =.T. ; switch to activate the numerical diffusion for momentum -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 360. ; an array of increments (in second) from the beginning of the segment to the instant where the i-th fields output on FM-files is realized by model "m" XBAK_TIME(1,2) = 720. diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam index 4bb950b09..f90475dbd 100644 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam @@ -18,5 +18,5 @@ &NAM_DYN XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.F. / -&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / +&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH index 152069116..a4f1b3e83 100644 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_CEN4TH @@ -18,5 +18,5 @@ &NAM_DYN XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.F. / -&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / +&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO index e23da91df..b91886883 100644 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam_WENO @@ -18,5 +18,5 @@ &NAM_DYN XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F, XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.F. / -&NAM_OUTPUT XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / +&NAM_BACKUP XBAK_TIME(1,1) = 500., XBAK_TIME(1,2) = 1000. / diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist b/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist index 9c9405520..618d1223c 100644 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/README.namelist @@ -69,7 +69,7 @@ XALKTOP = 0.005 ; maximum value of the Rayleigh damping (in s-1) XALZBOT = 12570. ; height (in meter) in the physical space of the upper absorbing layer base LNUMDIFU =.F. ; switch to activate the numerical diffusion for momentum -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 500. ; an array of increments (in second) from the beginning of the segment to the instant where the i-th fields output on FM-files is realized by model "m" XBAK_TIME(1,2) = 1000. diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam index 7105c9ab4..5f08f00ca 100644 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam @@ -22,6 +22,6 @@ &NAM_DYN XSEGLEN = 1800., XASSELIN = 0.2, LCORIO = F, LNUMDIFU = T / -&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., +&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. / diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH index d976f57c8..6e937b30e 100644 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_CEN4TH @@ -22,6 +22,6 @@ &NAM_DYN XSEGLEN = 1800., XASSELIN = 0.2, LCORIO = F, LNUMDIFU = T / -&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., +&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. / diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO index d1e0fde4f..da63bfedc 100644 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam_WENO @@ -23,6 +23,6 @@ &NAM_DYN XSEGLEN = 1800., XASSELIN = 0.2, LCORIO = F, LNUMDIFU = T / -&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., +&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. / diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist b/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist index aafe6d768..3e19ad6e3 100644 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/README.namelist @@ -87,7 +87,7 @@ LCORIO = F ; switch for the Coriolis parameters .TRUE. the Earth rotation is taken into account ) LNUMDIFU =.T. ; switch to activate the numerical diffusion for momentum -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 450. ; an array of increments (in second) from the beginning of the segment to the instant where the i-th fields output on FM-files is realized by model "m" XBAK_TIME(1,2) = 900. diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam index 506c6feb9..b36eacb5e 100644 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam @@ -26,7 +26,7 @@ &NAM_DYN XSEGLEN = 40., LCORIO = F, LNUMDIFU = F, XALKTOP = 0.01, XALZBOT = 14000. / -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 40., XBAK_TIME(1,2) = 10., XBAK_TIME(1,3) = 20., XBAK_TIME(1,4) = 30. / &NAM_BUDGET CBUTYPE='CART', XBULEN=200., diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH index 59373a59e..31400d93d 100644 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_CEN4TH @@ -25,7 +25,7 @@ &NAM_DYN XSEGLEN = 40., LCORIO = F, LNUMDIFU = T, XALKTOP = 0.01, XALZBOT = 14000. / -&NAM_OUTPUT XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20., +&NAM_BACKUP XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20., XBAK_TIME(1,3) = 30., XBAK_TIME(1,4) = 40. / &NAM_BUDGET CBUTYPE='CART', XBULEN=200., NBUKL=2, NBUKH=51, NBUIL=15, NBUIH=64, NBUJL=15, NBUJH=68, diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO index 9976fce0a..a0b4e4ebe 100644 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam_WENO @@ -25,7 +25,7 @@ &NAM_DYN XSEGLEN = 40., LCORIO = F, LNUMDIFU = F, XALKTOP = 0.01, XALZBOT = 14000. / -&NAM_OUTPUT XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20., +&NAM_BACKUP XBAK_TIME(1,1) = 10., XBAK_TIME(1,2) = 20., XBAK_TIME(1,3) = 30., XBAK_TIME(1,4) = 40. / &NAM_BUDGET CBUTYPE='CART', XBULEN=200., NBUKL=2, NBUKH=51, NBUIL=15, NBUIH=64, NBUJL=15, NBUJH=68, diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist b/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist index e8abf401b..76b1e4e22 100644 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/README.namelist @@ -121,7 +121,7 @@ LCORIO = F ; switch for the Coriolis parameters .TRUE. the Earth rotation is taken into account ) LNUMDIFU =.T. ; switch to activate the numerical diffusion for momentum -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 10. ; an array of increments (in second) from the beginning of the segment to the instant where the i-th fields output on FM-files is realized by model "m" XBAK_TIME(1,2) = 20. diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src index 18d95d283..7a2af571c 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src +++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src @@ -1,4 +1,4 @@ -&NAM_CONFIO LCDF4=T, LLFIOUT=T, LLFIREAD=F / +&NAM_CONFIO LCDF4=T, LLFIOUT=F, LLFIREAD=F, NIO_VERB=5, NGEN_VERB=5 / &NAM_CONFZ ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=8 / @@ -11,7 +11,7 @@ &NAM_ADVn CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/ &NAM_PARAMn CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW", CDCONV = "KAFR",CSCONV="KAFR" / -&NAM_PARAM_RADn XDTRAD = 3600., XDTRAD_CLONLY = 3600., NRAD_COLNBR = 400 / +&NAM_PARAM_RADn XDTRAD = 300., XDTRAD_CLONLY = 300., NRAD_COLNBR = 400 NRAD_DIAG=5 / &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", LSUBG_COND = F / @@ -24,7 +24,7 @@ &NAM_DYN XSEGLEN = 300., LCORIO = T, LNUMDIFU = T, XALKTOP = 0.001, XALZBOT = 14500. / &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. / -&NAM_OUTPUT XBAK_TIME(1,1) = 300. / +&NAM_BACKUP XBAK_TIME(1,1) = 300. / &NAM_DIAG_SURFn / &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' / diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH index 6d20751b4..72ebbc3a2 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH +++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_CEN4TH @@ -25,7 +25,7 @@ &NAM_DYN XSEGLEN = 300., LCORIO = T, LNUMDIFU = T, XALKTOP = 0.001, XALZBOT = 14500. / &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. / -&NAM_OUTPUT XBAK_TIME(1,1) = 300. / +&NAM_BACKUP XBAK_TIME(1,1) = 300. / &NAM_DIAG_SURFn / &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' / diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO index 4a27fcadb..485184ee3 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO +++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src_WENO @@ -26,7 +26,7 @@ &NAM_DYN XSEGLEN = 300., LCORIO = T, LNUMDIFU = F, XALKTOP = 0.001, XALZBOT = 14500. / &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 3, XWAY(2) = 2. / -&NAM_OUTPUT XBAK_TIME(1,1) = 300. / +&NAM_BACKUP XBAK_TIME(1,1) = 300. / &NAM_DIAG_SURFn / &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY",CROUGH='NONE', CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' / diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src index 4a936109a..3039ec4e9 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src +++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src @@ -5,8 +5,8 @@ NRIMX = 0, NRIMY = 0, LVE_RELAX = T, XT4DIFU = 1500. / &NAM_ADVn CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/ &NAM_PARAMn CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW", CDCONV = "KAFR" / -&NAM_PARAM_RADn XDTRAD = 1800., XDTRAD_CLONLY = 1800., LCLEAR_SKY = F, - NRAD_COLNBR = 400 / +&NAM_PARAM_RADn XDTRAD = 300., XDTRAD_CLONLY = 300., LCLEAR_SKY = F, + NRAD_COLNBR = 400 NRAD_DIAG=5 / &NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T, LDOWN = T / &NAM_LBCn CLBCX = 2*"OPEN", CLBCY = 2*"OPEN", XCPHASE = 20. / diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist b/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist index 601cbd062..0104c6444 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist +++ b/MY_RUN/KTEST/007_16janvier/008_run2/README.namelist @@ -134,7 +134,7 @@ NDAD(2) = 1 ; model number of the father of each model (here the father of mo NDTRATIO(2) = 4 ; ratio between time step of model 2 and its father (model 1) XWAY(2) = 2. ; interactive nesting level for model 2 and its father -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1) = 300. ; an array of increments (in second) from the beginning of the segment to the instant where the i-th fields output on FM-files is realized by model "m" diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz index 720c732e8..9037483ec 100755 --- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz +++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz @@ -5,7 +5,7 @@ #MNH_LIC for details. version 1. set -x set -e -rm -f 16JAN* OUT* EXSEG?.nam +#rm -f 16JAN* OUT* EXSEG?.nam cp EXSEG1.nam.src EXSEG1.nam cp EXSEG2.nam.src EXSEG2.nam ln -sf ../004_arp2lfi/16JAN_06_MNH.{des,lfi,nc} . diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 index c9b6e568d..0d4afe94a 100644 --- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 +++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam1 @@ -2,13 +2,14 @@ &NAM_CONFZ ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1 / -&NAM_DIAG +&NAM_DIAG +LHU_FLX=T,LTRAJ=T, CISO='TKPREV', LVAR_RS=T, LVAR_TURB=F, NCONV_KF=1, LVAR_MRW=T, - LVAR_MRSV=F, + LVAR_MRSV=T, LTRAJ=F, LTPZH=T, LBLTOP=T, diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 index 982826290..ec8dccd9d 100644 --- a/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 +++ b/MY_RUN/KTEST/007_16janvier/009_diag/DIAG1.nam2 @@ -3,6 +3,7 @@ ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=1 / &NAM_DIAG +LHU_FLX=T,LTRAJ=T, CISO='TKPREV', LVAR_RS=T, LVAR_TURB=F, diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm index a46b16667..a777ed883 100755 --- a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm +++ b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm @@ -110,7 +110,7 @@ cat <<EOF > EXSEG1.nam &NAM_DYN XSEGLEN = 300., LCORIO = T, LNUMDIFU = T, XALKTOP = 0.001, XALZBOT = 14500. / &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. / -&NAM_OUTPUT XBAK_TIME(1,1) = 300. / +&NAM_BACKUP XBAK_TIME(1,1) = 300. / &NAM_DIAG_SURFn / &NAM_ISBAn CSCOND="NP89", CALBEDO="DRY", CROUGH='Z01D', CC1DRY='DEF', CSOILFRZ='DEF', CDIFSFCOND='DEF', CSNOWRES='DEF' / diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src b/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src index 28c3218b2..5d534b528 100644 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/EXSEG1.nam.src @@ -53,7 +53,7 @@ &NAM_DYN XSEGLEN = 7200, XASSELIN = 0.2, LCORIO = T, LNUMDIFU = F, XALKTOP = 0.005, XALZBOT = 14000. / &NAM_NESTING / -&NAM_OUTPUT XBAK_TIME(1,1)=3600., XBAK_TIME(1,2)=7200. / +&NAM_BACKUP XBAK_TIME(1,1)=3600., XBAK_TIME(1,2)=7200. / &NAM_BUDGET CBUTYPE='NONE' / &NAM_ISBAn / &NAM_SEAFLUXn / diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam index 23f90e751..31cad3c13 100644 --- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/EXSEG1.nam @@ -43,6 +43,6 @@ &NAM_DYN XSEGLEN = 1800., XASSELIN = 0.2, LCORIO = F, LNUMDIFU = F/ -&NAM_OUTPUT XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., +&NAM_BACKUP XBAK_TIME(1,1) = 450., XBAK_TIME(1,2) = 900., XBAK_TIME(1,3) = 1350., XBAK_TIME(1,4) = 1800. / diff --git a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam index 7c39262ce..fc7b49333 100644 --- a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam +++ b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam @@ -65,7 +65,7 @@ LNUMDIFU = T, XALKTOP = 0.001, XALZBOT = 16000. / -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1)=10800. , XBAK_TIME(1,2)=21600. , XBAK_TIME(1,3)=32400. , diff --git a/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam b/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam index eef13b52a..49534a5d9 100644 --- a/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam +++ b/MY_RUN/KTEST/012_dust/004_restart/EXSEG1.nam @@ -63,7 +63,7 @@ LNUMDIFU = T, XALKTOP = 0.001, XALZBOT = 16000. / -&NAM_OUTPUT +&NAM_BACKUP XBAK_TIME(1,1)=10800. , XBAK_TIME(1,2)=21600. , XBAK_TIME(1,3)=32400. , diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam index 29f347e01..ee3b30710 100644 --- a/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam +++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/EXSEG1.nam @@ -62,7 +62,7 @@ LNUMDIFTH = .F., LNUMDIFSV = .F. / -&NAM_OUTPUT XBAK_TIME(1,1) = 1800., XBAK_TIME(1,2) = 3600. / +&NAM_BACKUP XBAK_TIME(1,1) = 1800., XBAK_TIME(1,2) = 3600. / &NAM_BUDGET CBUTYPE = 'CART', NBUMOD = 1, diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index db50a9e88..545ffa494 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -22,6 +22,7 @@ CONTAINS SUBROUTINE IO_PREPARE_BAKOUT_STRUCT(KSUP,PTSTEP,PSEGLEN) !######################################################################### ! +USE MODD_BAKOUT USE MODD_CONF USE MODD_CONF_n USE MODD_DYN, ONLY : XSEGLEN @@ -30,7 +31,6 @@ USE MODD_IO_SURF_MNH,ONLY : IO_SURF_MNH_MODEL USE MODD_NESTING, ONLY : CDAD_NAME,NDAD USE MODD_NSV, ONLY: NSV USE MODD_OUT_n, ONLY : OUT_MODEL -USE MODD_OUTPUT USE MODD_VAR_ll, ONLY : IP USE MODE_FIELD ! @@ -574,8 +574,8 @@ END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT ! SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE,KLFINPRAR,KLFITYPE,KLFIVERB,TPDADFILE,OOLD) ! +USE MODD_BAKOUT, ONLY : LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL USE MODE_MODELN_HANDLER, ONLY : GET_CURRENT_MODEL_INDEX -USE MODD_OUTPUT, ONLY : LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL ! TYPE(TFILEDATA),POINTER, INTENT(INOUT) :: TPFILE !File structure to return CHARACTER(LEN=*), INTENT(IN) :: HNAME !Filename diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 0abb32643..0e5a2c839 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -60,7 +60,7 @@ END MODULE MODI_DEFAULT_DESFM_n !! Module MODD_DYN : XSEGLEN,XASSELIN,LCORIO,LNUMDIFF !! XALKTOP,XALZBOT !! -!! Module MODD_OUTPUT : XOUT +!! Module MODD_BAKOUT !! !! Module MODD_NESTING : NDAD(m),NDTRATIO(m),XWAY(m) !! @@ -174,7 +174,7 @@ END MODULE MODI_DEFAULT_DESFM_n !! Modifications 24/11/96 (Masson) add LREFRESH_ALL in deep convection !! Modifications 12/02/96 (Lafore) transformation to DEFAULT_DESFM_n for spawning !! Modifications 22/07/96 (Lafore) gridnesting implementation -!! Modifications 29/07/96 (Lafore) add the module MODD_FMOUT (renamed MODD_OUTPUT) +!! Modifications 29/07/96 (Lafore) add the module MODD_FMOUT (renamed MODD_BAKOUT) !! Modifications 23/06/97 (Stein) add the equation system name !! Modifications 10/07/97 (Masson) add MODD_PARAM_GROUNDn : CROUGH !! Modifications 28/07/97 (Masson) remove LREFRESH_ALL and LSTEADY_DMASS @@ -228,7 +228,7 @@ USE MODD_CONF ! For INIT only DEFAULT_DESFM1 USE MODD_CONFZ USE MODD_DYN USE MODD_NESTING -USE MODD_OUTPUT +USE MODD_BAKOUT USE MODD_SERIES USE MODD_CONF_n ! modules used to set the default values is only USE MODD_LUNIT_n ! the one corresponding to model 1. These memory @@ -489,7 +489,7 @@ XTNUDGING = 21600. ! !------------------------------------------------------------------------------- ! -!* 9. SET DEFAULT VALUES FOR MODD_OUTPUT and MODD_OUT_n : +!* 9. SET DEFAULT VALUES FOR MODD_BAKOUT and MODD_OUT_n : ! ------------------------------------------------ ! ! diff --git a/src/MNH/modd_output.f90 b/src/MNH/modd_bakout.f90 similarity index 91% rename from src/MNH/modd_output.f90 rename to src/MNH/modd_bakout.f90 index cef31e97c..2bf52e915 100644 --- a/src/MNH/modd_output.f90 +++ b/src/MNH/modd_bakout.f90 @@ -9,16 +9,17 @@ ! MASDEV4_7 modd 2006/05/18 13:07:25 !----------------------------------------------------------------- ! ################## - MODULE MODD_OUTPUT + MODULE MODD_BAKOUT ! ################## ! -!!**** *MODD_OUTPUT* - declaration of informations on the instants for the -!! outputs of all models +!!**** *MODD_BAKOUT* - declaration of informations on the instants for the +!! outputs and backups of all models !! !! PURPOSE !! ------- ! The purpose of this module is to declare the instants and some parameters -! (compression and precision reduction) of the outputs realized by all models. +! (compression and precision reduction) of the outputs and backups realized by +! all models. ! Introduced to facilitate the output FM-file managment in case of nesting ! !!** IMPLICIT ARGUMENTS @@ -29,7 +30,7 @@ !! !! REFERENCE !! --------- -!! Book2 of Meso-NH documentation (module MODD_OUTPUT) +!! Book2 of Meso-NH documentation (module MODD_BAKOUT) !! !! AUTHOR !! ------ @@ -75,4 +76,4 @@ REAL,SAVE,DIMENSION(JPMODELMAX) :: XBAK_TIME_FREQ_FIRST = 0., XOUT_TIME_FREQ_FIR CHARACTER(LEN=NMNHNAMELGTMAX),SAVE,ALLOCATABLE,DIMENSION(:,:) :: COUT_VAR ! Name of the fields to output ! ! -END MODULE MODD_OUTPUT +END MODULE MODD_BAKOUT diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index ce079b293..ab9729afb 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -264,7 +264,7 @@ USE MODD_DYN USE MODD_DYNZD USE MODD_CONF USE MODD_NESTING -USE MODD_OUTPUT +USE MODD_BAKOUT USE MODD_BUDGET USE MODD_PARAMETERS USE MODD_PARAM_ICE, ONLY : LWARM,LSEDIC,LCONVHG,LDEPOSC diff --git a/src/MNH/modn_backup.f90 b/src/MNH/modn_backup.f90 new file mode 100644 index 000000000..0339ee4c3 --- /dev/null +++ b/src/MNH/modn_backup.f90 @@ -0,0 +1,54 @@ +!MNH_LIC Copyright 1994-2014 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. +!----------------------------------------------------------------- +!--------------- special set of characters for RCS information +!----------------------------------------------------------------- +! $Source$ $Revision$ +! MASDEV4_7 modn 2006/05/18 13:07:25 +!----------------------------------------------------------------- +! ################## + MODULE MODN_BACKUP +! ################## +! +!!**** *MODN_BACKUP* - declaration of namelist NAM_OUTPUT +!! +!! PURPOSE +!! ------- +! The purpose of this module is to specify the namelist NAM_OUTPUT +! which concerns the instants and some parameters (compression and precision reduction) +! of the backups realized by all models. +! +!!** IMPLICIT ARGUMENTS +!! ------------------ +!! Module MODD_BAKOUT : contains declaration of the variables describing +!! the instants of the backups +!! +!! REFERENCE +!! --------- +!! Book2 of Meso-NH documentation (module MODD_BACKUP) +!! +!! AUTHOR +!! ------ +!! J.P. Lafore *Meteo France* +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Ph. Wautelet : 2016: new structures for outputs/backups +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BAKOUT +! +IMPLICIT NONE +! +NAMELIST/NAM_BACKUP/LBAK_BEG,LBAK_END,& + XBAK_TIME,NBAK_STEP,& + NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST,& + XBAK_TIME_FREQ,XBAK_TIME_FREQ_FIRST +! +END MODULE MODN_BACKUP diff --git a/src/MNH/modn_output.f90 b/src/MNH/modn_output.f90 index 78946acdf..242514428 100644 --- a/src/MNH/modn_output.f90 +++ b/src/MNH/modn_output.f90 @@ -22,13 +22,13 @@ ! !!** IMPLICIT ARGUMENTS !! ------------------ -!! Module MODD_OUTPUT : contains declaration of the variables describing +!! Module MODD_BAKOUT : contains declaration of the variables describing !! the instants and some parameters (compression and !! precision reduction) of the outputs !! !! REFERENCE !! --------- -!! Book2 of Meso-NH documentation (module MODD_OUTPUT) +!! Book2 of Meso-NH documentation (module MODD_BAKOUT) !! !! AUTHOR !! ------ @@ -43,15 +43,11 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_OUTPUT +USE MODD_BAKOUT ! IMPLICIT NONE ! -NAMELIST/NAM_OUTPUT/LBAK_BEG,LBAK_END,& - XBAK_TIME,NBAK_STEP,& - NBAK_STEP_FREQ,NBAK_STEP_FREQ_FIRST,& - XBAK_TIME_FREQ,XBAK_TIME_FREQ_FIRST, & - LOUT_BEG,LOUT_END,& +NAMELIST/NAM_OUTPUT/LOUT_BEG,LOUT_END,& XOUT_TIME,NOUT_STEP,& NOUT_STEP_FREQ,NOUT_STEP_FREQ_FIRST,& XOUT_TIME_FREQ,XOUT_TIME_FREQ_FIRST, & diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 7611de06a..662a7ae19 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -199,6 +199,7 @@ END MODULE MODI_READ_DESFM_n USE MODD_IO_ll, ONLY : NVERB_FATAL USE MODD_PARAMETERS ! +USE MODN_BACKUP USE MODN_BUDGET USE MODN_CONF USE MODN_DYN @@ -426,22 +427,56 @@ IF (KMI == 1) THEN IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_DYN) CALL POSNAM(ILUDES,'NAM_NESTING',GFOUND) IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_NESTING) - CALL POSNAM(ILUDES,'NAM_OUTPUT',GFOUND) + CALL POSNAM(ILUDES,'NAM_BACKUP',GFOUND) IF (GFOUND) THEN - IF (.NOT.ALLOCATED(XBAK_TIME)) ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(XOUT_TIME)) ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(NBAK_STEP)) ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(NOUT_STEP)) ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(COUT_VAR)) ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) - READ(UNIT=ILUDES,NML=NAM_OUTPUT) - XBAK_TIME(:,:) = XNEGUNDEF - XOUT_TIME(:,:) = XNEGUNDEF - NBAK_STEP(:,:) = NNEGUNDEF - NOUT_STEP(:,:) = NNEGUNDEF - COUT_VAR(:,:) = '' + IF (.NOT.ALLOCATED(XBAK_TIME)) THEN + ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) + XBAK_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(XOUT_TIME)) THEN + ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) !Allocate *OUT* variables to prevent + XOUT_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NBAK_STEP)) THEN + ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) + NBAK_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NOUT_STEP)) THEN + ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) !problems if NAM_OUTPUT does not exist + NOUT_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(COUT_VAR)) THEN + ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) + COUT_VAR(:,:) = '' + END IF + READ(UNIT=ILUDES,NML=NAM_BACKUP) ELSE CALL POSNAM(ILUDES,'NAM_FMOUT',GFOUND) - IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DESFM_n','use namelist NAM_OUTPUT instead of namelist NAM_FMOUT') + IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DESFM_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT') + END IF + CALL POSNAM(ILUDES,'NAM_OUTPUT',GFOUND) + IF (GFOUND) THEN + IF (.NOT.ALLOCATED(XBAK_TIME)) THEN + ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) !Allocate *BAK* variables to prevent + XBAK_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(XOUT_TIME)) THEN + ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) + XOUT_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NBAK_STEP)) THEN + ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) !problems if NAM_BACKUP does not exist + NBAK_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NOUT_STEP)) THEN + ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) + NOUT_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(COUT_VAR)) THEN + ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) + COUT_VAR(:,:) = '' + END IF + READ(UNIT=ILUDES,NML=NAM_OUTPUT) END IF CALL POSNAM(ILUDES,'NAM_BUDGET',GFOUND) IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_BUDGET) diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 67968617e..fdea69147 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -299,6 +299,7 @@ USE MODD_CONF_n, ONLY : CSTORAGE_TYPE USE MODD_IO_ll, ONLY : NVERB_FATAL USE MODD_VAR_ll, ONLY: NPROC ! +USE MODN_BACKUP USE MODN_BUDGET USE MODN_LES USE MODN_CONF @@ -498,23 +499,58 @@ IF (KMI == 1) THEN IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_DYN) CALL POSNAM(ILUSEG,'NAM_NESTING',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_NESTING) - CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT) + CALL POSNAM(ILUSEG,'NAM_BACKUP',GFOUND,ILUOUT) IF (GFOUND) THEN - !Should have been allocated before in READ_DESFM_n - IF (.NOT.ALLOCATED(XBAK_TIME)) ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(XOUT_TIME)) ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(NBAK_STEP)) ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(NOUT_STEP)) ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) - IF (.NOT.ALLOCATED(COUT_VAR)) ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) - XBAK_TIME(:,:) = XNEGUNDEF - XOUT_TIME(:,:) = XNEGUNDEF - NBAK_STEP(:,:) = NNEGUNDEF - NOUT_STEP(:,:) = NNEGUNDEF - COUT_VAR(:,:) = '' - READ(UNIT=ILUSEG,NML=NAM_OUTPUT) + !Should have been allocated before in READ_DESFM_n + IF (.NOT.ALLOCATED(XBAK_TIME)) THEN + ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) + XBAK_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(XOUT_TIME)) THEN + ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) !Allocate *OUT* variables to prevent + XOUT_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NBAK_STEP)) THEN + ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) + NBAK_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NOUT_STEP)) THEN + ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) !problems if NAM_OUTPUT does not exist + NOUT_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(COUT_VAR)) THEN + ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) + COUT_VAR(:,:) = '' + END IF + READ(UNIT=ILUSEG,NML=NAM_BACKUP) ELSE CALL POSNAM(ILUSEG,'NAM_FMOUT',GFOUND) - IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_OUTPUT instead of namelist NAM_FMOUT') + IF (GFOUND) CALL PRINT_MSG(NVERB_FATAL,'IO','READ_EXSEG_n','use namelist NAM_BACKUP instead of namelist NAM_FMOUT') + END IF + CALL POSNAM(ILUSEG,'NAM_OUTPUT',GFOUND,ILUOUT) + IF (GFOUND) THEN + !Should have been allocated before in READ_DESFM_n + IF (.NOT.ALLOCATED(XBAK_TIME)) THEN + ALLOCATE(XBAK_TIME(NMODEL,JPOUTMAX)) !Allocate *BAK* variables to prevent + XBAK_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(XOUT_TIME)) THEN + ALLOCATE(XOUT_TIME(NMODEL,JPOUTMAX)) + XOUT_TIME(:,:) = XNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NBAK_STEP)) THEN + ALLOCATE(NBAK_STEP(NMODEL,JPOUTMAX)) !problems if NAM_BACKUP does not exist + NBAK_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(NOUT_STEP)) THEN + ALLOCATE(NOUT_STEP(NMODEL,JPOUTMAX)) + NOUT_STEP(:,:) = NNEGUNDEF + END IF + IF (.NOT.ALLOCATED(COUT_VAR)) THEN + ALLOCATE(COUT_VAR (NMODEL,JPOUTVARMAX)) + COUT_VAR(:,:) = '' + END IF + READ(UNIT=ILUSEG,NML=NAM_OUTPUT) END IF CALL POSNAM(ILUSEG,'NAM_BUDGET',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BUDGET) diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index c3db884ae..1fc803357 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -133,7 +133,7 @@ END MODULE MODI_WRITE_DESFM_n !! Temporary Modification (Masson 06/09/96) manual write of the first and !! third namelists because of compiler version. !! Modifications J.-P. Lafore 22/07/96 gridnesting implementation -!! Modifications J.-P. Lafore 29/07/96 add NAM_FMOUT (renamed in NAM_OUTPUT) +!! Modifications J.-P. Lafore 29/07/96 add NAM_FMOUT (renamed in NAM_OUTPUT/NAM_BACKUP) !! Modifications V. Masson 10/07/97 add NAM_PARAM_GROUNDn !! Modifications V. Masson 28/07/97 supress LSTEADY_DMASS !! Modifications P. Jabouille 03/10/01 LHORELAX_ modifications @@ -153,6 +153,7 @@ USE MODD_PARAMETERS USE MODD_CONF USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA ! +USE MODN_BACKUP USE MODN_CONF USE MODN_DYN USE MODN_NESTING @@ -368,6 +369,7 @@ END IF WRITE(UNIT=ILUSEG,NML=NAM_CONF) WRITE(UNIT=ILUSEG,NML=NAM_DYN) WRITE(UNIT=ILUSEG,NML=NAM_NESTING) +!WRITE(UNIT=ILUSEG,NML=NAM_BACKUP) !WRITE(UNIT=ILUSEG,NML=NAM_OUTPUT) IF(CBUTYPE /= 'NONE') THEN IF(CBUTYPE=='SKIP') CBUTYPE='CART' @@ -470,9 +472,12 @@ IF (NVERB >= 5) THEN WRITE(UNIT=ILUOUT,FMT="(/,'********** NESTING **************************')") WRITE(UNIT=ILUOUT,NML=NAM_NESTING) ! +! WRITE(UNIT=ILUOUT,FMT="(/,'********** BACKUP ***************************')") +! WRITE(UNIT=ILUOUT,NML=NAM_BACKUP) +! ! WRITE(UNIT=ILUOUT,FMT="(/,'********** OUTPUT ***************************')") ! WRITE(UNIT=ILUOUT,NML=NAM_OUTPUT) -! +! WRITE(UNIT=ILUOUT,FMT="('************ BUDGET ***************************')") WRITE(UNIT=ILUOUT,NML=NAM_BUDGET) ! -- GitLab