From 2e470f756c1a180c841f89d2b3fe3f32ebeb0c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr> Date: Thu, 10 Feb 2022 14:01:00 +0100 Subject: [PATCH] Corrections -> compilation ok --- src/MNH/ini_lima_cold_mixed.f90 | 9 +++++---- src/MNH/ini_param_elec.f90 | 14 +++++++------- src/MNH/ini_rain_ice.f90 | 16 ++++++++-------- src/MNH/ini_rain_ice_elec.f90 | 14 +++++++------- src/MNH/lima_cold_slow_processes.f90 | 14 ++++++++------ src/MNH/lima_conversion_melting_snow.f90 | 5 +++-- src/MNH/lima_ice_snow_deposition.f90 | 3 ++- src/MNH/lima_mixed_fast_processes.f90 | 3 ++- src/MNH/lima_sedimentation.f90 | 12 +++++++----- src/MNH/lima_snow_deposition.f90 | 3 ++- src/MNH/rzcolx.f90 | 18 ++++++++++-------- 11 files changed, 61 insertions(+), 50 deletions(-) diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90 index defb832c1..993dee565 100644 --- a/src/MNH/ini_lima_cold_mixed.f90 +++ b/src/MNH/ini_lima_cold_mixed.f90 @@ -258,7 +258,8 @@ XNUI = 3.0 ! Gamma law with little dispersion !Cas GAMMAGEN XALPHAS = .214 ! Generalized gamma law !Wurtz XNUS = 43.7 ! Generalized gamma law !Wurtz -XTRANS_MP_GAMMAS = SQRT( ( GAMMA(XNUS + 2./XALPHAS)*GAMMA(XNUS + 4./XALPHAS) ) / ( 8.* GAMMA(XNUS + 1./XALPHAS)*GAMMA(XNUS + 3./XALPHAS) ) ) ! Wurtz +XTRANS_MP_GAMMAS = SQRT( ( GAMMA(XNUS + 2./XALPHAS)*GAMMA(XNUS + 4./XALPHAS) ) / & + ( 8.* GAMMA(XNUS + 1./XALPHAS)*GAMMA(XNUS + 3./XALPHAS) ) ) ! Wurtz ! XALPHAG = 1.0 ! Exponential law @@ -292,7 +293,7 @@ IF (GFLAG) THEN WRITE(UNIT=ILUOUT0,FMT='(" XLBEXH =",E13.6," XLBH =",E13.6)') XLBEXH,XLBH END IF ! -XLBDAS_MAX = 500000. ! Attention il faut veuiller que LBDAS_MAX soit bien comparer avec un LBDAS avec une forme de Marshall-Palmer +XLBDAS_MAX = 500000. ! LBDAS_MAX doit être compare avec LBDAS avec une forme de Marshall-Palmer XLBDAS_MIN = 1000. XLBDAG_MAX = 100000.0 ! @@ -732,8 +733,8 @@ IF (GFLAG) THEN END IF ! NGAMINC = 80 -XGAMINC_BOUND_MIN = (1000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E-1 !Correction Wurtz ! Minimal value of (Lbda * D_cs^lim)**alpha -XGAMINC_BOUND_MAX = (50000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E7 !Correction Wurtz ! Maximal value of (Lbda * D_cs^lim)**alpha +XGAMINC_BOUND_MIN = (1000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E-1 ! Wurtz ! Minimal value of (Lbda * D_cs^lim)**alpha +XGAMINC_BOUND_MAX = (50000.*XTRANS_MP_GAMMAS*XDCSLIM)**XALPHAS !1.0E7 ! Wurtz ! Maximal value of (Lbda * D_cs^lim)**alpha ZRATE = EXP(LOG(XGAMINC_BOUND_MAX/XGAMINC_BOUND_MIN)/FLOAT(NGAMINC-1)) ! ALLOCATE( XGAMINC_RIM1(NGAMINC) ) diff --git a/src/MNH/ini_param_elec.f90 b/src/MNH/ini_param_elec.f90 index bdbd3c6d9..c1649f3f6 100644 --- a/src/MNH/ini_param_elec.f90 +++ b/src/MNH/ini_param_elec.f90 @@ -846,17 +846,17 @@ XLBQSACCRG3 = MOMG(XALPHAS,XNUS,XFS) * MOMG(XALPHAR,XNUR,2.) ZESR = 1.0 ! CALL RRCOLSS (KND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XFR, XCS, XDS, XCR, XDR, & + ZESR, XFR, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & PFDINFTY, XKER_Q_RACCSS, XAG, XBS, XAS ) ! CALL RZCOLX (KND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XFR, XCS, XDS, XCR, XDR, & + ZESR, XFR, XCS, XDS, 0., XCR, XDR, 0., & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & PFDINFTY, XKER_Q_RACCS ) ! CALL RSCOLRG (KND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XFS, XCS, XDS, XCR, XDR, & + ZESR, XFS, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & PFDINFTY, XKER_Q_SACCRG, XAG, XBS, XAS ) ! @@ -878,7 +878,7 @@ XLBQSDRYG3 = MOMG(XALPHAS,XNUS,XFS) * MOMG(XALPHAG,XNUG,2.) ZEGS = 1. ! also initialized in ini_rain_ice_elec ! CALL RZCOLX (KND, XALPHAG, XNUG, XALPHAS, XNUS, & - ZEGS, XFS, XCG, XDG, XCS, XDS, & + ZEGS, XFS, XCG, XDG, 0., XCS, XDS, 0., & XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & PFDINFTY, XKER_Q_SDRYG ) ! @@ -897,7 +897,7 @@ IF (CNI_CHARGING == 'HELFA') THEN ! IF( .NOT.ALLOCATED(XKER_Q_SDRYGB)) ALLOCATE( XKER_Q_SDRYGB(NDRYLBDAG,NDRYLBDAS) ) CALL RZCOLX (KND, XALPHAG, XNUG, XALPHAS, XNUS, & - ZEGS, 0., XCG, XDG, XCS, XDS, & + ZEGS, 0., XCG, XDG, 0., XCS, XDS, 0., & XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & PFDINFTY, XKER_Q_SDRYGB ) ! Delta vqb1_sg @@ -999,7 +999,7 @@ IF (CNI_CHARGING == 'TAKAH' .OR. CNI_CHARGING == 'SAP98' .OR. & XAUX_LIM3 = MOMG(XALPHAG,XNUG,2.) IF( .NOT.ALLOCATED(XKER_Q_LIMSG)) ALLOCATE( XKER_Q_LIMSG(NDRYLBDAG,NDRYLBDAS) ) CALL RZCOLX (KND, XALPHAG, XNUG, XALPHAS, XNUS, & - ZEGS, 0., XCG, XDG, XCS, XDS, & + ZEGS, 0., XCG, XDG, 0., XCS, XDS, 0., & XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & PFDINFTY, XKER_Q_LIMSG) ENDIF @@ -1021,7 +1021,7 @@ XLBQRDRYG3 = MOMG(XALPHAR,XNUR,XFR) * MOMG(XALPHAG,XNUG,2.) ZEGR = 1.0 ! CALL RZCOLX (KND, XALPHAG, XNUG, XALPHAR, XNUR, & - ZEGR, XFR, XCG, XDG, XCR, XDR, & + ZEGR, XFR, XCG, XDG, 0., XCR, XDR, 0., & XDRYLBDAG_MAX, XDRYLBDAR_MAX, XDRYLBDAG_MIN, XDRYLBDAR_MIN, & PFDINFTY, XKER_Q_RDRYG ) ! diff --git a/src/MNH/ini_rain_ice.f90 b/src/MNH/ini_rain_ice.f90 index 62cabad5b..754e25491 100644 --- a/src/MNH/ini_rain_ice.f90 +++ b/src/MNH/ini_rain_ice.f90 @@ -742,15 +742,15 @@ IF( (KACCLBDAS/=NACCLBDAS) .OR. (KACCLBDAR/=NACCLBDAR) .OR. (KND/=IND) .OR. & (PACCLBDAS_MIN/=XACCLBDAS_MIN) .OR. (PACCLBDAR_MIN/=XACCLBDAR_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RRCOLSS ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBR, XCS, XDS, XCR, XDR, & + ZESR, XBR, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_RACCSS, XAG, XBS, XAS ) CALL RZCOLX ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBR, XCS, XDS, XCR, XDR, & + ZESR, XBR, XCS, XDS, 0., XCR, XDR, 0., & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_RACCS ) CALL RSCOLRG ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBS, XCS, XDS, XCR, XDR, & + ZESR, XBS, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_SACCRG, XAG, XBS, XAS ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -950,7 +950,7 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAS/=NDRYLBDAS) .OR. (KND/=IND) .OR. & (PDRYLBDAG_MIN/=XDRYLBDAG_MIN) .OR. (PDRYLBDAS_MIN/=XDRYLBDAS_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAG, XNUG, XALPHAS, XNUS, & - ZEGS, XBS, XCG, XDG, XCS, XDS, & + ZEGS, XBS, XCG, XDG, 0., XCS, XDS, 0., & XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & ZFDINFTY, XKER_SDRYG ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1016,7 +1016,7 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAR/=NDRYLBDAR) .OR. (KND/=IND) .OR. & (PDRYLBDAG_MIN/=XDRYLBDAG_MIN) .OR. (PDRYLBDAR_MIN/=XDRYLBDAR_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAG, XNUG, XALPHAR, XNUR, & - ZEGR, XBR, XCG, XDG, XCR, XDR, & + ZEGR, XBR, XCG, XDG, 0., XCR, XDR, 0., & XDRYLBDAG_MAX, XDRYLBDAR_MAX, XDRYLBDAG_MIN, XDRYLBDAR_MIN, & ZFDINFTY, XKER_RDRYG ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1154,7 +1154,7 @@ IF( (KWETLBDAH/=NWETLBDAH) .OR. (KWETLBDAS/=NWETLBDAS) .OR. (KND/=IND) .OR. & (PWETLBDAH_MIN/=XWETLBDAH_MIN) .OR. (PWETLBDAS_MIN/=XWETLBDAS_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAH, XNUH, XALPHAS, XNUS, & - ZEHS, XBS, XCH, XDH, XCS, XDS, & + ZEHS, XBS, XCH, XDH, 0., XCS, XDS, 0., & XWETLBDAH_MAX, XWETLBDAS_MAX, XWETLBDAH_MIN, XWETLBDAS_MIN, & ZFDINFTY, XKER_SWETH ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1220,7 +1220,7 @@ IF( (KWETLBDAH/=NWETLBDAH) .OR. (KWETLBDAG/=NWETLBDAG) .OR. (KND/=IND) .OR. & (PWETLBDAH_MIN/=XWETLBDAH_MIN) .OR. (PWETLBDAG_MIN/=XWETLBDAG_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAH, XNUH, XALPHAG, XNUG, & - ZEHG, XBG, XCH, XDH, XCG, XDG, & + ZEHG, XBG, XCH, XDH, 0., XCG, XDG, 0., & XWETLBDAH_MAX, XWETLBDAG_MAX, XWETLBDAH_MIN, XWETLBDAG_MIN, & ZFDINFTY, XKER_GWETH ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1286,7 +1286,7 @@ IF( (KWETLBDAH/=NWETLBDAH) .OR. (KWETLBDAR/=NWETLBDAR) .OR. (KND/=IND) .OR. & (PWETLBDAH_MIN/=XWETLBDAH_MIN) .OR. (PWETLBDAR_MIN/=XWETLBDAR_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAH, XNUH, XALPHAR, XNUR, & - ZEHR, XBR, XCH, XDH, XCR, XDR, & + ZEHR, XBR, XCH, XDH, 0., XCR, XDR, 0., & XWETLBDAH_MAX, XWETLBDAR_MAX, XWETLBDAH_MIN, XWETLBDAR_MIN, & ZFDINFTY, XKER_RWETH ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') diff --git a/src/MNH/ini_rain_ice_elec.f90 b/src/MNH/ini_rain_ice_elec.f90 index 940caeaee..6b132295f 100644 --- a/src/MNH/ini_rain_ice_elec.f90 +++ b/src/MNH/ini_rain_ice_elec.f90 @@ -694,15 +694,15 @@ IF( (KACCLBDAS/=NACCLBDAS) .OR. (KACCLBDAR/=NACCLBDAR) .OR. (KND/=IND) .OR. & (PACCLBDAS_MIN/=XACCLBDAS_MIN) .OR. (PACCLBDAR_MIN/=XACCLBDAR_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RRCOLSS ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBR, XCS, XDS, XCR, XDR, & + ZESR, XBR, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_RACCSS, XAG, XBS, XAS ) CALL RZCOLX ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBR, XCS, XDS, XCR, XDR, & + ZESR, XBR, XCS, XDS, 0., XCR, XDR, 0., & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_RACCS ) CALL RSCOLRG ( IND, XALPHAS, XNUS, XALPHAR, XNUR, & - ZESR, XBS, XCS, XDS, XCR, XDR, & + ZESR, XBS, XCS, XDS, 0., XCR, XDR, & XACCLBDAS_MAX, XACCLBDAR_MAX, XACCLBDAS_MIN, XACCLBDAR_MIN, & ZFDINFTY, XKER_SACCRG, XAG, XBS, XAS ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -905,7 +905,7 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAS/=NDRYLBDAS) .OR. (KND/=IND) .OR. & (PDRYLBDAG_MIN/=XDRYLBDAG_MIN) .OR. (PDRYLBDAS_MIN/=XDRYLBDAS_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAG, XNUG, XALPHAS, XNUS, & - ZEGS, XBS, XCG, XDG, XCS, XDS, & + ZEGS, XBS, XCG, XDG, 0., XCS, XDS, 0., & XDRYLBDAG_MAX, XDRYLBDAS_MAX, XDRYLBDAG_MIN, XDRYLBDAS_MIN, & ZFDINFTY, XKER_SDRYG ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -971,7 +971,7 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAR/=NDRYLBDAR) .OR. (KND/=IND) .OR. & (PDRYLBDAG_MIN/=XDRYLBDAG_MIN) .OR. (PDRYLBDAR_MIN/=XDRYLBDAR_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAG, XNUG, XALPHAR, XNUR, & - ZEGR, XBR, XCG, XDG, XCR, XDR, & + ZEGR, XBR, XCG, XDG, 0., XCR, XDR, 0., & XDRYLBDAG_MAX, XDRYLBDAR_MAX, XDRYLBDAG_MIN, XDRYLBDAR_MIN, & ZFDINFTY, XKER_RDRYG ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1089,7 +1089,7 @@ IF( (KWETLBDAH/=NWETLBDAH) .OR. (KWETLBDAS/=NWETLBDAS) .OR. (KND/=IND) .OR. & (PWETLBDAH_MIN/=XWETLBDAH_MIN) .OR. (PWETLBDAS_MIN/=XWETLBDAS_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAH, XNUH, XALPHAS, XNUS, & - ZEHS, XBS, XCH, XDH, XCS, XDS, & + ZEHS, XBS, XCH, XDH, 0., XCS, XDS, 0., & XWETLBDAH_MAX, XWETLBDAS_MAX, XWETLBDAH_MIN, XWETLBDAS_MIN, & ZFDINFTY, XKER_SWETH ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') @@ -1155,7 +1155,7 @@ IF( (KWETLBDAH/=NWETLBDAH) .OR. (KWETLBDAG/=NWETLBDAG) .OR. (KND/=IND) .OR. & (PWETLBDAH_MIN/=XWETLBDAH_MIN) .OR. (PWETLBDAG_MIN/=XWETLBDAG_MIN) .OR. & (PFDINFTY/=ZFDINFTY) ) THEN CALL RZCOLX ( IND, XALPHAH, XNUH, XALPHAG, XNUG, & - ZEHG, XBG, XCH, XDH, XCG, XDG, & + ZEHG, XBG, XCH, XDH, 0., XCG, XDG, 0., & XWETLBDAH_MAX, XWETLBDAG_MAX, XWETLBDAH_MIN, XWETLBDAG_MIN, & ZFDINFTY, XKER_GWETH ) WRITE(UNIT=KLUOUT,FMT='("*****************************************")') diff --git a/src/MNH/lima_cold_slow_processes.f90 b/src/MNH/lima_cold_slow_processes.f90 index 098d3a406..1f2e71adf 100644 --- a/src/MNH/lima_cold_slow_processes.f90 +++ b/src/MNH/lima_cold_slow_processes.f90 @@ -399,8 +399,10 @@ ZLBDAS(:) = ZLBDAS(:) * XTRANS_MP_GAMMAS ! ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & ! ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) * & ! ( X0DEPS*ZLBDAS(:)**XEX0DEPS + X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS ) - ZZW(:) = ( ZRHODREF(:)*ZRST(:)*ZSSI(:)/(ZAI(:)) ) * & ! Wurtz - ( X0DEPS*ZLBDAS(:)**XEX0DEPS + (X1DEPS*ZCJ(:)*(1+(XFVELOS/(2.*ZLBDAS))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(ZLBDAS(:))**(XEX1DEPS+XBS))) ! Wurtz + ZZW(:) = ( ZRHODREF(:)*ZRST(:)*ZSSI(:)/(ZAI(:)) ) * & ! Wurtz + ( X0DEPS*ZLBDAS(:)**XEX0DEPS + & + (X1DEPS*ZCJ(:)*(1+(XFVELOS/(2.*ZLBDAS))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS) * & + (ZLBDAS(:))**(XEX1DEPS+XBS))) ! Wurtz ZZW(:) = MIN( ZRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & - MIN( ZRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) @@ -474,10 +476,10 @@ ZLBDAS(:) = ZLBDAS(:) * XTRANS_MP_GAMMAS 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) )) & - ! / (ZLBDAI(:)**3) - ! ZZW1(:,1) = (ZCIT(:)*(XLBS*ZRHODREF(:)*ZRST(:)*ZLBDAS(:)**XBS)*EXP(XCOLEXIS*(ZZT(:)-XTT) )) & - ! / (ZLBDAI(:)**3) +! ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) & +! / (ZLBDAI(:)**3) +! ZZW1(:,1) = (ZCIT(:)*(XLBS*ZRHODREF(:)*ZRST(:)*ZLBDAS(:)**XBS)*EXP(XCOLEXIS*(ZZT(:)-XTT) )) & +! / (ZLBDAI(:)**3) ZZW1(:,1) = (ZCIT(:)*(XLBS*ZRST(:)*ZLBDAS(:)**XBS)*EXP(XCOLEXIS*(ZZT(:)-XTT) )) & / (ZLBDAI(:)**3) ZZW1(:,2) = MIN( ZZW1(:,1)*(XAGGS_CLARGE1+XAGGS_CLARGE2*ZZW1(:,3)),ZCIS(:) ) diff --git a/src/MNH/lima_conversion_melting_snow.f90 b/src/MNH/lima_conversion_melting_snow.f90 index a078380b3..2d32273f8 100644 --- a/src/MNH/lima_conversion_melting_snow.f90 +++ b/src/MNH/lima_conversion_melting_snow.f90 @@ -111,8 +111,9 @@ WHERE( (PRST(:)>XRTMIN(5)) .AND. (PT(:)>XTT) .AND. LDCOMPUTE(:) ) ! X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS ) ))!- & ZW(:) = XFSCVMG*MAX( 0.0,( -ZW(:) * & ! Wurtz - PRHODREF(:)*PRST(:)*( X0DEPS* PLBDS(:)**XEX0DEPS + & - X1DEPS*PCJ(:)*(1+(XFVELOS/(2.*PLBDS(:)))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XEX1DEPS+XBS)))) + PRHODREF(:)*PRST(:)*( X0DEPS* PLBDS(:)**XEX0DEPS + & + X1DEPS*PCJ(:)*(1+(XFVELOS/(2.*PLBDS(:)))**XALPHAS) & + **(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XEX1DEPS+XBS)))) ! On ne tient pas compte de la collection de pluie et gouttelettes par la neige si T>0 !!!! ! Note that no heat is exchanged because the graupeln produced are still icy!!! P_RS_CMEL(:) = - ZW(:) diff --git a/src/MNH/lima_ice_snow_deposition.f90 b/src/MNH/lima_ice_snow_deposition.f90 index 8da16334f..b64f8034a 100644 --- a/src/MNH/lima_ice_snow_deposition.f90 +++ b/src/MNH/lima_ice_snow_deposition.f90 @@ -191,7 +191,8 @@ WHERE( GMICRO ) ! ZZW(:) = ( PSSI(:)/(PAI(:))/PRHODREF(:) ) * & ! ( X0DEPS*PLBDS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS ) ZZW(:) =10* ( PRHODREF(:) * PRST(:)*PSSI(:)/PAI(:)) * & !Modif Wurtz - ( X0DEPS*PLBDS(:)**XEX0DEPS + (X1DEPS*PCJ(:)*(1+(XFVELOS/(2.*PLBDS(:)))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XBS+XEX1DEPS))) ! Wurtz + ( X0DEPS*PLBDS(:)**XEX0DEPS + (X1DEPS*PCJ(:)*(1+(XFVELOS/(2.*PLBDS(:)))**XALPHAS) & + **(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XBS+XEX1DEPS))) ! Wurtz 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_fast_processes.f90 b/src/MNH/lima_mixed_fast_processes.f90 index e12dfcad5..a5c38e3e0 100644 --- a/src/MNH/lima_mixed_fast_processes.f90 +++ b/src/MNH/lima_mixed_fast_processes.f90 @@ -609,7 +609,8 @@ WHERE( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>XRTMIN(5)/PTSTEP) .AND. (ZZT(:)>XTT) ) ZZW(:) = MIN( ZRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) * & ! Wurtz ZRHODREF(:) * ZRST(:)*( X0DEPS* ZLBDAS(:)**XEX0DEPS + & - X1DEPS*ZCJ(:)*(1+(XFVELOS/(2.*ZLBDAS(:)))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(ZLBDAS(:))**(XEX1DEPS+XBS))- & + X1DEPS*ZCJ(:)*(1+(XFVELOS/(2.*ZLBDAS(:)))**XALPHAS) & + **(-XNUS+XEX1DEPS/XALPHAS)*(ZLBDAS(:))**(XEX1DEPS+XBS))- & ( ZZW1(:,1)+ZZW1(:,4) ) * & ( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) / & ( ZRHODREF(:)*XLMTT ) ) ) diff --git a/src/MNH/lima_sedimentation.f90 b/src/MNH/lima_sedimentation.f90 index d60655b96..67fdd37c4 100644 --- a/src/MNH/lima_sedimentation.f90 +++ b/src/MNH/lima_sedimentation.f90 @@ -73,10 +73,11 @@ END MODULE MODI_LIMA_SEDIMENTATION ! USE MODD_CST, ONLY: XRHOLW, XCL, XCI USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT -USE MODD_PARAM_LIMA, ONLY: XCEXVT, XRTMIN, XCTMIN, NSPLITSED, & - XLB, XLBEX, XD, XFSEDR, XFSEDC, & - XALPHAC, XNUC -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, XLBDAS_MIN, XTRANS_MP_GAMMAS, & + XFVELOS, XALPHAS, XNUS +USE MODD_PARAM_LIMA_COLD, ONLY: XLBEXI, XLBI, XDI, XLBDAS_MAX, XBS, XEXSEDS use mode_tools, only: Countjv @@ -192,7 +193,8 @@ DO JN = 1 , NSPLITSED(KID) ZLBDA(:) = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*ZT(:))),XLBDAS_MIN) END WHERE ZLBDA(:) = ZLBDA(:)*XTRANS_MP_GAMMAS - ZZW(:) = XFSEDR(KID) * ZRHODREF(:)**(1.-XCEXVT)*ZRS(:)*(1 + (XFVELOS/ZLBDA(:))**XALPHAS)**(-XNUS+XEXSEDS/XALPHAS) * ZLBDA(:)**(XBS+XEXSEDS) + ZZW(:) = XFSEDR(KID) * ZRHODREF(:)**(1.-XCEXVT)*ZRS(:)* & + (1 + (XFVELOS/ZLBDA(:))**XALPHAS)**(-XNUS+XEXSEDS/XALPHAS) * ZLBDA(:)**(XBS+XEXSEDS) ELSE IF (KMOMENTS==1) ZLBDA(:) = XLB(KID) * ( ZRHODREF(:) * ZRS(:) )**XLBEX(KID) IF (KMOMENTS==2) ZLBDA(:) = ( XLB(KID)*ZCS(:) / ZRS(:) )**XLBEX(KID) diff --git a/src/MNH/lima_snow_deposition.f90 b/src/MNH/lima_snow_deposition.f90 index e29b71173..c5fe7e911 100644 --- a/src/MNH/lima_snow_deposition.f90 +++ b/src/MNH/lima_snow_deposition.f90 @@ -153,7 +153,8 @@ WHERE( GMICRO ) ! ZZW(:) = ( PSSI(:)/(PAI(:)*PRHODREF(:)) ) * & ! ( X0DEPS*PLBDS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS ) ZZW(:) = ( PRHODREF(:) * PRST(:)*PSSI(:)/(PAI(:)) ) * & ! Wurtz - ( X0DEPS*PLBDS(:)**XEX0DEPS + (X1DEPS*PCJ(:)*(1+(XFVELOS/(2.*PLBDS))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XEX1DEPS+XBS)) ) ! Wurtz + ( X0DEPS*PLBDS(:)**XEX0DEPS + (X1DEPS*PCJ(:)* & + (1+(XFVELOS/(2.*PLBDS))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS)*(PLBDS(:))**(XEX1DEPS+XBS)) ) ! Wurtz ZZW(:) = ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:))) END WHERE ! diff --git a/src/MNH/rzcolx.f90 b/src/MNH/rzcolx.f90 index 7aa3d97ed..3887c24b7 100644 --- a/src/MNH/rzcolx.f90 +++ b/src/MNH/rzcolx.f90 @@ -10,7 +10,8 @@ INTERFACE ! SUBROUTINE RZCOLX( KND, PALPHAX, PNUX, PALPHAZ, PNUZ, & - PEXZ, PEXMASSZ, PFALLX, PEXFALLX, PFALLEXPX, PFALLZ, PEXFALLZ, PFALLEXPZ, & ! Wurtz + PEXZ, PEXMASSZ, PFALLX, PEXFALLX, PFALLEXPX, & + PFALLZ, PEXFALLZ, PFALLEXPZ, & ! Wurtz PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN, & PDINFTY, PRZCOLX ) ! @@ -51,7 +52,8 @@ END INTERFACE END MODULE MODI_RZCOLX ! ######################################################################## SUBROUTINE RZCOLX( KND, PALPHAX, PNUX, PALPHAZ, PNUZ, & - PEXZ, PEXMASSZ, PFALLX, PEXFALLX, PFALLEXPX, PFALLZ, PEXFALLZ, PFALLEXPZ, & ! Wurtz + PEXZ, PEXMASSZ, PFALLX, PEXFALLX, PFALLEXPX, & + PFALLZ, PEXFALLZ, PFALLEXPZ, & ! Wurtz PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN, & PDINFTY, PRZCOLX ) ! ######################################################################## @@ -238,20 +240,20 @@ DO JLBDAX = 1,SIZE(PRZCOLX(:,:),1) ZSCALZ = 0.0 ZCOLLZ = 0.0 DO JDZ = 1,KND-1 - ZDZ = ZDDZ * REAL(JDZ) + ZDZ = ZDDZ * REAL(JDZ) ! !* 1.6 Compute the normalization factor by integration over the ! dimensional spectrum of specy Z ! - ZFUNC = (ZDX+ZDZ)**2 * ZDZ**PEXMASSZ & - * GENERAL_GAMMA(PALPHAZ,PNUZ,ZLBDAZ,ZDZ) - ZSCALZ = ZSCALZ + ZFUNC + ZFUNC = (ZDX+ZDZ)**2 * ZDZ**PEXMASSZ & + * GENERAL_GAMMA(PALPHAZ,PNUZ,ZLBDAZ,ZDZ) + ZSCALZ = ZSCALZ + ZFUNC ! !* 1.7 Compute the scaled fall speed difference by integration over ! the dimensional spectrum of specy Z ! - ZCOLLZ = ZCOLLZ + ZFUNC & - & * PEXZ * ABS(PFALLX*ZDX**PEXFALLX *EXP(-(ZDX*PFALLEXPX)**PALPHAX)-PFALLZ*ZDZ**PEXFALLZ * EXP(-(ZDZ*PFALLEXPZ)**PALPHAZ)) ! Wurtz + ZCOLLZ = ZCOLLZ + ZFUNC * PEXZ * ABS( PFALLX*ZDX**PEXFALLX * EXP(-(ZDX*PFALLEXPX)**PALPHAX) & + - PFALLZ*ZDZ**PEXFALLZ * EXP(-(ZDZ*PFALLEXPZ)**PALPHAZ)) ! Wurtz END DO ! !* 1.8 Compute the normalization factor by integration over the -- GitLab