diff --git a/src/MNH/ice4_compute_pdf.f90 b/src/MNH/ice4_compute_pdf.f90 index c09e47fb5befbf441695fdb8c1f4400a88225187..e331acb020a3c0620fa63f7b0a43ffed490b700a 100644 --- a/src/MNH/ice4_compute_pdf.f90 +++ b/src/MNH/ice4_compute_pdf.f90 @@ -79,10 +79,8 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZRCRAUTC, & !RC value to begin rain form ! note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL ! = PHLC_HRC/HCF+ PHLC_LRC/LCF REAL :: ZCOEFFRCM -INTEGER :: ILUOUT ! logical unit !------------------------------------------------------------------------------- ! -ILUOUT = TLUOUT%NLU !Cloud water split between high and low content part is done according to autoconversion option ZRCRAUTC(:)=XCRIAUTC/PRHODREF(:) ! Autoconversion rc threshold IF(HSUBG_AUCV=='NONE') THEN @@ -252,14 +250,10 @@ ELSEIF(HSUBG_AUCV=='PDF ') THEN END WHERE PRF(:)=PHLC_HCF(:) !Precipitation fraction ELSE - !wrong HSUBG_PR_PDF case - WRITE(ILUOUT,*) 'STOP : wrong HSUBG_PR_PDF case' - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_COMPUTE_PDF','') + CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_COMPUTE_PDF','wrong HSUBG_PR_PDF case') ENDIF ELSE - !wrong HSUBG_AUCV case - WRITE(ILUOUT,*) 'STOP : wrong HSUBG_AUCV case' - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_COMPUTE_PDF','') + CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_COMPUTE_PDF','wrong HSUBG_AUCV case') ENDIF ! END SUBROUTINE ICE4_COMPUTE_PDF diff --git a/src/MNH/ice4_fast_rg.f90 b/src/MNH/ice4_fast_rg.f90 index df9d5db0b6ad409d04dc40d442d7ed1cccee1be0..9110a971c0272027e987813e01634464ef2f52dc 100644 --- a/src/MNH/ice4_fast_rg.f90 +++ b/src/MNH/ice4_fast_rg.f90 @@ -44,16 +44,16 @@ LOGICAL, DIMENSION(KSIZE), INTENT(OUT) :: LDWETG ! True where graupel gro REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRRG ! Rain contact freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRCFRIG ! Rain contact freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRR ! Rain contact freezing -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH ! Conversion of graupel into hail -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH ! Conversion of graupel into hail +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGMLTR ! Melting of the graupel REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRG_TEND ! Individual tendencies REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_TH @@ -133,16 +133,16 @@ LOGICAL, DIMENSION(KSIZE), INTENT(OUT) :: LDWETG ! True where graupel gro REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRRG ! Rain contact freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRCFRIG ! Rain contact freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRR ! Rain contact freezing -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETG ! Graupel wet growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYG ! Graupel dry growth -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH ! Conversion of graupel into hail -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETG ! Graupel wet growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYG ! Graupel dry growth +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH ! Conversion of graupel into hail +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGMLTR ! Melting of the graupel REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRG_TEND ! Individual tendencies REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_TH @@ -157,6 +157,8 @@ REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RH ! !* 0.2 declaration of local variables ! +INTEGER, PARAMETER :: IRCDRYG=1, IRIDRYG=2, IRIWETG=3, IRSDRYG=4, IRSWETG=5, IRRDRYG=6 +! LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GDRY, LLDRYG, GMASK INTEGER :: IGDRY REAL, DIMENSION(SIZE(PRHODREF)) :: ZVEC1, ZVEC2, ZVEC3 @@ -165,16 +167,6 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, & ZRDRYG_INIT, & !Initial dry growth rate of the graupeln ZRWETG_INIT !Initial wet growth rate of the graupeln INTEGER :: JJ -INTEGER :: IRCDRYG, IRIDRYG, IRIWETG, IRSDRYG, IRSWETG, IRRDRYG -!------------------------------------------------------------------------------- -! -! -IRCDRYG=1 -IRIDRYG=2 -IRIWETG=3 -IRSDRYG=4 -IRSWETG=5 -IRRDRYG=6 ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ice4_fast_rh.f90 b/src/MNH/ice4_fast_rh.f90 index 8320cd345c6debacdc255cb3364254167962cefa..9deafac9dde79a2a23790b88204ac9051f6f0db7 100644 --- a/src/MNH/ice4_fast_rh.f90 +++ b/src/MNH/ice4_fast_rh.f90 @@ -37,17 +37,17 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIT ! Pristine ice m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRGT ! Graupel m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHT ! Hail m.r. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRDRYHG ! Conversion of hailstone into graupel +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRDRYHG ! Conversion of hailstone into graupel REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRHMLTR ! Melting of the hailstones REAL, DIMENSION(KSIZE, 8), INTENT(INOUT) :: PRH_TEND ! Individual tendencies REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_TH @@ -118,17 +118,17 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIT ! Pristine ice m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRGT ! Graupel m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHT ! Hail m.r. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETH ! Dry growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGDRYH ! Wet growth of hailstone -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRDRYHG ! Conversion of hailstone into graupel +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETH ! Dry growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGDRYH ! Wet growth of hailstone +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRDRYHG ! Conversion of hailstone into graupel REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRHMLTR ! Melting of the hailstones REAL, DIMENSION(KSIZE, 8), INTENT(INOUT) :: PRH_TEND ! Individual tendencies REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_TH @@ -141,6 +141,8 @@ REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_RH ! !* 0.2 declaration of local variables ! +INTEGER, PARAMETER :: IRCWETH=1, IRRWETH=2, IRIDRYH=3, IRIWETH=4, IRSDRYH=5, IRSWETH=6, IRGDRYH=7, IRGWETH=8 +! LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GHAIL, GWET, GMASK, LLWETH, LLDRYH INTEGER :: IHAIL, IGWET REAL, DIMENSION(SIZE(PRHODREF)) :: ZVEC1, ZVEC2, ZVEC3 @@ -149,20 +151,9 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, & ZRDRYH_INIT, ZRWETH_INIT, & ZRDRYHG INTEGER :: JJ -INTEGER :: IRCWETH, IRRWETH, IRIDRYH, IRIWETH, IRSDRYH, IRSWETH, IRGDRYH, IRGWETH ! !------------------------------------------------------------------------------- ! -IRCWETH=1 -IRRWETH=2 -IRIDRYH=3 -IRIWETH=4 -IRSDRYH=5 -IRSWETH=6 -IRGDRYH=7 -IRGWETH=8 -! -! ! !* 7.2 compute the Wet and Dry growth of hail ! diff --git a/src/MNH/ice4_fast_rs.f90 b/src/MNH/ice4_fast_rs.f90 index 3acf8a4a82eda23786a6cf1487482866765cd9f1..c8fc0c9fd4de628cb6b751a75de386db72d76ac5 100644 --- a/src/MNH/ice4_fast_rs.f90 +++ b/src/MNH/ice4_fast_rs.f90 @@ -34,12 +34,12 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRCT ! Cloud water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRRT ! Rain water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIAGGS ! r_i aggregation on r_s -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSS ! Rain accretion onto the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSG ! Rain accretion onto the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSACCRG ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSS ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSG ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSACCRG ! Rain accretion onto the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSMLTG ! Conversion-Melting of the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCMLTSR ! Cloud droplet collection onto aggregates by positive temperature REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRS_TEND ! Individual tendencies @@ -106,12 +106,12 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRCT ! Cloud water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRRT ! Rain water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIAGGS ! r_i aggregation on r_s -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSS ! Rain accretion onto the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSG ! Rain accretion onto the aggregates -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSACCRG ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSS ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSG ! Rain accretion onto the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSACCRG ! Rain accretion onto the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSMLTG ! Conversion-Melting of the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCMLTSR ! Cloud droplet collection onto aggregates by positive temperature REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRS_TEND ! Individual tendencies @@ -123,23 +123,14 @@ REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PA_RG ! !* 0.2 declaration of local variables ! +INTEGER, PARAMETER :: IRCRIMS=1, IRCRIMSS=2, IRSRIMCG=3, IRRACCS=4, IRRACCSS=5, IRSACCRG=6 +! LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GRIM, GACC, GMASK INTEGER :: IGRIM, IGACC REAL, DIMENSION(SIZE(PRHODREF)) :: ZVEC1, ZVEC2, ZVEC3 INTEGER, DIMENSION(SIZE(PRHODREF)) :: IVEC1, IVEC2 REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, ZZW2, ZZW6, ZFREEZ_RATE INTEGER :: JJ -INTEGER :: IRCRIMS, IRCRIMSS, IRSRIMCG, IRRACCS, IRRACCSS, IRSACCRG -!------------------------------------------------------------------------------- -! -! -IRCRIMS=1 -IRCRIMSS=2 -IRSRIMCG=3 -IRRACCS=4 -IRRACCSS=5 -IRSACCRG=6 -! !------------------------------------------------------------------------------- ! ! diff --git a/src/MNH/ice4_nucleation.f90 b/src/MNH/ice4_nucleation.f90 index 27636438c709ff2d0c33515514bb2f3979298923..fcb0373e25806b15e27e3b6dd699e24b7b9f365a 100644 --- a/src/MNH/ice4_nucleation.f90 +++ b/src/MNH/ice4_nucleation.f90 @@ -20,7 +20,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature at time t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRVT ! Water vapor m.r. at t REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVHENI_MR ! Mixing ratio change due to the heterogeneous nucleation +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRVHENI_MR ! Mixing ratio change due to the heterogeneous nucleation REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RV REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RI @@ -68,7 +68,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature at time t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRVT ! Water vapor m.r. at t REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVHENI_MR ! Mixing ratio change due to the heterogeneous nucleation +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRVHENI_MR ! Mixing ratio change due to the heterogeneous nucleation REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RV REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RI diff --git a/src/MNH/ice4_rimltc.f90 b/src/MNH/ice4_rimltc.f90 index 50398fb6f5298598eb55058f41f97455581b8f62..17efc9b098840471fa7209b8a5b9afec6d33e9f4 100644 --- a/src/MNH/ice4_rimltc.f90 +++ b/src/MNH/ice4_rimltc.f90 @@ -19,7 +19,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT ! L_s/(Pi_ref*C_ph) REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PTHT ! Theta at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIT ! Cloud ice at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RC REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RI @@ -66,7 +66,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT ! L_s/(Pi_ref*C_ph) REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PTHT ! Theta at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRIT ! Cloud ice at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RC REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RI diff --git a/src/MNH/ice4_rrhong.f90 b/src/MNH/ice4_rrhong.f90 index b2e4021378d9b68b22800f0e94ce7dce388db07d..7555a0fb52e948d8e68e98993cda2bf24481825f 100644 --- a/src/MNH/ice4_rrhong.f90 +++ b/src/MNH/ice4_rrhong.f90 @@ -19,7 +19,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT ! L_s/(Pi_ref*C_ph) REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PRRT ! Rain water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PTHT ! Theta at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RG @@ -66,7 +66,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLSFACT ! L_s/(Pi_ref*C_ph) REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PRRT ! Rain water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PTHT ! Theta at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_TH REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RG diff --git a/src/MNH/ice4_rsrimcg_old.f90 b/src/MNH/ice4_rsrimcg_old.f90 index bd3068a5ede6955f6bbe5620dfedf817cdd0b7d5..5dd5773099dd7c9adcc505616a5d465011c42932 100644 --- a/src/MNH/ice4_rsrimcg_old.f90 +++ b/src/MNH/ice4_rsrimcg_old.f90 @@ -18,7 +18,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLBDAS ! Slope parameter of the REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PRCT ! Cloud water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG_MR ! Mr change due to cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG_MR ! Mr change due to cloud droplet riming of the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RS REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RG END SUBROUTINE ICE4_RSRIMCG_OLD @@ -63,7 +63,7 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PLBDAS ! Slope parameter of the REAL, DIMENSION(KSIZE), INTENT(IN) :: PT ! Temperature REAL, DIMENSION(KSIZE), INTENT(IN) :: PRCT ! Cloud water m.r. at t REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG_MR ! Mr change due to cloud droplet riming of the aggregates +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG_MR ! Mr change due to cloud droplet riming of the aggregates REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RS REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PB_RG ! diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90 index 39480e8fd20d2e9dc90d596ea91bf674b2a0b6b0..9883eaf7b3fc5c6610bdf2ee78d94f17c0367299 100644 --- a/src/MNH/ice4_tendencies.f90 +++ b/src/MNH/ice4_tendencies.f90 @@ -57,10 +57,10 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRST REAL, DIMENSION(KSIZE), INTENT(IN) :: PRGT REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHT REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRRT3D -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVHENI_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRHONG_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIMLTC_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRVHENI_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRHONG_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIMLTC_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG_MR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCHONI REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVDEPS REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIAGGS @@ -69,39 +69,39 @@ REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVDEPG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCAUTR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCACCR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRREVAV -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSS -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSS -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSACCRG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSS +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSS +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSACCRG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSMLTG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCMLTSR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRRG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRCFRIG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH_MR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGMLTR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRDRYHG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRDRYHG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRHMLTR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCBERI REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRS_TEND @@ -222,10 +222,10 @@ REAL, DIMENSION(KSIZE), INTENT(IN) :: PRGT REAL, DIMENSION(KSIZE), INTENT(IN) :: PRHT REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRRT3D REAL, DIMENSION(KSIZE), INTENT(IN) :: PSIGMA_RC -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVHENI_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRHONG_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIMLTC_MR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRVHENI_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRHONG_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIMLTC_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG_MR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCHONI REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVDEPS REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIAGGS @@ -234,39 +234,39 @@ REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRVDEPG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCAUTR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCACCR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRREVAV -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSS -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCRIMSG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSRIMCG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSS -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRACCSG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSACCRG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSS +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCRIMSG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSRIMCG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSS +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRACCSG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSACCRG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSMLTG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCMLTSR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRRG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRCFRIG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRICFRR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYG -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRWETGH_MR +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRWETGH_MR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGMLTR -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRWETH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRIDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRSDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRRDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRGDRYH -REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRDRYHG +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRWETH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRCDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRIDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRSDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRRDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRGDRYH +REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRDRYHG REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRHMLTR REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PRCBERI REAL, DIMENSION(KSIZE, 6), INTENT(INOUT) :: PRS_TEND