Skip to content
Snippets Groups Projects
Commit 89e51012 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)
parent deffbc2e
No related branches found
No related tags found
No related merge requests found
!MNH_LIC Copyright 2013-2018 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 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 MODI_LIMA_MEYERS_NUCLEATION
! ##################################
......@@ -12,7 +13,7 @@ INTERFACE
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PINT, &
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
!
......@@ -32,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) :: PINT ! Activated ice nuclei C.
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
!
END SUBROUTINE LIMA_MEYERS_NUCLEATION
END INTERFACE
......@@ -48,7 +50,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PINT, &
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
......@@ -67,7 +69,7 @@ END MODULE MODI_LIMA_MEYERS_NUCLEATION
!! MODIFICATIONS
!! -------------
!! Original 15/03/2018
!!
! P. Wautelet 27/02/2020: add P_TH_HINC dummy argument + change intent of *_HIND and *_HINC dummy arguments (INOUT->OUT)
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -105,11 +107,12 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C.
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
!
!
!* 0.2 Declarations of local variables :
......@@ -299,7 +302,8 @@ IF( INEGT >= 1 ) THEN
!
P_RC_HINC(:,:,:) = - UNPACK( ZZW(:), 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(:,:,:)
PRIT(:,:,:) = PRIT(:,:,:) - P_RC_HINC(:,:,:)
PCCT(:,:,:) = PCCT(:,:,:) + P_CC_HINC(:,:,:)
......
......@@ -70,6 +70,7 @@ SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, OCLOSE_OUT, PRHODJ,
!! -------------
!! Original 15/03/2018
! 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, &
......@@ -125,7 +126,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)) :: ZCCT, ZCRT, ZCIT
REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3),NMOD_CCN) :: ZNFT, ZNAT
......@@ -189,7 +190,7 @@ IF (LCOLD .AND. LNUCL .AND. .NOT.LMEYERS .AND. NMOD_IFN.GE.1) THEN
ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
ZCCT, ZCIT, ZNAT, ZIFT, ZINT, ZNIT, &
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
!
......@@ -235,7 +236,7 @@ IF (LCOLD .AND. LNUCL .AND. LMEYERS) THEN
ZTHT, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
ZCCT, ZCIT, ZINT, &
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
!
......
!MNH_LIC Copyright 2013-2018 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 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 MODI_LIMA_PHILLIPS_IFN_NUCLEATION
! ########################################
......@@ -12,7 +13,7 @@ INTERFACE
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PNAT, PIFT, PINT, PNIT, &
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
!
......@@ -35,11 +36,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc.
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
!
END SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION
END INTERFACE
......@@ -51,7 +53,7 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION
PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
PCCT, PCIT, PNAT, PIFT, PINT, PNIT, &
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
......@@ -101,7 +103,8 @@ END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION
!! MODIFICATIONS
!! -------------
!! Original 15/03/2018
!!
! 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
......@@ -150,11 +153,12 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc.
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc.
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC
REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC
!
!
!* 0.2 Declarations of local variables :
......@@ -217,6 +221,7 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZTCELSIUS, ZZT_SI0_BC
P_TH_HIND(:,:,:) = 0.
P_RI_HIND(:,:,:) = 0.
P_CI_HIND(:,:,:) = 0.
P_TH_HINC(:,:,:) = 0.
P_RC_HINC(:,:,:) = 0.
P_CC_HINC(:,:,:) = 0.
!
......@@ -407,8 +412,9 @@ IF (INEGT > 0) THEN
PRVT(:,:,:) = PRVT(:,:,:) - ZW(:,:,:)
PRIT(:,:,:) = PRIT(:,:,:) + ZW(:,:,:)
!
P_TH_HIND(:,:,:) = UNPACK( ZZW(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. )
PTHT(:,:,:) = PTHT(:,:,:) + P_TH_HIND(:,:,:)
ZW(:,:,:) = UNPACK( ZZW(:)*ZLSFACT(:), MASK=GNEGT(:,:,:), FIELD=0. )
P_TH_HIND(:,:,:) = P_TH_HIND(:,:,:) + ZW(:,:,:)
PTHT(:,:,:) = PTHT(:,:,:) + ZW(:,:,:)
END DO
!
!
......@@ -452,7 +458,10 @@ IF (INEGT > 0) THEN
P_RC_HINC(:,:,:) = P_RC_HINC(:,:,:) - ZW(:,:,:)
PRCT(:,:,:) = PRCT(:,:,:) - 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 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