Skip to content
Snippets Groups Projects
Commit d21efb44 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 27/02/2020: bugfix: P_TH_HIND was not accumulated (will affect budgets)

+ add P_TH_HINC dummy argument + change intent of *_HIND and *_HINC dummy arguments (INOUT->OUT)

(cherry picked from commit 89e51012)
parent 64a672d9
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC 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. !MNH_LIC for details. version 1.
...@@ -13,7 +13,7 @@ INTERFACE ...@@ -13,7 +13,7 @@ INTERFACE
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PINT, & PCCT, PCIT, PINT, &
P_TH_HIND, P_RI_HIND, P_CI_HIND, & P_TH_HIND, P_RI_HIND, P_CI_HIND, &
P_RC_HINC, P_CC_HINC ) P_TH_HINC, P_RC_HINC, P_CC_HINC )
! !
REAL, INTENT(IN) :: PTSTEP REAL, INTENT(IN) :: PTSTEP
! !
...@@ -33,11 +33,12 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t ...@@ -33,11 +33,12 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C.
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
! !
END SUBROUTINE LIMA_MEYERS_NUCLEATION END SUBROUTINE LIMA_MEYERS_NUCLEATION
END INTERFACE END INTERFACE
...@@ -49,7 +50,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION ...@@ -49,7 +50,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PINT, & PCCT, PCIT, PINT, &
P_TH_HIND, P_RI_HIND, P_CI_HIND, & P_TH_HIND, P_RI_HIND, P_CI_HIND, &
P_RC_HINC, P_CC_HINC ) P_TH_HINC, P_RC_HINC, P_CC_HINC )
! ############################################################################# ! #############################################################################
!! !!
!! PURPOSE !! PURPOSE
...@@ -69,7 +70,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION ...@@ -69,7 +70,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION
!! ------------- !! -------------
!! Original 15/03/2018 !! Original 15/03/2018
! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 ! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90
! ! P. Wautelet 27/02/2020: add P_TH_HINC dummy argument + change intent of *_HIND and *_HINC dummy arguments (INOUT->OUT)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
!* 0. DECLARATIONS !* 0. DECLARATIONS
...@@ -108,11 +109,12 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t ...@@ -108,11 +109,12 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C.
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
! !
! !
!* 0.2 Declarations of local variables : !* 0.2 Declarations of local variables :
...@@ -302,7 +304,8 @@ IF( INEGT >= 1 ) THEN ...@@ -302,7 +304,8 @@ IF( INEGT >= 1 ) THEN
! !
P_RC_HINC(:,:,:) = - UNPACK( ZZW(:), MASK=GNEGT(:,:,:), FIELD=0. ) P_RC_HINC(:,:,:) = - UNPACK( ZZW(:), MASK=GNEGT(:,:,:), FIELD=0. )
P_CC_HINC(:,:,:) = - UNPACK( ZZX(:), MASK=GNEGT(:,:,:), FIELD=0. ) P_CC_HINC(:,:,:) = - UNPACK( ZZX(:), MASK=GNEGT(:,:,:), FIELD=0. )
PTHT(:,:,:) = PTHT(:,:,:) + UNPACK( ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)), MASK=GNEGT(:,:,:), FIELD=0. ) P_TH_HINC(:,:,:) = UNPACK( ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)), MASK=GNEGT(:,:,:), FIELD=0. )
PTHT(:,:,:) = PTHT(:,:,:) + P_TH_HINC(:,:,:)
PRCT(:,:,:) = PRCT(:,:,:) + P_RC_HINC(:,:,:) PRCT(:,:,:) = PRCT(:,:,:) + P_RC_HINC(:,:,:)
PRIT(:,:,:) = PRIT(:,:,:) - P_RC_HINC(:,:,:) PRIT(:,:,:) = PRIT(:,:,:) - P_RC_HINC(:,:,:)
PCCT(:,:,:) = PCCT(:,:,:) + P_CC_HINC(:,:,:) PCCT(:,:,:) = PCCT(:,:,:) + P_CC_HINC(:,:,:)
......
...@@ -70,6 +70,7 @@ SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, OCLOSE_OUT, PRHODJ, ...@@ -70,6 +70,7 @@ SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, OCLOSE_OUT, PRHODJ,
!! ------------- !! -------------
!! Original 15/03/2018 !! Original 15/03/2018
! P. Wautelet 27/02/2020: bugfix: PNFT was not updated after LIMA_CCN_HOM_FREEZING ! P. Wautelet 27/02/2020: bugfix: PNFT was not updated after LIMA_CCN_HOM_FREEZING
! P. Wautelet 27/02/2020: add Z_TH_HINC variable (for budgets)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LMEYERS, LSNOW, LWARM, LACTI, LRAIN, LHHONI, & USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LMEYERS, LSNOW, LWARM, LACTI, LRAIN, LHHONI, &
...@@ -126,7 +127,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNHT ! CCN hom. freezing ...@@ -126,7 +127,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNHT ! CCN hom. freezing
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, Z_RC_HINC, Z_CC_HINC REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, Z_TH_HINC, Z_RC_HINC, Z_CC_HINC
REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT
REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZCCT, ZCRT, ZCIT REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZCCT, ZCRT, ZCIT
REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3),NMOD_CCN) :: ZNFT, ZNAT REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3),NMOD_CCN) :: ZNFT, ZNAT
...@@ -190,7 +191,7 @@ IF (LCOLD .AND. LNUCL .AND. .NOT.LMEYERS .AND. NMOD_IFN.GE.1) THEN ...@@ -190,7 +191,7 @@ IF (LCOLD .AND. LNUCL .AND. .NOT.LMEYERS .AND. NMOD_IFN.GE.1) THEN
ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, & ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
ZCCT, ZCIT, ZNAT, ZIFT, ZINT, ZNIT, & ZCCT, ZCIT, ZNAT, ZIFT, ZINT, ZNIT, &
Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, & Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, &
Z_RC_HINC, Z_CC_HINC ) Z_TH_HINC, Z_RC_HINC, Z_CC_HINC )
! !
! Call budgets ! Call budgets
! !
...@@ -236,7 +237,7 @@ IF (LCOLD .AND. LNUCL .AND. LMEYERS) THEN ...@@ -236,7 +237,7 @@ IF (LCOLD .AND. LNUCL .AND. LMEYERS) THEN
ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, & ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
ZCCT, ZCIT, ZINT, & ZCCT, ZCIT, ZINT, &
Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, & Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, &
Z_RC_HINC, Z_CC_HINC ) Z_TH_HINC, Z_RC_HINC, Z_CC_HINC )
! !
! Call budgets ! Call budgets
! !
......
!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC 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. !MNH_LIC for details. version 1.
...@@ -13,7 +13,7 @@ INTERFACE ...@@ -13,7 +13,7 @@ INTERFACE
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & PCCT, PCIT, PNAT, PIFT, PINT, PNIT, &
P_TH_HIND, P_RI_HIND, P_CI_HIND, & P_TH_HIND, P_RI_HIND, P_CI_HIND, &
P_RC_HINC, P_CC_HINC ) P_TH_HINC, P_RC_HINC, P_CC_HINC )
! !
REAL, INTENT(IN) :: PTSTEP REAL, INTENT(IN) :: PTSTEP
! !
...@@ -36,11 +36,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc. ...@@ -36,11 +36,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc.
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
! !
END SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION END SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION
END INTERFACE END INTERFACE
...@@ -52,7 +53,7 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION ...@@ -52,7 +53,7 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & PCCT, PCIT, PNAT, PIFT, PINT, PNIT, &
P_TH_HIND, P_RI_HIND, P_CI_HIND, & P_TH_HIND, P_RI_HIND, P_CI_HIND, &
P_RC_HINC, P_CC_HINC ) P_TH_HINC, P_RC_HINC, P_CC_HINC )
! ################################################################################# ! #################################################################################
!! !!
!! PURPOSE !! PURPOSE
...@@ -103,7 +104,8 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION ...@@ -103,7 +104,8 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION
!! ------------- !! -------------
!! Original 15/03/2018 !! Original 15/03/2018
! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 ! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90
! ! P. Wautelet 27/02/2020: bugfix: P_TH_HIND was not accumulated (will affect budgets) + add P_TH_HINC dummy argument
! + change intent of *_HIND and *_HINC dummy arguments (INOUT->OUT)
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
!* 0. DECLARATIONS !* 0. DECLARATIONS
...@@ -151,11 +153,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc. ...@@ -151,11 +153,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc. REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc.
! !
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
! !
! !
!* 0.2 Declarations of local variables : !* 0.2 Declarations of local variables :
...@@ -218,6 +221,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZTCELSIUS, ZZT_SI0_BC ...@@ -218,6 +221,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZTCELSIUS, ZZT_SI0_BC
P_TH_HIND(:,:,:) = 0. P_TH_HIND(:,:,:) = 0.
P_RI_HIND(:,:,:) = 0. P_RI_HIND(:,:,:) = 0.
P_CI_HIND(:,:,:) = 0. P_CI_HIND(:,:,:) = 0.
P_TH_HINC(:,:,:) = 0.
P_RC_HINC(:,:,:) = 0. P_RC_HINC(:,:,:) = 0.
P_CC_HINC(:,:,:) = 0. P_CC_HINC(:,:,:) = 0.
! !
...@@ -408,8 +412,9 @@ IF (INEGT > 0) THEN ...@@ -408,8 +412,9 @@ IF (INEGT > 0) THEN
PRVT(:,:,:) = PRVT(:,:,:) - ZW(:,:,:) PRVT(:,:,:) = PRVT(:,:,:) - ZW(:,:,:)
PRIT(:,:,:) = PRIT(:,:,:) + ZW(:,:,:) PRIT(:,:,:) = PRIT(:,:,:) + ZW(:,:,:)
! !
P_TH_HIND(:,:,:) = UNPACK( ZZW(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. ) ZW(:,:,:) = UNPACK( ZZW(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. )
PTHT(:,:,:) = PTHT(:,:,:) + P_TH_HIND(:,:,:) P_TH_HIND(:,:,:) = P_TH_HIND(:,:,:) + ZW(:,:,:)
PTHT(:,:,:) = PTHT(:,:,:) + ZW(:,:,:)
END DO END DO
! !
! !
...@@ -453,7 +458,10 @@ IF (INEGT > 0) THEN ...@@ -453,7 +458,10 @@ IF (INEGT > 0) THEN
P_RC_HINC(:,:,:) = P_RC_HINC(:,:,:) - ZW(:,:,:) P_RC_HINC(:,:,:) = P_RC_HINC(:,:,:) - ZW(:,:,:)
PRCT(:,:,:) = PRCT(:,:,:) - ZW(:,:,:) PRCT(:,:,:) = PRCT(:,:,:) - ZW(:,:,:)
PRIT(:,:,:) = PRIT(:,:,:) + ZW(:,:,:) PRIT(:,:,:) = PRIT(:,:,:) + ZW(:,:,:)
PTHT(:,:,:) = PTHT(:,:,:) + UNPACK( ZZY(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. ) !
ZW(:,:,:) = UNPACK( ZZY(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. )
P_TH_HINC(:,:,:) = P_TH_HINC(:,:,:) + ZW(:,:,:)
PTHT(:,:,:) = PTHT(:,:,:) + ZW(:,:,:)
END IF END IF
END DO END DO
! !
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment