diff --git a/src/arome/ext/apl_arome.F90 b/src/arome/ext/apl_arome.F90 index 0467649b260f778b817c8fb054c0884619d10074..3fd80fa343f5effa0790dcf0d4a56aaab2006774 100644 --- a/src/arome/ext/apl_arome.F90 +++ b/src/arome/ext/apl_arome.F90 @@ -1066,7 +1066,7 @@ ZINVG=1._JPRB/RG !set concentration for LIMA LLIMAINIT=.FALSE. -IF (YDCPG_OPTS%KSTEP==0) THEN +IF (YDCPG_OPTS%KSTEP==0 .AND. CMICRO=='LIMA') THEN LLIMAINIT=.TRUE. ZP1EZDIAG(:,:,1)=0._JPRB ZP1EZDIAG(:,:,2)=0._JPRB @@ -1489,14 +1489,16 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ENDDO !initialisation de ZZI_THRAD - IF (YDCPG_OPTS%KSTEP==0) THEN - DO JLEV = 1, YDCPG_OPTS%KFLEVG - ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB - ENDDO - ELSE - DO JLEV = 1, YDCPG_OPTS%KFLEVG - ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5) - ENDDO + IF (CMICRO=='LIMA') THEN + IF (YDCPG_OPTS%KSTEP==0) THEN + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ENDDO + ELSE + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5) + ENDDO + ENDIF ENDIF ENDIF @@ -2242,13 +2244,15 @@ ENDIF ENDIF !initialisation de ZZI_THRAD - DO JLEV = 1, YDCPG_OPTS%KFLEVG - DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA - ZDTHRAD_(JLON,JLEV)=ZTENT(JLON,JLEV)/ZEXNREFM_(JLON,JLEV) - END DO - ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)=ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) - ENDDO - + IF (CMICRO=='LIMA') THEN + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + ZDTHRAD_(JLON,JLEV)=ZTENT(JLON,JLEV)/ZEXNREFM_(JLON,JLEV) + END DO + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)=ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ENDDO + ENDIF + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA ! update sunshine duration [s] !YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*TSTEP diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files index 2e00e3c0612ce24c313e7b1b3201b4ec5509f190..6e945e64a75096fe07c7c65072b845e83fa31591 100644 --- a/src/arome/gmkpack_ignored_files +++ b/src/arome/gmkpack_ignored_files @@ -218,3 +218,51 @@ phyex/micro/lima_mixed_slow_processes.F90 phyex/micro/lima_mixed_fast_processes.F90 phyex/micro/lima_adjust.F90 phyex/micro/lima_phillips.F90 +phyex/micro/lima_bergeron.F90 +phyex/micro/lima_ccn_activation.F90 +phyex/micro/lima_ccn_hom_freezing.F90 +phyex/micro/lima_collisional_ice_breakup.F90 +phyex/micro/lima_compute_cloud_fractions.F90 +phyex/micro/lima_conversion_melting_snow.F90 +phyex/micro/lima_droplets_accretion.F90 +phyex/micro/lima_droplets_autoconversion.F90 +phyex/micro/lima_droplets_hom_freezing.F90 +phyex/micro/lima_droplets_riming_snow.F90 +phyex/micro/lima_droplets_self_collection.F90 +phyex/micro/lima_drops_break_up.F90 +phyex/micro/lima_drops_hom_freezing.F90 +phyex/micro/lima_drops_self_collection.F90 +phyex/micro/lima_drops_to_droplets_conv.F90 +phyex/micro/lima_functions.F90 +phyex/micro/lima_graupel.F90 +phyex/micro/lima_graupel_deposition.F90 +phyex/micro/lima_hail.F90 +phyex/micro/lima_hail_deposition.F90 +phyex/micro/lima_ice4_nucleation.F90 +phyex/micro/lima_ice_aggregation_snow.F90 +phyex/micro/lima_ice_deposition.F90 +phyex/micro/lima_ice_melting.F90 +phyex/micro/lima_init_ccn_activation_spectrum.F90 +phyex/micro/lima_inst_procs.F90 +phyex/micro/lima_meyers_nucleation.F90 +phyex/micro/lima_nucleation_procs.F90 +phyex/micro/lima_phillips_ifn_nucleation.F90 +phyex/micro/lima_phillips_integ.F90 +phyex/micro/lima_phillips_ref_spectrum.F90 +phyex/micro/lima_rain_accr_snow.F90 +phyex/micro/lima_rain_evaporation.F90 +phyex/micro/lima_rain_freezing.F90 +phyex/micro/lima_raindrop_shattering_freezing.F90 +phyex/micro/lima_read_xker_gweth.F90 +phyex/micro/lima_read_xker_raccs.F90 +phyex/micro/lima_read_xker_rdryg.F90 +phyex/micro/lima_read_xker_sdryg.F90 +phyex/micro/lima_read_xker_sweth.F90 +phyex/micro/lima_sedimentation.F90 +phyex/micro/lima_snow_deposition.F90 +phyex/micro/lima_snow_self_collection.F90 +phyex/micro/lima_tendencies.F90 +phyex/micro/nrcolss.f90 +phyex/micro/nscolrg.f90 +phyex/micro/nzcolx.f90 +phyex/micro/set_conc_lima.f90 diff --git a/src/arome/micro/set_conc_lima_lbc.F90 b/src/arome/micro/mode_set_conc_lima_lbc.F90 similarity index 65% rename from src/arome/micro/set_conc_lima_lbc.F90 rename to src/arome/micro/mode_set_conc_lima_lbc.F90 index 99fe74a52891aac1083ddd1a271c9db67ae87049..f04d2c512d9a3972fa1d03923c960949f634c862 100644 --- a/src/arome/micro/set_conc_lima_lbc.F90 +++ b/src/arome/micro/mode_set_conc_lima_lbc.F90 @@ -78,7 +78,9 @@ USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, NMOD_CCN, NMOD_IFN, & USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI, XAS, XBS USE MODD_PARAM_LIMA_MIXED,ONLY : XAG, XBG, XAH, XBH USE MODD_NSV, ONLY : NSV_LIMA_BEG_A, NSV_LIMA_NC_A, NSV_LIMA_NR_A, NSV_LIMA_CCN_ACTI_A, & - NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A + NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A, & + NSV_LIMA_BEG, NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, & + NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, NSV_LIMA_IFN_NUCL USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB ! @@ -92,17 +94,27 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG_A(kmi):), INTENT(INOUT):: PSVT ! microphys. concentrations +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT ! microphys. concentrations ! ! !* 0.2 Declarations of local variables : ! REAL :: ZCONC +INTEGER :: ISV_LIMA_NC, ISV_LIMA_NR, ISV_LIMA_CCN_ACTI +INTEGER :: ISV_LIMA_NI, ISV_LIMA_NS, ISV_LIMA_NG, ISV_LIMA_NH, ISV_LIMA_IFN_NUCL ! !------------------------------------------------------------------------------- !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! +ISV_LIMA_NC = NSV_LIMA_NC - NSV_LIMA_BEG + 1 +ISV_LIMA_NR = NSV_LIMA_NR - NSV_LIMA_BEG + 1 +ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1 +ISV_LIMA_NI = NSV_LIMA_NI - NSV_LIMA_BEG + 1 +ISV_LIMA_NS = NSV_LIMA_NS - NSV_LIMA_BEG + 1 +ISV_LIMA_NG = NSV_LIMA_NG - NSV_LIMA_BEG + 1 +ISV_LIMA_NH = NSV_LIMA_NH - NSV_LIMA_BEG + 1 +ISV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL - NSV_LIMA_BEG + 1 ! !* 2. INITIALIZATION ! -------------- @@ -112,20 +124,20 @@ IF (NMOM_C.GE.2) THEN ! droplets ! ZCONC = 300.E6 ! droplet concentration set at 300 cm-3 - WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11) - PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = ZCONC + WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11) + PSVT(:,:,:,ISV_LIMA_NC) = ZCONC END WHERE - WHERE ( PRT(:,:,:,2) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11) + WHERE ( PRT(:,:,:,2) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11) PRT(:,:,:,2) = 0.0 - PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NC) = 0.0 END WHERE IF (NMOD_CCN .GE. 1) THEN - WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = ZCONC + WHERE ( PRT(:,:,:,2) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11) + PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = ZCONC END WHERE - WHERE ( PRT(:,:,:,2) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NC_A(kmi))<1.E-11) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = 0.0 + WHERE ( PRT(:,:,:,2) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NC)<1.E-11) + PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = 0.0 END WHERE END IF @@ -137,15 +149,15 @@ IF (NMOM_R.GE.2) THEN ! ZCONC = (1.E7)**3/(XPI*XRHOLW) ! cf XCONCR_PARAM_INI in ini_rain_c2r2.f90 IF (HGETCLOUD == 'INI1') THEN ! init from REVE scheme - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NR) = 0.0 ELSE ! init from KESS, ICE3... - WHERE ( PRT(:,:,:,3) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NR_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & + WHERE ( PRT(:,:,:,3) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NR)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_NR) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & *ZCONC)),1. ) END WHERE - WHERE ( PRT(:,:,:,3) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NR_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,3) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NR)<1.E-11 ) PRT(:,:,:,3) = 0.0 - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NR) = 0.0 END WHERE END IF END IF @@ -155,69 +167,69 @@ IF (NMOM_I.GE.2) THEN ! ice crystals ! ZCONC = 100.E3 ! maximum ice concentration set at 100/L - WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 ) ! ! PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN( PRHODREF(:,:,:) / & ! ( XRHOLI * XAI*(10.E-06)**XBI * PRT(:,:,:,4) ), & ! ZCONC ) ! Correction - PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC ) + PSVT(:,:,:,ISV_LIMA_NI) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC ) END WHERE - WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 ) PRT(:,:,:,4) = 0.0 - PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NI) = 0.0 END WHERE IF (NMOD_IFN .GE. 1) THEN - WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) + WHERE ( PRT(:,:,:,4) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = PSVT(:,:,:,ISV_LIMA_NI) END WHERE - WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NI_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = 0.0 + WHERE ( PRT(:,:,:,4) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NI)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = 0.0 END WHERE END IF END IF ! -IF (NSV_LIMA_NS_A(KMI).GE.1) THEN +IF (ISV_LIMA_NS.GE.1) THEN ! ! snow ! ZCONC = 1./ (XAS*0.001**XBS) ! 1mm particle size - WHERE ( PRT(:,:,:,5) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NS_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = PRT(:,:,:,5) * ZCONC + WHERE ( PRT(:,:,:,5) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NS)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_NS) = PRT(:,:,:,5) * ZCONC END WHERE - WHERE ( PRT(:,:,:,5) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NS_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,5) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NS)<1.E-11 ) PRT(:,:,:,5) = 0.0 - PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NS) = 0.0 END WHERE END IF ! -IF (NSV_LIMA_NG_A(KMI).GE.1) THEN +IF (ISV_LIMA_NG.GE.1) THEN ! ! graupel ! ZCONC = 1./ (XAG*0.001**XBG) ! 1mm particle size - WHERE ( PRT(:,:,:,6) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NG_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = PRT(:,:,:,6) * ZCONC + WHERE ( PRT(:,:,:,6) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NG)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_NG) = PRT(:,:,:,6) * ZCONC END WHERE - WHERE ( PRT(:,:,:,6) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NG_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,6) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NG)<1.E-11 ) PRT(:,:,:,6) = 0.0 - PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NG) = 0.0 END WHERE END IF ! -IF (NSV_LIMA_NH_A(KMI).GE.1) THEN +IF (ISV_LIMA_NH.GE.1) THEN ! ! hail ! ZCONC = 1./ (XAH*0.001**XBH) ! 1mm particle size - WHERE ( PRT(:,:,:,7) > 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NH_A(kmi))<1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = PRT(:,:,:,7) * ZCONC + WHERE ( PRT(:,:,:,7) > 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NH)<1.E-11 ) + PSVT(:,:,:,ISV_LIMA_NH) = PRT(:,:,:,7) * ZCONC END WHERE - WHERE ( PRT(:,:,:,7) <= 1.E-11 .AND. PSVT(:,:,:,NSV_LIMA_NH_A(kmi))<1.E-11 ) + WHERE ( PRT(:,:,:,7) <= 1.E-11 .AND. PSVT(:,:,:,ISV_LIMA_NH)<1.E-11 ) PRT(:,:,:,7) = 0.0 - PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NH) = 0.0 END WHERE END IF ! diff --git a/src/common/aux/modd_nsv.f90 b/src/common/aux/modd_nsv.F90 similarity index 100% rename from src/common/aux/modd_nsv.f90 rename to src/common/aux/modd_nsv.F90 diff --git a/src/common/micro/mode_set_conc_lima.F90 b/src/common/micro/mode_set_conc_lima.F90 index 1a439bafcf36c03bb0f5afe28b8d639f4a823fe0..6c132a78edde92569f54a608e1d145f4ad1ebb8e 100644 --- a/src/common/micro/mode_set_conc_lima.F90 +++ b/src/common/micro/mode_set_conc_lima.F90 @@ -78,7 +78,9 @@ USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, NMOD_CCN, NMOD_IFN, & USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI, XAS, XBS USE MODD_PARAM_LIMA_MIXED,ONLY : XAG, XBG, XAH, XBH USE MODD_NSV, ONLY : NSV_LIMA_BEG_A, NSV_LIMA_NC_A, NSV_LIMA_NR_A, NSV_LIMA_CCN_ACTI_A, & - NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A + NSV_LIMA_NI_A, NSV_LIMA_NS_A, NSV_LIMA_NG_A, NSV_LIMA_NH_A, NSV_LIMA_IFN_NUCL_A, & + NSV_LIMA_BEG, NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, & + NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, NSV_LIMA_IFN_NUCL USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB ! @@ -92,17 +94,27 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios ! -REAL, DIMENSION(:,:,:,NSV_LIMA_BEG_A(kmi):), INTENT(INOUT):: PSVT ! microphys. concentrations +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT ! microphys. concentrations ! ! !* 0.2 Declarations of local variables : ! REAL :: ZCONC +INTEGER :: ISV_LIMA_NC, ISV_LIMA_NR, ISV_LIMA_CCN_ACTI +INTEGER :: ISV_LIMA_NI, ISV_LIMA_NS, ISV_LIMA_NG, ISV_LIMA_NH, ISV_LIMA_IFN_NUCL ! !------------------------------------------------------------------------------- !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! +ISV_LIMA_NC = NSV_LIMA_NC - NSV_LIMA_BEG + 1 +ISV_LIMA_NR = NSV_LIMA_NR - NSV_LIMA_BEG + 1 +ISV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI - NSV_LIMA_BEG + 1 +ISV_LIMA_NI = NSV_LIMA_NI - NSV_LIMA_BEG + 1 +ISV_LIMA_NS = NSV_LIMA_NS - NSV_LIMA_BEG + 1 +ISV_LIMA_NG = NSV_LIMA_NG - NSV_LIMA_BEG + 1 +ISV_LIMA_NH = NSV_LIMA_NH - NSV_LIMA_BEG + 1 +ISV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL - NSV_LIMA_BEG + 1 ! !* 2. INITIALIZATION ! -------------- @@ -113,19 +125,19 @@ IF (NMOM_C.GE.2) THEN ! ZCONC = 300.E6 ! droplet concentration set at 300 cm-3 WHERE ( PRT(:,:,:,2) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = ZCONC + PSVT(:,:,:,ISV_LIMA_NC) = ZCONC END WHERE WHERE ( PRT(:,:,:,2) <= 1.E-11 ) PRT(:,:,:,2) = 0.0 - PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NC) = 0.0 END WHERE IF (NMOD_CCN .GE. 1) THEN WHERE ( PRT(:,:,:,2) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = ZCONC + PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = ZCONC END WHERE WHERE ( PRT(:,:,:,2) <= 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_CCN_ACTI) = 0.0 END WHERE END IF @@ -137,15 +149,15 @@ IF (NMOM_R.GE.2) THEN ! ZCONC = (1.E7)**3/(XPI*XRHOLW) ! cf XCONCR_PARAM_INI in ini_rain_c2r2.f90 IF (HGETCLOUD == 'INI1') THEN ! init from REVE scheme - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NR) = 0.0 ELSE ! init from KESS, ICE3... WHERE ( PRT(:,:,:,3) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & + PSVT(:,:,:,ISV_LIMA_NR) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & *ZCONC)),1. ) END WHERE WHERE ( PRT(:,:,:,3) <= 1.E-11 ) PRT(:,:,:,3) = 0.0 - PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NR) = 0.0 END WHERE END IF END IF @@ -161,60 +173,60 @@ IF (NMOM_I.GE.2) THEN ! ( XRHOLI * XAI*(10.E-06)**XBI * PRT(:,:,:,4) ), & ! ZCONC ) ! Correction - PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC ) + PSVT(:,:,:,ISV_LIMA_NI) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONC ) END WHERE WHERE ( PRT(:,:,:,4) <= 1.E-11 ) PRT(:,:,:,4) = 0.0 - PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NI) = 0.0 END WHERE IF (NMOD_IFN .GE. 1) THEN WHERE ( PRT(:,:,:,4) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) + PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = PSVT(:,:,:,ISV_LIMA_NI) END WHERE WHERE ( PRT(:,:,:,4) <= 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = 0.0 + PSVT(:,:,:,ISV_LIMA_IFN_NUCL) = 0.0 END WHERE END IF END IF ! -IF (NSV_LIMA_NS_A(KMI).GE.1) THEN +IF (ISV_LIMA_NS.GE.1) THEN ! ! snow ! ZCONC = 1./ (XAS*0.001**XBS) ! 1mm particle size WHERE ( PRT(:,:,:,5) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = PRT(:,:,:,5) * ZCONC + PSVT(:,:,:,ISV_LIMA_NS) = PRT(:,:,:,5) * ZCONC ELSEWHERE PRT(:,:,:,5) = 0.0 - PSVT(:,:,:,NSV_LIMA_NS_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NS) = 0.0 END WHERE END IF ! -IF (NSV_LIMA_NG_A(KMI).GE.1) THEN +IF (ISV_LIMA_NG.GE.1) THEN ! ! graupel ! ZCONC = 1./ (XAG*0.001**XBG) ! 1mm particle size WHERE ( PRT(:,:,:,6) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = PRT(:,:,:,6) * ZCONC + PSVT(:,:,:,ISV_LIMA_NG) = PRT(:,:,:,6) * ZCONC ELSEWHERE PRT(:,:,:,6) = 0.0 - PSVT(:,:,:,NSV_LIMA_NG_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NG) = 0.0 END WHERE END IF ! -IF (NSV_LIMA_NH_A(KMI).GE.1) THEN +IF (ISV_LIMA_NH.GE.1) THEN ! ! hail ! ZCONC = 1./ (XAH*0.001**XBH) ! 1mm particle size WHERE ( PRT(:,:,:,7) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = PRT(:,:,:,7) * ZCONC + PSVT(:,:,:,ISV_LIMA_NH) = PRT(:,:,:,7) * ZCONC ELSEWHERE PRT(:,:,:,7) = 0.0 - PSVT(:,:,:,NSV_LIMA_NH_A(KMI)) = 0.0 + PSVT(:,:,:,ISV_LIMA_NH) = 0.0 END WHERE END IF !