diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 index 664392f8aec4e80ce0cc881f70fc5c44dc2d8a46..7cb79db508b6720f8c1bfd0fda4c3561749d016d 100644 --- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 +++ b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 @@ -1,15 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- !! Authors !! ------- ! @@ -181,7 +174,7 @@ ! USE MODE_TOOLS_ll, ONLY : E_GET_DIM_EXT_ll => GET_DIM_EXT_ll ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! CALL E_GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM ) @@ -194,7 +187,7 @@ ! USE MODE_TOOLS_ll, ONLY : E_GET_DIM_PHYS_ll => GET_DIM_PHYS_ll ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! CALL E_GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM ) @@ -207,7 +200,7 @@ ! USE MODE_TOOLS_ll, ONLY : E_GET_OR_ll => GET_OR_ll ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXOR, KYOR ! CALL E_GET_OR_ll( HSPLIT, KXOR, KYOR ) @@ -577,7 +570,7 @@ ! LOGICAL :: LNORTH_ll INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! LNORTH_ll=E_LNORTH_ll( K, HSPLITTING ) ! @@ -591,7 +584,7 @@ ! LOGICAL :: LWEST_ll INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! LWEST_ll=E_LWEST_ll( K, HSPLITTING ) ! @@ -605,7 +598,7 @@ ! LOGICAL :: LEAST_ll INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! LEAST_ll=E_LEAST_ll( K, HSPLITTING ) ! @@ -619,7 +612,7 @@ ! LOGICAL :: LSOUTH_ll INTEGER, INTENT(IN), OPTIONAL :: K - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! LSOUTH_ll=E_LSOUTH_ll( K, HSPLITTING ) ! @@ -1355,7 +1348,7 @@ USE MODE_BOUNDARIES_ll, ONLY : E_UPDATE_BOUNDARIES_ll => UPDATE_BOUNDARIES_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! - CHARACTER*2, INTENT(IN) :: HDIRECTION + CHARACTER(len=2), INTENT(IN) :: HDIRECTION TYPE(LIST_ll), POINTER :: TPLIST INTEGER :: KINFO ! diff --git a/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90 b/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90 index 9fb2a907227f6247165d7a1d0092f3b5fc250e66..7c9c12611b078cafca503cae3085e7c890ec629c 100644 --- a/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ######################### MODULE MODE_BOUNDARIES_ll @@ -120,10 +112,10 @@ ! !* 0.1 declarations of arguments ! - CHARACTER*2, INTENT(IN) :: HDIRECTION - TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields - ! to be updated - INTEGER :: KINFO ! return status + CHARACTER(len=2), INTENT(IN) :: HDIRECTION + TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields + ! to be updated + INTEGER :: KINFO ! return status ! !* 0.2 declarations of local variables ! diff --git a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 index dec89ca379f9b9850675115ac64a81174c89ab45..dc4cf9d39fa9f5bdf90c5f426f04f4dbf210f475 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 @@ -212,7 +212,7 @@ TYPE(LIST_ll), POINTER :: TZFIELD ! INTEGER :: ICOUNT - CHARACTER*2 :: YCOUNT + CHARACTER(len=2) :: YCOUNT ! !------------------------------------------------------------------------------- ! diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 index d9bd7a2666576b244c0621cbe56ecc3b4b69cb84..1757a95d569e47ec4a0b6e9d004b0b4e8b49d07b 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 @@ -158,7 +158,7 @@ TYPE(LIST_ll), POINTER :: TZFIELD ! INTEGER :: ICOUNT - CHARACTER*2 :: YCOUNT + CHARACTER(len=2) :: YCOUNT ! !------------------------------------------------------------------------------- ! diff --git a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 index 5463a305dcd93f8ea093dd6ecdcf5d55e034cf8c..7f95f58a30ede1fa86c67d77968368b6b0c2c5e8 100644 --- a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 @@ -1,17 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - ! ######################## MODULE MODE_SPLITTING_ll ! ######################## @@ -659,9 +650,9 @@ CONTAINS ! !* 0.1 declarations of arguments ! - INTEGER, INTENT(IN) :: NB_PROC,X_DIM,Y_DIM,Z_DIM - CHARACTER*10, INTENT(IN) :: HSPLITTING ! kind of splitting - TYPE(ZONE_LL), INTENT(OUT), DIMENSION(NB_PROC) :: TPROC + INTEGER, INTENT(IN) :: NB_PROC, X_DIM, Y_DIM, Z_DIM + CHARACTER(len=10), INTENT(IN) :: HSPLITTING ! kind of splitting + TYPE(ZONE_LL), DIMENSION(NB_PROC), INTENT(OUT) :: TPROC ! !* 0.2 declarations of local variables ! diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 index 626cc3614f8a594ac5dfcb5b7f25af6c99dfd506..2626c5dc320d42fff1c13d1c1e50ede919782de8 100644 --- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 @@ -143,7 +143,7 @@ !* 0.1 declarations of arguments ! INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting ! !* 0.2 declarations of local variables ! @@ -225,7 +225,7 @@ !* 0.1 declarations of arguments ! INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting !! !* 0.2 declarations of local variables @@ -308,7 +308,7 @@ !* 0.1 declarations of arguments ! INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting !! !* 0.2 declarations of local variables @@ -392,7 +392,7 @@ !* 0.1 declarations of arguments ! INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting !! !* 0.2 declarations of local variables @@ -475,7 +475,7 @@ ! !* 0.1 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! @@ -549,7 +549,7 @@ ! !* 0.1 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! @@ -623,7 +623,7 @@ ! !* 0.1 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! INTEGER, INTENT(OUT) :: KXOR, KYOR ! @@ -3081,7 +3081,7 @@ ENDIF ! !* 0.1 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KOR ! !* 0.2 declarations of local variables @@ -3347,7 +3347,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB ! !* 0.0 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) ! REAL, DIMENSION(:), INTENT(IN) :: PSOURCE ! x-vector ! @@ -3458,7 +3458,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB ! !* 0.0 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) ! REAL, DIMENSION(:), INTENT(IN) :: PSOURCE ! x-vector ! @@ -3570,7 +3570,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB ! !* 0.0 declarations of arguments ! - CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) + CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y) ! REAL, DIMENSION(:,:), INTENT(IN) :: PSOURCE ! x-vector ! diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 index 8794b9e36973903f350540e66c5b0062c57f1d8f..e76d24d1dee8d995cc60e06084eebba6a43518d4 100644 --- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 @@ -229,7 +229,7 @@ !* 0.1 declarations of arguments ! INTEGER, INTENT(IN) :: NB_PROC,X_DIM,Y_DIM,Z_DIM - CHARACTER*10, INTENT(IN) :: HSPLITTING ! kind of splitting + CHARACTER(len=10), INTENT(IN) :: HSPLITTING ! kind of splitting TYPE(ZONE_LL), INTENT(OUT), DIMENSION(NB_PROC),TARGET :: TPROC ! !JUAN diff --git a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 b/src/LIB/SURCOUCHE/src/modi_get_ll.f90 index 504ba793f4b2fb5fbc38235068f9fd0a96123b33..f77ebb3ea5899a9b0d8e4f078c1fe13bd40ca116 100644 --- a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modi_get_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ################## MODULE MODI_GET_ll @@ -22,7 +14,7 @@ INTERFACE SUBROUTINE GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM ) !! ################################################## ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! END SUBROUTINE GET_DIM_EXT_ll @@ -31,7 +23,7 @@ INTERFACE SUBROUTINE GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM ) !! ################################################### ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXDIM, KYDIM ! END SUBROUTINE GET_DIM_PHYS_ll @@ -40,7 +32,7 @@ INTERFACE SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR ) !! ########################################## ! - CHARACTER*1, INTENT(IN) :: HSPLIT + CHARACTER(len=1), INTENT(IN) :: HSPLIT INTEGER, INTENT(OUT) :: KXOR, KYOR ! END SUBROUTINE GET_OR_ll diff --git a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 b/src/LIB/SURCOUCHE/src/modi_location_ll.f90 index a832fb7ce7ab75187250f62a83c2503e27f842d8..4f6e4cdea2fb14c649ed4ff0b1bb5c35e25358dd 100644 --- a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modi_location_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ####################### MODULE MODI_LOCATION_ll @@ -22,8 +14,8 @@ INTERFACE LOGICAL FUNCTION LNORTH_ll( K, HSPLITTING ) !! ########################################### ! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting ! END FUNCTION LNORTH_ll ! @@ -31,8 +23,8 @@ INTERFACE LOGICAL FUNCTION LWEST_ll( K, HSPLITTING ) !! ########################################## ! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting ! END FUNCTION LWEST_ll ! @@ -40,8 +32,8 @@ INTERFACE LOGICAL FUNCTION LSOUTH_ll( K, HSPLITTING ) !! ########################################### ! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting ! END FUNCTION LSOUTH_ll ! @@ -49,8 +41,8 @@ INTERFACE LOGICAL FUNCTION LEAST_ll( K, HSPLITTING ) !! ########################################## ! - INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain - CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting + INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain + CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting ! END FUNCTION LEAST_ll ! diff --git a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 b/src/LIB/SURCOUCHE/src/modi_update_ll.f90 index 046255d89fb9b201514f60fd887af7c6b6b68e7c..19479f91a80ccbda23799dfc55bdd65f61920905 100644 --- a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modi_update_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-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 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 CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ##################### MODULE MODI_UPDATE_ll @@ -47,7 +39,7 @@ INTERFACE ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! - CHARACTER*2, INTENT(IN) :: HDIRECTION + CHARACTER(len=2), INTENT(IN) :: HDIRECTION TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated INTEGER :: KINFO ! return status ! diff --git a/src/MNH/ares.f b/src/MNH/ares.f index 646a217f6cdc3264789c46ec40186a04b4520101..369f93348e863454dc4e20a63c5318914ab2fa8d 100644 --- a/src/MNH/ares.f +++ b/src/MNH/ares.f @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1987-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- c///////////////////////////////////////////////////////////////////////////// @@ -826,7 +826,7 @@ C.................................................................... INTEGER XSTAT3 ! Special error PARAMETER (XSTAT3 = 3) - CHARACTER*120 XMSG + CHARACTER(len=120) XMSG C...........PARAMETERS and their descriptions: @@ -846,7 +846,7 @@ C...........ARGUMENTS and their descriptions C...........SCRATCH LOCAL VARIABLES and their descriptions: - CHARACTER*16 PNAME ! driver program name + CHARACTER(len=16) PNAME ! driver program name SAVE PNAME INTEGER IAN ! anion indX diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index aeaeaa05e1482dfb0ba2561f5923eb1ef034195d..265452f1681cfa2797ae482ccd843fc3ce233e4b 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -17,33 +17,27 @@ INTERFACE ! USE MODD_IO, ONLY: TFILEDATA ! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the - ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of - ! the OUTPUT FM-file -LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid - ! Condensation -REAL, INTENT(IN) :: PTSTEP ! Double Time step - ! (single if cold start) -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source -! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux - ! s'rc'/2Sigma_s2 at time t+1 - ! multiplied by Lambda_3 -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. source +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the turbulence scheme +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of the OUTPUT file +LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid condensation +REAL, INTENT(IN) :: PTSTEP ! Double Time step (single if cold start) +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source +! +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux s'rc'/2Sigma_s2 at time t+1 times Lambda_3 +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. source ! END SUBROUTINE C2R2_ADJUST ! @@ -168,36 +162,27 @@ IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the - ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of - ! the OUTPUT FM-file -LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid - ! Condensation -REAL, INTENT(IN) :: PTSTEP ! Double Time step - ! (single if cold start) -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source -! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux - ! s'rc'/2Sigma_s2 at time t+1 - ! multiplied by Lambda_3 -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. source -! -! +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the turbulence scheme +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of the OUTPUT file +LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid condensation +REAL, INTENT(IN) :: PTSTEP ! Double Time step (single if cold start) +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source +! +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux s'rc'/2Sigma_s2 at time t+1 times Lambda_3 +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. source ! !* 0.2 Declarations of local variables : ! diff --git a/src/MNH/c3r5_adjust.f90 b/src/MNH/c3r5_adjust.f90 index 84f3114c250296cc3318b4a973211ecd4b012e2d..b286ac8c7bcf1b09dad24c2ffcb17d1b7077e254 100644 --- a/src/MNH/c3r5_adjust.f90 +++ b/src/MNH/c3r5_adjust.f90 @@ -16,51 +16,46 @@ INTERFACE PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, PRHS, & PCCT, PCIT, PCNUCS, PCCS, PINUCS, PCIS, & PTHS, PSRCS, PCLDFR ) - ! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the - ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid - ! Condensation -REAL, INTENT(IN) :: PTSTEP ! Time step -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Dry density of the - ! reference state -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Cloud ice m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRST ! Aggregate m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRGT ! Graupel m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. at t+1 -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Cloud ice m.r. at t+1 -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRSS ! Aggregate m.r. at t+1 -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRGS ! Graupel m.r. at t+1 -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHS ! Hail m.r. at t+1 -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIT ! Cloud ice conc. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINUCS ! Ice Nucl. conc. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIS ! Cloud ice conc. source -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux - ! s'rc'/2Sigma_s2 at time t+1 - ! multiplied by Lambda_3 -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction +! +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +INTEGER, INTENT(IN) :: KMI ! Model index +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the turbulence scheme +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid Condensation +REAL, INTENT(IN) :: PTSTEP ! Time step +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Dry density of the reference state +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function +REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Cloud ice m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRST ! Aggregate m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRGT ! Graupel m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRRS ! Rain water m.r. at t+1 +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Cloud ice m.r. at t+1 +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRSS ! Aggregate m.r. at t+1 +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRGS ! Graupel m.r. at t+1 +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHS ! Hail m.r. at t+1 +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCT ! Cloud water conc. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIT ! Cloud ice conc. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCNUCS ! Nucl. aero. conc. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCS ! Cloud water conc. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PINUCS ! Ice Nucl. conc. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIS ! Cloud ice conc. source +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux: s'rc'/2Sigma_s2 at time t+1 times Lambda_3 +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCLDFR ! Cloud fraction ! END SUBROUTINE C3R5_ADJUST ! diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90 index 39f3d2947b77cb9aafb9263f354fb6fa3a478b82..540a03306b94eb4c9c1501f269d4d09e6e87a004 100644 --- a/src/MNH/ch_emission_flux0d.f90 +++ b/src/MNH/ch_emission_flux0d.f90 @@ -14,7 +14,7 @@ IMPLICIT NONE REAL, INTENT(IN) :: PTIME ! time of simulation in sec UTC ! (counting from midnight) REAL, DIMENSION(NEQ), INTENT(OUT) :: PFLUX ! emission flux in ppp*m/s -CHARACTER*(*), INTENT(IN) :: HINPUTFILE ! name of the input file +CHARACTER(len=*), INTENT(IN) :: HINPUTFILE ! name of the input file INTEGER, INTENT(IN) :: KLUOUT ! output listing channel INTEGER, INTENT(IN) :: KVERB ! verbosity level END SUBROUTINE CH_EMISSION_FLUX0D @@ -97,15 +97,15 @@ IMPLICIT NONE REAL, INTENT(IN) :: PTIME ! time of simulation in sec UTC ! (counting from midnight) REAL, DIMENSION(NEQ), INTENT(OUT) :: PFLUX ! emission flux in ppp*m/s -CHARACTER*(*), INTENT(IN) :: HINPUTFILE ! name of the input file +CHARACTER(len=*), INTENT(IN) :: HINPUTFILE ! name of the input file INTEGER, INTENT(IN) :: KLUOUT ! output listing channel INTEGER, INTENT(IN) :: KVERB ! verbosity level ! !* 0.2 declaration of local variables ! INTEGER :: JI, JJ ! loop control -CHARACTER*80 :: YCOMMENT ! comment line in the input file -CHARACTER*80 :: YFORMAT ! format of the input data +CHARACTER(len=80) :: YCOMMENT ! comment line in the input file +CHARACTER(len=80) :: YFORMAT ! format of the input data INTEGER :: ICHEMIS ! number of variables for which a flux is given ! in the input file INTEGER :: IIO ! I/O channel diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90 index aed9e28b8e028a40bdf8509717d5b76f57a44855..9a8388966ef3e1fdb095d86476d1bca823c81414 100644 --- a/src/MNH/ch_f77.fx90 +++ b/src/MNH/ch_f77.fx90 @@ -1104,7 +1104,7 @@ C 1 PT2, RH, RTOLI, SIZE, TCRIT, TNEXT, TOLSF, TP, TWO, ZERO INTEGER I, IER, IFLAG, IMXER, JCO, KGO, LENIW, LENJ, LENP, LENRW, 1 LENWM, LF0, MBAND, ML, MORD, MU, MXHNL0, MXSTP0, NITER, NSLAST - CHARACTER*80 MSG + CHARACTER(len=80) MSG C C Type declaration for function subroutines called --------------------- C @@ -1943,7 +1943,7 @@ C Type declarations for local variables -------------------------------- C REAL C, HUN, R, S, TFUZZ, TN1, TP, ZERO INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1 - CHARACTER*80 MSG + CHARACTER(len=80) MSG C----------------------------------------------------------------------- C The following Fortran-77 declaration is to cause the values of the C listed (local) variables to be saved between calls to this integrator. @@ -3660,8 +3660,8 @@ C ################################################################## INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR C CKS: changed to adapt to Fortran90 -C CHARACTER*1 MSG(NMES) - CHARACTER*(*) MSG +C CHARACTER(len=1) MSG(NMES) + CHARACTER(len=*) MSG C----------------------------------------------------------------------- C Subroutines XERRWV, XSETF, XSETUN, and the two function routines C MFLGSV and LUNSAV, as given here, constitute a simplified version of @@ -4650,7 +4650,7 @@ c INCLUDE 'params' INTEGER nj, ij REAL sj(kj,kz,kw), valj(kj,kz) REAL djdw - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER tpflag(kj) **** Re-scaling factors (can be read from input file) @@ -4685,13 +4685,13 @@ c INCLUDE 'params' * input/output control LOGICAL intrct - CHARACTER*6 inpfil, outfil + CHARACTER(len=6) inpfil, outfil INTEGER iout REAL dirsun, difdn, difup - CHARACTER*1 again + CHARACTER(len=1) again * Save arrays for output: @@ -4720,7 +4720,7 @@ C REAL, INTENT(IN) :: lwc(nlevel) INTEGER, INTENT(IN) :: njout REAL, INTENT(OUT) :: jout(nlevel,njout) - CHARACTER*40, INTENT(OUT) :: jlabelout(njout) + CHARACTER(len=40), INTENT(OUT) :: jlabelout(njout) C LOGICAL LFIRSTCALL DATA LFIRSTCALL /.TRUE./ @@ -5403,8 +5403,8 @@ c INCLUDE 'params' REAL wincr INTEGER iw, i - CHARACTER*40 fi - CHARACTER*20 wlabel + CHARACTER(len=40) fi + CHARACTER(len=20) wlabel REAL airout INTEGER mrefr @@ -8860,7 +8860,7 @@ c c INCLUDE 'params' * work arrays for input data files: - CHARACTER*40 fil + CHARACTER(len=40) fil REAL x1(kdata) REAL y1(kdata) INTEGER nhead, n, i, ierr @@ -9513,7 +9513,7 @@ c c INCLUDE 'params' REAL lambda INTEGER ierr INTEGER i, j, n - CHARACTER*40 FIL + CHARACTER(len=40) FIL *_______________________________________________________________________ @@ -11235,7 +11235,7 @@ c INCLUDE 'params' REAL dum INTEGER ierr INTEGER i, n, idum - CHARACTER*40 fil + CHARACTER(len=40) fil ************* NO2 absorption cross sections * measurements by: @@ -11877,7 +11877,7 @@ c INCLUDE 'params' REAL dum INTEGER ierr INTEGER i, l, n, idum - CHARACTER*40 fil + CHARACTER(len=40) fil *_______________________________________________________________________ ************* absorption cross sections: @@ -17790,7 +17790,7 @@ c after making symbolic dump (machine-specific) use mode_msg LOGICAL FATAL, MsgLim, Cray - CHARACTER*(*) MESSAG + CHARACTER(len=*) MESSAG INTEGER MaxMsg, NumMsg SAVE MaxMsg, NumMsg, MsgLim DATA NumMsg / 0 /, MaxMsg / 100 /, MsgLim / .FALSE. / @@ -17826,7 +17826,7 @@ c INPUT : VarNam = Name of erroneous variable to be written c ( CHARACTER, any length ) IMPLICIT NONE - CHARACTER*(*) VarNam + CHARACTER(len=*) VarNam LOGICAL WrtBad INTEGER MaxMsg, NumMsg SAVE NumMsg, MaxMsg @@ -17856,7 +17856,7 @@ c Minval = Value to which that dimension should be c increased (at least) IMPLICIT NONE - CHARACTER*(*) DimNam + CHARACTER(len=*) DimNam INTEGER MinVal LOGICAL WrtDim @@ -17877,7 +17877,7 @@ c Write name (VarNam) of variable failing self-test and its c percent error from the correct value; return 'FALSE'. IMPLICIT NONE - CHARACTER*(*) VarNam + CHARACTER(len=*) VarNam REAL RelErr LOGICAL TstBad @@ -19728,7 +19728,7 @@ CCC FILE rxn.f *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -19802,7 +19802,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -20188,7 +20188,7 @@ c myld = kjpl00 *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -20262,7 +20262,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -20431,7 +20431,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -20504,7 +20504,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -20841,7 +20841,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -20915,7 +20915,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -21046,7 +21046,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* *= EDIT HISTORY: =* @@ -21123,7 +21123,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -21248,7 +21248,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -21322,7 +21322,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -21458,7 +21458,7 @@ C ENDDO *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -21532,7 +21532,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -21622,7 +21622,7 @@ C* local *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -21696,7 +21696,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -21860,7 +21860,7 @@ C ENDIF *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -21934,7 +21934,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -22210,7 +22210,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -22287,7 +22287,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -22832,7 +22832,7 @@ c ENDDO *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -22906,7 +22906,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -23328,7 +23328,7 @@ c x = yg4(iw) *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -23402,7 +23402,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -23587,7 +23587,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -23661,7 +23661,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -24021,7 +24021,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -24095,7 +24095,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -24505,7 +24505,7 @@ c kq = 1.93e4 * EXP(-5639/wc(iw)) *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -24579,7 +24579,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -24928,7 +24928,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -25002,7 +25002,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -25224,7 +25224,7 @@ c $ STATUS='old') *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -25298,7 +25298,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -25646,7 +25646,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -25720,7 +25720,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -25863,7 +25863,7 @@ C ENDIF *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -25937,7 +25937,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26027,7 +26027,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -26101,7 +26101,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26261,7 +26261,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -26335,7 +26335,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26426,7 +26426,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -26500,7 +26500,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26592,7 +26592,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -26666,7 +26666,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26786,7 +26786,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -26860,7 +26860,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -26979,7 +26979,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27053,7 +27053,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -27146,7 +27146,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27220,7 +27220,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -27317,7 +27317,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27391,7 +27391,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -27488,7 +27488,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27562,7 +27562,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -27655,7 +27655,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27729,7 +27729,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -27873,7 +27873,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -27947,7 +27947,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28090,7 +28090,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -28164,7 +28164,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28258,7 +28258,7 @@ C INTEGER n1, n2, n3, n4, n5 *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -28332,7 +28332,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28346,7 +28346,7 @@ c INCLUDE 'params' INTEGER i, iw, idum INTEGER iz, k REAL lambda, sum - CHARACTER*120 inline + CHARACTER(len=120) inline REAL coeff(4,3), TBar, LBar @@ -28466,7 +28466,7 @@ C the measurements beyond 220 nm are very large (Orlando, priv.comm.) *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -28537,7 +28537,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28554,7 +28554,7 @@ c INCLUDE 'params' INTEGER i, iw, n, idum INTEGER iz, k REAL lambda, sum - CHARACTER*120 inline + CHARACTER(len=120) inline REAL coeff(4,3), TBar, LBar @@ -28670,7 +28670,7 @@ C ENDDO *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -28744,7 +28744,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28839,7 +28839,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -28912,7 +28912,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -28927,7 +28927,7 @@ c INCLUDE 'params' INTEGER ierr INTEGER iz, k REAL lambda, sum - CHARACTER*80 inline + CHARACTER(len=80) inline REAL coeff(4,3), TBar, LBar @@ -29053,7 +29053,7 @@ c sq(j,iz,iw) = qy * EXP(sum) *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -29127,7 +29127,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -29222,7 +29222,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -29296,7 +29296,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -29391,7 +29391,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -29465,7 +29465,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -29653,7 +29653,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -29727,7 +29727,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -29829,7 +29829,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -29903,7 +29903,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -29998,7 +29998,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30072,7 +30072,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -30167,7 +30167,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30241,7 +30241,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -30336,7 +30336,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30410,7 +30410,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -30506,7 +30506,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30578,7 +30578,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -30667,7 +30667,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30741,7 +30741,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -30876,7 +30876,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -30950,7 +30950,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -31049,7 +31049,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -31123,7 +31123,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -31252,7 +31252,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -31326,7 +31326,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -31468,7 +31468,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -31542,7 +31542,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -31675,7 +31675,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -31749,7 +31749,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -31880,7 +31880,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -31954,7 +31954,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32057,7 +32057,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32131,7 +32131,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32260,7 +32260,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32334,7 +32334,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32446,7 +32446,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32520,7 +32520,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32631,7 +32631,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32703,7 +32703,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32779,7 +32779,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32851,7 +32851,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -32927,7 +32927,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -32999,7 +32999,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33073,7 +33073,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -33147,7 +33147,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33242,7 +33242,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -33316,7 +33316,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33442,7 +33442,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -33514,7 +33514,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33578,7 +33578,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -33651,7 +33651,7 @@ c INCLUDE 'params' * output weighting functions INTEGER j - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33724,7 +33724,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -33799,7 +33799,7 @@ c INCLUDE 'params' * output weighting functions INTEGER j - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -33942,7 +33942,7 @@ c INCLUDE 'params' REAL wl(kw), wc(kw), tlev(kz), airden(kz) * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34105,7 +34105,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -34179,7 +34179,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34278,7 +34278,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -34352,7 +34352,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34472,7 +34472,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -34546,7 +34546,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34646,7 +34646,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -34720,7 +34720,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34826,7 +34826,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -34900,7 +34900,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -34999,7 +34999,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35073,7 +35073,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -35167,7 +35167,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35241,7 +35241,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -35383,7 +35383,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35457,7 +35457,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -35581,7 +35581,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35655,7 +35655,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -35748,7 +35748,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35823,7 +35823,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -35917,7 +35917,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -35991,7 +35991,7 @@ C INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -36088,7 +36088,7 @@ C INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -36162,7 +36162,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -36254,7 +36254,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -36328,7 +36328,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -36539,7 +36539,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -36613,7 +36613,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -36764,7 +36764,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -36838,7 +36838,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -36938,7 +36938,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37012,7 +37012,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -37111,7 +37111,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37185,7 +37185,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -37282,7 +37282,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37356,7 +37356,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -37458,7 +37458,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37532,7 +37532,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -37628,7 +37628,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37704,7 +37704,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -37889,7 +37889,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -37963,7 +37963,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38058,7 +38058,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -38132,7 +38132,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38227,7 +38227,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -38301,7 +38301,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38420,7 +38420,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -38494,7 +38494,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38613,7 +38613,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -38687,7 +38687,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38787,7 +38787,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -38861,7 +38861,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -38961,7 +38961,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -39035,7 +39035,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -39133,7 +39133,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -39207,7 +39207,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -39303,7 +39303,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -39377,7 +39377,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -39491,7 +39491,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -39565,7 +39565,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -39658,7 +39658,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -39732,7 +39732,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -39827,7 +39827,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* *= Routine added by M. Leriche for specie KETH and KETL of CACM, ReLACS2 =* @@ -39904,7 +39904,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -40003,7 +40003,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* *= Routine added by M. Leriche for BALD in RACM2 mecanism - March 2018 =* @@ -40079,7 +40079,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -40175,7 +40175,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* *= Routine added by M. Leriche for ReLACS-AQ and ReLACS3 mecanisms =* @@ -40252,7 +40252,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -40355,7 +40355,7 @@ c INCLUDE 'params' *= SQ - REAL, cross section x quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* *= Routine added by M. Leriche for ReLACS-AQ and ReLACS3 mecanisms =* @@ -40432,7 +40432,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) INTEGER TPFLAG(kj) REAL sq(kj,kz,kw) @@ -41794,7 +41794,7 @@ c INCLUDE 'params' REAL a1, a2, dum INTEGER ierr INTEGER i,l,m, n, idum - CHARACTER*40 fil + CHARACTER(len=40) fil *_______________________________________________________________________ ************* absorption cross sections: @@ -42440,7 +42440,7 @@ CCC FILE swchem.f *= SQ - REAL, cross section * quantum yield (cm^2) for each (O)=* *= photolysis reaction defined, at each defined wavelength and =* *= at each defined altitude level =* -*= JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=* +*= JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=* *= defined =* *-----------------------------------------------------------------------------* @@ -42514,7 +42514,7 @@ c INCLUDE 'params' * weighting functions - CHARACTER*50 jlabel(kj) + CHARACTER(len=50) jlabel(kj) REAL sq(kj,kz,kw) INTEGER tpflag(kj) diff --git a/src/MNH/ch_init_diagnostics.f90 b/src/MNH/ch_init_diagnostics.f90 index 9d7b72e9f60184e3a8445371081c7fc3e935b8f3..a3c4783a893b3205ee2657966f3ee2f67a940db0 100644 --- a/src/MNH/ch_init_diagnostics.f90 +++ b/src/MNH/ch_init_diagnostics.f90 @@ -62,8 +62,8 @@ IMPLICIT NONE !* 0.2 Declaration of local variables ! ---------------------------------- ! -CHARACTER*8 :: YDATE ! for retrieval of date and time -CHARACTER*10 :: YTIME ! dito +CHARACTER(len=8) :: YDATE ! for retrieval of date and time +CHARACTER(len=10) :: YTIME ! dito ! INTEGER :: JI !INTEGER, DIMENSION(2, NNONZEROTERMS) :: IINDEX ! indices of non-zero terms diff --git a/src/MNH/ch_init_jvalues.f90 b/src/MNH/ch_init_jvalues.f90 index 72cb3783fe6e8134e495ffe6cb7898cc944a6f38..df8e26e72607081300dc8a4427b1e032ed103dcf 100644 --- a/src/MNH/ch_init_jvalues.f90 +++ b/src/MNH/ch_init_jvalues.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-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 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 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ############################ MODULE MODI_CH_INIT_JVALUES ! ############################ @@ -104,12 +99,12 @@ INTEGER :: IDATE ! ! J value storage ! -CHARACTER*40, DIMENSION(JPJVMAX) :: YLABELOUT -REAL, DIMENSION(NZZ_JVAL,JPJVMAX) :: ZJOUT +CHARACTER(len=40), DIMENSION(JPJVMAX) :: YLABELOUT +REAL, DIMENSION(NZZ_JVAL,JPJVMAX) :: ZJOUT ! ! Parameters for interpolation ! -INTEGER :: JALB, JKLEV, JSZA, JJVAL +INTEGER :: JALB, JKLEV, JSZA, JJVAL ! !---------------------------------------------------------------------------- ! diff --git a/src/MNH/ch_init_model0d.f90 b/src/MNH/ch_init_model0d.f90 index acf9882dbf941aca731bea1f232f27150de0c6af..f641bf9f6bb503cd934dc7b2191f639aeae7acb2 100644 --- a/src/MNH/ch_init_model0d.f90 +++ b/src/MNH/ch_init_model0d.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE CH_INIT_MODEL0D(HNAMELISTFILE) IMPLICIT NONE -CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE +CHARACTER(len=*), INTENT(IN) :: HNAMELISTFILE END SUBROUTINE CH_INIT_MODEL0D END INTERFACE END MODULE MODI_CH_INIT_MODEL0D @@ -69,7 +69,7 @@ USE MODN_CH_SOLVER_n ! ----------------- IMPLICIT NONE -CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE ! name of namelist input file +CHARACTER(len=*), INTENT(IN) :: HNAMELISTFILE ! name of namelist input file INTEGER :: ILU ! unit number for IO diff --git a/src/MNH/ch_init_output.f90 b/src/MNH/ch_init_output.f90 index d6d4e7bc6dbc6fe4da7e4027e0b4441433b3b5f9..289dacebb6851753ca997051166d0dfd7ab673bb 100644 --- a/src/MNH/ch_init_output.f90 +++ b/src/MNH/ch_init_output.f90 @@ -74,8 +74,8 @@ TYPE(METEOTRANSTYPE), INTENT(IN) :: TPM ! the meteo variables ! !* 0.2 declaration of local variables ! -CHARACTER*8 :: YDATE ! for retrieval of date and time -CHARACTER*10 :: YTIME ! dito +CHARACTER(len=8) :: YDATE ! for retrieval of date and time +CHARACTER(len=10) :: YTIME ! dito INTEGER :: JI ! loop control INTEGER :: NAERO ! diff --git a/src/MNH/ch_isoropia.f90 b/src/MNH/ch_isoropia.f90 index 589919ed5c49033e99a3232c5e566ab07c74f3a8..033949968c9b11e0e920e58ff82fd3e80e11a868 100644 --- a/src/MNH/ch_isoropia.f90 +++ b/src/MNH/ch_isoropia.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-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 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 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ######################## MODULE MODI_CH_ISOROPIA !! ######################## @@ -132,7 +127,7 @@ END MODULE MODI_CH_ISOROPIA ! AERSLD(09) - (NH4)4H(SO4)2(s) ! ! 5. [SCASI] -! CHARACTER*15 variable. +! CHARACTER(len=15) variable. ! Returns the subcase which the input corresponds to. ! ! 6. [OTHER] diff --git a/src/MNH/ch_make_lookup.f90 b/src/MNH/ch_make_lookup.f90 index dfc9b592c7cd010170c0e298b38419a981a31ad0..aac6f60374547d6ea71d3c516754ed42b194b6af 100644 --- a/src/MNH/ch_make_lookup.f90 +++ b/src/MNH/ch_make_lookup.f90 @@ -84,13 +84,13 @@ REAL :: ZMAX = 30E3 ! MAXIMUM HEIGHT FOR WHICH J-VALUES WILL BE COMPUTED INTEGER, PARAMETER :: NJOUT = 21 REAL, DIMENSION(NLEVEL,NJOUT) :: JOUT REAL, DIMENSION(NLEVEL, NJOUT, NTIME) :: JDATA -CHARACTER*40, DIMENSION(NJOUT) :: JLABELOUT +CHARACTER(len=40), DIMENSION(NJOUT) :: JLABELOUT ! -CHARACTER*120 :: HEADDER -REAL :: UT -INTEGER :: ILU ! unit number for IO -INTEGER :: I, J, K, NJIO -CHARACTER*40 :: YFMT = '(2F11.2,5E11.4/99(7E11.4/))' +CHARACTER(len=120) :: HEADDER +REAL :: UT +INTEGER :: ILU ! unit number for IO +INTEGER :: I, J, K, NJIO +CHARACTER(len=40) :: YFMT = '(2F11.2,5E11.4/99(7E11.4/))' ! ! NAMELIST for options NAMELIST /NAM_TUV/ ALAT, ALONG, IDATE, ALBNEW, DOBNEW diff --git a/src/MNH/ch_model0d.f90 b/src/MNH/ch_model0d.f90 index fbff58f803bca28cbadd31c2389c8b635a3f9a7d..e93cb849380821c0c1e048459efa72d0f50a4465 100644 --- a/src/MNH/ch_model0d.f90 +++ b/src/MNH/ch_model0d.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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. @@ -94,7 +94,7 @@ USE MODE_MODELN_HANDLER ! ----------------- IMPLICIT NONE ! -CHARACTER*256 :: YNAMELISTFILE = "CHCONTROL1.nam" ! namelist input file +CHARACTER(len=256) :: YNAMELISTFILE = "CHCONTROL1.nam" ! namelist input file ! ! reaction rates and auxiliary variables TYPE(CCSTYPE), POINTER :: TZK diff --git a/src/MNH/ch_read_vector.f90 b/src/MNH/ch_read_vector.f90 index 0d954de8b46543df3382129fef3da24371ff8324..c02e9d7365ead496279aced0278a4cd638545fa7 100644 --- a/src/MNH/ch_read_vector.f90 +++ b/src/MNH/ch_read_vector.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-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 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 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ########################## MODULE MODI_CH_READ_VECTOR !! ########################## @@ -17,20 +12,13 @@ INTERFACE SUBROUTINE CH_READ_VECTOR(KEQ, HNAMES, PVAR, PDEFAULT, KIN, KOUT, KVERB) IMPLICIT NONE !! -INTEGER, INTENT(IN) :: KEQ - ! number of variables to be defined -CHARACTER*(*), DIMENSION(KEQ), INTENT(IN) :: HNAMES - ! names of the variables to be defined -REAL, DIMENSION(KEQ), INTENT(OUT):: PVAR - ! value of the variable to be read -REAL, INTENT(IN) :: PDEFAULT - ! default value -INTEGER, INTENT(IN) :: KIN - ! I/O channel for file input -INTEGER, INTENT(IN) :: KOUT - ! I/O channel for printing -INTEGER, INTENT(IN) :: KVERB - ! verbosity level +INTEGER, INTENT(IN) :: KEQ ! number of variables to be defined +CHARACTER(len=*), DIMENSION(KEQ), INTENT(IN) :: HNAMES ! names of the variables to be defined +REAL, DIMENSION(KEQ), INTENT(OUT) :: PVAR ! value of the variable to be read +REAL, INTENT(IN) :: PDEFAULT ! default value +INTEGER, INTENT(IN) :: KIN ! I/O channel for file input +INTEGER, INTENT(IN) :: KOUT ! I/O channel for printing +INTEGER, INTENT(IN) :: KVERB ! verbosity level END SUBROUTINE CH_READ_VECTOR !! END INTERFACE @@ -90,20 +78,13 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -INTEGER, INTENT(IN) :: KEQ - ! number of variables to be defined -CHARACTER*(*), DIMENSION(KEQ), INTENT(IN) :: HNAMES - ! names of the variables to be defined -REAL, DIMENSION(KEQ), INTENT(OUT):: PVAR - ! value of the variable to be read -REAL, INTENT(IN) :: PDEFAULT - ! default value -INTEGER, INTENT(IN) :: KIN - ! I/O channel for file input -INTEGER, INTENT(IN) :: KOUT - ! I/O channel for printing -INTEGER, INTENT(IN) :: KVERB - ! verbosity level +INTEGER, INTENT(IN) :: KEQ ! number of variables to be defined +CHARACTER(len=*), DIMENSION(KEQ), INTENT(IN) :: HNAMES ! names of the variables to be defined +REAL, DIMENSION(KEQ), INTENT(OUT) :: PVAR ! value of the variable to be read +REAL, INTENT(IN) :: PDEFAULT ! default value +INTEGER, INTENT(IN) :: KIN ! I/O channel for file input +INTEGER, INTENT(IN) :: KOUT ! I/O channel for printing +INTEGER, INTENT(IN) :: KVERB ! verbosity level ! !* 0.2 declarations of local variables ! diff --git a/src/MNH/ch_update_jvalues.f90 b/src/MNH/ch_update_jvalues.f90 index 257c6e07da298c97677704946ea4fd887ec72b06..f62d1d96eb657846610f5e8988627f9c417ee1c7 100644 --- a/src/MNH/ch_update_jvalues.f90 +++ b/src/MNH/ch_update_jvalues.f90 @@ -22,26 +22,26 @@ USE MODD_CH_INIT_JVALUES, ONLY : JPJVMAX ! IMPLICIT NONE -INTEGER, INTENT(IN) :: KLON ! dimension I -INTEGER, INTENT(IN) :: KLAT ! dimension J -INTEGER, INTENT(IN) :: KLEV ! Number of vertical levels -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -REAL, INTENT(IN) :: PLAT0, PLON0 -REAL, DIMENSION(KLON,KLAT), INTENT(IN) :: PZENITH, PALB_UV, PZS -REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ -REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PRHODREF -REAL, DIMENSION(KLON,KLAT,KLEV,KRR), INTENT(IN) :: PRT -INTEGER, INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date -REAL, INTENT(IN) :: PTIME ! current time (s) -INTEGER, INTENT(IN) :: KLUOUT -LOGICAL, INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table -CHARACTER*4, INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation -REAL, INTENT(IN) :: PALBNEW ! surface albedo -REAL, INTENT(IN) :: PDOBNEW ! ozone column dobson -REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES ! Tuv coefficients -INTEGER, INTENT(IN) :: KVERB ! verbosity level -INTEGER, INTENT(IN) :: NIB,NIE,NJB,NJE,NIU,NJU ! domain dim -!! +! +INTEGER, INTENT(IN) :: KLON ! dimension I +INTEGER, INTENT(IN) :: KLAT ! dimension J +INTEGER, INTENT(IN) :: KLEV ! Number of vertical levels +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +REAL, INTENT(IN) :: PLAT0, PLON0 +REAL, DIMENSION(KLON,KLAT), INTENT(IN) :: PZENITH, PALB_UV, PZS +REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ +REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PRHODREF +REAL, DIMENSION(KLON,KLAT,KLEV,KRR), INTENT(IN) :: PRT +INTEGER, INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date +REAL, INTENT(IN) :: PTIME ! current time (s) +INTEGER, INTENT(IN) :: KLUOUT +LOGICAL, INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table +CHARACTER(len=4), INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation +REAL, INTENT(IN) :: PALBNEW ! surface albedo +REAL, INTENT(IN) :: PDOBNEW ! ozone column dobson +REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES ! Tuv coefficients +INTEGER, INTENT(IN) :: KVERB ! verbosity level +INTEGER, INTENT(IN) :: NIB,NIE,NJB,NJE,NIU,NJU ! domain dim ! END SUBROUTINE CH_UPDATE_JVALUES ! @@ -108,25 +108,25 @@ USE MODD_PARAMETERS !! ------------------ IMPLICIT NONE -INTEGER, INTENT(IN) :: KLON !NPROMA under CPG -INTEGER, INTENT(IN) :: KLAT !NPROMA under CPG -INTEGER, INTENT(IN) :: KLEV !Number of vertical levels -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -REAL, INTENT(IN) :: PLAT0, PLON0 -REAL, DIMENSION(KLON,KLAT), INTENT(IN) :: PZENITH, PALB_UV, PZS -REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ -REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PRHODREF -REAL, DIMENSION(KLON,KLAT,KLEV,KRR), INTENT(IN) :: PRT -INTEGER, INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date -REAL, INTENT(IN) :: PTIME ! current time (s) -INTEGER, INTENT(IN) :: KLUOUT -LOGICAL, INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table -CHARACTER*4, INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation -REAL, INTENT(IN) :: PALBNEW ! surface albedo -REAL, INTENT(IN) :: PDOBNEW ! ozone column dobson -REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES ! Tuv coefficients -INTEGER, INTENT(IN) :: KVERB ! verbosity level -INTEGER, INTENT(IN) :: NIB,NIE,NJB,NJE,NIU,NJU ! domain dim +INTEGER, INTENT(IN) :: KLON ! dimension I +INTEGER, INTENT(IN) :: KLAT ! dimension J +INTEGER, INTENT(IN) :: KLEV ! Number of vertical levels +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +REAL, INTENT(IN) :: PLAT0, PLON0 +REAL, DIMENSION(KLON,KLAT), INTENT(IN) :: PZENITH, PALB_UV, PZS +REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ +REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PRHODREF +REAL, DIMENSION(KLON,KLAT,KLEV,KRR), INTENT(IN) :: PRT +INTEGER, INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date +REAL, INTENT(IN) :: PTIME ! current time (s) +INTEGER, INTENT(IN) :: KLUOUT +LOGICAL, INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table +CHARACTER(len=4), INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation +REAL, INTENT(IN) :: PALBNEW ! surface albedo +REAL, INTENT(IN) :: PDOBNEW ! ozone column dobson +REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES ! Tuv coefficients +INTEGER, INTENT(IN) :: KVERB ! verbosity level +INTEGER, INTENT(IN) :: NIB,NIE,NJB,NJE,NIU,NJU ! domain dim !! !! LOCAL VARIABLES !! --------------- @@ -139,7 +139,7 @@ INTEGER :: JJ ! loop counter REAL,DIMENSION(:,:), ALLOCATABLE :: ZJOUT1D ! dummy parameter !REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZJOUT3D ! dummy parameter REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZFCLD ! cloud correction -CHARACTER*40, DIMENSION(JPJVMAX) :: YJLABELOUT ! names of J-reacts. +CHARACTER(len=40), DIMENSION(JPJVMAX) :: YJLABELOUT ! names of J-reacts. !! REAL, DIMENSION(:), ALLOCATABLE :: ZAZ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAZ3D, ZLWC3D diff --git a/src/MNH/compute_entr_detr.f90 b/src/MNH/compute_entr_detr.f90 index da35fea05871eec70348a6e60de42ca8b85eef68..b003c68304cf06fbe4ea46b95511b79bda407fd6 100644 --- a/src/MNH/compute_entr_detr.f90 +++ b/src/MNH/compute_entr_detr.f90 @@ -26,7 +26,7 @@ INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physica INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise LOGICAL,DIMENSION(:), INTENT(IN) :: OTEST ! test to see if updraft is running LOGICAL,DIMENSION(:), INTENT(IN) :: OTESTLCL !test of condensation -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! frac_ice can be compute using +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! frac_ice can be compute using ! Temperature (T) or prescribed ! (Y) REAL, DIMENSION(:), INTENT(IN) :: PFRAC_ICE ! fraction of ice @@ -146,7 +146,7 @@ INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physica INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise LOGICAL,DIMENSION(:), INTENT(IN) :: OTEST ! test to see if updraft is running LOGICAL,DIMENSION(:), INTENT(IN) :: OTESTLCL !test of condensation -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! frac_ice can be compute using +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! frac_ice can be compute using ! Temperature (T) or prescribed ! (Y) REAL, DIMENSION(:), INTENT(IN) :: PFRAC_ICE ! fraction of ice diff --git a/src/MNH/compute_frac_ice.f90 b/src/MNH/compute_frac_ice.f90 index d7bfa581725a8bddafbb19d298c7633e70528a9a..b6eb94bc45c5975b596b519834bfd19c6ac5e7b6 100644 --- a/src/MNH/compute_frac_ice.f90 +++ b/src/MNH/compute_frac_ice.f90 @@ -11,7 +11,7 @@ INTERFACE COMPUTE_FRAC_ICE ! SUBROUTINE COMPUTE_FRAC_ICE3D(HFRAC_ICE,PFRAC_ICE,PT) ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(IN) :: PT REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! @@ -19,7 +19,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! SUBROUTINE COMPUTE_FRAC_ICE2D(HFRAC_ICE,PFRAC_ICE,PT) ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:), INTENT(IN) :: PT REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE ! @@ -27,7 +27,7 @@ REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE SUBROUTINE COMPUTE_FRAC_ICE1D(HFRAC_ICE,PFRAC_ICE,PT) ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:), INTENT(IN) :: PT REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE @@ -56,7 +56,7 @@ INTERFACE ! SUBROUTINE COMPUTE_FRAC_ICE3D(HFRAC_ICE,PFRAC_ICE,PT) ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(IN) :: PT REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! @@ -72,7 +72,7 @@ INTERFACE ! SUBROUTINE COMPUTE_FRAC_ICE1D(HFRAC_ICE,PFRAC_ICE,PT) ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:), INTENT(IN) :: PT REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE ! @@ -124,7 +124,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE ! scheme to use +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! scheme to use REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only) !------------------------------------------------------------------------- @@ -194,7 +194,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE ! scheme to use +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! scheme to use REAL, DIMENSION(:,:), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only) !------------------------------------------------------------------------- @@ -266,7 +266,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE ! scheme to use +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! scheme to use REAL, DIMENSION(:), INTENT(IN) :: PT ! temperature REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only) ! diff --git a/src/MNH/compute_updraft.f90 b/src/MNH/compute_updraft.f90 index 5b69902a2f4151f30533ec5b9b487c9a651063ab..69985ecdb2976aa04462ab124cddfe561f38bffe 100644 --- a/src/MNH/compute_updraft.f90 +++ b/src/MNH/compute_updraft.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_UPDRAFT ! ########################### @@ -34,7 +35,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -161,7 +162,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer diff --git a/src/MNH/compute_updraft_hrio.f90 b/src/MNH/compute_updraft_hrio.f90 index 8086333465e5cd97bfc66dacda454c363555e725..adccc8ca9fe3a2469fb42f78e4b15aa2268aef7a 100644 --- a/src/MNH/compute_updraft_hrio.f90 +++ b/src/MNH/compute_updraft_hrio.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-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. @@ -37,7 +37,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -171,7 +171,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer diff --git a/src/MNH/compute_updraft_raha.f90 b/src/MNH/compute_updraft_raha.f90 index c685be9a979beea9c8af7b94e3454c2271ca0c72..1cf8c32b22ea103beb7c41b2f79a11e7abb549d6 100644 --- a/src/MNH/compute_updraft_raha.f90 +++ b/src/MNH/compute_updraft_raha.f90 @@ -1,8 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! ######spl +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_UPDRAFT_RAHA ! ########################### @@ -34,7 +34,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -151,7 +151,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer diff --git a/src/MNH/compute_updraft_rhcj10.f90 b/src/MNH/compute_updraft_rhcj10.f90 index 554dc54f9d8f56fab536ff264a5a989b1d983f23..a918d05b0021aade1fb26a3458e62a5d7ca027d6 100644 --- a/src/MNH/compute_updraft_rhcj10.f90 +++ b/src/MNH/compute_updraft_rhcj10.f90 @@ -1,8 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! ######spl +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_UPDRAFT_RHCJ10 ! ########################### @@ -35,7 +35,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -152,7 +152,7 @@ INTEGER, INTENT(IN) :: KKB ! near ground physical inde INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer diff --git a/src/MNH/condens.f90 b/src/MNH/condens.f90 index 6bf0e7354cbed9f49808a95d706ff31c15991047..899fe632a376f91856bffcfacc00286d0567d3f5 100644 --- a/src/MNH/condens.f90 +++ b/src/MNH/condens.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1981-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 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 microph 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ######spl MODULE MODI_CONDENS ! ################### @@ -16,7 +11,7 @@ INTERFACE ! SUBROUTINE CONDENS(HTURBDIM, PQ1, PN, PRC, PSRC) -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, DIMENSION(:,:,:), INTENT(IN) :: PQ1 ! Saturation REAL, DIMENSION(:,:,:), INTENT(OUT) :: PN ! Cloud fraction @@ -84,6 +79,7 @@ END MODULE MODI_CONDENS !! Modifications: March 2, 1995 (J.M. Carriere) Fortran 90 !! and doctorization !! Modifications: September 12, 1996 (J. Stein) tabulated version +! P. Wautelet 19/04/2019: constant variables are now declared as PARAMETERS !! !! ---------------------------------------------------------------------- ! @@ -95,7 +91,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, DIMENSION(:,:,:), INTENT(IN) :: PQ1 ! Saturation REAL, DIMENSION(:,:,:), INTENT(OUT) :: PN ! Cloud fraction @@ -108,7 +104,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRC ! Second-order flux ! INTEGER :: JR1,JR2,JR3, IRM1,IRM2,IRM3 ! -REAL, DIMENSION(-22:11) :: ZN_1D = (/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZN_1D = (/ & 0. , 0. , 1.7225742E-05, 0.275373E-04 , & 4.5657158E-05, 0.748634E-04 , 1.2344122E-04, 0.203788E-03 , & 3.3539534E-04, 0.553310E-03 , 9.1189146E-04, 0.150353E-02 , & @@ -119,7 +115,7 @@ REAL, DIMENSION(-22:11) :: ZN_1D = (/ & 0.9986521 , 0.999768E+00 , 0.9999684 , 0.9999997 , & 1.0000000 , 1.000000 /) ! -REAL, DIMENSION(-22:11) :: ZRC_1D = (/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZRC_1D = (/ & 0. , 0. , 1.1461278E-05, 0.275279E-04 , & 4.3084903E-05, 0.747532E-04 , 1.2315845E-04, 0.201069E-03 , & 3.3593364E-04, 0.551618E-03 , 9.1182487E-04, 0.150296E-02 , & @@ -130,7 +126,7 @@ REAL, DIMENSION(-22:11) :: ZRC_1D = (/ & 3.0003829 , 0.350006E+01 , 4.0000072 , 0.450000E+01 , & 5.0000000 , 5.500000 /) ! -REAL, DIMENSION(-22:11) :: ZSRC_1D =(/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZSRC_1D =(/ & 0. , 0. , 2.0094444E-04, 0.316670E-03, & 4.9965648E-04, 0.785956E-03 , 1.2341294E-03, 0.193327E-02, & 3.0190963E-03, 0.470144E-02 , 7.2950651E-03, 0.112759E-01, & @@ -141,7 +137,7 @@ REAL, DIMENSION(-22:11) :: ZSRC_1D =(/ & 0.9986521 , 0.999768E+00 , 0.9999684 , 0.999997E+00, & 1.0000000 , 1.000000 /) ! -REAL, DIMENSION(-22:11) :: ZN_3D = (/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZN_3D = (/ & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0.298023E-07 , & @@ -152,7 +148,7 @@ REAL, DIMENSION(-22:11) :: ZN_3D = (/ & 0.9986521 , 0.999768E+00 , 0.9999684 , 0.9999997 , & 1.0000000 , 1.000000 /) ! -REAL, DIMENSION(-22:11) :: ZRC_3D = (/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZRC_3D = (/ & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0. , & @@ -163,7 +159,7 @@ REAL, DIMENSION(-22:11) :: ZRC_3D = (/ & 3.0003829 , 0.350006E+01 , 4.0000072 , 0.450000E+01 , & 5.0000000 , 5.500000 /) ! -REAL, DIMENSION(-22:11) :: ZSRC_3D =(/ & +REAL, DIMENSION(-22:11), PARAMETER :: ZSRC_3D =(/ & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0. , & 0. , 0. , 0. , 0.298023E-07, & diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90 index d23e78608e4583e975197925995125ab4f6ef073..c57ce2ba4748e254dca80ee6e64dcb90312c1f1b 100644 --- a/src/MNH/condensation.f90 +++ b/src/MNH/condensation.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-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. @@ -23,7 +23,7 @@ INTEGER, INTENT(IN) :: KJE ! value of the last point INTEGER, INTENT(IN) :: KKB ! value of the first point in z INTEGER, INTENT(IN) :: KKE ! value of the last point in z INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN) :: PPABS ! pressure (Pa) REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN) :: PZZ ! height of model levels (m) REAL, DIMENSION(KIU,KJU,KKU), INTENT(INOUT) :: PT ! grid scale T (K) @@ -149,7 +149,7 @@ INTEGER, INTENT(IN) :: KJE ! value of the last point INTEGER, INTENT(IN) :: KKB ! value of the first point in z INTEGER, INTENT(IN) :: KKE ! value of the last point in z INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER*1, INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN) :: PPABS ! pressure (Pa) REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN) :: PZZ ! height of model levels (m) REAL, DIMENSION(KIU,KJU,KKU), INTENT(INOUT) :: PT ! grid scale T (K) diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 93b355bd51876b3a7c9ae170af87d4fb8d0bb0af..ace7bab440cc0d6e85fb034a2189e1a086042caa 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -181,10 +181,8 @@ CHARACTER (LEN=28), DIMENSION(1) :: YINIFILEPGD ! names of the INPUT FM-file CHARACTER (LEN=5) :: YSUFFIX ! character string for the OUTPUT FM-file number CHARACTER (LEN=4) :: YRAD ! initial flag to call to radiation schemes CHARACTER (LEN=4) :: YDCONV ! initial flag to call to deep convection schemes -CHARACTER (LEN=4) :: YSCONV ! initial flag to call to shallow convection schemes CHARACTER (LEN=4) :: YTURB ! initial flag to call to turbulence schemes -CHARACTER (LEN=40) :: YFMT,YFMT2! format for cpu analysis printing -INTEGER :: IRESP ! return code in FM routines +! CHARACTER (LEN=40) :: YFMT,YFMT2! format for cpu analysis printing INTEGER :: ILUOUT0 ! Logical unit number for the output listing REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME0, ZTIME1, ZTIME2, ZRAD, ZDCONV, ZSHADOWS, ZGROUND, & ZTRACER, ZDRAG, ZTURB, ZMAFL, ZCHEM, ZTIME_BU ! CPU times @@ -591,7 +589,6 @@ IF (CTURB /= 'NONE') XRTKES(:,:,:) = 0. ! YTURB = CTURB YDCONV = CDCONV -YSCONV = CSCONV YRAD = CRAD ! !* turbulence scheme diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index d2a5b05e6522074b2500c6902501bc488b29c4e7..b7686962ca5cf08e65b81f7a756e6901aea622be 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -96,6 +96,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n ! P. Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics!! ! P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard) ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 19/04/2019: use modd_precision kinds !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2067,6 +2068,8 @@ END SUBROUTINE CHARGE_POCKET !* 0. DECLARATIONS ! ------------ ! +use modd_precision, only: MNHINT64, MNHINT64_MPI + IMPLICIT NONE ! !* 0.1 declaration of dummy arguments @@ -2086,10 +2089,10 @@ LOGICAL :: GRANDOM ! T = the gridpoints are chosen randomly INTEGER, DIMENSION(NPROC) :: INBPT_PROC REAL, DIMENSION(:), ALLOCATABLE :: ZAUX ! -INTEGER*8, DIMENSION(:), ALLOCATABLE :: I8VECT , I8VECT_LL -INTEGER , DIMENSION(:), ALLOCATABLE :: IRANK , IRANK_LL , IORDER_LL -INTEGER :: JI,JJ,JK,JIL , ICHOICE,IPOINT -INTEGER, DIMENSION(NPROC+1) :: IDISPL +INTEGER :: JI,JJ,JK,JIL , ICHOICE,IPOINT +INTEGER, DIMENSION(NPROC+1) :: IDISPL +INTEGER(kind=MNHINT64), DIMENSION(:), ALLOCATABLE :: I8VECT , I8VECT_LL +INTEGER, DIMENSION(:), ALLOCATABLE :: IRANK , IRANK_LL , IORDER_LL ! ! ! @@ -2175,8 +2178,8 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1) ALLOCATE(I8VECT_LL(IPT_DIST_GLOB)) ALLOCATE(IRANK_LL(IPT_DIST_GLOB)) ALLOCATE(IORDER_LL(IPT_DIST_GLOB)) - CALL MPI_ALLGATHERV(I8VECT,IPT_DIST, MPI_INTEGER8,I8VECT_LL , & - INBPT_PROC, IDISPL, MPI_INTEGER8, NMNH_COMM_WORLD, IERR) + CALL MPI_ALLGATHERV(I8VECT,IPT_DIST, MNHINT64_MPI,I8VECT_LL , & + INBPT_PROC, IDISPL, MNHINT64_MPI, NMNH_COMM_WORLD, IERR) CALL MPI_ALLGATHERV(IRANK,IPT_DIST, MPI_INTEGER,IRANK_LL , & INBPT_PROC, IDISPL, MPI_INTEGER, NMNH_COMM_WORLD, IERR) CALL N8QUICK_SORT(I8VECT_LL, IORDER_LL) @@ -2198,7 +2201,7 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1) !print*,"OUT => I8VECT_LL(ICHOICE)=",I8VECT_ll(ICHOICE),JI,JJ,JK,ICHOICE ZFLASH(JI,JJ,JK,IL) = 2. END IF - I8VECT_LL(ICHOICE) = 0. + I8VECT_LL(ICHOICE) = 0 ENDIF END DO END DO @@ -2622,9 +2625,11 @@ RECURSIVE SUBROUTINE N8QUICK_SORT(PLIST, KORDER) ! Modified by Alan Miller to include an associated integer array which gives ! the positions of the elements in the original order. ! +use modd_precision, only: MNHINT64 + IMPLICIT NONE ! -INTEGER*8, DIMENSION (:), INTENT(INOUT) :: PLIST +INTEGER(kind=MNHINT64), DIMENSION (:), INTENT(INOUT) :: PLIST INTEGER, DIMENSION (:), INTENT(OUT) :: KORDER ! ! Local variable @@ -2642,13 +2647,18 @@ END SUBROUTINE N8QUICK_SORT ! RECURSIVE SUBROUTINE N8QUICK_SORT_1(KLEFT_END, KRIGHT_END, PLIST1, KORDER1) -INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END -INTEGER*8, DIMENSION (:), INTENT(INOUT) :: PLIST1 -INTEGER, DIMENSION (:), INTENT(INOUT) :: KORDER1 +use modd_precision, only: MNHINT64 + +implicit none + +INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END +INTEGER(kind=MNHINT64), DIMENSION (:), INTENT(INOUT) :: PLIST1 +INTEGER, DIMENSION (:), INTENT(INOUT) :: KORDER1 ! Local variables -INTEGER :: JI, JJ, ITEMP -INTEGER*8 :: ZREF, ZTEMP -INTEGER, PARAMETER :: IMAX_SIMPLE_SORT_SIZE = 6 +INTEGER, PARAMETER :: IMAX_SIMPLE_SORT_SIZE = 6 + +INTEGER :: JI, JJ, ITEMP +INTEGER(kind=MNHINT64) :: ZREF, ZTEMP IF (KRIGHT_END < KLEFT_END + IMAX_SIMPLE_SORT_SIZE) THEN ! Use interchange sort for small PLISTs @@ -2691,8 +2701,8 @@ ELSE END IF END DO - IF (KLEFT_END < JJ) CALL N8QUICK_SORT_1(KLEFT_END, JJ, PLIST1, KORDER1) - IF (JI < KRIGHT_END) CALL N8QUICK_SORT_1(JI, KRIGHT_END,PLIST1,KORDER1) + IF ( KLEFT_END < JJ ) CALL N8QUICK_SORT_1( KLEFT_END, JJ, PLIST1, KORDER1 ) + IF ( JI < KRIGHT_END ) CALL N8QUICK_SORT_1( JI, KRIGHT_END, PLIST1, KORDER1 ) END IF END SUBROUTINE N8QUICK_SORT_1 @@ -2701,12 +2711,16 @@ END SUBROUTINE N8QUICK_SORT_1 ! SUBROUTINE N8INTERCHANGE_SORT(KLEFT_END, KRIGHT_END, PLIST2, KORDER2) -INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END -INTEGER*8, DIMENSION (:), INTENT(INOUT) :: PLIST2 -INTEGER, DIMENSION (:), INTENT(INOUT) :: KORDER2 +use modd_precision, only: MNHINT64 + +implicit none + +INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END +INTEGER(kind=MNHINT64), DIMENSION(:), INTENT(INOUT) :: PLIST2 +INTEGER, DIMENSION(:), INTENT(INOUT) :: KORDER2 ! Local variables -INTEGER :: JI, JJ, ITEMP -INTEGER*8 :: ZTEMP +INTEGER :: JI, JJ, ITEMP +INTEGER(kind=MNHINT64) :: ZTEMP ! boucle sur tous les points DO JI = KLEFT_END, KRIGHT_END - 1 @@ -2738,10 +2752,12 @@ END SUBROUTINE N8INTERCHANGE_SORT !------------------------------------------------------------------------------- SUBROUTINE MNH_RANDOM_NUMBER(ZRANDOM) - REAL :: ZRANDOM - INTEGER ,SAVE :: NSEED_MNH = 26032012 + use modd_precision, only: MNHINT32 + + REAL :: ZRANDOM + INTEGER(kind=MNHINT32), SAVE :: NSEED_MNH = 26032012_MNHINT32 - ZRANDOM = r8_uniform_01 (NSEED_MNH) + ZRANDOM = real( r8_uniform_01( NSEED_MNH ), kind(ZRANDOM) ) END SUBROUTINE MNH_RANDOM_NUMBER @@ -2820,37 +2836,39 @@ END SUBROUTINE N8INTERCHANGE_SORT ! ! Parameters: ! - ! Input/output, integer ( kind = 4 ) SEED, the "seed" value, which should + ! Input/output, integer ( kind = MNHINT32 ) SEED, the "seed" value, which should ! NOT be 0. On output, SEED has been updated. ! - ! Output, real ( kind = 8 ) R8_UNIFORM_01, a new pseudorandom variate, + ! Output, real ( kind = MNHREAL64 ) R8_UNIFORM_01, a new pseudorandom variate, ! strictly between 0 and 1. ! - use mode_msg + use modd_precision, only: MNHINT32, MNHREAL64 + + implicit none - IMPLICIT NONE + integer(kind = MNHINT32), intent(inout) :: seed + real(kind=MNHREAL64) :: r8_uniform_01 - INTEGER ( kind = 4 ), PARAMETER :: i4_huge = 2147483647 - INTEGER ( kind = 4 ) k - REAL r8_uniform_01 - INTEGER ( kind = 4 ) seed + integer(kind = MNHINT32), parameter :: i4_huge = 2147483647_MNHINT32 - IF ( seed == 0 ) THEN + integer(kind = MNHINT32) :: k + + if ( seed == 0_MNHINT32 ) THEN call Print_msg( NVERB_FATAL, 'GEN', 'r8_uniform_01', 'seed dummy argument must be different of 0' ) - END IF + end if - k = seed / 127773 + k = seed / 127773_MNHINT32 - seed = 16807 * ( seed - k * 127773 ) - k * 2836 + seed = 16807_MNHINT32 * ( seed - k * 127773_MNHINT32 ) - k * 2836_MNHINT32 - IF ( seed < 0 ) THEN + if ( seed < 0_MNHINT32 ) then seed = seed + i4_huge - END IF + end if - r8_uniform_01 = REAL ( seed ) * 4.656612875D-10 + r8_uniform_01 = real(seed) * 4.656612875d-10 - RETURN - END FUNCTION r8_uniform_01 + return + end function r8_uniform_01 ! END SUBROUTINE FLASH_GEOM_ELEC_n ! diff --git a/src/MNH/flat_invz.f90 b/src/MNH/flat_invz.f90 index b7b38a84621ae4f99a90aba6f437f0b71b6b6f78..2d5febdf09b89f3b595a6db31d0f78ddb3384d8d 100644 --- a/src/MNH/flat_invz.f90 +++ b/src/MNH/flat_invz.f90 @@ -127,6 +127,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !! Modification Lugato, Guivarch (June 1998) Parallelisation !! Escobar, Stein (July 2000) optimisation ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -140,7 +141,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & USE MODD_ARGSLIST_ll, ONLY : LIST_ll !JUAN Z_SPLI USE MODE_SPLITTINGZ_ll - USE MODD_VAR_ll, ONLY : IP , NTRANS_COM +! USE MODD_VAR_ll, ONLY : IP , NTRANS_COM USE MODD_CONFZ , ONLY : NZ_SPLITTING ! for debug IZ=1=flat_inv; IZ=2=flat_invz ; IZ=1+2=the two USE MODD_TIMEZ , ONLY : TIMEZ USE MODE_MNH_TIMING @@ -206,16 +207,12 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & INTEGER :: IKB ! indice K for the first inner mass point along z INTEGER :: IKE ! indice K for the last inner mass point along z INTEGER :: IKU ! size of the arrays along z - INTEGER :: IKMAX ! number of inner mass points along the z direction ! REAL :: ZDXM2,ZDYM2 ! respectively equal to PDXHATM*PDXHATM ! and PDYHATM*PDYHATM INTEGER :: JI,JJ,JK ! loop indexes along x, y, z respectively ! ! - INTEGER :: IIE_INT,IJE_INT ! highest indice I and J values for the x y modes. - ! They depend on the l.b.c. ! - ! INTEGER :: ILOTX,ILOTY ! number of data vectors along x, y resp. computed ! in parallel during the FFT process ! @@ -261,7 +258,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & ! ! ! - INTEGER :: IH ! HALO to use +! INTEGER :: IH ! HALO to use INTEGER :: II_B ,IJ_B ,IK_B ! dimensions of B slices INTEGER :: II_SXP1_YP2_Z,IJ_SXP1_YP2_Z,IK_SXP1_YP2_Z ! dimensions of SXP1_YP2_Z slices INTEGER :: II_SXP2_YP1_Z,IJ_SXP2_YP1_Z,IK_SXP2_YP1_Z ! dimensions of SXP2_YP1_Z slices @@ -278,7 +275,6 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SX_YP2_ZP1 ! work array for SX_YP2_ZP1 FFT REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SXP2_Y_ZP1 ! work array for SXP2_Y_ZP1 FFT - REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SXP2_Y_ZP1R ! work array for SXP2_Y_ZP1 FFT REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_Y_ZP1T ! array in SXP2_Y_ZP1T slices distribution transpose REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_Y_ZP1RT ! array in SXP2_Y_ZP1T slices distribution transpose REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAF_B ! work array in B slices for expand PAF @@ -293,11 +289,8 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_YP1_ZR REAL, DIMENSION(:,:) , ALLOCATABLE :: ZBETX_SXP2_YP1_Z ! - ! UPDATE HALO --> pour voir si ca marche - TYPE(LIST_ll), POINTER :: TZFIELDS_ll ! list of fields to exchange - ! INTEGER :: IIBI,IJBI,IIEI,IJEI - INTEGER :: IERROR +! INTEGER :: IERROR !JUAN !------------------------------------------------------------------------------- ! @@ -316,7 +309,6 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & IKU=SIZE(PY,3) IKB=1+JPVEXT IKE=IKU - JPVEXT - IKMAX=IKE-IKB+1 ! ! IF ( IAND(NZ_SPLITTING,1) > 0 ) THEN diff --git a/src/MNH/goto_model_surfex_mnh.f90 b/src/MNH/goto_model_surfex_mnh.f90 index e96c9c8a18827196d7be92f5f4a766e0da0856ce..a87028ed193fe1c17d41459bc39a46b5983f6c40 100644 --- a/src/MNH/goto_model_surfex_mnh.f90 +++ b/src/MNH/goto_model_surfex_mnh.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-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 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: /home/cvsroot/MNH-VX-Y-Z/src/MNH/goto_model_surfex_mnh.f90 -!----------------------------------------------------------------- !####################### MODULE MODI_GOTO_MODEL_SURFEX_MNH !####################### @@ -128,7 +124,7 @@ INTEGER, INTENT(OUT) :: KINFO_ll ! !INTEGER :: IINFO_ll ! return code of // routines INTEGER :: IMI ! return code of // routines -CHARACTER*1 :: HSPLIT +CHARACTER(len=1) :: HSPLIT ! !------------------------------------------------------------------------------ ! diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90 index 099ad15be63663af96c89ec066073f6a979dadf9..3fafb4588fb7542f2197bf01ccfd1c2f55e936b5 100644 --- a/src/MNH/ice4_tendencies.f90 +++ b/src/MNH/ice4_tendencies.f90 @@ -2,6 +2,7 @@ !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 MODI_ICE4_TENDENCIES INTERFACE SUBROUTINE ICE4_TENDENCIES(KSIZE, KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, & @@ -31,10 +32,10 @@ INTEGER, INTENT(IN) :: KRR LOGICAL, INTENT(IN) :: ODSOFT LOGICAL, DIMENSION(KSIZE), INTENT(IN) :: ODCOMPUTE LOGICAL, INTENT(IN) :: OWARM -CHARACTER*80, INTENT(IN) :: HSUBG_RC_RR_ACCR -CHARACTER*80, INTENT(IN) :: HSUBG_RR_EVAP +CHARACTER(len=80), INTENT(IN) :: HSUBG_RC_RR_ACCR +CHARACTER(len=80), INTENT(IN) :: HSUBG_RR_EVAP CHARACTER(len=4), INTENT(IN) :: HSUBG_AUCV_RC -CHARACTER*80, INTENT(IN) :: HSUBG_PR_PDF ! pdf for subgrid precipitation +CHARACTER(len=80), INTENT(IN) :: HSUBG_PR_PDF ! pdf for subgrid precipitation REAL, DIMENSION(KSIZE), INTENT(IN) :: PEXN REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHODREF REAL, DIMENSION(KSIZE), INTENT(IN) :: PLVFACT @@ -201,10 +202,10 @@ INTEGER, INTENT(IN) :: KRR LOGICAL, INTENT(IN) :: ODSOFT LOGICAL, DIMENSION(KSIZE), INTENT(IN) :: ODCOMPUTE LOGICAL, INTENT(IN) :: OWARM -CHARACTER*80, INTENT(IN) :: HSUBG_RC_RR_ACCR -CHARACTER*80, INTENT(IN) :: HSUBG_RR_EVAP +CHARACTER(len=80), INTENT(IN) :: HSUBG_RC_RR_ACCR +CHARACTER(len=80), INTENT(IN) :: HSUBG_RR_EVAP CHARACTER(len=4), INTENT(IN) :: HSUBG_AUCV_RC -CHARACTER*80, INTENT(IN) :: HSUBG_PR_PDF ! pdf for subgrid precipitation +CHARACTER(len=80), INTENT(IN) :: HSUBG_PR_PDF ! pdf for subgrid precipitation REAL, DIMENSION(KSIZE), INTENT(IN) :: PEXN REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHODREF REAL, DIMENSION(KSIZE), INTENT(IN) :: PLVFACT diff --git a/src/MNH/ice4_warm.f90 b/src/MNH/ice4_warm.f90 index 74728719dd07f7cde2d9f858bff14e0ef0a37588..a7a20b82a9aa0d69251534a45bb567561e43a14d 100644 --- a/src/MNH/ice4_warm.f90 +++ b/src/MNH/ice4_warm.f90 @@ -2,6 +2,7 @@ !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 MODI_ICE4_WARM INTERFACE SUBROUTINE ICE4_WARM(KSIZE, LDSOFT, LDCOMPUTE, HSUBG_RC_RR_ACCR, HSUBG_RR_EVAP, & @@ -16,8 +17,8 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KSIZE LOGICAL, INTENT(IN) :: LDSOFT LOGICAL, DIMENSION(KSIZE), INTENT(IN) :: LDCOMPUTE -CHARACTER*80, INTENT(IN) :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion -CHARACTER*80, INTENT(IN) :: HSUBG_RR_EVAP ! subgrid rr evaporation +CHARACTER(len=80), INTENT(IN) :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion +CHARACTER(len=80), INTENT(IN) :: HSUBG_RR_EVAP ! subgrid rr evaporation REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHODREF ! Reference density REAL, DIMENSION(KSIZE), INTENT(IN) :: PLVFACT REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature @@ -91,8 +92,8 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KSIZE LOGICAL, INTENT(IN) :: LDSOFT LOGICAL, DIMENSION(KSIZE), INTENT(IN) :: LDCOMPUTE -CHARACTER*80, INTENT(IN) :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion -CHARACTER*80, INTENT(IN) :: HSUBG_RR_EVAP ! subgrid rr evaporation +CHARACTER(len=80), INTENT(IN) :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion +CHARACTER(len=80), INTENT(IN) :: HSUBG_RR_EVAP ! subgrid rr evaporation REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHODREF ! Reference density REAL, DIMENSION(KSIZE), INTENT(IN) :: PLVFACT REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature @@ -132,6 +133,7 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW2, ZZW3, ZZW4 REAL, DIMENSION(SIZE(PRHODREF)) :: ZUSW ! Undersaturation over water REAL, DIMENSION(SIZE(PRHODREF)) :: ZTHLT ! Liquid potential temperature ! +! !$acc declare create(ZZW2,ZZW3,ZZW4,ZUSW,ZTHLT,GMASK,GMASK1,GMASK2) ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index 1ba5d714a040f16477d2095acfdb66e6d4343150..e9e38431b8efa6cf0e9d939aef2ddf302a9b8bea 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -22,8 +22,8 @@ INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index INTEGER, INTENT(IN) :: KKL !vert. levels type 1=MNH -1=ARO INTEGER, INTENT(IN) :: KRR ! Number of moist variables -CHARACTER*1, INTENT(IN) :: HFRAC_ICE -CHARACTER*4, INTENT(IN) :: HBUNAME ! Name of the budget +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE +CHARACTER(len=4), INTENT(IN) :: HBUNAME ! Name of the budget LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid ! Condensation LOGICAL :: OSIGMAS ! Switch for Sigma_s: @@ -194,8 +194,8 @@ INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index INTEGER, INTENT(IN) :: KKL !vert. levels type 1=MNH -1=ARO INTEGER, INTENT(IN) :: KRR ! Number of moist variables -CHARACTER*1, INTENT(IN) :: HFRAC_ICE -CHARACTER*4, INTENT(IN) :: HBUNAME ! Name of the budget +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE +CHARACTER(len=4), INTENT(IN) :: HBUNAME ! Name of the budget LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid ! Condensation LOGICAL :: OSIGMAS ! Switch for Sigma_s: diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index cdc92d380ac8b8b7c4152a8ecb98e575b4cc0534..957781f1862a455d18478686f61a10eca718268a 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -21,11 +21,11 @@ INTERFACE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HSCONV ! Shallow convection scheme CHARACTER(LEN=4), INTENT(IN) :: HMF_CLOUD! Type of statistical cloud -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid ! Condensation LOGICAL :: OSIGMAS ! Switch for Sigma_s: @@ -191,11 +191,11 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HSCONV ! Shallow convection scheme CHARACTER(LEN=4), INTENT(IN) :: HMF_CLOUD! Type of statistical cloud -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid ! Condensation LOGICAL :: OSIGMAS ! Switch for Sigma_s: diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 62002a731c199d67d89665d367de2054bcd26f83..4678c605673b913b6be87dc70e12572429f90773 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -285,6 +285,7 @@ END MODULE MODI_INI_MODEL_n !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 14/03/2019: correct ZWS when variable not present in file (set to XZWS_DEFAULT) ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -316,7 +317,7 @@ USE MODD_REF USE MODD_SERIES, ONLY: LSERIES USE MODD_TIME USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI -USE MODD_NESTING +USE MODD_NESTING, only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL USE MODD_PASPOL USE MODD_DRAGTREE USE MODD_METRICS_n @@ -338,13 +339,12 @@ USE MODD_DIM_n USE MODD_BUDGET USE MODD_RADIATIONS_n USE MODD_SHADOWS_n -USE MODD_PARAM_RAD_n, ONLY : CLW, CAER, CAOP +USE MODD_PARAM_RAD_n, ONLY: CAER, CLW USE MODD_VAR_ll, ONLY : IP ! USE MODD_STAND_ATM, ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM -USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & - CCHEM_INPUT_FILE, LCH_CONV_LINOX, & - XCH_TUV_DOBNEW, LCH_PH, CSPEC_BUDGET, CSPEC_PRODLOSS +USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & + LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH USE MODD_CH_PH_n USE MODD_CH_AEROSOL, ONLY : LORILAM USE MODD_CH_AERO_n, ONLY : XSOLORG,XMI @@ -366,7 +366,7 @@ USE MODD_CONF_n USE MODD_GET_n USE MODD_TURB_n USE MODD_CTURB -USE MODD_LBC_n +USE MODD_LBC_n, only: CLBCX, CLBCY USE MODD_PASPOL_n USE MODD_DRAG_n USE MODD_BLOWSNOW @@ -441,7 +441,7 @@ USE MODD_ADVFRC_n USE MODD_RELFRC_n USE MODD_2D_FRC USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL -USE MODD_IO, ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY, TFILE_FIRST, TFILE_LAST +USE MODD_IO, ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY ! USE MODD_CH_PRODLOSSTOT_n USE MODI_CH_INIT_PRODLOSSTOT_n @@ -1700,12 +1700,7 @@ END IF !* 7. INITIALIZE GRIDS AND METRIC COEFFICIENTS ! ---------------------------------------- ! -CALL SET_GRID(KMI,TPINIFILE,IIU,IJU,IKU,NIMAX_ll,NJMAX_ll, & - XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & - XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & - NXOR_ALL(KMI),NYOR_ALL(KMI),NXEND_ALL(KMI),NYEND_ALL(KMI), & - NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI), & - CLBCX,CLBCY, & +CALL SET_GRID(KMI,TPINIFILE,IKU,NIMAX_ll,NJMAX_ll, & XTSTEP,XSEGLEN, & XLONORI,XLATORI,XLON,XLAT, & XXHAT,XYHAT,XDXHAT,XDYHAT, XMAP, & diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 6218b69882c2f03d7fe8c79faede3b2e2487e19d..00aa82518fea1a3cd00e205dac3bd22497af384c 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-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. @@ -35,9 +35,10 @@ END MODULE MODI_INI_SPECTRE_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 08/02/2019: allocate to zero-size non associated pointers ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables -!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! S. Bielli 02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg -!! +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables +! !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -49,8 +50,7 @@ USE MODD_BUDGET USE MODD_CH_AERO_n, ONLY: XSOLORG,XMI USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & - CCHEM_INPUT_FILE, LCH_CONV_LINOX, & - XCH_TUV_DOBNEW, LCH_PH + LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH USE MODD_CH_PH_n USE MODD_CLOUD_MF_n USE MODD_CST @@ -75,13 +75,13 @@ USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n USE MODD_IO, ONLY: TFILEDATA -USE MODD_LBC_n +USE MODD_LBC_n, only: CLBCX, CLBCY USE MODD_LSFIELD_n USE MODD_LUNIT_n, ONLY: COUTFILE, TLUOUT USE MODD_MEAN_FIELD USE MODD_MEAN_FIELD_n USE MODD_METRICS_n -USE MODD_NESTING +USE MODD_NESTING, only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL USE MODD_NSV USE MODD_NUDGING_n, ONLY: LNUDGING USE MODD_OUT_n @@ -89,7 +89,6 @@ USE MODD_PARAMETERS USE MODD_PARAM_KAFR_n USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n -USE MODD_PARAM_RAD_n, ONLY: CLW, CAER USE MODD_PASPOL USE MODD_PASPOL_n USE MODD_BLOWSNOW @@ -705,12 +704,7 @@ CALL INI_BIKHARDT_n (NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),KMI) !* 6. INITIALIZE GRIDS AND METRIC COEFFICIENTS ! ---------------------------------------- ! -CALL SET_GRID(KMI,TPINIFILE,IIU,IJU,IKU,NIMAX_ll,NJMAX_ll, & - XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & - XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & - NXOR_ALL(KMI),NYOR_ALL(KMI),NXEND_ALL(KMI),NYEND_ALL(KMI), & - NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI), & - CLBCX,CLBCY, & +CALL SET_GRID(KMI,TPINIFILE,IKU,NIMAX_ll,NJMAX_ll, & XTSTEP,XSEGLEN, & XLONORI,XLATORI,XLON,XLAT, & XXHAT,XYHAT,XDXHAT,XDYHAT, XMAP, & diff --git a/src/MNH/isocom.f b/src/MNH/isocom.f index be6ce490c62e820652828471d08910662a039b11..b02dbe9f597d2c93ca9f49458d7dfb825558f88c 100644 --- a/src/MNH/isocom.f +++ b/src/MNH/isocom.f @@ -1,4 +1,4 @@ -CMNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +CMNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier CMNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence CMNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt CMNH_LIC for details. version 1. @@ -13,7 +13,7 @@ C ======================== ARGUMENTS / USAGE =========================== C C INPUT: C 1. [WI] -C REAL*8 array of length [5]. +C REAL(kind(0.0d0)) array of length [5]. C Concentrations, expressed in moles/m3. Depending on the type of C problem solved (specified in CNTRL(1)), WI contains either C GAS+AEROSOL or AEROSOL only concentratios. @@ -24,15 +24,15 @@ C WI(4) - nitrate C WI(5) - chloride C C 2. [RHI] -C REAL*8 variable. +C REAL(kind(0.0d0)) variable. C Ambient relative humidity expressed on a (0,1) scale. C C 3. [TEMPI] -C REAL*8 variable. +C REAL(kind(0.0d0)) variable. C Ambient temperature expressed in Kelvins. C C 4. [CNTRL] -C REAL*8 array of length [2]. +C REAL(kind(0.0d0)) array of length [2]. C Parameters that control the type of problem solved. C C CNTRL(1): Defines the type of problem solved. @@ -47,7 +47,7 @@ C 1 - The aerosol is in only liquid state (metastable aerosol) C C OUTPUT: C 1. [WT] -C REAL*8 array of length [5]. +C REAL(kind(0.0d0)) array of length [5]. C Total concentrations (GAS+AEROSOL) of species, expressed in moles/m3. C If the foreward probelm is solved (CNTRL(1)=0), array WT is C identical to array WI. @@ -58,14 +58,14 @@ C WT(4) - total nitrate C WT(5) - total chloride C C 2. [GAS] -C REAL*8 array of length [03]. +C REAL(kind(0.0d0)) array of length [03]. C Gaseous species concentrations, expressed in moles/m3. C GAS(1) - NH3 C GAS(2) - HNO3 C GAS(3) - HCl C C 3. [AERLIQ] -C REAL*8 array of length [11]. +C REAL(kind(0.0d0)) array of length [11]. C Liquid aerosol species concentrations, expressed in moles/m3. C AERLIQ(01) - H+(aq) C AERLIQ(02) - Na+(aq) @@ -81,7 +81,7 @@ C AERLIQ(11) - HNO3(aq) (undissociated) C AERLIQ(12) - OH-(aq) C C 4. [AERSLD] -C REAL*8 array of length [09]. +C REAL(kind(0.0d0)) array of length [09]. C Solid aerosol species concentrations, expressed in moles/m3. C AERSLD(01) - NaNO3(s) C AERSLD(02) - NH4NO3(s) @@ -94,11 +94,11 @@ C AERSLD(08) - NH4HSO4(s) C AERSLD(09) - (NH4)4H(SO4)2(s) C C 5. [SCASI] -C CHARACTER*15 variable. +C CHARACTER(len=15) variable. C Returns the subcase which the input corresponds to. C C 6. [OTHER] -C REAL*8 array of length [6]. +C REAL(kind(0.0d0)) array of length [6]. C Returns solution information. C C OTHER(1): Shows if aerosol water exists. @@ -126,6 +126,7 @@ C C Modifications: C P. Wautelet 13/02/2018: use ifdef MNH_REAL to prevent problems with intrinsics on Blue Gene/Q C P. Wautelet 22/01/2019: replace obsolete SNGL intrinsics by REAL intrinsics +C P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8 C======================================================================= C SUBROUTINE ISOROPIA (WI, RHI, TEMPI, CNTRL, @@ -280,7 +281,7 @@ C Defines the maximum number of iterations for activity coefficient C calculations. C C 6. [EPSACTI] -C REAL*8 variable. +C REAL(kind(0.0d0)) variable. C Defines the convergence criterion for activity coefficient C calculations. C @@ -1379,12 +1380,12 @@ C *** WRITTEN BY ATHANASIOS NENES C C======================================================================= C -C REAL*8 FUNCTION GETASR (SO4I, RHI) +C REAL(kind(0.0d0)) FUNCTION GETASR (SO4I, RHI) FUNCTION GETASR (SO4I, RHI) PARAMETER (NSO4S=14, NRHS=20, NASRD=NSO4S*NRHS) COMMON /ASRC/ ASRAT(NASRD), ASSO4(NSO4S) - REAL*8 SO4I, RHI - REAL*8 GETASR + REAL(kind(0.0d0)) SO4I, RHI + REAL(kind(0.0d0)) GETASR CCC CCC *** SOLVE USING FULL COMPUTATIONS, NOT LOOK-UP TABLES ************** CCC @@ -1531,7 +1532,7 @@ C======================================================================= C SUBROUTINE CALCHA INCLUDE 'isrpia.inc' - REAL*8 KAPA + REAL(kind(0.0d0)) KAPA CC CHARACTER ERRINF*40 C C *** CALCULATE HCL DISSOLUTION ***************************************** @@ -1628,7 +1629,7 @@ C======================================================================= C SUBROUTINE CALCNA INCLUDE 'isrpia.inc' - REAL*8 KAPA + REAL(kind(0.0d0)) KAPA CC CHARACTER ERRINF*40 C C *** CALCULATE HNO3 DISSOLUTION **************************************** @@ -1809,7 +1810,7 @@ C======================================================================= C SUBROUTINE CALCNHA INCLUDE 'isrpia.inc' - REAL*8 M1, M2, M3 + REAL(kind(0.0d0)) M1, M2, M3 CHARACTER ERRINF*40 C C *** SPECIAL CASE; WATER=ZERO ****************************************** @@ -1968,7 +1969,7 @@ C======================================================================= C SUBROUTINE CALCAMAQ (NH4I, OHI, DELT) INCLUDE 'isrpia.inc' - REAL*8 NH4I + REAL(kind(0.0d0)) NH4I CC CHARACTER ERRINF*40 C C *** EQUILIBRIUM CONSTANTS @@ -2028,7 +2029,7 @@ C======================================================================= C SUBROUTINE CALCAMAQ2 (GGNH3, NH4I, OHI, NH3AQ) INCLUDE 'isrpia.inc' - REAL*8 NH4I, NH3AQ + REAL(kind(0.0d0)) NH4I, NH3AQ C C *** EQUILIBRIUM CONSTANTS C @@ -2072,7 +2073,7 @@ C======================================================================= C SUBROUTINE CALCCLAQ (CLI, HI, DELT) INCLUDE 'isrpia.inc' - REAL*8 CLI + REAL(kind(0.0d0)) CLI C C *** EQUILIBRIUM CONSTANTS C @@ -2123,7 +2124,7 @@ C======================================================================= C SUBROUTINE CALCCLAQ2 (GGCL, CLI, HI, CLAQ) INCLUDE 'isrpia.inc' - REAL*8 CLI + REAL(kind(0.0d0)) CLI C C *** EQUILIBRIUM CONSTANTS C @@ -2166,7 +2167,7 @@ C======================================================================= C SUBROUTINE CALCNIAQ (NO3I, HI, DELT) INCLUDE 'isrpia.inc' - REAL*8 NO3I + REAL(kind(0.0d0)) NO3I C C *** EQUILIBRIUM CONSTANTS C @@ -2220,7 +2221,7 @@ C======================================================================= C SUBROUTINE CALCNIAQ2 (GGNO3, NO3I, HI, NO3AQ) INCLUDE 'isrpia.inc' - REAL*8 NO3I, NO3AQ + REAL(kind(0.0d0)) NO3I, NO3AQ C C *** EQUILIBRIUM CONSTANTS C @@ -2816,7 +2817,7 @@ C C REAL EX10, URF REAL G0(3,4),ZPL,ZMI,AGAMA,SION,H,CH,F1(3),F2(4) - REAL*8 MPL, XIJ, YJI + REAL(kind(0.0d0)) MPL, XIJ, YJI PARAMETER (URF=0.5) C G(I,J)= (F1(I)/Z(I) + F2(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H @@ -3465,7 +3466,7 @@ CC SUBROUTINE CHRBLN (STR, IBLK) CC CC*********************************************************************** - CHARACTER*(*) STR + CHARACTER(len=*) STR C IBLK = 1 ! Substring pointer (default=1) ILEN = LEN(STR) ! Length of string @@ -3591,8 +3592,8 @@ CC Author : Athanasios Nenes CC CC ======================= ARGUMENTS / USAGE ============================= CC -CC VAR is the REAL*8 variable which value is to be saved -CC DEF is a REAL*8 variable, with the default value of VAR. +CC VAR is the REAL(kind(0.0d0)) variable which value is to be saved +CC DEF is a REAL(kind(0.0d0)) variable, with the default value of VAR. CC PROMPT is a CHARACTER varible containing the prompt string. CC PRFMT is a CHARACTER variable containing the FORMAT specifier CC for the default value DEF. @@ -3615,7 +3616,7 @@ CC CC CC*********************************************************************** CHARACTER PROMPT*(*), PRFMT*(*), BUFFER*128 - REAL*8 DEF, VAR + REAL(kind(0.0d0)) DEF, VAR INTEGER IERR C IERR = 0 @@ -3730,7 +3731,7 @@ CC SUBROUTINE Appendext (Filename, Defext, Overwrite) CC CC*********************************************************************** - CHARACTER*(*) Filename, Defext + CHARACTER(len=*) Filename, Defext LOGICAL Overwrite C CALL CHRBLN (Filename, Iend) @@ -3778,10 +3779,10 @@ C======================================================================= C SUBROUTINE POLY3 (A1, A2, A3, ROOT, ISLV) C - IMPLICIT REAL*8 (A-H, O-Z) + IMPLICIT REAL(kind(0.0d0)) (A-H, O-Z) PARAMETER (EXPON=1.D0/3.D0, ZERO=0.D0, THET1=120.D0/180.D0, & THET2=240.D0/180.D0, PI=3.14159265358932, EPS=1D-50) - REAL*8 X(3) + REAL(kind(0.0d0)) X(3) C C *** SPECIAL CASE : QUADRATIC*X EQUATION ***************************** C @@ -3878,7 +3879,7 @@ C======================================================================= C SUBROUTINE POLY3B (A1, A2, A3, RTLW, RTHI, ROOT, ISLV) C - IMPLICIT REAL*8 (A-H, O-Z) + IMPLICIT REAL(kind(0.0d0)) (A-H, O-Z) PARAMETER (ZERO=0.D0, EPS=1D-15, MAXIT=100, NDIV=5) C FUNC(X) = X**3.d0 + A1*X**2.0 + A2*X + A3 @@ -3944,7 +3945,7 @@ C ccc PROGRAM DRIVER -ccc REAL*8 ROOT +ccc REAL(kind(0.0d0)) ROOT cccC ccc CALL POLY3 (-1.d0, 1.d0, -1.d0, ROOT, ISLV) ccc IF (ISLV.NE.0) STOP 'Error in POLY3' @@ -4093,7 +4094,7 @@ C ======================== ARGUMENTS / USAGE =========================== C C INPUT: C 1. [WI] -C REAL*8 array of length [5]. +C REAL(kind(0.0d0)) array of length [5]. C Concentrations, expressed in moles/m3. Depending on the type of C problem solved, WI contains either GAS+AEROSOL or AEROSOL only C concentratios. @@ -4104,11 +4105,11 @@ C WI(4) - nitrate C WI(5) - chloride C C 2. [RHI] -C REAL*8 variable. +C REAL(kind(0.0d0)) variable. C Ambient relative humidity expressed in a (0,1) scale. C C 3. [TEMPI] -C REAL*8 variable. +C REAL(kind(0.0d0)) variable. C Ambient temperature expressed in Kelvins. C C 4. [IPROB] @@ -4121,14 +4122,14 @@ C contains AEROSOL concentrations only. C C OUTPUT: C 1. [GAS] -C REAL*8 array of length [03]. +C REAL(kind(0.0d0)) array of length [03]. C Gaseous species concentrations, expressed in moles/m3. C GAS(1) - NH3 C GAS(2) - HNO3 C GAS(3) - HCl C C 2. [AERLIQ] -C REAL*8 array of length [11]. +C REAL(kind(0.0d0)) array of length [11]. C Liquid aerosol species concentrations, expressed in moles/m3. C AERLIQ(01) - H+(aq) C AERLIQ(02) - Na+(aq) @@ -4143,7 +4144,7 @@ C AERLIQ(10) - HNCl(aq) (undissociated) C AERLIQ(11) - HNO3(aq) (undissociated) C C 3. [AERSLD] -C REAL*8 array of length [09]. +C REAL(kind(0.0d0)) array of length [09]. C Solid aerosol species concentrations, expressed in moles/m3. C AERSLD(01) - NaNO3(s) C AERSLD(02) - NH4NO3(s) @@ -4412,7 +4413,7 @@ C ======================== ARGUMENTS / USAGE =========================== C C OUTPUT: C 1. [VERSI] -C CHARACTER*14 variable. +C CHARACTER(len=14) variable. C Contains version-date information of ISORROPIA C C 2. [NCMP] @@ -4439,11 +4440,11 @@ C The size of the error stack (maximum number of errors that can C be stored before the stack exhausts). C C 7. [TIN] -C REAL*8 variable +C REAL(kind(0.0d0)) variable C The value used for a very small number. C C 8. [GRT] -C REAL*8 variable +C REAL(kind(0.0d0)) variable C The value used for a very large number. C C *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY @@ -4454,7 +4455,7 @@ C SUBROUTINE ISORINF (VERSI, NCMP, NION, NAQGAS, NSOL, NERR, TIN, & GRT) INCLUDE 'isrpia.inc' - CHARACTER*14 VERSI + CHARACTER(len=14) VERSI C C *** ASSIGN INFO ******************************************************* C diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index 2cd179fc58e0933e5c913c3cc8dc6c57f26b88a0..58d8e8a59afe41995396c3c16c2faea6b762bcdf 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-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. @@ -20,7 +20,7 @@ USE MODD_IO, ONLY: TFILEDATA INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file ! Condensation @@ -121,7 +121,7 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file ! Condensation diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index c09f7abd30d5ebdec856a9021d70af90b42166e5..5cad38d69f8fccdc3f1c1a037f3fa01a1e5a5632 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -20,9 +20,9 @@ USE MODD_IO, ONLY: TFILEDATA INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid @@ -170,9 +170,9 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid diff --git a/src/MNH/lima_cold_sedimentation.f90 b/src/MNH/lima_cold_sedimentation.f90 index 2764324eeca2d5e4da169904a0f1799f9f87b019..c81d3924ffa5069574a428ad741c75911540f03a 100644 --- a/src/MNH/lima_cold_sedimentation.f90 +++ b/src/MNH/lima_cold_sedimentation.f90 @@ -263,9 +263,7 @@ DO JN = 1 , KSPLITG ZRSS(JL) = PRSS(I1(JL),I2(JL),I3(JL)) END DO WHERE( ZRSS(:)>XRTMIN(5) ) -! Correction BVIE ZRHODREF -! ZZW(:) = XFSEDS * ZRSS(:)**XEXSEDS * ZRHODREF(:)**(XEXSEDS-XCEXVT) - ZZW(:) = XFSEDS * ZRSS(:)**XEXSEDS * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:) + ZZW(:) = XFSEDS * (ZRSS(:)*ZRHODREF(:))**XEXSEDS * ZRHODREF(:)**(-XCEXVT) END WHERE ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRSS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) ) @@ -289,9 +287,7 @@ DO JN = 1 , KSPLITG ZRGS(JL) = PRGS(I1(JL),I2(JL),I3(JL)) END DO WHERE( ZRGS(:)>XRTMIN(6) ) -! Correction BVIE ZRHODREF -! ZZW(:) = XFSEDG * ZRGS(:)**XEXSEDG * ZRHODREF(:)**(XEXSEDG-XCEXVT) - ZZW(:) = XFSEDG * ZRGS(:)**XEXSEDG * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:) + ZZW(:) = XFSEDG * (ZRGS(:)*ZRHODREF(:))**XEXSEDG * ZRHODREF(:)**(-XCEXVT) END WHERE ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRGS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) ) @@ -315,9 +311,7 @@ DO JN = 1 , KSPLITG ZRHS(JL) = PRHS(I1(JL),I2(JL),I3(JL)) END DO WHERE( ZRHS(:)>XRTMIN(7) ) -! Correction BVIE ZRHODREF -! ZZW(:) = XFSEDH * ZRHS(:)**XEXSEDH * ZRHODREF(:)**(XEXSEDH-XCEXVT) - ZZW(:) = XFSEDH * ZRHS(:)**XEXSEDH * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:) + ZZW(:) = XFSEDH * (ZRHS(:)*ZRHODREF(:))**XEXSEDH * ZRHODREF(:)**(-XCEXVT) END WHERE ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 ) ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRHS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) ) diff --git a/src/MNH/lima_cold_slow_processes.f90 b/src/MNH/lima_cold_slow_processes.f90 index 08ad1dc799b8fdfd88c44f0b90f1577bba9770c0..0aeb16cfc4c97576272de1ebcc5d2262155663be 100644 --- a/src/MNH/lima_cold_slow_processes.f90 +++ b/src/MNH/lima_cold_slow_processes.f90 @@ -339,11 +339,9 @@ IF( IMICRO >= 1 ) THEN WHERE ( ZLBDAS(:)<XLBDASCNVI_MAX .AND. (ZRST(:)>XRTMIN(5)) & .AND. (ZSSI(:)<0.0) ) ZZW(:) = (ZLBDAS(:)*XDSCNVI_LIM)**(XALPHAS) - ZZX(:) = ( -ZSSI(:)/ZAI(:) ) * (XCCS*ZLBDAS(:)**XCXS) * (ZZW(:)**XNUI) & + ZZX(:) = ( -ZSSI(:)/ZAI(:) ) * (XCCS*ZLBDAS(:)**XCXS)/ZRHODREF(:) * (ZZW(:)**XNUI) & * EXP(-ZZW(:)) ! -! Correction BVIE RHODREF -! ZZW(:) = MIN( ( XR0DEPSI+XR1DEPSI*ZCJ(:) )*ZZX(:)/ZRHODREF(:),ZRSS(:) ) ZZW(:) = MIN( ( XR0DEPSI+XR1DEPSI*ZCJ(:) )*ZZX(:),ZRSS(:) ) ZRIS(:) = ZRIS(:) + ZZW(:) ZRSS(:) = ZRSS(:) - ZZW(:) @@ -372,9 +370,7 @@ IF( IMICRO >= 1 ) THEN ! ZZW(:) = 0.0 WHERE ( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>ZRTMIN(5)) ) -!Correction BVIE rhodref -! ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & - ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) * & + ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & ( X0DEPS*ZLBDAS(:)**XEX0DEPS + X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS ) ZZW(:) = MIN( ZRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & - MIN( ZRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) @@ -440,7 +436,7 @@ IF( IMICRO >= 1 ) THEN WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRIS(:)>ZRTMIN(4)) & .AND. (ZCIS(:)>ZCTMIN(4)) ) ZZW1(:,3) = (ZLBDAI(:) / ZLBDAS(:))**3 - ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) & + ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)/ZRHODREF(:)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) & / (ZLBDAI(:)**3) ZZW1(:,2) = MIN( ZZW1(:,1)*(XAGGS_CLARGE1+XAGGS_CLARGE2*ZZW1(:,3)),ZCIS(:) ) ZCIS(:) = ZCIS(:) - ZZW1(:,2) diff --git a/src/MNH/lima_functions.f90 b/src/MNH/lima_functions.f90 index 30fd902b4ef4169f78e2e5a60dca84911d1b7c71..f253b700aa334c5879f149748cf21cfa4e489c00 100644 --- a/src/MNH/lima_functions.f90 +++ b/src/MNH/lima_functions.f90 @@ -4,8 +4,8 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: -! P.Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) -! +! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) +! P. Wautelet 19/04/2019: use modd_precision kinds !----------------------------------------------------------------- !################################# MODULE MODI_LIMA_FUNCTIONS @@ -222,13 +222,15 @@ END FUNCTION DELTA_VEC !########################### SUBROUTINE gaulag(x,w,n,alf) !########################### + use modd_precision, only: MNHREAL64 + INTEGER n,MAXIT REAL alf,w(n),x(n) - REAL(kind=8) :: EPS + REAL(kind=MNHREAL64) :: EPS PARAMETER (EPS=3.D-14,MAXIT=10) INTEGER i,its,j REAL ai - REAL(kind=8) :: p1,p2,p3,pp,z,z1 + REAL(kind=MNHREAL64) :: p1,p2,p3,pp,z,z1 ! REAL SUMW ! @@ -277,12 +279,14 @@ END SUBROUTINE gaulag !########################################## SUBROUTINE gauher(x,w,n) !########################################## + use modd_precision, only: MNHREAL64 + INTEGER n,MAXIT REAL w(n),x(n) - REAL(kind=8) :: EPS,PIM4 + REAL(kind=MNHREAL64) :: EPS,PIM4 PARAMETER (EPS=3.D-14,PIM4=.7511255444649425D0,MAXIT=10) INTEGER i,its,j,m - REAL(kind=8) :: p1,p2,p3,pp,z,z1 + REAL(kind=MNHREAL64) :: p1,p2,p3,pp,z,z1 ! REAL SUMW ! diff --git a/src/MNH/lima_graupel_deposition.f90 b/src/MNH/lima_graupel_deposition.f90 index 85fbbe915979039948a1753c357b65a7256ae2ad..4c042364de5b785987f468d9c3bb5a92d7981a5a 100644 --- a/src/MNH/lima_graupel_deposition.f90 +++ b/src/MNH/lima_graupel_deposition.f90 @@ -7,19 +7,20 @@ ! ################################# ! INTERFACE - SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, & + SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & PRGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, & P_TH_DEPG, P_RG_DEPG, & PA_TH, PA_RV, PA_RG ) ! LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE +REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! -REAL, DIMENSION(:), INTENT(IN) :: PAI ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! +REAL, DIMENSION(:), INTENT(IN) :: PRGT ! Cloud water C. at t +REAL, DIMENSION(:), INTENT(IN) :: PSSI ! +REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! +REAL, DIMENSION(:), INTENT(IN) :: PAI ! +REAL, DIMENSION(:), INTENT(IN) :: PCJ ! +REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! ! REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPG REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_DEPG @@ -33,7 +34,7 @@ END INTERFACE END MODULE MODI_LIMA_GRAUPEL_DEPOSITION ! ! ########################################################################### - SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, & + SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & PRGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, & P_TH_DEPG, P_RG_DEPG, & PA_TH, PA_RV, PA_RG ) @@ -68,13 +69,14 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE +REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! -REAL, DIMENSION(:), INTENT(IN) :: PAI ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! +REAL, DIMENSION(:), INTENT(IN) :: PRGT ! Cloud water C. at t +REAL, DIMENSION(:), INTENT(IN) :: PSSI ! +REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! +REAL, DIMENSION(:), INTENT(IN) :: PAI ! +REAL, DIMENSION(:), INTENT(IN) :: PCJ ! +REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! ! REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPG REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_DEPG @@ -93,7 +95,7 @@ REAL, DIMENSION(:), INTENT(INOUT) :: PA_RG P_TH_DEPG(:) = 0.0 P_RG_DEPG(:) = 0.0 WHERE ( (PRGT(:)>XRTMIN(6)) .AND. LDCOMPUTE(:) ) - P_RG_DEPG(:) = ( PSSI(:)/(PAI(:)) ) * & + P_RG_DEPG(:) = ( PSSI(:)/PAI(:)/PRHODREF(:) ) * & ( X0DEPG*PLBDG(:)**XEX0DEPG + X1DEPG*PCJ(:)*PLBDG(:)**XEX1DEPG ) P_TH_DEPG(:) = P_RG_DEPG(:)*PLSFACT(:) END WHERE diff --git a/src/MNH/lima_ice_aggregation_snow.f90 b/src/MNH/lima_ice_aggregation_snow.f90 index 15c1d699c24833c3513b7a5a75ff747994254085..09ebc41dca2aab029d52c586d4efb67476b8ee9f 100644 --- a/src/MNH/lima_ice_aggregation_snow.f90 +++ b/src/MNH/lima_ice_aggregation_snow.f90 @@ -8,7 +8,7 @@ ! INTERFACE SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & - PT, & + PT, PRHODREF, & PRIT, PRST, PCIT, PLBDI, PLBDS, & P_RI_AGGS, P_CI_AGGS, & PA_RI, PA_CI, PA_RS ) @@ -16,6 +16,7 @@ INTERFACE LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE ! REAL, DIMENSION(:), INTENT(IN) :: PT +REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! REAL, DIMENSION(:), INTENT(IN) :: PRIT REAL, DIMENSION(:), INTENT(IN) :: PRST @@ -36,7 +37,7 @@ END MODULE MODI_LIMA_ICE_AGGREGATION_SNOW ! ! ####################################################################### SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & - PT, & + PT, PRHODREF, & PRIT, PRST, PCIT, PLBDI, PLBDS, & P_RI_AGGS, P_CI_AGGS, & PA_RI, PA_CI, PA_RS ) @@ -74,6 +75,7 @@ IMPLICIT NONE LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE ! REAL, DIMENSION(:), INTENT(IN) :: PT +REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! REAL, DIMENSION(:), INTENT(IN) :: PRIT REAL, DIMENSION(:), INTENT(IN) :: PRST @@ -108,7 +110,7 @@ P_CI_AGGS(:) = 0. ! WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. LDCOMPUTE(:) ) ZZW1(:) = (PLBDI(:) / PLBDS(:))**3 - ZZW2(:) = (PCIT(:)*(XCCS*PLBDS(:)**XCXS)*EXP( XCOLEXIS*(PT(:)-XTT) )) & + ZZW2(:) = (PCIT(:)*(XCCS*PLBDS(:)**XCXS)/PRHODREF(:)*EXP( XCOLEXIS*(PT(:)-XTT) )) & / (PLBDI(:)**3) ZZW3(:) = ZZW2(:)*(XAGGS_CLARGE1+XAGGS_CLARGE2*ZZW1(:)) ! diff --git a/src/MNH/lima_ice_snow_deposition.f90 b/src/MNH/lima_ice_snow_deposition.f90 index 7563412ba348469c1628a7849be592cb01f1e351..4d92b528ac9aabb0224e61ae9de0c23a5b50f0fb 100644 --- a/src/MNH/lima_ice_snow_deposition.f90 +++ b/src/MNH/lima_ice_snow_deposition.f90 @@ -166,7 +166,7 @@ WHERE( GMICRO ) WHERE ( PLBDS(:)<XLBDASCNVI_MAX .AND. (PRST(:)>XRTMIN(5)) & .AND. (PSSI(:)<0.0) ) ZZW(:) = (PLBDS(:)*XDSCNVI_LIM)**(XALPHAS) - ZZX(:) = ( -PSSI(:)/PAI(:) ) * (XCCS*PLBDS(:)**XCXS) * (ZZW(:)**XNUS) * EXP(-ZZW(:)) + ZZX(:) = ( -PSSI(:)/PAI(:) ) * (XCCS*PLBDS(:)**XCXS)/PRHODREF(:) * (ZZW(:)**XNUS) * EXP(-ZZW(:)) ! ZZW(:) = ( XR0DEPSI+XR1DEPSI*PCJ(:) )*ZZX(:) ! @@ -187,7 +187,7 @@ WHERE( GMICRO ) ! ZZW(:) = 0.0 WHERE ( (PRST(:)>XRTMIN(5)) ) - ZZW(:) = ( PSSI(:)/(PAI(:)) ) * & + ZZW(:) = ( PSSI(:)/(PAI(:))/PRHODREF(:) ) * & ( X0DEPS*PLBDS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS ) ZZW(:) = ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:))) END WHERE diff --git a/src/MNH/lima_mixed_slow_processes.f90 b/src/MNH/lima_mixed_slow_processes.f90 index 3e217b6912520b741c7260ebfd29a8a8e61dbc6f..7c58f4910a4603219de2d1c7887db6b2760be388 100644 --- a/src/MNH/lima_mixed_slow_processes.f90 +++ b/src/MNH/lima_mixed_slow_processes.f90 @@ -181,9 +181,7 @@ INTEGER :: JMOD_IFN IF (LSNOW) THEN ZZW(:) = 0.0 WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>XRTMIN(6)/PTSTEP) ) -!Correction BVIE RHODREF -! ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & - ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) * & + ZZW(:) = ( ZSSI(:)/ZAI(:)/ZRHODREF(:) ) * & ( X0DEPG*ZLBDAG(:)**XEX0DEPG + X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) ZZW(:) = MIN( ZRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & - MIN( ZRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) diff --git a/src/MNH/lima_sedimentation.f90 b/src/MNH/lima_sedimentation.f90 index 36b173a84f6ddf84e9e7a3732007891dca1b5b48..b64244b29ae182f4d547ac1c934697da9653f3c5 100644 --- a/src/MNH/lima_sedimentation.f90 +++ b/src/MNH/lima_sedimentation.f90 @@ -67,9 +67,7 @@ END MODULE MODI_LIMA_SEDIMENTATION !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAM_LIMA_COLD, ONLY : XLBEXI, XLBI, XDI, & - XFSEDRI, XFSEDCI, XFSEDS, XEXSEDS -USE MODD_PARAM_LIMA_MIXED, ONLY : XFSEDG, XEXSEDG, XFSEDH, XEXSEDH +USE MODD_PARAM_LIMA_COLD, ONLY : XLBEXI, XLBI, XDI USE MODD_PARAM_LIMA, ONLY : XCEXVT, XRTMIN, XCTMIN, NSPLITSED, & XLB, XLBEX, XD, XFSEDR, XFSEDC, & XALPHAC, XNUC diff --git a/src/MNH/lima_tendencies.f90 b/src/MNH/lima_tendencies.f90 index cb1cf7d003382937728536acfc5b23233af8f2d1..b66b19c3d56f807c7378db7f8a85bcc003584c39 100644 --- a/src/MNH/lima_tendencies.f90 +++ b/src/MNH/lima_tendencies.f90 @@ -550,14 +550,14 @@ ZLBDS(:) = MIN( XLBDAS_MAX, ZLBDS(:)) ! IF (LCOLD .AND. LSNOW) THEN CALL LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & - ZT, & + ZT, PRHODREF, & PRIT, PRST, PCIT, ZLBDI, ZLBDS, & P_RI_AGGS, P_CI_AGGS, & PA_RI, PA_CI, PA_RS ) END IF ! IF (LWARM .AND. LCOLD) THEN - CALL LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, & + CALL LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & PRGT, ZSSI, ZLBDG, ZAI, ZCJ, ZLSFACT, & P_TH_DEPG, P_RG_DEPG, & PA_TH, PA_RV, PA_RG ) diff --git a/src/MNH/modd_blank.f90 b/src/MNH/modd_blank.f90 index 420e87e1eee668458d02506ee5e0d0432cd113d8..64e2eda86cd827987744006b326ab2f9f93499b9 100644 --- a/src/MNH/modd_blank.f90 +++ b/src/MNH/modd_blank.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!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 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 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ################# MODULE MODD_BLANK ! ################# @@ -60,12 +55,12 @@ INTEGER, SAVE :: NDUMMY1, NDUMMY2, NDUMMY3, NDUMMY4, & NDUMMY5, NDUMMY6, NDUMMY7, NDUMMY8 LOGICAL, SAVE :: LDUMMY1, LDUMMY2, LDUMMY3, LDUMMY4, & LDUMMY5, LDUMMY6, LDUMMY7, LDUMMY8 -CHARACTER*80, SAVE :: CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4, & - CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8 +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*80, SAVE, DIMENSION(JPDUMMY) :: CDUMMY +CHARACTER(len=80), SAVE, DIMENSION(JPDUMMY) :: CDUMMY ! END MODULE MODD_BLANK diff --git a/src/MNH/modd_ch_aerosol0d.f90 b/src/MNH/modd_ch_aerosol0d.f90 index 53d2c2c5059f61f1b87c812f8f208001af42ad44..49ede4f6ff895d908d1d0be7800cecdae54b37c7 100644 --- a/src/MNH/modd_ch_aerosol0d.f90 +++ b/src/MNH/modd_ch_aerosol0d.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ###################### MODULE MODD_CH_AEROSOL0D !! ###################### @@ -124,8 +119,8 @@ REAL :: XEMISSIGJ = 1.60 ! dispersion of primary aerosol ! emission for J mode REAL :: XEMISSIGK = 1.60 ! dispersion of primary aerosol ! emission for K mode -CHARACTER*4 :: CRGUNIT = 'MASS' ! type of log-normal geometric mean radius given -! ! in nameliste (mass on number) +CHARACTER(len=4) :: CRGUNIT = 'MASS' ! type of log-normal geometric mean radius given +! ! in nameliste (mass on number) diff --git a/src/MNH/modd_ch_model0d.f90 b/src/MNH/modd_ch_model0d.f90 index 0dd1a92ad3ac6861cbb6bf791f45064562450f0d..8eb553ae6abbdd9a3c4d939b1ca7b48b55de2cb1 100644 --- a/src/MNH/modd_ch_model0d.f90 +++ b/src/MNH/modd_ch_model0d.f90 @@ -63,17 +63,17 @@ REAL :: XTNEXTMETEO ! time of next meteo update ! !* 0.2 file names, formats and I/O channels ! -CHARACTER*128 :: CINITFILE = "CHCONTROL1.nam" ! name of initial value file -CHARACTER*128 :: CMETEOFILE = "CHCONTROL1.nam" ! meteo update file +CHARACTER(len=128) :: CINITFILE = "CHCONTROL1.nam" ! name of initial value file +CHARACTER(len=128) :: CMETEOFILE = "CHCONTROL1.nam" ! meteo update file TYPE(TFILEDATA),POINTER :: TMETEOFILE => NULL() ! meteo update file ! -CHARACTER*128 :: COUTFILE = "BOX.OUT" ! name of final output file -CHARACTER*128 :: CRESULTFILE = "BOX.RESULT" ! regular output file -CHARACTER*128 :: CDIAGFILE = "BOX.DIAG" ! diagnostics output file +CHARACTER(len=128) :: COUTFILE = "BOX.OUT" ! name of final output file +CHARACTER(len=128) :: CRESULTFILE = "BOX.RESULT" ! regular output file +CHARACTER(len=128) :: CDIAGFILE = "BOX.DIAG" ! diagnostics output file ! -CHARACTER*80 :: CRUNID = "no runid specified" ! runid for output file -CHARACTER*40 :: CRESULTFORMAT = "(5E16.8)" ! Format for results -CHARACTER*40 :: CDIAGFORMAT = "(5E16.8)" ! Format for diagnostics +CHARACTER(len=80) :: CRUNID = "no runid specified" ! runid for output file +CHARACTER(len=40) :: CRESULTFORMAT = "(5E16.8)" ! Format for results +CHARACTER(len=40) :: CDIAGFORMAT = "(5E16.8)" ! Format for diagnostics ! INTEGER :: NRESULTIO = -1 ! channel to be used for all regular result file I/O (set in CH_INIT_OUTPUT) INTEGER :: NDIAGIO = -1 ! channel to be used for all diagnostics file I/O (set in CH_INIT_DIAGNOSTICS) @@ -85,18 +85,18 @@ INTEGER :: NVERB = 5 ! verbosity level: 0 (lowest) <= NVERB <= 10 (highest) !* 0.4 parameters for TUV ! LOGICAL :: LCH_TUV_ONLINE = .TRUE. ! switch online/lookup table -CHARACTER*80 :: CCH_TUV_LOOKUP = "PHOTO.TUV39" ! name of lookup table file -CHARACTER*4 :: CCH_TUV_CLOUDS = "NONE" ! method for calculating the - ! impact of clouds on radiation - ! "FOUQ" (model clouds, only 1-D) - ! "RADM" (parameterized, for 3-D) +CHARACTER(len=80) :: CCH_TUV_LOOKUP = "PHOTO.TUV39" ! name of lookup table file +CHARACTER(len=4) :: CCH_TUV_CLOUDS = "NONE" ! method for calculating the + ! impact of clouds on radiation + ! "FOUQ" (model clouds, only 1-D) + ! "RADM" (parameterized, for 3-D) REAL :: XCH_TUV_ALBNEW = -1. ! surface albedo (if negative the albedo - ! will be read from DATAX/albedo.dat) + ! will be read from DATAX/albedo.dat) REAL :: XCH_TUV_DOBNEW = -1. ! scaling factor for ozone column dobson ! (if negative, no scaling will be performed, - ! note: the O3 profile will be read from - ! DATAX/O3.profile, if this file is empty, the - ! US standard O3 profile will be used) + ! note: the O3 profile will be read from + ! DATAX/O3.profile, if this file is empty, the + ! US standard O3 profile will be used) REAL :: XCH_TUV_TUPDATE = 600. ! update frequency for TUV (in seconds) ! LOGICAL :: LCH_SURFACE0D = .FALSE. ! switch to activate surface fluxes diff --git a/src/MNH/modd_ch_solvern.f90 b/src/MNH/modd_ch_solvern.f90 index dec9d8531149a4a4d0e8779f709c477550f317a7..50e54f48a8ed87d04414a8dc62eeb0b3f524121b 100644 --- a/src/MNH/modd_ch_solvern.f90 +++ b/src/MNH/modd_ch_solvern.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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 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$ -! NEC0 masdev4_7 2007/06/16 01:41:59 -!----------------------------------------------------------------- !! ######################### MODULE MODD_CH_SOLVER_n !! ######################### @@ -43,7 +38,7 @@ TYPE CH_SOLVER_t ! !* 0.1 choice of the stiff solver ! - CHARACTER*32 :: CSOLVER = 'EXQSSA' ! name of the solver to be used + CHARACTER(len=32) :: CSOLVER = 'EXQSSA' ! name of the solver to be used ! !* 0.2 parameters for LinSSA solver ! @@ -78,10 +73,10 @@ TYPE CH_SOLVER_t ! INTEGER :: NMAXORD = 5 ! maximum order for the BDF method (0<NMAXORD<=5) LOGICAL :: LPETZLD = .TRUE. ! perform Petzold local error test (recommended) - CHARACTER*1 :: CMETHOD = "N" ! method to use non-linear system + CHARACTER(len=1) :: CMETHOD = "N" ! method to use non-linear system ! N or D for modified Newton iteration ! F for functional iteration - CHARACTER*1 :: CNORM = "A" ! type of norm to be used + CHARACTER(len=1) :: CNORM = "A" ! type of norm to be used ! A or D for averaged L2 norm ! M for maximum norm INTEGER :: NTRACE = 0 ! level of output from D02NBF @@ -110,7 +105,7 @@ TYPE(CH_SOLVER_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: CH_SOLVER_MODEL LOGICAL , DIMENSION(JPMODELMAX), SAVE :: CH_SOLVER_FIRST_CALL = .TRUE. !JUAN -CHARACTER*32, POINTER :: CSOLVER=>NULL() +CHARACTER(len=32), POINTER :: CSOLVER=>NULL() INTEGER, POINTER :: NSSA=>NULL() INTEGER, DIMENSION(:), POINTER :: NSSAINDEX=>NULL() REAL, POINTER :: XRTOL=>NULL() @@ -119,8 +114,8 @@ INTEGER, POINTER :: NRELAB=>NULL() INTEGER, POINTER :: NPED=>NULL() INTEGER, POINTER :: NMAXORD=>NULL() LOGICAL, POINTER :: LPETZLD=>NULL() -CHARACTER*1, POINTER :: CMETHOD=>NULL() -CHARACTER*1, POINTER :: CNORM=>NULL() +CHARACTER(len=1), POINTER :: CMETHOD=>NULL() +CHARACTER(len=1), POINTER :: CNORM=>NULL() INTEGER, POINTER :: NTRACE=>NULL() REAL, POINTER :: XALPHA=>NULL() REAL, POINTER :: XSLOW=>NULL() diff --git a/src/MNH/modd_diag_blank.f90 b/src/MNH/modd_diag_blank.f90 index 1f5f48e4fa6e40e89f1acb966649e6aad1687779..0fc391911738e582a82e7cf202980a03b5c1735b 100644 --- a/src/MNH/modd_diag_blank.f90 +++ b/src/MNH/modd_diag_blank.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!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 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 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ###################### MODULE MODD_DIAG_BLANK ! ###################### @@ -58,6 +53,6 @@ IMPLICIT NONE REAL, SAVE, DIMENSION(JPDUMMY) :: XDUMMY_DIAG INTEGER, SAVE, DIMENSION(JPDUMMY) :: NDUMMY_DIAG LOGICAL, SAVE, DIMENSION(JPDUMMY) :: LDUMMY_DIAG -CHARACTER*80, SAVE, DIMENSION(JPDUMMY) :: CDUMMY_DIAG +CHARACTER(len=80), SAVE, DIMENSION(JPDUMMY) :: CDUMMY_DIAG ! END MODULE MODD_DIAG_BLANK diff --git a/src/MNH/modd_frc.f90 b/src/MNH/modd_frc.f90 index a2dfc1c56630e513f63397f422411fa00967675e..0fdd3c63315b69c0bc97eaa7852cea8b93884763 100644 --- a/src/MNH/modd_frc.f90 +++ b/src/MNH/modd_frc.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!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 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 modd 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ############### MODULE MODD_FRC ! ############### @@ -98,7 +93,7 @@ LOGICAL, SAVE :: LRELAX_UV_FRC ! enables horizontal wind relaxation REAL, SAVE :: XRELAX_TIME_FRC ! e-folding time for relaxation REAL, SAVE :: XRELAX_HEIGHT_FRC ! height below which relaxation ! is never applied -CHARACTER*4, SAVE :: CRELAX_HEIGHT_TYPE ! "THGR" relax. above maximal dTH/dz +CHARACTER(len=4), SAVE :: CRELAX_HEIGHT_TYPE ! "THGR" relax. above maximal dTH/dz ! (but always above XRELAX_HEIGHT_FRC) ! "FIXE" relax. above XRELAX_HEIGHT_FRC ! diff --git a/src/MNH/modd_mnh2lpdm.f90 b/src/MNH/modd_mnh2lpdm.f90 index db4d3a1cbe82d461cd07eaa638ca65a7e053c693..b8c053397a4c5a15d4575e730ddd5e641854e49b 100644 --- a/src/MNH/modd_mnh2lpdm.f90 +++ b/src/MNH/modd_mnh2lpdm.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODD_MNH2LPDM ! ################## @@ -25,7 +26,7 @@ CHARACTER(LEN=50), SAVE :: CFGRI ! Nom du fichier GRILLE. CHARACTER(LEN=50), SAVE :: CFDAT ! Nom du fichier DATE. CHARACTER(LEN=28), SAVE, DIMENSION(JPMNHMAX) :: CFMNH ! Noms des FM. ! -CHARACTER*10, SAVE :: CTURBPARAM="ISOTROPE" ! ISOTROPE ou HANNA +CHARACTER(len=10), SAVE :: CTURBPARAM="ISOTROPE" ! ISOTROPE ou HANNA ! NAMELIST/NAM_FIC/ CFMTO,CFGRI,CFDAT,CFMNH NAMELIST/NAM_TURB/ CTURBPARAM diff --git a/src/MNH/modd_param_ice.f90 b/src/MNH/modd_param_ice.f90 index d6f3399b7d9b646d1aaf51b8d0fae4f57e58bb89..ddafd7516ed3313d0295d5c0b69fed2851f71783 100644 --- a/src/MNH/modd_param_ice.f90 +++ b/src/MNH/modd_param_ice.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODD_PARAM_ICE ! ##################### @@ -65,14 +66,14 @@ LOGICAL, SAVE :: LCRFLIMIT !True to limit rain contact freezing to possible heat ! REAL, SAVE :: XTSTEP_TS ! Approximative time step for time-splitting (0 for no time-splitting) ! -CHARACTER*80, SAVE :: CSUBG_RC_RR_ACCR ! subgrid rc-rr accretion -CHARACTER*80, SAVE :: CSUBG_RR_EVAP ! subgrid rr evaporation -CHARACTER*80, SAVE :: CSUBG_PR_PDF ! pdf for subgrid precipitation +CHARACTER(len=80), SAVE :: CSUBG_RC_RR_ACCR ! subgrid rc-rr accretion +CHARACTER(len=80), SAVE :: CSUBG_RR_EVAP ! subgrid rr evaporation +CHARACTER(len=80), SAVE :: CSUBG_PR_PDF ! pdf for subgrid precipitation ! LOGICAL, SAVE :: LADJ_BEFORE ! must we perform an adjustment before rain_ice call LOGICAL, SAVE :: LADJ_AFTER ! must we perform an adjustment after rain_ice call -CHARACTER*1, SAVE :: CFRAC_ICE_ADJUST ! ice fraction for adjustments -CHARACTER*1, SAVE :: CFRAC_ICE_SHALLOW_MF ! ice fraction for shallow_mf +CHARACTER(len=1), SAVE :: CFRAC_ICE_ADJUST ! ice fraction for adjustments +CHARACTER(len=1), SAVE :: CFRAC_ICE_SHALLOW_MF ! ice fraction for shallow_mf LOGICAL, SAVE :: LSEDIM_AFTER ! sedimentation done before (.FALSE.) or after (.TRUE.) microphysics ! REAL, SAVE :: XSPLIT_MAXCFL ! Maximum CFL number allowed for SPLIT scheme diff --git a/src/MNH/modd_paspol.f90 b/src/MNH/modd_paspol.f90 index a7fc26f9fa6bad30b7eae4094fbbf661956433e9..9bffdd53d7f57da1e59c56a82032d0f62bb4fb74 100644 --- a/src/MNH/modd_paspol.f90 +++ b/src/MNH/modd_paspol.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODD_PASPOL ! ################## @@ -28,18 +29,16 @@ LOGICAL :: LPASPOL = .FALSE. ! Switch to active passive pollutants INTEGER, PARAMETER :: JPRELEASEMAX = 100 ! INTEGER :: NRELEASE ! Number of releases -CHARACTER*3, DIMENSION(JPRELEASEMAX) :: CPPINIT ! Type of initialiZation. +CHARACTER(len=3), DIMENSION(JPRELEASEMAX) :: CPPINIT ! Type of initialiZation. REAL, DIMENSION(JPRELEASEMAX) :: XPPLAT ! Latitude of the release REAL, DIMENSION(JPRELEASEMAX) :: XPPLON ! Longitude of the release -REAL, DIMENSION(JPRELEASEMAX) :: XPPMASS ! Released mass +REAL, DIMENSION(JPRELEASEMAX) :: XPPMASS ! Released mass REAL, DIMENSION(JPRELEASEMAX) :: XPPBOT ! Bottom of release -REAL, DIMENSION(JPRELEASEMAX) :: XPPTOP ! Top of release -CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT1 ! Begin of release -CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT2 ! Begin of constant - ! release -CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT3 ! End of constant - ! release -CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT4 ! End of release +REAL, DIMENSION(JPRELEASEMAX) :: XPPTOP ! Top of release +CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT1 ! Begin of release +CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT2 ! Begin of constant release +CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT3 ! End of constant release +CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT4 ! End of release ! ! END MODULE MODD_PASPOL diff --git a/src/MNH/modd_tmat.f90 b/src/MNH/modd_tmat.f90 index b9d6909e525d6d9880d36546ef869aa4ecb16279..a954b1a2f88079802001915892edec33216f6e73 100644 --- a/src/MNH/modd_tmat.f90 +++ b/src/MNH/modd_tmat.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!------------------------------------------------------------------------------- ! ################# MODULE MODD_TMAT ! ################# @@ -28,7 +29,8 @@ !! ------------- !! !! Original 23/03/2010 -!! +! P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8 +! !------------------------------------------------------------------------------- ! @@ -57,16 +59,16 @@ REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: XIT21,XIT22 !COMMON /CT/ dimensions : (NPN2,NPN2) -REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE :: XTR1,XTI1 +REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE :: XTR1,XTI1 !COMMON /CTT/ dimensions : (NPN2,NPN2) -REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE :: XQR,XQI,XRGQR,XRGQI +REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE :: XQR,XQI,XRGQR,XRGQI ! !COMMON /CBESS/ dimensions (NPNG2,NPN1) -REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE ::XJ,XY,XJR,XJI,XDJ -REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE ::XDJR,XDJI,XDY +REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE ::XJ,XY,XJR,XJI,XDJ +REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE ::XDJR,XDJI,XDY END MODULE MODD_TMAT diff --git a/src/MNH/mode_datetime.f90 b/src/MNH/mode_datetime.f90 index 2684e11d48a4426dea6321524ba93edc6ebe080a..b6547cfa9cb7714be3b7c73a5d0f12d9b1398777 100644 --- a/src/MNH/mode_datetime.f90 +++ b/src/MNH/mode_datetime.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard) +! P. Wautelet 19/04/2019: use modd_precision kinds !----------------------------------------------------------------- MODULE MODE_DATETIME ! @@ -38,29 +39,31 @@ SUBROUTINE DATETIME_TIME2REFERENCE(TPDATE,PDIST) ! !Compute number of seconds since reference date (and time) ! +use modd_precision, only: MNHINT64 + TYPE(DATE_TIME), INTENT(IN) :: TPDATE REAL, INTENT(OUT) :: PDIST ! -INTEGER(KIND=8) :: ILEAPS !Number of leap days -INTEGER(KIND=8) :: IDAYS !Number of days since reference date -INTEGER(KIND=8) :: IYEARS !Number of years since reference date -INTEGER(KIND=8) :: IDAY_CUR, IMONTH_CUR, IYEAR_CUR !Currrent day, month and year -REAL :: ZSEC !Current time of the day (in seconds) -TYPE(DATE_TIME) :: TZDATE +INTEGER(KIND=MNHINT64) :: ILEAPS !Number of leap days +INTEGER(KIND=MNHINT64) :: IDAYS !Number of days since reference date +INTEGER(KIND=MNHINT64) :: IYEARS !Number of years since reference date +INTEGER(KIND=MNHINT64) :: IDAY_CUR, IMONTH_CUR, IYEAR_CUR !Currrent day, month and year +REAL :: ZSEC !Current time of the day (in seconds) +TYPE(DATE_TIME) :: TZDATE ! -ILEAPS = 0 -IDAYS = 0 +ILEAPS = 0_MNHINT64 +IDAYS = 0_MNHINT64 ! TZDATE = TPDATE CALL DATETIME_CORRECTDATE(TZDATE) ! -IYEAR_CUR = TZDATE%TDATE%YEAR -IMONTH_CUR = TZDATE%TDATE%MONTH -IDAY_CUR = TZDATE%TDATE%DAY +IYEAR_CUR = int( TZDATE%TDATE%YEAR, kind=MNHINT64 ) +IMONTH_CUR = int( TZDATE%TDATE%MONTH, kind=MNHINT64 ) +IDAY_CUR = int( TZDATE%TDATE%DAY, kind=MNHINT64 ) ZSEC = TZDATE%TIME ! !Compute number of days since beginning of the year -IF ( ((MOD(IYEAR_CUR,4_8)==0).AND.(MOD(IYEAR_CUR,100_8)/=0)) .OR. (MOD(IYEAR_CUR,400_8)==0)) ILEAPS=1 +IF ( ((MOD(IYEAR_CUR,4_MNHINT64)==0).AND.(MOD(IYEAR_CUR,100_MNHINT64)/=0)) .OR. (MOD(IYEAR_CUR,400_MNHINT64)==0)) ILEAPS=1 SELECT CASE(IMONTH_CUR) CASE(1) IDAYS = IDAY_CUR-1 @@ -88,8 +91,8 @@ SELECT CASE(IMONTH_CUR) IDAYS = IDAY_CUR-1+31+28+ILEAPS+31+30+31+30+31+31+30+31+30 END SELECT ! -IYEARS = IYEAR_CUR-TPREFERENCE_DATE%TDATE%YEAR -IF (IYEARS<0) THEN +IYEARS = IYEAR_CUR - int( TPREFERENCE_DATE%TDATE%YEAR, kind=MNHINT64 ) +IF ( IYEARS < 0_MNHINT64 ) THEN CALL PRINT_MSG(NVERB_WARNING,'GEN','DATETIME_TIME2REFERENCE', & 'input year is smaller than reference year => result could be invalid') END IF diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90 index 9de6651339a1a9b187f10cde8f36629bf357b551..6c22fdabbe8eecbd80297423af55e4db1c8a246c 100644 --- a/src/MNH/mode_tmat.f90 +++ b/src/MNH/mode_tmat.f90 @@ -2,7 +2,7 @@ !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. -!----------------------------------------------------------------- +!------------------------------------------------------------------------------- ! algorithme initial cr�� par Michael Mishchenko (2000) ! ! algorithme modifi� par Corinne Burlaud (2000) puis Olivier Brunau (2002) @@ -18,6 +18,7 @@ ! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) ! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8 ! !**************************************************************************** @@ -296,7 +297,7 @@ use mode_msg - IMPLICIT REAL*8 (A-H,O-Z) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1,& !! NPN4=NPN1, NPN6=NPN4+1) @@ -304,32 +305,32 @@ INTEGER param,oscil - REAL*8 SIGBETA,Fbeta - REAL*8 PDtotal,PDalpha,PDbeta,Poids + REAL(kind(0.0d0)) SIGBETA,Fbeta + REAL(kind(0.0d0)) PDtotal,PDalpha,PDbeta,Poids - REAL*8 LAM,MRR,MRI,Deq,X(NPNG2),W(NPNG2),S(NPNG2),SS(NPNG2),& + REAL(kind(0.0d0)) LAM,MRR,MRI,Deq,X(NPNG2),W(NPNG2),S(NPNG2),SS(NPNG2),& AN(NPN1),R(NPNG2),DR(NPNG2),& DDR(NPNG2),DRR(NPNG2),DRI(NPNG2),ANN(NPN1,NPN1) - REAL*8 NUMZ,DENZ,NUMTZ,DENTZ,ZDRT,NTotal - REAL*8 NUMD,DEND,DELTA,NUMTD,DENTD,DELTAT - REAL*8 PAS,KDP + REAL(kind(0.0d0)) NUMZ,DENZ,NUMTZ,DENTZ,ZDRT,NTotal + REAL(kind(0.0d0)) NUMD,DEND,DELTA,NUMTD,DENTD,DELTAT + REAL(kind(0.0d0)) PAS,KDP - REAL*8 THET0,THET,Elev,AXI + REAL(kind(0.0d0)) THET0,THET,Elev,AXI - REAL*8 MYS11cr,MYS22cr + REAL(kind(0.0d0)) MYS11cr,MYS22cr -!! REAL*8 TR1(NPN2,NPN2),TI1(NPN2,NPN2) +!! REAL(kind(0.0d0)) TR1(NPN2,NPN2),TI1(NPN2,NPN2) !! REAL*4 RT11(NPN6,NPN4,NPN4),RT12(NPN6,NPN4,NPN4),& !! RT21(NPN6,NPN4,NPN4),RT22(NPN6,NPN4,NPN4),& ! ! IT11(NPN6,NPN4,NPN4),IT12(NPN6,NPN4,NPN4),& !! IT21(NPN6,NPN4,NPN4),IT22(NPN6,NPN4,NPN4) - COMPLEX*16 S11,S12,S21,S22 - COMPLEX*16 S11u,S12u,S21u,S22u + COMPLEX(kind(0.0d0)) S11,S12,S21,S22 + COMPLEX(kind(0.0d0)) S11u,S12u,S21u,S22u - REAL*8 S11carre,S22carre - COMPLEX*16 NUMrhoAB,NUMTrhoAB + REAL(kind(0.0d0)) S11carre,S22carre + COMPLEX(kind(0.0d0)) NUMrhoAB,NUMTrhoAB !! COMMON /CT/ TR1,TI1 !! COMMON /TMAT/ RT11,RT12,RT21,RT22,IT11,IT12,IT21,IT22 @@ -1171,17 +1172,17 @@ !c INCLUDE 'ampld.par.f' !! Parameter (NPN1=200,NPN4=NPN1, NPN6=NPN4+1) - IMPLICIT REAL*8 (A-B,D-H,O-Z), COMPLEX*16 (C) - REAL*8 AL(3,2),AL1(3,2),AP(2,3),AP1(2,3),B(3,3),& + IMPLICIT REAL(kind(0.0d0)) (A-B,D-H,O-Z), COMPLEX(kind(0.0d0)) (C) + REAL(kind(0.0d0)) AL(3,2),AL1(3,2),AP(2,3),AP1(2,3),B(3,3),& R(2,2),R1(2,2),C(3,2),CA,CB,CT,CP,CTP,CPP,CT1,CP1,& CTP1,CPP1 -!C REAL*8 ZDR,NUM,DEN - REAL*8 DV1(NPN6),DV2(NPN6),DV01(NPN6),DV02(NPN6) +!C REAL(kind(0.0d0)) ZDR,NUM,DEN + REAL(kind(0.0d0)) DV1(NPN6),DV2(NPN6),DV01(NPN6),DV02(NPN6) !! REAL*4 TR11(NPN6,NPN4,NPN4),TR12(NPN6,NPN4,NPN4),& !! TR21(NPN6,NPN4,NPN4),TR22(NPN6,NPN4,NPN4),& !! TI11(NPN6,NPN4,NPN4),TI12(NPN6,NPN4,NPN4),& !! TI21(NPN6,NPN4,NPN4),TI22(NPN6,NPN4,NPN4) - COMPLEX*16 CAL(NPN4,NPN4),VV,VH,HV,HH + COMPLEX(kind(0.0d0)) CAL(NPN4,NPN4),VV,VH,HV,HH !! COMMON /TMAT/ TR11,TR12,TR21,TR22,TI11,TI12,TI21,TI22 IF (ALPHA.LT.0D0.OR.ALPHA.GT.360D0.OR.& @@ -1477,8 +1478,8 @@ USE MODD_TMAT, ONLY: NPN1,NPN4,NPN6 !! Parameter (NPN1=200,NPN4=NPN1, NPN6=NPN4+1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 DV1(NPN6), DV2(NPN6) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) DV1(NPN6), DV2(NPN6) DO N=1,NMAX DV1(N)=0D0 @@ -1550,9 +1551,9 @@ SUBROUTINE CONST(NGAUSS,NMAX,X,W,AN,ANN,S,SS) USE MODD_TMAT, ONLY: NPN1,NPNG1,NPNG2 - IMPLICIT REAL*8 (A-H,O-Z) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1) - REAL*8 X(NPNG2),W(NPNG2),& + REAL(kind(0.0d0)) X(NPNG2),W(NPNG2),& S(NPNG2),SS(NPNG2),& AN(NPN1),ANN(NPN1,NPN1),DD(NPN1) @@ -1592,8 +1593,8 @@ USE MODD_TMAT, ONLY: NPN1,NPNG1,NPNG2 !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 X(NPNG2),R(NPNG2),DR(NPNG2),MRR,MRI,LAM,& + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) X(NPNG2),R(NPNG2),DR(NPNG2),MRR,MRI,LAM,& Z(NPNG2),ZR(NPNG2),ZI(NPNG2),& DDR(NPNG2),DRR(NPNG2),DRI(NPNG2) @@ -1648,8 +1649,8 @@ !C********************************************************************** SUBROUTINE RSP1(X,NG,NGAUSS,REV,EPS,R,DR) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 X(NG),R(NG),DR(NG) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) X(NG),R(NG),DR(NG) A=REV*EPS**(1D0/3D0) AA=A*A @@ -1678,8 +1679,8 @@ USE MODD_TMAT,ONLY : XJ,XY,XJR,XJI,XDJ,XDY,XDJR,XDJI,NPN1,NPNG1,NPNG2 !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 X(NG),XR(NG),XI(NG),& + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) X(NG),XR(NG),XI(NG),& !! J(NPNG2,NPN1),Y(NPNG2,NPN1),JR(NPNG2,NPN1),& !! JI(NPNG2,NPN1),DJ(NPNG2,NPN1),DY(NPNG2,NPN1),& !! DJR(NPNG2,NPN1),DJI(NPNG2,NPN1),& @@ -1717,8 +1718,8 @@ !C********************************************************************** SUBROUTINE RJB(X,Y,U,NMAX,NNMAX) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 Y(NMAX),U(NMAX),Z(800) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) Y(NMAX),U(NMAX),Z(800) L=NMAX+NNMAX XX=1D0/X @@ -1749,8 +1750,8 @@ !C********************************************************************** SUBROUTINE RYB(X,Y,V,NMAX) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 Y(NMAX),V(NMAX) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) Y(NMAX),V(NMAX) C=COS(X) S=SIN(X) @@ -1787,9 +1788,9 @@ USE MODD_TMAT,ONLY:NPN1 !! Parameter (NPN1=200) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 YR(NMAX),YI(NMAX),UR(NMAX),UI(NMAX) - REAL*8 CYR(NPN1),CYI(NPN1),CZR(1200),CZI(1200) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) YR(NMAX),YI(NMAX),UR(NMAX),UI(NMAX) + REAL(kind(0.0d0)) CYR(NPN1),CYI(NPN1),CZR(1200),CZI(1200) L=NMAX+NNMAX XRXI=1D0/(XR*XR+XI*XI) @@ -1869,8 +1870,8 @@ NPN1,NPNG1,NPNG2,NPN2,NPN4,NPN6 !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1,& !! NPN4=NPN1,NPN6=NPN4+1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 X(NPNG2),W(NPNG2),AN(NPN1),& + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) X(NPNG2),W(NPNG2),AN(NPN1),& R(NPNG2),DR(NPNG2),SIG(NPN2),& !! J(NPNG2,NPN1),Y(NPNG2,NPN1),& !! JR(NPNG2,NPN1),JI(NPNG2,NPN1),DJ(NPNG2,NPN1),& @@ -1880,12 +1881,12 @@ D1(NPNG2,NPN1),D2(NPNG2,NPN1),& DRI(NPNG2),RR(NPNG2),& DV1(NPN1),DV2(NPN1) - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22 - REAL*8 ANN(NPN1,NPN1),& + REAL(kind(0.0d0)) ANN(NPN1,NPN1),& !! QR(NPN2,NPN2),QI(NPN2,NPN2),& !! RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),& TQR(NPN2,NPN2),TQI(NPN2,NPN2),& @@ -2129,8 +2130,8 @@ DEALLOCATE(IG22) !c INCLUDE 'ampld.par.f' !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1, & !! NPN4=NPN1, NPN6=NPN4+1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 X(NPNG2),W(NPNG2),AN(NPN1),S(NPNG2),SS(NPNG2),& + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) X(NPNG2),W(NPNG2),AN(NPN1),S(NPNG2),SS(NPNG2),& R(NPNG2),DR(NPNG2),SIG(NPN2),& !! J(NPNG2,NPN1),Y(NPNG2,NPN1),& !! JR(NPNG2,NPN1),JI(NPNG2,NPN1),DJ(NPNG2,NPN1),& @@ -2140,12 +2141,12 @@ DEALLOCATE(IG22) D1(NPNG2,NPN1),D2(NPNG2,NPN1),& DRI(NPNG2),DS(NPNG2),DSS(NPNG2),RR(NPNG2),& DV1(NPN1),DV2(NPN1) - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22 - REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22 + REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22 - REAL*8 ANN(NPN1,NPN1),& + REAL(kind(0.0d0)) ANN(NPN1,NPN1),& !! QR(NPN2,NPN2),QI(NPN2,NPN2),& !! RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),& TQR(NPN2,NPN2),TQI(NPN2,NPN2),& @@ -2458,8 +2459,8 @@ DEALLOCATE(IG22) USE MODD_TMAT, ONLY:NPN1 !! Parameter (NPN1=200) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 DV1(NPN1),DV2(NPN1) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) DV1(NPN1),DV2(NPN1) A=1D0 QS=SQRT(1D0-X*X) @@ -2523,12 +2524,12 @@ DEALLOCATE(IG22) !! Parameter (NPN1=200, NPN2=2*NPN1) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 F(NPN2,NPN2),& + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) F(NPN2,NPN2),& !! QR(NPN2,NPN2),QI(NPN2,NPN2),& !! RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),& A(NPN2,NPN2),C(NPN2,NPN2),D(NPN2,NPN2),E(NPN2,NPN2) -!! REAL*8 TR1(NPN2,NPN2),TI1(NPN2,NPN2) +!! REAL(kind(0.0d0)) TR1(NPN2,NPN2),TI1(NPN2,NPN2) !c INTEGER IPVT(NPN2) !! COMMON /CT/ TR1,TI1 !! COMMON /CTT/ QR,QI,RGQR,RGQI @@ -2587,7 +2588,7 @@ DEALLOCATE(IG22) !C******************************************************************** SUBROUTINE PROD(A,B,C,NDIM,N) - REAL*8 A(NDIM,N),B(NDIM,N),C(NDIM,N),cij + REAL(kind(0.0d0)) A(NDIM,N),B(NDIM,N),C(NDIM,N),cij DO I=1,N DO J=1,N @@ -2607,9 +2608,9 @@ DEALLOCATE(IG22) SUBROUTINE INV1(NMAX,F,A) USE MODD_TMAT,ONLY : NPN1,NPN2 - IMPLICIT REAL*8 (A-H,O-Z) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) !! Parameter (NPN1=200, NPN2=2*NPN1) - REAL*8 A(NPN2,NPN2),F(NPN2,NPN2),B(NPN1),& + REAL(kind(0.0d0)) A(NPN2,NPN2),F(NPN2,NPN2),B(NPN1),& WORK(NPN1),Q1(NPN1,NPN1),Q2(NPN1,NPN1),& P1(NPN1,NPN1),P2(NPN1,NPN1) INTEGER IPVT(NPN1),IND1(NPN1),IND2(NPN1) @@ -2663,8 +2664,8 @@ DEALLOCATE(IG22) !C********************************************************************* SUBROUTINE INVERT(NDIM,N,A,X,COND,IPVT,WORK,B) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 A(NDIM,N),X(NDIM,N),WORK(N),B(N) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) A(NDIM,N),X(NDIM,N),WORK(N),B(N) INTEGER IPVT(N) CALL DECOMP (NDIM,N,A,COND,IPVT,WORK) @@ -2693,8 +2694,8 @@ DEALLOCATE(IG22) !C******************************************************************** SUBROUTINE DECOMP (NDIM,N,A,COND,IPVT,WORK) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 A(NDIM,N),COND,WORK(N) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) A(NDIM,N),COND,WORK(N) INTEGER IPVT(N) IPVT(N)=1 @@ -2804,8 +2805,8 @@ DEALLOCATE(IG22) !C********************************************************************** SUBROUTINE SOLVE (NDIM,N,A,B,IPVT) - IMPLICIT REAL*8 (A-H,O-Z) - REAL*8 A(NDIM,N),B(N) + IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z) + REAL(kind(0.0d0)) A(NDIM,N),B(N) INTEGER IPVT(N) IF (N.NE.1) THEN @@ -2846,8 +2847,8 @@ DEALLOCATE(IG22) !C********************************************************************** SUBROUTINE GAUSS(N,IND1,IND2,Z,W) - IMPLICIT REAL*8 (A-H,P-Z) - REAL*8 Z(N),W(N) + IMPLICIT REAL(kind(0.0d0)) (A-H,P-Z) + REAL(kind(0.0d0)) Z(N),W(N) DATA A,B,C /1D0,2D0,3D0/ IND=MOD(N,2) @@ -2915,11 +2916,3 @@ DEALLOCATE(IG22) RETURN END - - - - - - - - diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 6f1f14dadc2d1211746f821d26fa711514fd37ed..12e6b74feee0ee1690c2041dc1a22c7413841360 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -256,9 +256,9 @@ END MODULE MODI_MODEL_n ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_File_add2list) !! 02/2019 C.Lac add rain fraction as an output field -!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables ! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -269,7 +269,7 @@ USE MODD_ADV_n USE MODD_AIRCRAFT_BALLOON USE MODD_BAKOUT USE MODD_BIKHARDT_n -USE MODD_BLANK +USE MODD_BLANK USE MODD_BUDGET USE MODD_CH_AERO_n, ONLY: XSOLORG, XMI USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, & @@ -280,7 +280,6 @@ USE MODD_DRAG_n USE MODD_CLOUDPAR_n USE MODD_CONF USE MODD_CONF_n -USE MODD_CST, ONLY: XMD USE MODD_CURVCOR_n USE MODD_DEEP_CONVECTION_n USE MODD_DIM_n @@ -317,9 +316,9 @@ USE MODD_PARAM_C1R3, ONLY: NSEDI => LSEDI, NHHONI => LHHONI USE MODD_PARAM_C2R2, ONLY: NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC USE MODD_PARAMETERS USE MODD_PARAM_ICE, ONLY: LWARM,LSEDIC,LCONVHG,LDEPOSC -USE MODD_PARAM_LIMA, ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI, & - MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD, & - MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL, & +USE MODD_PARAM_LIMA, ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, & + MACTIT => LACTIT, LSCAV, LCOLD, & + MSEDI => LSEDI, MHHONI => LHHONI, LHAIL, & XRTMIN_LIMA=>XRTMIN, MACTTKE=>LACTTKE USE MODD_BLOWSNOW_n USE MODD_BLOWSNOW @@ -436,10 +435,9 @@ LOGICAL, INTENT(INOUT):: OEXIT ! INTEGER :: ILUOUT ! Logical unit number for the output listing INTEGER :: IIU,IJU,IKU ! array size in first, second and third dimensions -INTEGER :: IIB,IIE,IJB,IJE,IKB,IKE ! index values for the physical subdomain +INTEGER :: IIB,IIE,IJB,IJE ! index values for the physical subdomain INTEGER :: JSV,JRR ! Loop index for scalar and moist variables INTEGER :: INBVAR ! number of HALO2_lls to allocate -INTEGER :: IRESP ! return code in FM routines INTEGER :: IINFO_ll ! return code of parallel routine INTEGER :: IVERB ! LFI verbosity level LOGICAL :: GSTEADY_DMASS ! conditional call to mass computation @@ -450,29 +448,6 @@ REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME_STEP,ZTIME_STEP_PTS CHARACTER :: YMI INTEGER :: IPOINTS CHARACTER(len=16) :: YTCOUNT,YPOINTS - -REAL :: ZSTAT_CSTORE,ZSTAT_CBOUND,ZSTAT_CGUESS,ZSTAT_CADV,ZSTAT_CSOURCES -REAL :: ZSTAT_CDIFF,ZSTAT_CRELAX,ZSTAT_CPARAM -REAL :: ZSTAT_CSPECTRA,ZSTAT_CRAD_BOUND,ZSTAT_CPRESS -REAL :: ZSTAT_CCLOUD,ZSTAT_CSTEP_SWA,ZSTAT_CSTEP_MISC -REAL :: ZSTAT_CCOUPL,ZSTAT_CSTEP_BUD,ZSTAT_CSTEP_CDRAG -REAL :: ZSTAT_CSTEP_CTRACER,ZSTAT_CSTEP_CELEC -REAL :: SCONV_CTURB,ZSTAT_C1WAY,ZSTAT_C2WAY,ZSTAT_CMAFL -REAL :: ZSTAT_CRAD,ZSTAT_CDCONV,ZSTAT_CGROUND,ZSTAT_CHALO -REAL :: ZSTAT_CFORCING,ZSTAT_CNUDGING,ZSTAT_CCHEM -! -REAL :: ZPERCALL,ZPRICE -REAL :: ZPERCSTORE,ZPERCBOUND,ZPERCGUESS,ZPERCADV,ZPERCSOURCES,ZPERCDRAG -REAL :: ZPERCDIFF,ZPERCRELAX,ZPERCPARAM -REAL :: ZPERCSPECTRA,ZPERCRAD_BOUND,ZPERCPRESS -REAL :: ZPERCCLOUD,ZPERCSTEP_SWA,ZPERCSTEP_MISC -REAL :: ZPERCELEC -REAL :: ZPERCCOUPL,ZPERCSTEP_BUD -REAL :: ZPERCTURB,ZPERC1WAY,ZPERC2WAY -REAL :: ZPERCRAD,ZPERCSHADOWS,ZPERCKAFR,ZPERCGROUND,ZPERCHALO,ZPERCMAFL,ZPERTRACER -REAL :: ZPERCFORCING,ZPERCNUDGING,ZPERCCHEM -REAL :: ZTSTEP_UVW ! Double timestep except for cold start (single) -REAL :: ZTSTEP_MET,ZTSTEP_SV ! Effective time step for advection ! INTEGER :: ISYNCHRO ! model synchronic index relative to its father ! = 1 for the first time step in phase with DAD @@ -531,24 +506,12 @@ LOGICAL :: KSEDC LOGICAL :: KACTIT LOGICAL :: KSEDI LOGICAL :: KHHONI -REAL :: TEMPS -INTEGER :: NSV_END -CHARACTER (LEN=100) :: YCOMMENT ! Comment string in LFIFM file -CHARACTER (LEN=LEN_HREC) :: YRECFM ! Name of the desired field in LFIFM file -! -INTEGER :: ILENG ! Length of comment string in LFIFM file -INTEGER :: IGRID ! C-grid indicator in LFIFM file -INTEGER :: ILENCH ! Length of comment string in LFIFM file ! REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZRUS,ZRVS,ZRWS REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZPABST !To give pressure at t ! (and not t+1) to resolved_cloud REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZJ ! -! for various testing -INTEGER :: IK -REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZTMP -! TYPE(LIST_ll), POINTER :: TZFIELDC_ll ! list of fields to exchange TYPE(HALO2LIST_ll), POINTER :: TZHALO2C_ll ! list of fields to exchange LOGICAL :: GCLD ! conditionnal call for dust wet deposition @@ -613,8 +576,6 @@ ILUOUT = TLUOUT%NLU CALL GET_DIM_EXT_ll('B',IIU,IJU) IKU=NKMAX+2*JPVEXT CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) -IKB=1+JPVEXT -IKE=IKU-JPVEXT ! IF (IMI==1) THEN GSTEADY_DMASS=LSTEADYLS @@ -1116,8 +1077,8 @@ IF (NMODEL>1) THEN DPTR_GMASKkids=>GMASKkids ! CALL TWO_WAY( NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP, & - DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM, DPTR_XTKEM, DPTR_XSVM, & - DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRTKES,DPTR_XRSVS, & + DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM,DPTR_XSVM, & + DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRSVS, & DPTR_XINPRC,DPTR_XINPRR,DPTR_XINPRS,DPTR_XINPRG,DPTR_XINPRH,DPTR_XPRCONV,DPTR_XPRSCONV, & DPTR_XDIRFLASWD,DPTR_XSCAFLASWD,DPTR_XDIRSRFSWD,DPTR_GMASKkids ) END IF diff --git a/src/MNH/modn_ch_mnhcn.f90 b/src/MNH/modn_ch_mnhcn.f90 index 9c894f34b4502f1dc7b1b213e0cae0a930ca9689..e695fa5362242ad6fd4a987f4e7f77b064836c0f 100644 --- a/src/MNH/modn_ch_mnhcn.f90 +++ b/src/MNH/modn_ch_mnhcn.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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 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: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modn_ch_mnhcn.f90,v $ $Revision: 1.2.4.1.2.1.12.2 $ $Date: 2014/01/09 15:01:56 $ -!----------------------------------------------------------------- !! ##################### MODULE MODN_CH_MNHC_n !! ##################### @@ -77,22 +73,22 @@ LOGICAL :: LCH_PH lOGICAL :: LCH_RET_ICE REAL :: XCH_PHINIT REAL :: XRTMIN_AQ -CHARACTER(LEN=80) :: CCHEM_INPUT_FILE -CHARACTER(LEN=10) :: CCH_TDISCRETIZATION +CHARACTER(LEN=80) :: CCHEM_INPUT_FILE +CHARACTER(LEN=10) :: CCH_TDISCRETIZATION INTEGER :: NCH_SUBSTEPS LOGICAL :: LCH_TUV_ONLINE -CHARACTER*80 :: CCH_TUV_LOOKUP -CHARACTER*4 :: CCH_TUV_CLOUDS +CHARACTER(len=80) :: CCH_TUV_LOOKUP +CHARACTER(len=4) :: CCH_TUV_CLOUDS REAL :: XCH_TUV_ALBNEW REAL :: XCH_TUV_DOBNEW REAL :: XCH_TUV_TUPDATE -CHARACTER*3 :: CCH_VEC_METHOD +CHARACTER(len=3) :: CCH_VEC_METHOD INTEGER :: NCH_VEC_LENGTH REAL :: XCH_TS1D_TSTEP -CHARACTER*80 :: CCH_TS1D_COMMENT -CHARACTER*80 :: CCH_TS1D_FILENAME -CHARACTER(LEN=1024) :: CSPEC_PRODLOSS -CHARACTER(LEN=1024) :: CSPEC_BUDGET +CHARACTER(len=80) :: CCH_TS1D_COMMENT +CHARACTER(len=80) :: CCH_TS1D_FILENAME +CHARACTER(LEN=1024) :: CSPEC_PRODLOSS +CHARACTER(LEN=1024) :: CSPEC_BUDGET ! NAMELIST/NAM_CH_MNHCn/LUSECHEM,LUSECHAQ,LUSECHIC,LCH_INIT_FIELD,LCH_CONV_SCAV,& LCH_CONV_LINOX,LCH_PH,LCH_RET_ICE,XCH_PHINIT,XRTMIN_AQ, & diff --git a/src/MNH/modn_ch_solvern.f90 b/src/MNH/modn_ch_solvern.f90 index 33f760f1ce0dcaca223daf1b4197e934aab4ab08..245c94f81c204d4a2dc0e0ae9774edfa7e5d93db 100644 --- a/src/MNH/modn_ch_solvern.f90 +++ b/src/MNH/modn_ch_solvern.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-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 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_CH_SOLVER_n !! ######################### @@ -53,7 +48,7 @@ USE MODD_CH_SOLVER_n, ONLY: & ! IMPLICIT NONE ! -CHARACTER*32 :: CSOLVER +CHARACTER(len=32) :: CSOLVER INTEGER :: NSSA INTEGER, DIMENSION(1000) :: NSSAINDEX REAL :: XRTOL @@ -62,8 +57,8 @@ INTEGER :: NRELAB INTEGER :: NPED INTEGER :: NMAXORD LOGICAL :: LPETZLD -CHARACTER*1 :: CMETHOD -CHARACTER*1 :: CNORM +CHARACTER(len=1) :: CMETHOD +CHARACTER(len=1) :: CNORM INTEGER :: NTRACE REAL :: XALPHA REAL :: XSLOW diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index 91602892b3e70094823766e54d2c7d3ea0bc082c..05748143636d6b59a7dea9c663d78cd60636da21 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -34,7 +34,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_DIAG ! switch to write some ! diagnostic fields in the syncronous FM-file -CHARACTER*4 , INTENT(IN) :: HTURBDIM ! Kind of turbulence param. +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Kind of turbulence param. TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY ! metric coefficients @@ -237,7 +237,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_DIAG ! switch to write some ! diagnostic fields in the syncronous FM-file -CHARACTER*4 , INTENT(IN) :: HTURBDIM ! Kind of turbulence param. +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Kind of turbulence param. TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY ! metric coefficients diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index b5aba7c9534ab6f71a48987110735d6947f14f3e..3422ec0bb0faf09a84b91e15259fc2b29cf7555c 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -315,6 +315,7 @@ ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables ! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -340,8 +341,7 @@ USE MODD_DYN_n USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_PARAM_n -USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH, & - LCH_INIT_FIELD, CCHEM_INPUT_FILE +USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH, LCH_INIT_FIELD USE MODD_CH_AEROSOL,ONLY: LORILAM, CORGANIC, LVARSIGI, LVARSIGJ, LINITPM, XINIRADIUSI, & XINIRADIUSJ, XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT USE MODD_DUST, ONLY: LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN @@ -351,8 +351,7 @@ USE MODD_LUNIT, ONLY: TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n USE MODD_IO, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_DUMMY, TFILE_OUTPUTLISTING USE MODD_CONF_n -USE MODD_NSV, ONLY : NSV,NSV_CHEM, & - NSV_DSTEND, NSV_DSTBEG +USE MODD_NSV, ONLY: NSV use modd_precision, only: LFIINT, MNHREAL_MPI, MNHTIME ! USE MODN_BLANK @@ -485,9 +484,6 @@ LOGICAL :: LGEOSBAL =.FALSE. ! Logical to satisfy the geostrophic ! balance ! .TRUE. for geostrophic balance ! .FALSE. to ignore this balance -LOGICAL :: LPV_PERT =.FALSE. ! Logical to add a PV pertubation -LOGICAL :: LRMV_BL =.FALSE. ! Logical to remove the boundary layer - ! before PV inversion LOGICAL :: LSHIFT =.FALSE. ! flag to perform vertical shift or not. CHARACTER(LEN=3) :: CFUNU ='ZZZ' ! CHARACTER STRING for variation of ! U in y direction @@ -538,7 +534,6 @@ LOGICAL :: LREAD_ZS = .TRUE., & ! switch to use orography INTEGER :: NSLEVE =12 ! number of iteration for smooth orography REAL :: XSMOOTH_ZS = XUNDEF ! optional uniform smooth orography for SLEVE coordinate CHARACTER(LEN=28) :: YPGD_NAME, YPGD_DAD_NAME ! general information -CHARACTER(LEN=8) :: YKIND ! Kind of radiosounding data CHARACTER(LEN=2) :: YPGD_TYPE ! INTEGER :: IINFO_ll ! return code of // routines @@ -561,15 +556,10 @@ REAL :: ZDIST REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME1, ZTIME2, ZEND, ZTOT CHARACTER :: YMI INTEGER :: IMI -INTEGER::JK !JUAN TIMING ! REAL, DIMENSION(:), ALLOCATABLE :: ZZS_ll -INTEGER :: IJ -INTEGER :: NZSFILTER=1 ! number of iteration for filter for fine orography -LOGICAL :: LHSLOP=.FALSE. ! filtering of slopes higher than XHSLOP -REAL :: XHSLOP=1.2 ! if LHSLOP filtering of slopes higher than XHSLOP - +INTEGER :: IJ ! REAL :: ZZS_MAX, ZZS_MAX_ll INTEGER :: IJPHEXT @@ -582,8 +572,8 @@ TYPE(TFILEDATA),POINTER :: TZEXPREFILE => NULL() NAMELIST/NAM_CONF_PRE/ LTHINSHELL,LCARTESIAN, &! Declarations in MODD_CONF LPACK, &! NVERB,CIDEAL,CZS, &!+global variables initialized - LBOUSS,LPERTURB,LPV_PERT, &! at their declarations - LRMV_BL,LFORCING,CEQNSYS, &! at their declarations + LBOUSS,LPERTURB, &! at their declarations + LFORCING,CEQNSYS, &! at their declarations LSHIFT,L2D_ADV_FRC,L2D_REL_FRC, & NHALO , JPHEXT NAMELIST/NAM_GRID_PRE/ XLON0,XLAT0, & ! Declarations in MODD_GRID @@ -1462,15 +1452,6 @@ END IF !* 5.2 Prognostic variables (not multiplied by rhoJ) : u,v,w,theta,r ! and 1D anelastic reference state ! -IF(LPV_PERT .AND. .NOT.(LGEOSBAL)) THEN - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','for PV inversion, LGEOSBAL has to be true') -ENDIF -! -IF(LPV_PERT .AND. NPROC>1) THEN - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','PV inversion has to be performed in monoprocess mode') -ENDIF ! !* 5.2.1 Use a Radiosounding : CIDEAL='RSOU'' ! @@ -1482,15 +1463,13 @@ IF (CIDEAL == 'RSOU') THEN TDTEXP = TDTCUR TDTSEG = TDTCUR TDTMOD = TDTCUR - READ(NLUPRE,*) YKIND - BACKSPACE(NLUPRE) ! because YKIND read again in set_rsou WRITE(NLUOUT,FMT=*) 'CIDEAL="RSOU", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& - LRMV_BL,XJ,LSHIFT,XCORIOZ) + CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, & + XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& - LRMV_BL,XJ,LSHIFT) + CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, & + XJ,LSHIFT) END IF ! !* 5.2.2 N=cste and U(z) : CIDEAL='CSTN' @@ -1505,11 +1484,11 @@ ELSE IF (CIDEAL == 'CSTN') THEN TDTMOD = TDTCUR WRITE(NLUOUT,FMT=*) 'CIDEAL="CSTN", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& - LRMV_BL,XJ,LSHIFT,XCORIOZ) + CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, & + XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& - LRMV_BL,XJ,LSHIFT) + CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, & + XJ,LSHIFT) END IF ! END IF diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 40ea2e911f569c2c532917b54c1e4d3c8cd2aee8..62b2f07253e5f89ddeaa83ef16cc59d5af9da4dd 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -43,8 +43,8 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file @@ -341,8 +341,8 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file @@ -1315,7 +1315,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented') ELSE !$acc update device(PCIT,PCLDFR) !$acc data copyin(PSEA,PTOWN) - CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & + CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & KSPLITR, PTSTEP, KRR, & ZDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,& PTHT, PRT(:,:,:,1), PRT(:,:,:,2), & @@ -1323,7 +1323,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented') PRT(:,:,:,5), PRT(:,:,:,6), & PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3), & PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6), & - PINPRC, PINPRR, PINPRR3D, PEVAP3D, & + PINPRC, PINPRR, PINPRR3D, PEVAP3D, & PINPRS, PINPRG, PSIGS,PINDEP, PRAINFR, & PSEA, PTOWN, & ! PRT(:,:,:,7), PRS(:,:,:,7), PINPRH,PFPR=ZFPR ) @@ -1337,7 +1337,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented') !* 10.2 Perform the saturation adjustment over cloud ice and cloud water ! IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN - CALL ICE_ADJUST (1,IKU,1, KRR, CFRAC_ICE_ADJUST, 'DEPI', & + CALL ICE_ADJUST (1,IKU,1, KRR, CFRAC_ICE_ADJUST, 'DEPI', & OSUBG_COND, OSIGMAS, PTSTEP,PSIGQSAT, & PRHODJ, PEXNREF, PSIGS, PMFCONV, PPABST, ZZZ, & ZEXN, PCF_MF,PRC_MF,PRI_MF, & diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index 2f97d01ac175e333560a4f404e94fa2cfbfe27ee..534ba4b34400aa6318c9ea8a2481d2e0742b4689 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -31,8 +31,8 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter LOGICAL, INTENT(IN) :: OEXIT ! switch for the end of the temporal loop CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid Cond. LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s: @@ -227,8 +227,8 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter LOGICAL, INTENT(IN) :: OEXIT ! switch for the end of the temporal loop CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type -CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name -CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HRAD ! Radiation scheme name +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid Cond. LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s: diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index f51497f748ae1dc62f0503491c7926bfdb4699e1..3ec1a28b54b6a2220d145c4a2a10c67672baa5b1 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -9,7 +9,7 @@ ! INTERFACE ! -SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) +SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,PJ,OSHIFT,PCORIOZ) ! USE MODD_IO, ONLY : TFILEDATA ! @@ -22,8 +22,6 @@ CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile INTEGER, INTENT(IN) :: KJLOC ! J Localisation of vertical profile LOGICAL, INTENT(IN) :: OBOUSS ! logical switch for Boussinesq version -LOGICAL, INTENT(IN) :: OPV_PERT! logical switch for PV inversion -LOGICAL, INTENT(IN) :: ORMV_BL! logical switch for remouve boundary layer REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien LOGICAL, INTENT(IN) :: OSHIFT ! logical switch for vertical shift ! @@ -39,7 +37,7 @@ END MODULE MODI_SET_CSTN ! ! ! ################################################################################## - SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) + SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,PJ,OSHIFT,PCORIOZ) ! ################################################################################## ! !!**** *SET_CSTN * - routine to initialize mass and wind fields from a Nv=cste @@ -164,6 +162,7 @@ END MODULE MODI_SET_CSTN !! V.Masson 12/08/13 Parallelization of the initilization profile !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -198,8 +197,6 @@ CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile INTEGER, INTENT(IN) :: KJLOC ! J Localisation of vertical profile LOGICAL, INTENT(IN) :: OBOUSS ! logical switch for Boussinesq version -LOGICAL, INTENT(IN) :: OPV_PERT! logical switch for PV inversion -LOGICAL, INTENT(IN) :: ORMV_BL! logical switch for remouve boundary layer REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien LOGICAL, INTENT(IN) :: OSHIFT ! logical switch for vertical shift ! @@ -211,10 +208,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PCORIOZ ! Coriolis parameter ! ! fields and data on the sounding levels ! -INTEGER :: ILUPRE,IRESP ! logical unit number of the - ! EXPRE and FM return code -INTEGER :: ILUOUT ! Logical unit number for - ! output-listing +INTEGER :: ILUPRE ! logical unit number INTEGER :: ILEVEL ! number of levels INTEGER :: ILAYER ! number of layers REAL :: ZPGROUND ! pressure at the ground level @@ -228,8 +222,6 @@ INTEGER :: JK,JKLEV ! Loop indexes ! ! variables on the grid without orography ! -REAL, DIMENSION(SIZE(XZHAT)) :: ZZHATM ! Height of mass model grid levels - ! without orography REAL, DIMENSION(SIZE(XZHAT)) :: ZTHVM ! Virtual potential Temperature ! at mass model grid levels REAL, DIMENSION(SIZE(XZHAT)) :: ZTVM ! Virtual Temperature at mass model @@ -266,7 +258,6 @@ LOGICAL :: GPROFILE_IN_PROC ! T : initialization profile is in current ! ------------------------------------------------------------ ! ILUPRE = TPEXPREFILE%NLU -ILUOUT = TLUOUT%NLU ! CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) CALL GET_OR_ll('B',IXOR_ll,IYOR_ll) diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90 index 6bd63a50719bd39eca5446d96ffe6f79ddbad481..9d8c9557115a4d595b5a787dd112f2d9292ec3c3 100644 --- a/src/MNH/set_grid.f90 +++ b/src/MNH/set_grid.f90 @@ -10,11 +10,7 @@ INTERFACE ! SUBROUTINE SET_GRID(KMI,TPINIFILE, & - KIU,KJU,KKU,KIMAX_ll,KJMAX_ll, & - PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & - PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & - KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO, & - HLBCX,HLBCY, & + KKU,KIMAX_ll,KJMAX_ll, & PTSTEP,PSEGLEN, & PLONORI,PLATORI,PLON,PLAT, & PXHAT,PYHAT,PDXHAT,PDYHAT, PMAP, & @@ -28,26 +24,12 @@ USE MODD_IO, ONLY: TFILEDATA,TOUTBAK ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -INTEGER, INTENT(IN) :: KIU ! Upper dimension in x direction - ! for sub-domain arrays -INTEGER, INTENT(IN) :: KJU ! Upper dimension in y direction - ! for sub-domain arrays INTEGER, INTENT(IN) :: KKU ! Upper dimension in z direction ! for domain arrays INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction ! of the physical domain, -REAL, DIMENSION(:), INTENT(IN) :: PBMX1,PBMX2,PBMX3,PBMX4 ! Mass points in X-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBMY1,PBMY2,PBMY3,PBMY4 ! Mass points in Y-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBFX1,PBFX2,PBFX3,PBFX4 ! Flux points in X-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBFY1,PBFY2,PBFY3,PBFY4 ! Flux points in Y-direc. -INTEGER, INTENT(IN) :: KXOR,KXEND ! horizontal position (i,j) of the ORigin and END -INTEGER, INTENT(IN) :: KYOR,KYEND ! of the inner model domain, relative to outer model -INTEGER, INTENT(IN) :: KDXRATIO ! x and y-direction resolution RATIO -INTEGER, INTENT(IN) :: KDYRATIO ! between inner model and outer model -CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCX ! type of lateral -CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY ! boundary conditions ! REAL, INTENT(IN) :: PTSTEP ! time step of model KMI REAL, INTENT(INOUT) :: PSEGLEN ! segment duration (in seconds) @@ -100,11 +82,7 @@ END MODULE MODI_SET_GRID ! ! ######################################################################### SUBROUTINE SET_GRID(KMI,TPINIFILE, & - KIU,KJU,KKU,KIMAX_ll,KJMAX_ll, & - PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & - PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & - KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO, & - HLBCX,HLBCY, & + KKU,KIMAX_ll,KJMAX_ll, & PTSTEP,PSEGLEN, & PLONORI,PLATORI,PLON,PLAT, & PXHAT,PYHAT,PDXHAT,PDYHAT, PMAP, & @@ -228,6 +206,7 @@ END MODULE MODI_SET_GRID !! grid-nesting lbc !! V.MASSON 12/10/00 read of the orography in all cases, even if LFLAT=T !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -258,26 +237,12 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -INTEGER, INTENT(IN) :: KIU ! Upper dimension in x direction - ! for sub-domain arrays -INTEGER, INTENT(IN) :: KJU ! Upper dimension in y direction - ! for sub-domain arrays INTEGER, INTENT(IN) :: KKU ! Upper dimension in z direction ! for domain arrays INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction ! of the physical domain, -REAL, DIMENSION(:), INTENT(IN) :: PBMX1,PBMX2,PBMX3,PBMX4 ! Mass points in X-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBMY1,PBMY2,PBMY3,PBMY4 ! Mass points in Y-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBFX1,PBFX2,PBFX3,PBFX4 ! Flux points in X-direc. -REAL, DIMENSION(:), INTENT(IN) :: PBFY1,PBFY2,PBFY3,PBFY4 ! Flux points in Y-direc. -INTEGER, INTENT(IN) :: KXOR,KXEND ! horizontal position (i,j) of the ORigin and END -INTEGER, INTENT(IN) :: KYOR,KYEND ! of the inner model domain, relative to outer model -INTEGER, INTENT(IN) :: KDXRATIO ! x and y-direction resolution RATIO -INTEGER, INTENT(IN) :: KDYRATIO ! between inner model and outer model -CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCX ! type of lateral -CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY ! boundary conditions ! REAL, INTENT(IN) :: PTSTEP ! time step of model KMI REAL, INTENT(INOUT) :: PSEGLEN ! segment duration (in seconds) diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index 6c38994c69acbdb6fa7395694f04c42626af5acf..5a787a31bd6be1946fb9b1c7bdf5770622c16812 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -9,8 +9,8 @@ ! INTERFACE ! - SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& - ORMV_BL,PJ,OSHIFT,PCORIOZ) + SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,& + PJ,OSHIFT,PCORIOZ) ! USE MODD_IO, ONLY : TFILEDATA ! @@ -23,8 +23,6 @@ CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile INTEGER, INTENT(IN) :: KJLOC ! J Localisation of vertical profile LOGICAL, INTENT(IN) :: OBOUSS ! logical switch for Boussinesq version -LOGICAL, INTENT(IN) :: OPV_PERT! logical switch for PV inversion -LOGICAL, INTENT(IN) :: ORMV_BL! logical switch for remouve boundary layer REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien LOGICAL, INTENT(IN) :: OSHIFT ! logical switch for vertical shift ! @@ -37,10 +35,10 @@ END INTERFACE ! END MODULE MODI_SET_RSOU ! -! ########################################################################### - SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& - ORMV_BL,PJ,OSHIFT,PCORIOZ) -! ########################################################################### +! ######################################################################## + SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS, & + PJ,OSHIFT,PCORIOZ) +! ######################################################################## ! !!**** *SET_RSOU * - to initialize mass fiels from a radiosounding !! @@ -243,6 +241,7 @@ END MODULE MODI_SET_RSOU !! V.Masson 12/08/13 Parallelization of the initilization profile !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 19/04/2019: removed unused dummy arguments and variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -255,9 +254,7 @@ USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n USE MODD_IO, ONLY: TFILEDATA -USE MODD_LUNIT_n USE MODD_PARAMETERS, ONLY: JPHEXT -USE MODD_PARAM_n, ONLY: CCLOUD ! USE MODE_ll USE MODE_MSG @@ -286,8 +283,6 @@ CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V INTEGER, INTENT(IN) :: KILOC ! I Localisation of vertical profile INTEGER, INTENT(IN) :: KJLOC ! J Localisation of vertical profile LOGICAL, INTENT(IN) :: OBOUSS ! logical switch for Boussinesq version -LOGICAL, INTENT(IN) :: OPV_PERT! logical switch for PV inversion -LOGICAL, INTENT(IN) :: ORMV_BL! logical switch for remouve boundary layer LOGICAL, INTENT(IN) :: OSHIFT ! logical switch for vertical shift REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PCORIOZ ! Coriolis parameter ! (exceptionnaly 3D array) @@ -296,10 +291,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien ! !* 0.2 Declarations of local variables : ! -INTEGER :: ILUPRE,IRESP ! logical unit number of the - ! EXPRE and FM return code -INTEGER :: ILUOUT ! Logical unit number for - ! output-listing +INTEGER :: ILUPRE ! logical unit number ! ! variables read in EXPRE file at the RS levels ! @@ -310,14 +302,13 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZHEIGHTU ! Height at wind levels REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSU ! Pressure at wind levels REAL, DIMENSION(:), ALLOCATABLE :: ZTHVU ! Thetav at wind levels REAL, DIMENSION(:), ALLOCATABLE :: ZU,ZV ! wind components -REAL, DIMENSION(:), ALLOCATABLE :: ZU_TURN,ZV_TURN ! wind components on MESONH grid REAL, DIMENSION(:), ALLOCATABLE :: ZDD,ZFF ! dd (direction) and ff(force) ! for wind REAL :: ZZGROUND,ZPGROUND ! height and Pressure at ground REAL :: ZTGROUND,ZTHVGROUND,ZTHDGROUND,ZTHLGROUND, & ZTDGROUND,ZMRGROUND,ZHUGROUND ! temperature and moisture - ! variables at ground + ! variables at ground INTEGER :: ILEVELM ! number of mass levels REAL, DIMENSION(:), ALLOCATABLE :: ZHEIGHTM ! Height at mass levels REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSM ! Pressure at mass levels @@ -371,9 +362,7 @@ LOGICAL :: GPROFILE_IN_PROC ! T : initialization profile is in current ! REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT)) ::ZZS_LS REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)) ::ZZFLUX_MX,ZZMASS_MX ! mixed grid -INTEGER :: JJ,JI INTEGER :: JLOOP -CHARACTER(LEN=100) :: YMSG !------------------------------------------------------------------------------- ! !* 1. PROLOGUE : INITIALIZE SOME CONSTANTS, RETRIEVE LOGICAL @@ -394,7 +383,6 @@ ZRDSRV = XRD/XRV ! ! ILUPRE = TPEXPREFILE%NLU -ILUOUT = TLUOUT%NLU ! !* 1.3 Read data kind in EXPRE file ! @@ -402,9 +390,7 @@ READ(ILUPRE,*) YKIND ! ! IF(LUSERC .AND. YKIND/='PUVTHDMR' .AND. YKIND/='ZUVTHDMR' .AND. YKIND/='ZUVTHLMR') THEN - WRITE(YMSG,*) 'hydrometeors are not allowed for YKIND = ', YKIND - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU','hydrometeors are not allowed for YKIND = '//trim(YKIND)) ENDIF ! Demande Thierry Bergot Sept 2012 !IF(LUSERC .AND.(YKIND == 'PUVTHDMR' .OR. YKIND == 'ZUVTHDMR').AND. .NOT. L1D) THEN @@ -1106,9 +1092,7 @@ SELECT CASE(YKIND) ZRT(:)=ZMR(:) ZTHL(:)=ZTHV(:)*(1+ZRT(:))/(1+ZRVSRD*ZRT(:)) CASE DEFAULT - !callabortstop - WRITE(YMSG,*) 'data type YKIND=',TRIM(YKIND),' in PREFILE unknown' - CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU','data type YKIND='//TRIM(YKIND)//' in PREFILE unknown') END SELECT ! !------------------------------------------------------------------------------- @@ -1243,19 +1227,12 @@ DEALLOCATE(ZMRT) !------------------------------------------------------------------------------- ! -!* 4. COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY) -! ------------------------------------------------- -IF (PRESENT(PCORIOZ)) THEN - CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV, & - PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ) -ELSE - CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & - KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& - ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV, & - PMRCM=ZMRCM,PMRIM=ZMRIM) -ENDIF +!* 4. COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY) +! ------------------------------------------------- +CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE, & + KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,& + ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV, & + PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/shallow_mf.f90 b/src/MNH/shallow_mf.f90 index 52a1a7aef3d49a52fcbe9659a4f596cf52f6b822..4017b49d7540651b21d3d4040afd68f57418de68 100644 --- a/src/MNH/shallow_mf.f90 +++ b/src/MNH/shallow_mf.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-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. @@ -43,13 +43,13 @@ CHARACTER (LEN=4), INTENT(IN) :: HMF_UPDRAFT ! Type of Mass Flux Scheme ! 'NONE' if no parameterization CHARACTER (LEN=4), INTENT(IN) :: HMF_CLOUD ! Type of statistical cloud ! scheme -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer INTEGER, INTENT(IN) :: KSV_LGBEG ! first index of lag. tracer INTEGER, INTENT(IN) :: KSV_LGEND ! last index of lag. tracer REAL, INTENT(IN) :: PIMPL_MF ! degre of implicitness -REAL, INTENT(IN) :: PTSTEP ! Dynamical timestep +REAL, INTENT(IN) :: PTSTEP ! Dynamical timestep REAL, DIMENSION(:,:), INTENT(IN) :: PZZ ! Height of flux point REAL, DIMENSION(:,:), INTENT(IN) :: PDZZ ! Metric coefficients @@ -212,7 +212,7 @@ CHARACTER (LEN=4), INTENT(IN) :: HMF_UPDRAFT ! Type of Mass Flux Scheme ! 'NONE' if no parameterization CHARACTER (LEN=4), INTENT(IN) :: HMF_CLOUD ! Type of statistical cloud ! scheme -CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer INTEGER, INTENT(IN) :: KSV_LGBEG ! first index of lag. tracer diff --git a/src/MNH/th_r_from_thl_rt_1d.f90 b/src/MNH/th_r_from_thl_rt_1d.f90 index 8c9081427e1af18fb11f1807b1ed75a16e8ee217..fcec2372fd5ff3a140c04b04df94a31073645167 100644 --- a/src/MNH/th_r_from_thl_rt_1d.f90 +++ b/src/MNH/th_r_from_thl_rt_1d.f90 @@ -6,7 +6,7 @@ SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP, & PTHL, PRT, PTH, PRV, PRL, PRI, & PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:), INTENT(IN) :: PTHL ! Liquid pot. temp. @@ -75,7 +75,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:), INTENT(IN) :: PTHL ! thetal to transform into th diff --git a/src/MNH/th_r_from_thl_rt_2d.f90 b/src/MNH/th_r_from_thl_rt_2d.f90 index 928ff58c6cf5a0862ebae7a7adeb7d94779b41fc..356c9c1910c17a2126f7f4212b94045ad46a268d 100644 --- a/src/MNH/th_r_from_thl_rt_2d.f90 +++ b/src/MNH/th_r_from_thl_rt_2d.f90 @@ -1,14 +1,15 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_TH_R_FROM_THL_RT_2D INTERFACE SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP, & PTHL, PRT, PTH, PRV, PRL, PRI, & PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:,:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:,:), INTENT(IN) :: PTHL ! thetal to transform into th @@ -76,7 +77,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:,:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:,:), INTENT(IN) :: PTHL ! Liquid pot. temp. diff --git a/src/MNH/th_r_from_thl_rt_3d.f90 b/src/MNH/th_r_from_thl_rt_3d.f90 index 1f70220ec3a57ab282edb53414781bef03907bf4..d58d98f4df68925f2f4085e3038c98b1800d2c81 100644 --- a/src/MNH/th_r_from_thl_rt_3d.f90 +++ b/src/MNH/th_r_from_thl_rt_3d.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_TH_R_FROM_THL_RT_3D ! ############################### @@ -11,7 +12,7 @@ INTERFACE PTHL, PRT, PTH, PRV, PRL, PRI, & PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL ! thetal to transform into th @@ -77,7 +78,7 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER*1 , INTENT(IN) :: HFRAC_ICE +CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! Pressure REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL ! thetal to transform into th diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 25beedd59180b2e26b9d044e521a7db47207ac63..25f1eb52b6455c72321e16188016ac1e07f89e83 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -30,9 +30,9 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! physical height w-pt REAL, INTENT(IN) :: PTSTEP ! Time step REAL, INTENT(IN) :: PEXPL, PIMPL ! Coef. temporal. disc. -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTURBLEN ! kind of mixing length +CHARACTER(len=4), INTENT(IN) :: HTURBLEN ! kind of mixing length TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening @@ -230,9 +230,9 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! physical height w-pt REAL, INTENT(IN) :: PTSTEP ! Time step REAL, INTENT(IN) :: PEXPL, PIMPL ! Coef. temporal. disc. -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTURBLEN ! kind of mixing length +CHARACTER(len=4), INTENT(IN) :: HTURBLEN ! kind of mixing length TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90 index a92e811388c133262dae56adec5501ca3d80d983..11888cfd758ed969208d6337e7e03cc834ea2d59 100644 --- a/src/MNH/tridiag_thermo.f90 +++ b/src/MNH/tridiag_thermo.f90 @@ -295,7 +295,6 @@ IF ( PIMPL > 1.E-10 ) THEN !$acc end kernels ! !$acc kernels async - ZA(:,:,IKE) = ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL ZB(:,:,IKE) = PRHODJ(:,:,IKE)/PTSTEP & - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE ) * PIMPL diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 6f599fade16126e0a60b6ac8225aad05037bb095..02b24d631243821ad07b1c8c6af50d4f2e39c918 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier + !MNH_LIC Copyright 1994-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. @@ -46,11 +46,11 @@ LOGICAL, INTENT(IN) :: OTURB_DIAG ! switch to write some LOGICAL, INTENT(IN) :: OSUBG_COND ! switch for SUBGrid ! CONDensation LOGICAL, INTENT(IN) :: ORMC01 ! switch for RMC01 lengths in SBL -CHARACTER*4 , INTENT(IN) :: HTURBDIM ! dimensionality of the - ! turbulence scheme -CHARACTER*4 , INTENT(IN) :: HTURBLEN ! kind of mixing length -CHARACTER*4 , INTENT(IN) :: HTOM ! kind of Third Order Moment -CHARACTER*4 , INTENT(IN) :: HTURBLEN_CL ! kind of cloud mixing length +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the + ! turbulence scheme +CHARACTER(len=4), INTENT(IN) :: HTURBLEN ! kind of mixing length +CHARACTER(len=4), INTENT(IN) :: HTOM ! kind of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTURBLEN_CL ! kind of cloud mixing length ! surface friction flux REAL, INTENT(IN) :: PIMPL ! degree of implicitness CHARACTER (LEN=4), INTENT(IN) :: HCLOUD ! Kind of microphysical scheme @@ -420,11 +420,11 @@ LOGICAL, INTENT(IN) :: OTURB_DIAG ! switch to write some LOGICAL, INTENT(IN) :: OSUBG_COND ! switch for SUBGrid ! CONDensation LOGICAL, INTENT(IN) :: ORMC01 ! switch for RMC01 lengths in SBL -CHARACTER*4 , INTENT(IN) :: HTURBDIM ! dimensionality of the - ! turbulence scheme -CHARACTER*4 , INTENT(IN) :: HTURBLEN ! kind of mixing length -CHARACTER*4 , INTENT(IN) :: HTOM ! kind of Third Order Moment -CHARACTER*4 , INTENT(IN) :: HTURBLEN_CL ! kind of cloud mixing length +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the + ! turbulence scheme +CHARACTER(len=4), INTENT(IN) :: HTURBLEN ! kind of mixing length +CHARACTER(len=4), INTENT(IN) :: HTOM ! kind of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTURBLEN_CL ! kind of cloud mixing length REAL, INTENT(IN) :: PIMPL ! degree of implicitness CHARACTER (LEN=4), INTENT(IN) :: HCLOUD ! Kind of microphysical scheme REAL, INTENT(IN) :: PTSTEP ! timestep diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index 2867e1195a9cc3ddcd3aabf7f92ad9a86a3a9eb9..d73fae8188bd3c17ffcc7264a0b5a9a6597823db 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -36,9 +36,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! timestep TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -378,9 +378,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! timestep TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index e85ea649b6431a247a718cc39c6b35700ec12d1b..abbc04e77a6f17561965a2375e9426ab0131beb9 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -33,7 +33,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file INTEGER, INTENT(IN) :: KRR ! number of moist var. -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step @@ -337,7 +337,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file INTEGER, INTENT(IN) :: KRR ! number of moist var. -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90 index 841371a5460d0be73f463e6876a64828a54b8126..bbf10274785e51588f0da32db7c40faa38b1b46b 100644 --- a/src/MNH/turb_ver_sv_flux.f90 +++ b/src/MNH/turb_ver_sv_flux.f90 @@ -30,7 +30,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step @@ -303,7 +303,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index b1059b576354e547326aec8a6cfcce5e2cce41e9..5732723a1b61641d8e2f8b9c6adf1eebaf4521a4 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -37,9 +37,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! @@ -367,9 +367,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index f910e5cdf6d824fa466bd1c92e04c0178cabe8de..78e1f44fb06cc27a79bcf13c988b159b6e444638 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -38,9 +38,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -387,9 +387,9 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening LOGICAL, INTENT(IN) :: OTURB_FLX ! switch to write the ! turbulent fluxes in the syncronous FM-file -CHARACTER*4, INTENT(IN) :: HTURBDIM ! dimensionality of the +CHARACTER(len=4), INTENT(IN) :: HTURBDIM ! dimensionality of the ! turbulence scheme -CHARACTER*4, INTENT(IN) :: HTOM ! type of Third Order Moment +CHARACTER(len=4), INTENT(IN) :: HTOM ! type of Third Order Moment REAL, INTENT(IN) :: PIMPL, PEXPL ! Coef. for temporal disc. REAL, INTENT(IN) :: PTSTEP ! Double Time Step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file diff --git a/src/MNH/two_way.f90 b/src/MNH/two_way.f90 index 7f47e24072eedbdd4771c12615bd8b96da7d55d2..64f72579c3d267f8fee4317d90886a6a21d8b22d 100644 --- a/src/MNH/two_way.f90 +++ b/src/MNH/two_way.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1999-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -10,8 +10,8 @@ INTERFACE ! SUBROUTINE TWO_WAY ( KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & - PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & + PUM ,PVM, PWM, PTHM, PRM, PSVM, & + PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! @@ -26,11 +26,11 @@ REAL, INTENT(IN) :: PTSTEP ! Timestep duration REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! (Rho) dry * Jacobian ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM, PSVM ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS ! terms ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH & @@ -48,8 +48,8 @@ END MODULE MODI_TWO_WAY ! ! ######################################################################## SUBROUTINE TWO_WAY ( KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & - PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & + PUM ,PVM, PWM, PTHM, PRM, PSVM, & + PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! ######################################################################## @@ -126,11 +126,11 @@ REAL, INTENT(IN) :: PTSTEP ! Timestep duration REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! (Rho) dry * Jacobian ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM, PSVM ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS ! terms ! REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH & @@ -153,9 +153,9 @@ DO JKID = KMI+1,NMODEL ! min value of the possible kids IF (KMI == NDAD(JKID) .AND. (XWAY(JKID) == 2. ) & .AND. (CCONF == 'RESTA' .OR. (CCONF == 'START' .AND. KTCOUNT /= 1))) THEN CALL GOTO_MODEL(JKID) - CALL TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & - PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & + CALL TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP, & + PUM ,PVM, PWM, PTHM, PRM, PSVM, & + PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) END IF diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90 index 62f7596c7c77eb388a070c87d364bbc5e63a1331..52a22f8d530b86603579bc88ea8c555f242ced5c 100644 --- a/src/MNH/two_wayn.f90 +++ b/src/MNH/two_wayn.f90 @@ -9,16 +9,14 @@ ! INTERFACE ! - SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & - PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & + SUBROUTINE TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP, & + PUM ,PVM, PWM, PTHM, PRM, PSVM, & + PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables -INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer - ! (=1 at the segment beginning) INTEGER, INTENT(IN) :: KMI ! Model index ! REAL, INTENT(IN) :: PTSTEP ! Timestep duration @@ -26,11 +24,11 @@ REAL, INTENT(IN) :: PTSTEP ! Timestep duration REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! (Rho) dry * Jacobian ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM, PSVM ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS ! terms REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH, & PPRCONV,PPRSCONV ! precipitating variables @@ -44,9 +42,9 @@ END INTERFACE ! END MODULE MODI_TWO_WAY_n ! ####################################################################### - SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & - PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & + SUBROUTINE TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP, & + PUM ,PVM, PWM, PTHM, PRM, PSVM, & + PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! ####################################################################### @@ -145,8 +143,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of SV (father model) -INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer - ! (=1 at the segment beginning) INTEGER, INTENT(IN) :: KMI ! Model index ! REAL, INTENT(IN) :: PTSTEP ! Timestep duration @@ -154,11 +150,11 @@ REAL, INTENT(IN) :: PTSTEP ! Timestep duration REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! (Rho) dry * Jacobian ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM, PSVM ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS ! terms REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH & ,PPRCONV,PPRSCONV ! precipitating variables diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90 index f57d26eef48fbf62659b9a077cc6eeafe7d1ade2..ab625577a45976fbea4f7be04915cdc4b4fc05e4 100644 --- a/src/MNH/write_ts1d.f90 +++ b/src/MNH/write_ts1d.f90 @@ -145,14 +145,14 @@ REAL :: ZX, ZY ! poisition of each profile REAL, DIMENSION(SIZE(XCHEMLAT)) :: ZLAT, ZLON TYPE(TFILEDATA),POINTER,SAVE :: TZFILE ! -CHARACTER*8 :: YDATE ! for retrieval of date and time -CHARACTER*10 :: YTIME ! dito -CHARACTER*13 :: YLATLON ! dito -CHARACTER*13 :: YCLATLON ! dito -CHARACTER*4 :: YCYEAR ! current year -CHARACTER*2 :: YCMONTH ! current month -CHARACTER*2 :: YCDAY ! current day -CHARACTER*5 :: YCTIME ! current time +CHARACTER(len=8) :: YDATE ! for retrieval of date and time +CHARACTER(len=10) :: YTIME ! dito +CHARACTER(len=13) :: YLATLON ! dito +CHARACTER(len=13) :: YCLATLON ! dito +CHARACTER(len=4) :: YCYEAR ! current year +CHARACTER(len=2) :: YCMONTH ! current month +CHARACTER(len=2) :: YCDAY ! current day +CHARACTER(len=5) :: YCTIME ! current time !! !! EXECUTABLE STATEMENTS !! --------------------- diff --git a/src/SURFEX/goto_model_mnh.F90 b/src/SURFEX/goto_model_mnh.F90 index 2e20c9bc6b39752cf631af7c3e74982c59038788..557160ab4ad260d0c24fa3fb7c90873857f6ad90 100644 --- a/src/SURFEX/goto_model_mnh.F90 +++ b/src/SURFEX/goto_model_mnh.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. !####################### MODULE MODI_GOTO_MODEL_MNH @@ -124,7 +124,7 @@ INTEGER, INTENT(OUT) :: KINFO_ll ! ------------------------------ ! INTEGER :: IMI ! return code of // routines -CHARACTER*1 :: HSPLIT +CHARACTER(len=1) :: HSPLIT ! !------------------------------------------------------------------------------ ! diff --git a/src/SURFEX/modd_chs_aerosol.F90 b/src/SURFEX/modd_chs_aerosol.F90 index 610b3cee04d849cb3a302d870a67a62ceb91903b..c86aa1b464e3bb8206902068411cd8fabca9b7f3 100644 --- a/src/SURFEX/modd_chs_aerosol.F90 +++ b/src/SURFEX/modd_chs_aerosol.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. !! ###################### MODULE MODD_CHS_AEROSOL @@ -180,8 +180,8 @@ REAL :: XEMISSIGI = 1.86 ! dispersion of primary aerosol ! emission for I mode REAL :: XEMISSIGJ = 1.29 ! dispersion of primary aerosol ! emission for J mode - CHARACTER*4 :: CRGUNIT = 'NUMB' ! type of log-normal geometric mean radius given -! ! in nameliste (mass on number) + CHARACTER(len=4) :: CRGUNIT = 'NUMB' ! type of log-normal geometric mean radius given +! ! in namelist (mass on number) diff --git a/src/SURFEX/read_ascllv.F90 b/src/SURFEX/read_ascllv.F90 index a8fda182d299cb4ca247d17e94d1f2d180aaee71..aefd7a16eaa8d3865e06468e43e40d8d2ec1c5f7 100644 --- a/src/SURFEX/read_ascllv.F90 +++ b/src/SURFEX/read_ascllv.F90 @@ -67,7 +67,7 @@ INTEGER :: IGLB ! logical unit ! INTEGER :: JLAT, JLON ! indexes of OLATLONMASK array ! -INTEGER*4, PARAMETER :: ILONG=200000 +INTEGER, PARAMETER :: ILONG=200000 ! REAL :: ZVALUER REAL, DIMENSION(ILONG) :: ZVALUE ! values of a data point diff --git a/src/SURFEX/read_binllv.F90 b/src/SURFEX/read_binllv.F90 index 2357330807b67fd2d8122f72c5442e3d2513ff8f..12027951eabce3628442b6a4a962d9f010ca96c6 100644 --- a/src/SURFEX/read_binllv.F90 +++ b/src/SURFEX/read_binllv.F90 @@ -36,6 +36,10 @@ USE MODD_SSO_n, ONLY : SSO_t ! USE MODD_PGD_GRID, ONLY : LLATLONMASK ! +#ifdef SFX_MNH +use modd_precision, only: MNHINT32 +#endif +! USE MODI_OPEN_FILE USE MODI_CLOSE_FILE USE MODI_PT_BY_PT_TREATMENT @@ -68,11 +72,23 @@ INTEGER :: JLAT, JLON ! indexes of OLATLONMASK array ! INTEGER, PARAMETER :: ILONG=1000 ! +#ifdef SFX_MNH +REAL(kind=MNHINT32) :: ZVALUER +#else REAL*4 :: ZVALUER +#endif REAL, DIMENSION(ILONG) :: ZVALUE ! values of a data point +#ifdef SFX_MNH +REAL(kind=MNHINT32) :: ZLATR +#else REAL*4 :: ZLATR +#endif REAL, DIMENSION(ILONG) :: ZLAT ! latitude of data point +#ifdef SFX_MNH +REAL(kind=MNHINT32) :: ZLONR, ZLONR2 +#else REAL*4 :: ZLONR, ZLONR2 +#endif REAL, DIMENSION(ILONG) :: ZLON ! longitude of data point ! INTEGER :: ICPT, ISTAT diff --git a/src/SURFEX/uncompress_field.F90 b/src/SURFEX/uncompress_field.F90 index fadc0be3f840632dfd4432c870b6173361025bb0..684fcdef42379f9e1f2cea7236478c73875335be 100644 --- a/src/SURFEX/uncompress_field.F90 +++ b/src/SURFEX/uncompress_field.F90 @@ -2,7 +2,7 @@ SUBROUTINE UNCOMPRESS_FIELD(KLONG,PSEUIL,PFIELD_IN,PFIELD_OUT) IMPLICIT NONE -INTEGER*4, INTENT(IN) :: KLONG +INTEGER, INTENT(IN) :: KLONG REAL, INTENT(IN) :: PSEUIL REAL, DIMENSION(:), INTENT(IN) :: PFIELD_IN REAL, DIMENSION(:), INTENT(OUT) :: PFIELD_OUT