From 073aa2c11925882c1a8ddfee7f8d7eb99918f92d Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Tue, 27 Apr 2021 10:33:35 +0200 Subject: [PATCH] Quentin 27/04/2021: NAM_BLANK and DUMMY becomes NAM_BLANK_n for grid_nesting use. The values of the BLANK DUMMY variables can be different in n models. Cleaning of non-used CALL MODD_BLANK --- src/MNH/adv_forcingn.f90 | 8 -- src/MNH/ch_aer_eqm_initn.f90 | 1 - src/MNH/default_desfmn.f90 | 82 ++++++----- src/MNH/forc_squall_line.f90 | 4 +- src/MNH/goto_model_wrapper.f90 | 2 + src/MNH/init_aerosol_concentration.f90 | 4 +- src/MNH/modd_blank.f90 | 66 --------- src/MNH/modd_blankn.f90 | 173 +++++++++++++++++++++++ src/MNH/modeln.f90 | 2 +- src/MNH/modn_blank.f90 | 61 --------- src/MNH/modn_blankn.f90 | 181 +++++++++++++++++++++++++ src/MNH/phys_paramn.f90 | 1 - src/MNH/prep_ideal_case.f90 | 6 +- src/MNH/read_chem_data_netcdf_case.f90 | 2 +- src/MNH/read_desfmn.f90 | 14 +- src/MNH/read_exsegn.f90 | 8 +- src/MNH/read_ver_grid.f90 | 6 +- src/MNH/spawning.f90 | 6 +- src/MNH/turb_ver.f90 | 1 - src/MNH/write_desfmn.f90 | 11 +- 20 files changed, 428 insertions(+), 211 deletions(-) delete mode 100644 src/MNH/modd_blank.f90 create mode 100644 src/MNH/modd_blankn.f90 delete mode 100644 src/MNH/modn_blank.f90 create mode 100644 src/MNH/modn_blankn.f90 diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index 963f453dc..b98a9cbe9 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -53,12 +53,6 @@ END MODULE MODI_ADV_FORCING_n !! !! NB: For relaxation forcing, only mask=FIXE has been implemented for simplicity !! -!! DUMMIES: LDUMMY(2)=T allows ADV forcing -!! LDUMMY3=T ------- REL ------- -!! with XDUMMY1=lower limit of relaxation (m) -!! XDUMMY2=top limit of relxation (m) -!! XDUMMY3=relaxation timsescale (s) -!! !! EXTERNAL !! -------- !! Temporal_lt function (compare 2 TYPEd date_and_time data) @@ -77,7 +71,6 @@ END MODULE MODI_ADV_FORCING_n !! JPVEXT: define the number of marginal points out of the !! physical domain along the vertical direction. !! Module MODD_TIME: contains the structure of the TYPEd date_and_time -!! Module MODD_BLANK: Uses LDUMMY(2)=T to activate the time varying adv frc !! !! REFERENCE !! --------- @@ -220,7 +213,6 @@ END IF ! 2.2 Integration of the forcing in the source ! ------------------------------------------ -! 2.2.1 Advective forcing in LDUMMY(2)=T DO JK=1,JPVEXT ZXADVTHFRC(:,:,JK) = 0. ZXADVRVFRC(:,:,JK) = 0. diff --git a/src/MNH/ch_aer_eqm_initn.f90 b/src/MNH/ch_aer_eqm_initn.f90 index acece90b8..f08e48cff 100644 --- a/src/MNH/ch_aer_eqm_initn.f90 +++ b/src/MNH/ch_aer_eqm_initn.f90 @@ -59,7 +59,6 @@ USE MODD_NSV USE MODD_CONF USE MODE_ll USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_BLANK , ONLY : CDUMMY1 USE MODD_CST, ONLY : & XMNH_TINY & ,XAVOGADRO & ![molec/mol] avogadros number diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 141b9d427..e460a6836 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -88,7 +88,7 @@ END MODULE MODI_DEFAULT_DESFM_n !! Module MODD_BUDGET : CBUTYPE,NBUMOD,XBULEN,NBUKL, NBUKH,LBU_KCP,XBUWRI !! NBUIL, NBUIH,NBUJL, NBUJH,LBU_ICP,LBU_JCP,NBUMASK !! -!! Module MODD_BLANK : +!! Module MODD_BLANK_n : !! !! XDUMMYi, NDUMMYi, LDUMMYi, CDUMMYi !! @@ -235,7 +235,7 @@ USE MODD_PARAM_RAD_n #ifdef MNH_ECRAD USE MODD_PARAM_ECRAD_n #endif -USE MODD_BLANK +USE MODD_BLANK_n USE MODD_FRC USE MODD_PARAM_ICE USE MODD_PARAM_C2R2 @@ -674,50 +674,44 @@ XCLOUD_FRAC_STD = 1.0_JPRB ! change to 0.75 for more realistic distribution #endif !------------------------------------------------------------------------------- ! -!* 14. SET DEFAULT VALUES FOR MODD_BLANK : +!* 14. SET DEFAULT VALUES FOR MODD_BLANK_n : ! ----------------------------------- ! -IF (KMI == 1) THEN - XDUMMY1 = 0. - XDUMMY2 = 0. - XDUMMY3 = 0. - XDUMMY4 = 0. - XDUMMY5 = 0. - XDUMMY6 = 0. - XDUMMY7 = 0. - XDUMMY8 = 0. - XDUMMY=0. -! - NDUMMY1 = 0 - NDUMMY2 = 0 - NDUMMY3 = 0 - NDUMMY4 = 0 - NDUMMY5 = 0 - NDUMMY6 = 0 - NDUMMY7 = 0 - NDUMMY8 = 0 - NDUMMY=0 -! - LDUMMY1 = .TRUE. - LDUMMY2 = .TRUE. - LDUMMY3 = .TRUE. - LDUMMY4 = .TRUE. - LDUMMY5 = .TRUE. - LDUMMY6 = .TRUE. - LDUMMY7 = .TRUE. - LDUMMY8 = .TRUE. - LDUMMY=.TRUE. -! - CDUMMY1 = ' ' - CDUMMY2 = ' ' - CDUMMY3 = ' ' - CDUMMY4 = ' ' - CDUMMY5 = ' ' - CDUMMY6 = ' ' - CDUMMY7 = ' ' - CDUMMY8 = ' ' - CDUMMY= ' ' -END IF +XDUMMY1 = 0. +XDUMMY2 = 0. +XDUMMY3 = 0. +XDUMMY4 = 0. +XDUMMY5 = 0. +XDUMMY6 = 0. +XDUMMY7 = 0. +XDUMMY8 = 0. +! +NDUMMY1 = 0 +NDUMMY2 = 0 +NDUMMY3 = 0 +NDUMMY4 = 0 +NDUMMY5 = 0 +NDUMMY6 = 0 +NDUMMY7 = 0 +NDUMMY8 = 0 +! +LDUMMY1 = .TRUE. +LDUMMY2 = .TRUE. +LDUMMY3 = .TRUE. +LDUMMY4 = .TRUE. +LDUMMY5 = .TRUE. +LDUMMY6 = .TRUE. +LDUMMY7 = .TRUE. +LDUMMY8 = .TRUE. +! +CDUMMY1 = ' ' +CDUMMY2 = ' ' +CDUMMY3 = ' ' +CDUMMY4 = ' ' +CDUMMY5 = ' ' +CDUMMY6 = ' ' +CDUMMY7 = ' ' +CDUMMY8 = ' ' ! !------------------------------------------------------------------------------ ! diff --git a/src/MNH/forc_squall_line.f90 b/src/MNH/forc_squall_line.f90 index 87ac96438..511522866 100644 --- a/src/MNH/forc_squall_line.f90 +++ b/src/MNH/forc_squall_line.f90 @@ -37,7 +37,7 @@ END MODULE MODI_FORC_SQUALL_LINE !! !! IMPLICIT ARGUMENTS !! ------------------ -!! Module MODD_BLANK +!! Module MODD_BLANKn !! !! REFERENCE !! --------- @@ -55,7 +55,7 @@ END MODULE MODI_FORC_SQUALL_LINE ! ------------ ! USE MODD_PARAMETERS -USE MODD_BLANK, ONLY : XDUMMY1, & ! cooling rate (K/s) +USE MODD_BLANK_n, ONLY : XDUMMY1, & ! cooling rate (K/s) XDUMMY2, & ! vertical size of the disturbance XDUMMY3, & ! horizontal size of the disturbance XDUMMY4, & ! left border of the disturbance diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90 index 6246b73a4..eb943082f 100644 --- a/src/MNH/goto_model_wrapper.f90 +++ b/src/MNH/goto_model_wrapper.f90 @@ -32,6 +32,7 @@ SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO, ONOFIELDLIST) ! all USE modd*_n modules USE MODD_ADV_n USE MODD_BIKHARDT_n +USE MODD_BLANK_n USE MODD_CH_AERO_n USE MODD_CH_FLX_n USE MODD_CH_JVALUES_n @@ -145,6 +146,7 @@ END IF ! CALL ADV_GOTO_MODEL(KFROM, KTO) CALL BIKHARDT_GOTO_MODEL(KFROM, KTO) +CALL BLANK_GOTO_MODEL(KFROM,KTO) CALL CH_AERO_GOTO_MODEL(KFROM,KTO) CALL CH_FLX_GOTO_MODEL(KFROM, KTO) CALL CH_JVALUES_GOTO_MODEL(KFROM, KTO) diff --git a/src/MNH/init_aerosol_concentration.f90 b/src/MNH/init_aerosol_concentration.f90 index 3ff2fef9b..d9db784b2 100644 --- a/src/MNH/init_aerosol_concentration.f90 +++ b/src/MNH/init_aerosol_concentration.f90 @@ -23,7 +23,7 @@ END MODULE MODI_INIT_AEROSOL_CONCENTRATION !! Define the aerosol distributions !! !! -!! MODD_BLANK : +!! MODD_BLANKn : !! CDUMMY2 : CCN ou IFN pour le panache !! NDUMMY1 : hauteur base du panache !! NDUMMY2 : hauteur sommet du panache @@ -53,7 +53,7 @@ USE MODD_PARAM_LIMA, ONLY : LWARM, LACTI, NMOD_CCN, LSCAV, LAERO_MASS, & LCOLD, LNUCL, NMOD_IFN, LMEYERS, & XIFN_CONC, LIFN_HOM USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_BLANK, ONLY : CDUMMY2, NDUMMY1, NDUMMY2, XDUMMY8 +USE MODD_BLANK_n, ONLY : CDUMMY2, NDUMMY1, NDUMMY2, XDUMMY8 ! IMPLICIT NONE ! diff --git a/src/MNH/modd_blank.f90 b/src/MNH/modd_blank.f90 deleted file mode 100644 index 64e2eda86..000000000 --- a/src/MNH/modd_blank.f90 +++ /dev/null @@ -1,66 +0,0 @@ -!MNH_LIC Copyright 1996-2019 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. -!----------------------------------------------------------------- -! ################# - MODULE MODD_BLANK -! ################# -! -!!**** *MODD_BLANK* - Declarative module for MesoNH developpers namelist -!! -!! PURPOSE -!! ------- -!! -!! Offer dummy real, integer, logical and character variables for -!! test and debugging purposes. -!! -!!** METHOD -!! ------ -!! -!! Eight dummy real, integer, logical and character*80 variables are -!! defined and passed through the namelist read operations. None of the -!! MesoNH routines uses any of those variables. When a developper choses -!! to introduce temporarily a parameter to some subroutine, he has to -!! introduce a USE MODD_BLANK statement into that subroutine. Then he -!! can use any of the variables defined here and change them easily via -!! the namelist input. -!! -!! REFERENCE -!! --------- -!! None -!! -!! AUTHOR -!! ------ -!! K. Suhre *Laboratoire d'Aerologie* -!! -!! MODIFICATIONS -!! ------------- -!! -!! Original 25/04/96 -!! updated 17/11/00 (P Jabouille) Use dummy array -!! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_PARAMETERS, ONLY : JPDUMMY -! -IMPLICIT NONE -! -REAL, SAVE :: XDUMMY1, XDUMMY2, XDUMMY3, XDUMMY4, & - XDUMMY5, XDUMMY6, XDUMMY7, XDUMMY8 -INTEGER, SAVE :: NDUMMY1, NDUMMY2, NDUMMY3, NDUMMY4, & - NDUMMY5, NDUMMY6, NDUMMY7, NDUMMY8 -LOGICAL, SAVE :: LDUMMY1, LDUMMY2, LDUMMY3, LDUMMY4, & - LDUMMY5, LDUMMY6, LDUMMY7, LDUMMY8 -CHARACTER(len=80), SAVE :: CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4, & - CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8 -! -REAL, SAVE, DIMENSION(JPDUMMY) :: XDUMMY -INTEGER, SAVE, DIMENSION(JPDUMMY) :: NDUMMY -LOGICAL, SAVE, DIMENSION(JPDUMMY) :: LDUMMY -CHARACTER(len=80), SAVE, DIMENSION(JPDUMMY) :: CDUMMY -! -END MODULE MODD_BLANK diff --git a/src/MNH/modd_blankn.f90 b/src/MNH/modd_blankn.f90 new file mode 100644 index 000000000..74c0d8b16 --- /dev/null +++ b/src/MNH/modd_blankn.f90 @@ -0,0 +1,173 @@ +!MNH_LIC Copyright 1996-2019 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. +!----------------------------------------------------------------- +! ################# + MODULE MODD_BLANK_n +! ################# +! +!!**** *MODD_BLANK$n* - Declarative module for MesoNH developpers namelist +!! +!! PURPOSE +!! ------- +!! +!! Offer dummy real, integer, logical and character variables for +!! test and debugging purposes. +!! +!!** METHOD +!! ------ +!! +!! Eight dummy real, integer, logical and character*80 variables are +!! defined and passed through the namelist read operations. None of the +!! MesoNH routines uses any of those variables. When a developper choses +!! to introduce temporarily a parameter to some subroutine, he has to +!! introduce a USE MODD_BLANK statement into that subroutine. Then he +!! can use any of the variables defined here and change them easily via +!! the namelist input. +!! +!! REFERENCE +!! --------- +!! None +!! +!! AUTHOR +!! ------ +!! K. Suhre *Laboratoire d'Aerologie* +!! +!! MODIFICATIONS +!! ------------- +!! +!! Original 25/04/96 +!! updated 17/11/00 (P Jabouille) Use dummy array +!! updated 26/10/21 (Q.Rodier) Use for n model (grid-nesting) +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_PARAMETERS, ONLY : JPDUMMY, JPMODELMAX +! +IMPLICIT NONE +! +TYPE BLANK_t +! + LOGICAL :: LDUMMY1 + LOGICAL :: LDUMMY2 + LOGICAL :: LDUMMY3 + LOGICAL :: LDUMMY4 + LOGICAL :: LDUMMY5 + LOGICAL :: LDUMMY6 + LOGICAL :: LDUMMY7 + LOGICAL :: LDUMMY8 +! + CHARACTER(len=80) :: CDUMMY1 + CHARACTER(len=80) :: CDUMMY2 + CHARACTER(len=80) :: CDUMMY3 + CHARACTER(len=80) :: CDUMMY4 + CHARACTER(len=80) :: CDUMMY5 + CHARACTER(len=80) :: CDUMMY6 + CHARACTER(len=80) :: CDUMMY7 + CHARACTER(len=80) :: CDUMMY8 +! + INTEGER :: NDUMMY1 + INTEGER :: NDUMMY2 + INTEGER :: NDUMMY3 + INTEGER :: NDUMMY4 + INTEGER :: NDUMMY5 + INTEGER :: NDUMMY6 + INTEGER :: NDUMMY7 + INTEGER :: NDUMMY8 +! + REAL :: XDUMMY1 + REAL :: XDUMMY2 + REAL :: XDUMMY3 + REAL :: XDUMMY4 + REAL :: XDUMMY5 + REAL :: XDUMMY6 + REAL :: XDUMMY7 + REAL :: XDUMMY8 +! +END TYPE BLANK_t +! +TYPE(BLANK_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: BLANK_MODEL +! +LOGICAL, POINTER :: LDUMMY1=>NULL() +LOGICAL, POINTER :: LDUMMY2=>NULL() +LOGICAL, POINTER :: LDUMMY3=>NULL() +LOGICAL, POINTER :: LDUMMY4=>NULL() +LOGICAL, POINTER :: LDUMMY5=>NULL() +LOGICAL, POINTER :: LDUMMY6=>NULL() +LOGICAL, POINTER :: LDUMMY7=>NULL() +LOGICAL, POINTER :: LDUMMY8=>NULL() +! +CHARACTER(len=80), POINTER :: CDUMMY1=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY2=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY3=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY4=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY5=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY6=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY7=>NULL() +CHARACTER(len=80), POINTER :: CDUMMY8=>NULL() +! +INTEGER, POINTER :: NDUMMY1=>NULL() +INTEGER, POINTER :: NDUMMY2=>NULL() +INTEGER, POINTER :: NDUMMY3=>NULL() +INTEGER, POINTER :: NDUMMY4=>NULL() +INTEGER, POINTER :: NDUMMY5=>NULL() +INTEGER, POINTER :: NDUMMY6=>NULL() +INTEGER, POINTER :: NDUMMY7=>NULL() +INTEGER, POINTER :: NDUMMY8=>NULL() +! +REAL, POINTER :: XDUMMY1=>NULL() +REAL, POINTER :: XDUMMY2=>NULL() +REAL, POINTER :: XDUMMY3=>NULL() +REAL, POINTER :: XDUMMY4=>NULL() +REAL, POINTER :: XDUMMY5=>NULL() +REAL, POINTER :: XDUMMY6=>NULL() +REAL, POINTER :: XDUMMY7=>NULL() +REAL, POINTER :: XDUMMY8=>NULL() +! +CONTAINS +! +SUBROUTINE BLANK_GOTO_MODEL(KFROM,KTO) +INTEGER, INTENT(IN) :: KFROM, KTO +! +LDUMMY1=>BLANK_MODEL(KTO)%LDUMMY1 +LDUMMY2=>BLANK_MODEL(KTO)%LDUMMY2 +LDUMMY3=>BLANK_MODEL(KTO)%LDUMMY3 +LDUMMY4=>BLANK_MODEL(KTO)%LDUMMY4 +LDUMMY5=>BLANK_MODEL(KTO)%LDUMMY5 +LDUMMY6=>BLANK_MODEL(KTO)%LDUMMY6 +LDUMMY7=>BLANK_MODEL(KTO)%LDUMMY7 +LDUMMY8=>BLANK_MODEL(KTO)%LDUMMY8 + +CDUMMY1=>BLANK_MODEL(KTO)%CDUMMY1 +CDUMMY2=>BLANK_MODEL(KTO)%CDUMMY2 +CDUMMY3=>BLANK_MODEL(KTO)%CDUMMY3 +CDUMMY4=>BLANK_MODEL(KTO)%CDUMMY4 +CDUMMY5=>BLANK_MODEL(KTO)%CDUMMY5 +CDUMMY6=>BLANK_MODEL(KTO)%CDUMMY6 +CDUMMY7=>BLANK_MODEL(KTO)%CDUMMY7 +CDUMMY8=>BLANK_MODEL(KTO)%CDUMMY8 +! +NDUMMY1=>BLANK_MODEL(KTO)%NDUMMY1 +NDUMMY2=>BLANK_MODEL(KTO)%NDUMMY2 +NDUMMY3=>BLANK_MODEL(KTO)%NDUMMY3 +NDUMMY4=>BLANK_MODEL(KTO)%NDUMMY4 +NDUMMY5=>BLANK_MODEL(KTO)%NDUMMY5 +NDUMMY6=>BLANK_MODEL(KTO)%NDUMMY6 +NDUMMY7=>BLANK_MODEL(KTO)%NDUMMY7 +NDUMMY8=>BLANK_MODEL(KTO)%NDUMMY8 +! +XDUMMY1=>BLANK_MODEL(KTO)%XDUMMY1 +XDUMMY2=>BLANK_MODEL(KTO)%XDUMMY2 +XDUMMY3=>BLANK_MODEL(KTO)%XDUMMY3 +XDUMMY4=>BLANK_MODEL(KTO)%XDUMMY4 +XDUMMY5=>BLANK_MODEL(KTO)%XDUMMY5 +XDUMMY6=>BLANK_MODEL(KTO)%XDUMMY6 +XDUMMY7=>BLANK_MODEL(KTO)%XDUMMY7 +XDUMMY8=>BLANK_MODEL(KTO)%XDUMMY8 +! +END SUBROUTINE BLANK_GOTO_MODEL +! +END MODULE MODD_BLANK_n diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 8bb020452..3ae4c24ca 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -279,7 +279,7 @@ USE MODD_ADV_n USE MODD_AIRCRAFT_BALLOON USE MODD_BAKOUT USE MODD_BIKHARDT_n -USE MODD_BLANK +USE MODD_BLANK_n USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n use modd_budget, only: cbutype, lbu_ru, lbu_rv, lbu_rw, lbudget_u, lbudget_v, lbudget_w, lbudget_sv, lbu_enable, & diff --git a/src/MNH/modn_blank.f90 b/src/MNH/modn_blank.f90 deleted file mode 100644 index d80e6894f..000000000 --- a/src/MNH/modn_blank.f90 +++ /dev/null @@ -1,61 +0,0 @@ -!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_BLANK -! ################# -! -!!**** *MODN_BLANK* - Namelist module for MesoNH developpers namelist -!! -!! PURPOSE -!! ------- -!! -!! The purpose of this module is to specify the namelist NAM_BLANK -!! which offer dummy real, integer, logical and character variables for -!! test and debugging purposes. -!! -!!** IMPLICIT ARGUMENTS -!! ------------------ -!! Module MODD_BLANK : contains declaration of dummy variables -!! -!! REFERENCE -!! --------- -!! None -!! -!! AUTHOR -!! ------ -!! K. Suhre *Laboratoire d'Aerologie* -!! -!! MODIFICATIONS -!! ------------- -!! -!! Original 25/04/96 -!! Modification 14/12/00 (P.Jabouille) add dummy arrays -!! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_BLANK -! -IMPLICIT NONE -! -NAMELIST /NAM_BLANK/ XDUMMY1, XDUMMY2, XDUMMY3, XDUMMY4, & - XDUMMY5, XDUMMY6, XDUMMY7, XDUMMY8, & - NDUMMY1, NDUMMY2, NDUMMY3, NDUMMY4, & - NDUMMY5, NDUMMY6, NDUMMY7, NDUMMY8, & - LDUMMY1, LDUMMY2, LDUMMY3, LDUMMY4, & - LDUMMY5, LDUMMY6, LDUMMY7, LDUMMY8, & - CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4, & - CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8, & - XDUMMY,NDUMMY,LDUMMY,CDUMMY -! -END MODULE MODN_BLANK diff --git a/src/MNH/modn_blankn.f90 b/src/MNH/modn_blankn.f90 new file mode 100644 index 000000000..4a0604610 --- /dev/null +++ b/src/MNH/modn_blankn.f90 @@ -0,0 +1,181 @@ +!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_BLANK_n +! ################# +! +!!**** *MODN_BLANK$n* - Namelist module for MesoNH developpers namelist +!! +!! PURPOSE +!! ------- +!! +!! The purpose of this module is to specify the namelist NAM_BLANKn +!! which offer dummy real, integer, logical and character variables for +!! test and debugging purposes. +!! +!!** IMPLICIT ARGUMENTS +!! ------------------ +!! Module MODD_BLANKn : contains declaration of dummy variables +!! +!! REFERENCE +!! --------- +!! None +!! +!! AUTHOR +!! ------ +!! K. Suhre *Laboratoire d'Aerologie* +!! +!! MODIFICATIONS +!! ------------- +!! +!! Original 25/04/96 +!! Modification 14/12/00 (P.Jabouille) add dummy arrays +!! Modification 26/10/21 (Q.Rodier) Use for n model (grid-nesting) +!! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BLANK_n, ONLY:& + LDUMMY1_n => LDUMMY1, & + LDUMMY2_n => LDUMMY2, & + LDUMMY3_n => LDUMMY3, & + LDUMMY4_n => LDUMMY4, & + LDUMMY5_n => LDUMMY5, & + LDUMMY6_n => LDUMMY6, & + LDUMMY7_n => LDUMMY7, & + LDUMMY8_n => LDUMMY8, & + XDUMMY1_n => XDUMMY1, & + XDUMMY2_n => XDUMMY2, & + XDUMMY3_n => XDUMMY3, & + XDUMMY4_n => XDUMMY4, & + XDUMMY5_n => XDUMMY5, & + XDUMMY6_n => XDUMMY6, & + XDUMMY7_n => XDUMMY7, & + XDUMMY8_n => XDUMMY8, & + CDUMMY1_n => CDUMMY1, & + CDUMMY2_n => CDUMMY2, & + CDUMMY3_n => CDUMMY3, & + CDUMMY4_n => CDUMMY4, & + CDUMMY5_n => CDUMMY5, & + CDUMMY6_n => CDUMMY6, & + CDUMMY7_n => CDUMMY7, & + CDUMMY8_n => CDUMMY8, & + NDUMMY1_n => NDUMMY1, & + NDUMMY2_n => NDUMMY2, & + NDUMMY3_n => NDUMMY3, & + NDUMMY4_n => NDUMMY4, & + NDUMMY5_n => NDUMMY5, & + NDUMMY6_n => NDUMMY6, & + NDUMMY7_n => NDUMMY7, & + NDUMMY8_n => NDUMMY8 + +! +IMPLICIT NONE +LOGICAL, SAVE :: LDUMMY1, LDUMMY2, LDUMMY3, LDUMMY4,& + LDUMMY5, LDUMMY6, LDUMMY7, LDUMMY8 +CHARACTER*80, SAVE :: CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4,& + CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8 +INTEGER, SAVE :: NDUMMY1, NDUMMY2, NDUMMY3, NDUMMY4,& + NDUMMY5, NDUMMY6, NDUMMY7, NDUMMY8 +REAL, SAVE :: XDUMMY1, XDUMMY2, XDUMMY3, XDUMMY4,& + XDUMMY5, XDUMMY6, XDUMMY7, XDUMMY8 + +! +NAMELIST/NAM_BLANKn/XDUMMY1,XDUMMY2,XDUMMY3,XDUMMY4,& + XDUMMY5,XDUMMY6,XDUMMY7,XDUMMY8,& + NDUMMY1,NDUMMY2,NDUMMY3,NDUMMY4,& + NDUMMY5,NDUMMY6,NDUMMY7,NDUMMY8,& + LDUMMY1,LDUMMY2,LDUMMY3,LDUMMY4,& + LDUMMY5,LDUMMY6,LDUMMY7,LDUMMY8,& + CDUMMY1,CDUMMY2,CDUMMY3,CDUMMY4,& + CDUMMY5,CDUMMY6,CDUMMY7,CDUMMY8 +! +CONTAINS +! +SUBROUTINE INIT_NAM_BLANKn + XDUMMY1 = XDUMMY1_n + XDUMMY2 = XDUMMY2_n + XDUMMY3 = XDUMMY3_n + XDUMMY4 = XDUMMY4_n + XDUMMY5 = XDUMMY5_n + XDUMMY6 = XDUMMY6_n + XDUMMY7 = XDUMMY7_n + XDUMMY8 = XDUMMY8_n +! + NDUMMY1 = NDUMMY1_n + NDUMMY2 = NDUMMY2_n + NDUMMY3 = NDUMMY3_n + NDUMMY4 = NDUMMY4_n + NDUMMY5 = NDUMMY5_n + NDUMMY6 = NDUMMY6_n + NDUMMY7 = NDUMMY7_n + NDUMMY8 = NDUMMY8_n +! + CDUMMY1 = CDUMMY1_n + CDUMMY2 = CDUMMY2_n + CDUMMY3 = CDUMMY3_n + CDUMMY4 = CDUMMY4_n + CDUMMY5 = CDUMMY5_n + CDUMMY6 = CDUMMY6_n + CDUMMY7 = CDUMMY7_n + CDUMMY8 = CDUMMY8_n +! + LDUMMY1 = LDUMMY1_n + LDUMMY2 = LDUMMY2_n + LDUMMY3 = LDUMMY3_n + LDUMMY4 = LDUMMY4_n + LDUMMY5 = LDUMMY5_n + LDUMMY6 = LDUMMY6_n + LDUMMY7 = LDUMMY7_n + LDUMMY8 = LDUMMY8_n +END SUBROUTINE INIT_NAM_BLANKn +! +SUBROUTINE UPDATE_NAM_BLANKn + XDUMMY1_n = XDUMMY1 + XDUMMY2_n = XDUMMY2 + XDUMMY3_n = XDUMMY3 + XDUMMY4_n = XDUMMY4 + XDUMMY5_n = XDUMMY5 + XDUMMY6_n = XDUMMY6 + XDUMMY7_n = XDUMMY7 + XDUMMY8_n = XDUMMY8 +! + NDUMMY1_n = NDUMMY1 + NDUMMY2_n = NDUMMY2 + NDUMMY3_n = NDUMMY3 + NDUMMY4_n = NDUMMY4 + NDUMMY5_n = NDUMMY5 + NDUMMY6_n = NDUMMY6 + NDUMMY7_n = NDUMMY7 + NDUMMY8_n = NDUMMY8 +! + CDUMMY1_n = CDUMMY1 + CDUMMY2_n = CDUMMY2 + CDUMMY3_n = CDUMMY3 + CDUMMY4_n = CDUMMY4 + CDUMMY5_n = CDUMMY5 + CDUMMY6_n = CDUMMY6 + CDUMMY7_n = CDUMMY7 + CDUMMY8_n = CDUMMY8 +! + LDUMMY1_n = LDUMMY1 + LDUMMY2_n = LDUMMY2 + LDUMMY3_n = LDUMMY3 + LDUMMY4_n = LDUMMY4 + LDUMMY5_n = LDUMMY5 + LDUMMY6_n = LDUMMY6 + LDUMMY7_n = LDUMMY7 + LDUMMY8_n = LDUMMY8 +END SUBROUTINE UPDATE_NAM_BLANKn + +END MODULE MODN_BLANK_n diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 2395c174c..921afbd47 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -242,7 +242,6 @@ END MODULE MODI_PHYS_PARAM_n ! USE MODD_ADV_n, ONLY : XRTKEMS USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_BLANK use modd_budget, only: lbudget_th, lbudget_rv, lbudget_rc, lbudget_ri, lbudget_sv, & NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RI, NBUDGET_SV1, & tbudgets, xtime_bu_process diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 3fc3e4c85..eb0e3b6b6 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -357,7 +357,7 @@ USE MODD_CONF_n USE MODD_NSV, ONLY: NSV use modd_precision, only: LFIINT, MNHREAL_MPI, MNHTIME ! -USE MODN_BLANK +USE MODN_BLANK_n ! USE MODE_THERMO USE MODE_POS @@ -691,8 +691,8 @@ CALL POSNAM(NLUPRE,'NAM_GRIDH_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_GRIDH_PRE) CALL POSNAM(NLUPRE,'NAM_VPROF_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_VPROF_PRE) -CALL POSNAM(NLUPRE,'NAM_BLANK',GFOUND,NLUOUT) -IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_BLANK) +CALL POSNAM(NLUPRE,'NAM_BLANKn',GFOUND,NLUOUT) +IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_BLANKn) CALL READ_PRE_IDEA_NAM_n(NLUPRE,NLUOUT) CALL POSNAM(NLUPRE,'NAM_AERO_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_AERO_PRE) diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index a33a405bc..c15b8e4b1 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -92,7 +92,7 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE !* 0. DECLARATIONS !------------ ! -USE MODD_BLANK +USE MODD_BLANK_n, ONLY: CDUMMY1 USE MODD_CH_AEROSOL, ONLY: CORGANIC, NCARB, NSOA, NSP, LORILAM,& JPMODE, LVARSIGI, LVARSIGJ,CAERONAMES USE MODD_CH_M9_n, ONLY: NEQ , CNAMES diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index b32584f8e..4fc913e4b 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -222,7 +222,7 @@ USE MODN_LBC_n USE MODN_NUDGING_n USE MODN_TURB_n USE MODN_FRC -USE MODN_BLANK +USE MODN_BLANK_n USE MODN_CH_SOLVER_n USE MODN_CH_MNHC_n USE MODN_PARAM_C2R2, ONLY : HPARAM_CCN_C2R2=>HPARAM_CCN,HINI_CCN_C2R2=>HINI_CCN, & @@ -542,8 +542,8 @@ IF (KMI == 1) THEN IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_LES) CALL POSNAM(ILUDES,'NAM_PDF',GFOUND) IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_PDF) - CALL POSNAM(ILUDES,'NAM_BLANK',GFOUND) - IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_BLANK) + CALL POSNAM(ILUDES,'NAM_BLANKn',GFOUND) + IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_BLANKn) CALL POSNAM(ILUDES,'NAM_FRC',GFOUND) IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_FRC) CALL POSNAM(ILUDES,'NAM_PARAM_ICE',GFOUND) @@ -695,7 +695,10 @@ IF (NVERB >= 10) THEN WRITE(UNIT=ILUOUT,NML=NAM_CH_SOLVERn) ! WRITE(UNIT=ILUOUT,FMT="('********** BLOWSNOWn *******************')") - WRITE(UNIT=ILUOUT,NML=NAM_BLOWSNOWn) + WRITE(UNIT=ILUOUT,NML=NAM_BLOWSNOWn) +! + WRITE(UNIT=ILUOUT,FMT="('************ BLANKn ****************************')") + WRITE(UNIT=ILUOUT,NML=NAM_BLANKn) ! IF (KMI==1) THEN WRITE(UNIT=ILUOUT,FMT="(/,'PART OF INITIAL FILE COMMON TO ALL THE MODELS')") @@ -755,9 +758,6 @@ IF (NVERB >= 10) THEN ! WRITE(UNIT=ILUOUT,FMT="('************ PDF ******************************')") WRITE(UNIT=ILUOUT,NML=NAM_PDF) -! - WRITE(UNIT=ILUOUT,FMT="('************ BLANK ****************************')") - WRITE(UNIT=ILUOUT,NML=NAM_BLANK) ! WRITE(UNIT=ILUOUT,FMT="('************ FORCING **************************')") WRITE(UNIT=ILUOUT,NML=NAM_FRC) diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 9489c0986..170904e60 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -338,7 +338,7 @@ USE MODI_TEST_NAM_VAR USE MODN_2D_FRC USE MODN_ADV_n ! The final filling of these modules for the model n is USE MODN_BACKUP -USE MODN_BLANK +USE MODN_BLANK_n USE MODN_BLOWSNOW USE MODN_BLOWSNOW_n USE MODN_BUDGET @@ -479,6 +479,7 @@ CALL INIT_NAM_PARAM_MFSHALLN CALL INIT_NAM_LBCN CALL INIT_NAM_NUDGINGN CALL INIT_NAM_TURBN +CALL INIT_NAM_BLANKN CALL INIT_NAM_DRAGN CALL INIT_NAM_CH_MNHCN CALL INIT_NAM_CH_SOLVERN @@ -520,6 +521,8 @@ CALL POSNAM(ILUSEG,'NAM_CH_SOLVERN',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_CH_SOLVERn) CALL POSNAM(ILUSEG,'NAM_SERIESN',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_SERIESn) +CALL POSNAM(ILUSEG,'NAM_BLANKN',GFOUND,ILUOUT) +IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BLANKn) CALL POSNAM(ILUSEG,'NAM_BLOWSNOWN',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BLOWSNOWn) CALL POSNAM(ILUSEG,'NAM_DRAGTREEN',GFOUND,ILUOUT) @@ -772,8 +775,6 @@ IF (KMI == 1) THEN IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_MEAN) CALL POSNAM(ILUSEG,'NAM_PDF',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PDF) - CALL POSNAM(ILUSEG,'NAM_BLANK',GFOUND,ILUOUT) - IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_BLANK) CALL POSNAM(ILUSEG,'NAM_FRC',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_FRC) CALL POSNAM(ILUSEG,'NAM_PARAM_ICE',GFOUND,ILUOUT) @@ -2913,6 +2914,7 @@ CALL UPDATE_NAM_PARAM_MFSHALLN CALL UPDATE_NAM_LBCN CALL UPDATE_NAM_NUDGINGN CALL UPDATE_NAM_TURBN +CALL UPDATE_NAM_BLANKN CALL UPDATE_NAM_CH_MNHCN CALL UPDATE_NAM_CH_SOLVERN CALL UPDATE_NAM_SERIESN diff --git a/src/MNH/read_ver_grid.f90 b/src/MNH/read_ver_grid.f90 index fb5ee72d1..a78e3b777 100644 --- a/src/MNH/read_ver_grid.f90 +++ b/src/MNH/read_ver_grid.f90 @@ -114,7 +114,7 @@ USE MODE_POS ! USE MODI_DEFAULT_SLEVE ! -USE MODN_BLANK +USE MODN_BLANK_n ! IMPLICIT NONE ! @@ -194,8 +194,8 @@ XLEN2_n = XLEN2 ! IF (CPROGRAM=='REAL ') THEN IF (ASSOCIATED (XZHAT) ) DEALLOCATE(XZHAT) - CALL POSNAM(IPRE_REAL1,'NAM_BLANK',GFOUND,ILUOUT0) - IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_BLANK) + CALL POSNAM(IPRE_REAL1,'NAM_BLANKn',GFOUND,ILUOUT0) + IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_BLANKn) END IF ! IKB=JPVEXT+1 diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 3392212b1..2a6fafdf7 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -94,7 +94,7 @@ USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_REF USE MODD_SPAWN -USE MODN_BLANK +USE MODN_BLANK_n USE MODD_NSV USE MODN_CONFZ ! @@ -192,8 +192,8 @@ CALL INIT_NMLVAR CALL POSNAM(ILUSPA,'NAM_SPAWN_SURF',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_SPAWN_SURF) CALL UPDATE_MODD_FROM_NMLVAR -CALL POSNAM(ILUSPA,'NAM_BLANK',GFOUND) -IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_BLANK) +CALL POSNAM(ILUSPA,'NAM_BLANKn',GFOUND) +IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_BLANKn) CALL POSNAM(ILUSPA,'NAM_CONFZ',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONFZ) CALL POSNAM(ILUSPA,'NAM_CONF_SPAWN',GFOUND) diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index c4e3511ee..fce78c562 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -323,7 +323,6 @@ USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV, ONLY: NSV -USE MODD_BLANK ! USE MODI_PRANDTL USE MODI_EMOIST diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index f91e26529..fda732eed 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -94,7 +94,7 @@ END MODULE MODI_WRITE_DESFM_n !! !! Module MODN_LES : contains declaration of the control parameters !! for Large Eddy Simulations' storages -!! Module MODN_BLANK: contains declaration of MesoNH developper variables +!! Module MODN_BLANK_n : contains declaration of MesoNH developper variables !! for test and debugging purposes. !! !! @@ -176,7 +176,7 @@ USE MODN_LUNIT_n USE MODN_LBC_n USE MODN_NUDGING_n USE MODN_TURB_n -USE MODN_BLANK +USE MODN_BLANK_n USE MODN_FRC USE MODN_CH_MNHC_n USE MODN_CH_SOLVER_n @@ -344,6 +344,9 @@ WRITE(UNIT=ILUSEG,NML=NAM_NUDGINGn) CALL INIT_NAM_TURBn IF(CTURB /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_TURBn) ! +CALL INIT_NAM_BLANKn +WRITE(UNIT=ILUSEG,NML=NAM_BLANKn) +! !IF (CPROGRAM/='MESONH') THEN ! LUSECHEM = .FALSE. ! LORILAM = .FALSE. @@ -408,7 +411,7 @@ IF(LBU_RRH) WRITE(UNIT=ILUSEG,NML=NAM_BU_RRH) IF(LBU_RSV) WRITE(UNIT=ILUSEG,NML=NAM_BU_RSV) IF(LLES_MEAN .OR. LLES_RESOLVED .OR. LLES_SUBGRID .OR. LLES_UPDRAFT & .OR. LLES_DOWNDRAFT .OR. LLES_SPECTRA) WRITE(UNIT=ILUSEG,NML=NAM_LES) -WRITE(UNIT=ILUSEG,NML=NAM_BLANK) +WRITE(UNIT=ILUSEG,NML=NAM_BLANKn) IF(LFORCING .OR. LTRANS) WRITE(UNIT=ILUSEG,NML=NAM_FRC) IF(CCLOUD(1:3) == 'ICE') WRITE(UNIT=ILUSEG,NML=NAM_PARAM_ICE) IF(CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') & @@ -562,7 +565,7 @@ IF (NVERB >= 5) THEN WRITE(UNIT=ILUOUT,NML=NAM_LES) ! WRITE(UNIT=ILUOUT,FMT="('************ BLANK ****************************')") - WRITE(UNIT=ILUOUT,NML=NAM_BLANK) + WRITE(UNIT=ILUOUT,NML=NAM_BLANKn) ! WRITE(UNIT=ILUOUT,FMT="('************ FORCING **************************')") WRITE(UNIT=ILUOUT,NML=NAM_FRC) -- GitLab