Skip to content
Snippets Groups Projects
Commit b68d11cc authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Merge branch 'GPU' of https://github.com/QuentinRodier/PHYEX into GPU

parents dcb9a53c efdf6a5c
No related branches found
No related tags found
No related merge requests found
...@@ -51,6 +51,7 @@ Pb identifiés à corriger plus tard: ...@@ -51,6 +51,7 @@ Pb identifiés à corriger plus tard:
- si possible, modifier ice4_sedimentation_split* dans le même esprit que stat - si possible, modifier ice4_sedimentation_split* dans le même esprit que stat
- il faudrait nettoyer les interfaces pour supprimer les clés passées directement - il faudrait nettoyer les interfaces pour supprimer les clés passées directement
alors qu'elles sont également disponibles dans les structures (ex: HMF_UPDRAFT) alors qu'elles sont également disponibles dans les structures (ex: HMF_UPDRAFT)
- il faudrait harmoniser l'utilisation des variables D% (cad faire IKT=D%NKT en haut ou utiliser directement D%NKT)
- La taille du buffer utilisé pour th_r_from_thl_rt doit être mise en module et - La taille du buffer utilisé pour th_r_from_thl_rt doit être mise en module et
utilisée pour déclarer le buffer dans les routines appelantes et dans th_r_from_thl_rt utilisée pour déclarer le buffer dans les routines appelantes et dans th_r_from_thl_rt
- shallow_mf_pack devrait être récrit pour appeler directement shallow_mf sans recopier les tableaux pour les changer de forme - shallow_mf_pack devrait être récrit pour appeler directement shallow_mf sans recopier les tableaux pour les changer de forme
...@@ -71,4 +72,3 @@ Reprendre les différents outils en deux scripts principaux: ...@@ -71,4 +72,3 @@ Reprendre les différents outils en deux scripts principaux:
- outil pour reprendre toutes les fonctionnalités sur le code: filepp, MNH_Expand_Array, correct_indent.py, verify_mnh_expand.py et renommage - outil pour reprendre toutes les fonctionnalités sur le code: filepp, MNH_Expand_Array, correct_indent.py, verify_mnh_expand.py et renommage
- outil prep_code débarrassé du renommage pour ne faire que la gestion des commit et lancer la manipulation sur le code - outil prep_code débarrassé du renommage pour ne faire que la gestion des commit et lancer la manipulation sur le code
Il restera, à part, les scripts de comparaison des résultats (à moins qu'ils puissent être inlinés dans les check_commit correspondant) Il restera, à part, les scripts de comparaison des résultats (à moins qu'ils puissent être inlinés dans les check_commit correspondant)
>>>>>>> GPU
This diff is collapsed.
This diff is collapsed.
...@@ -3,12 +3,13 @@ IMPLICIT NONE ...@@ -3,12 +3,13 @@ IMPLICIT NONE
CONTAINS CONTAINS
SUBROUTINE ICECLOUD & SUBROUTINE ICECLOUD &
! Input : ! Input :
& ( NP,PP,PZ,PDZ,PT,PR,PTSTEP,PPBLH,PWCLD,XW2D, & & ( D,PP,PZ,PDZ,PT,PR,PTSTEP,PPBLH,PWCLD,XW2D, &
! Output : ! Output :
& SIFRC,SSIO,SSIU,W2D,RSI) & SIFRC,SSIO,SSIU,W2D,RSI)
USE PARKIND1, ONLY : JPRB USE PARKIND1, ONLY : JPRB
USE YOMHOOK , ONLY : LHOOK, DR_HOOK USE YOMHOOK , ONLY : LHOOK, DR_HOOK
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_CST,ONLY : XCPD,XCPV,XLVTT,XLSTT,XG,XRD,XEPSILO USE MODD_CST,ONLY : XCPD,XCPV,XLVTT,XLSTT,XG,XRD,XEPSILO
USE MODE_TIWMX, ONLY: ESATW, ESATI USE MODE_TIWMX, ONLY: ESATW, ESATI
USE MODE_QSATMX_TAB, ONLY: QSATMX_TAB USE MODE_QSATMX_TAB, ONLY: QSATMX_TAB
...@@ -51,30 +52,30 @@ SUBROUTINE ICECLOUD & ...@@ -51,30 +52,30 @@ SUBROUTINE ICECLOUD &
! the gridbox and parts of the gridbox ! the gridbox and parts of the gridbox
! RSI : Saturation mixing ratio over ice ! RSI : Saturation mixing ratio over ice
INTEGER, INTENT(IN) :: NP TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, INTENT(IN) :: PP(NP) REAL, INTENT(IN) :: PP(D%NIJT)
REAL, INTENT(IN) :: PZ(NP) REAL, INTENT(IN) :: PZ(D%NIJT)
REAL, INTENT(IN) :: PDZ(NP) REAL, INTENT(IN) :: PDZ(D%NIJT)
REAL, INTENT(IN) :: PT(NP) REAL, INTENT(IN) :: PT(D%NIJT)
REAL, INTENT(IN) :: PR(NP) REAL, INTENT(IN) :: PR(D%NIJT)
REAL, INTENT(IN) :: PTSTEP REAL, INTENT(IN) :: PTSTEP
REAL, INTENT(IN) :: PPBLH REAL, INTENT(IN) :: PPBLH
REAL, INTENT(IN) :: PWCLD(NP) REAL, INTENT(IN) :: PWCLD(D%NIJT)
REAL, INTENT(IN) :: XW2D REAL, INTENT(IN) :: XW2D
! OUTPUT arguments (arguments d'sortie) ! OUTPUT arguments (arguments d'sortie)
!--------------------------------------------- !---------------------------------------------
REAL, INTENT(OUT) :: SIFRC(NP) REAL, INTENT(OUT) :: SIFRC(D%NIJT)
REAL, INTENT(OUT) :: SSIO(NP) REAL, INTENT(OUT) :: SSIO(D%NIJT)
REAL, INTENT(OUT) :: SSIU(NP) REAL, INTENT(OUT) :: SSIU(D%NIJT)
REAL, INTENT(OUT) :: W2D(NP) REAL, INTENT(OUT) :: W2D(D%NIJT)
REAL, INTENT(OUT) :: RSI(NP) REAL, INTENT(OUT) :: RSI(D%NIJT)
! Working variables: ! Working variables:
REAL :: ZSIGMAX,ZSIGMAY,ZSIGMAZ,ZXDIST,ZYDIST,& REAL :: ZSIGMAX,ZSIGMAY,ZSIGMAZ,ZXDIST,ZYDIST,&
& ZRSW,ZRHW,ZRHIN,ZDRHDZ,ZZ,ZRHDIST,ZRHLIM, & & ZRSW,ZRHW,ZRHIN,ZDRHDZ,ZZ,ZRHDIST,ZRHLIM, &
& ZRHDIF,ZWCLD,ZI2W,ZRHLIMICE,ZRHLIMINV,ZA,ZRHI,ZR & ZRHDIF,ZWCLD,ZI2W,ZRHLIMICE,ZRHLIMINV,ZA,ZRHI,ZR
INTEGER :: JK INTEGER :: JIJ
REAL(KIND=JPRB) :: ZHOOK_HANDLE REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('ICECLOUD',0,ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('ICECLOUD',0,ZHOOK_HANDLE)
...@@ -91,31 +92,31 @@ ZXDIST=2500. ...@@ -91,31 +92,31 @@ ZXDIST=2500.
! due to stronger vertical velocities. ! due to stronger vertical velocities.
ZYDIST=ZXDIST ! gridsize in y axis (m) ZYDIST=ZXDIST ! gridsize in y axis (m)
DO JK = 1, NP DO JIJ = D%NIJB, D%NIJE
ZR = MAX(0.,PR(JK)*PTSTEP) ZR = MAX(0.,PR(JIJ)*PTSTEP)
SIFRC(JK) = 0. SIFRC(JIJ) = 0.
ZA = ZR*PP(JK)/(XEPSILO + ZR) ZA = ZR*PP(JIJ)/(XEPSILO + ZR)
ZRHW = ZA/ESATW(PT(JK)) ZRHW = ZA/ESATW(PT(JIJ))
RSI(JK) = QSATMX_TAB(PP(JK),PT(JK),1.) RSI(JIJ) = QSATMX_TAB(PP(JIJ),PT(JIJ),1.)
ZRHI = ZA/ESATI(PT(JK)) ZRHI = ZA/ESATI(PT(JIJ))
ZI2W = ESATW(PT(JK))/ESATI(PT(JK)) ZI2W = ESATW(PT(JIJ))/ESATI(PT(JIJ))
SSIU(JK) = MIN(ZI2W,ZRHI) SSIU(JIJ) = MIN(ZI2W,ZRHI)
SSIO(JK) = SSIU(JK) SSIO(JIJ) = SSIU(JIJ)
W2D(JK) = 1. W2D(JIJ) = 1.
IF (PT(JK)>273.1 .OR. ZR<=0. .OR. ESATI(PT(JK)) >= PP(JK)*0.5) THEN IF (PT(JIJ)>273.1 .OR. ZR<=0. .OR. ESATI(PT(JIJ)) >= PP(JIJ)*0.5) THEN
SSIU(JK) = SSIU(JK) - 1. SSIU(JIJ) = SSIU(JIJ) - 1.
SSIO(JK) = SSIU(JK) SSIO(JIJ) = SSIU(JIJ)
IF(PWCLD(JK)>=0.) SIFRC(JK) = PWCLD(JK) IF(PWCLD(JIJ)>=0.) SIFRC(JIJ) = PWCLD(JIJ)
CYCLE CYCLE
ENDIF ENDIF
ZRHIN = MAX(0.05, MIN(1.,ZRHW)) ZRHIN = MAX(0.05, MIN(1.,ZRHW))
ZDRHDZ=ZRHIN*XG /(PT(JK)*XRD)* & ZDRHDZ=ZRHIN*XG /(PT(JIJ)*XRD)* &
& ( XEPSILO*XLVTT/(XCPD*PT(JK)) - 1.) ! correct & ( XEPSILO*XLVTT/(XCPD*PT(JIJ)) - 1.) ! correct
! & ( ZEPSILO*XLSTT/(XCPD*PT) -1.) ! incorrect ! & ( ZEPSILO*XLSTT/(XCPD*PT) -1.) ! incorrect
! more exact ! more exact
! assumed rh variation in the z axis (rh/m) in the pbl . ! assumed rh variation in the z axis (rh/m) in the pbl .
...@@ -124,9 +125,9 @@ DO JK = 1, NP ...@@ -124,9 +125,9 @@ DO JK = 1, NP
ZZ=0. ZZ=0.
IF(PPBLH < 0. )THEN ! Assume boundary layer height is not available IF(PPBLH < 0. )THEN ! Assume boundary layer height is not available
ZZ = MIN(1.,MAX(0.,PZ(JK)*0.001)) ZZ = MIN(1.,MAX(0.,PZ(JIJ)*0.001))
ELSE ELSE
IF(PZ(JK) > 35. .AND. PZ(JK) > PPBLH) ZZ = 1. IF(PZ(JIJ) > 35. .AND. PZ(JIJ) > PPBLH) ZZ = 1.
ENDIF ENDIF
! 1.6e-2 rh/m means variations is of order 0.5 for a 1km dept. ! 1.6e-2 rh/m means variations is of order 0.5 for a 1km dept.
...@@ -138,7 +139,7 @@ DO JK = 1, NP ...@@ -138,7 +139,7 @@ DO JK = 1, NP
! assumed to be fairly constantly increasing with height ! assumed to be fairly constantly increasing with height
ZRHDIST = SQRT( ZXDIST*ZSIGMAX**2 + ZYDIST*ZSIGMAY**2 + & ZRHDIST = SQRT( ZXDIST*ZSIGMAX**2 + ZYDIST*ZSIGMAY**2 + &
& (1.-ZZ)* (PDZ(JK)*ZDRHDZ)**2 + ZZ*PDZ(JK)*ZSIGMAZ**2) & (1.-ZZ)* (PDZ(JIJ)*ZDRHDZ)**2 + ZZ*PDZ(JIJ)*ZSIGMAZ**2)
! z-variation of rh in the pbl z-variation of rh outside the pbl ! z-variation of rh in the pbl z-variation of rh outside the pbl
! Safety for very coarse vertical resolution: ! Safety for very coarse vertical resolution:
IF(ZZ > 0.1) ZRHDIST = ZRHDIST/(1.+ZRHDIST) IF(ZZ > 0.1) ZRHDIST = ZRHDIST/(1.+ZRHDIST)
...@@ -147,20 +148,20 @@ DO JK = 1, NP ...@@ -147,20 +148,20 @@ DO JK = 1, NP
ZRHLIM = MAX(0.5,MIN(0.99,1.-0.5*ZRHDIST)) ZRHLIM = MAX(0.5,MIN(0.99,1.-0.5*ZRHDIST))
IF(PWCLD(JK) < 0.)THEN IF(PWCLD(JIJ) < 0.)THEN
! Assume water/mixed-phase cloud cover from e.g. ! Assume water/mixed-phase cloud cover from e.g.
! statistical cloud scheme is not available ! statistical cloud scheme is not available
ZRHDIF = (1. - ZRHW)/(1.0-ZRHLIM) ZRHDIF = (1. - ZRHW)/(1.0-ZRHLIM)
ZRHDIF = 1. - SQRT(MAX(0.,ZRHDIF)) ZRHDIF = 1. - SQRT(MAX(0.,ZRHDIF))
ZWCLD = MIN(1.,MAX(ZRHDIF,0.0)) ZWCLD = MIN(1.,MAX(ZRHDIF,0.0))
ELSE ELSE
ZWCLD = PWCLD(JK) ZWCLD = PWCLD(JIJ)
! possible to backwards compute a critical relative humity consitent with ! possible to backwards compute a critical relative humity consitent with
! input cloudcover: ! input cloudcover:
! IF(PWCLD < 0.99 .AND. PWCLD > 0.01) ZRHLIM= 1. - (1.-ZRHW)/(1.-PWCLD)**2 ! IF(PWCLD < 0.99 .AND. PWCLD > 0.01) ZRHLIM= 1. - (1.-ZRHW)/(1.-PWCLD)**2
ENDIF ENDIF
SIFRC(JK) = ZWCLD SIFRC(JIJ) = ZWCLD
! relation rhlim with respect to water to that of ice: ! relation rhlim with respect to water to that of ice:
!ZRHLIMICE = MAX(ZRHDMIN*ZI2W,1.+ ZI2W*( ZRHLIM - 1.)) !ZRHLIMICE = MAX(ZRHDMIN*ZI2W,1.+ ZI2W*( ZRHLIM - 1.))
...@@ -173,30 +174,30 @@ DO JK = 1, NP ...@@ -173,30 +174,30 @@ DO JK = 1, NP
ZRHDIF = (ZRHI - ZRHLIMICE)*ZRHLIMINV ZRHDIF = (ZRHI - ZRHLIMICE)*ZRHLIMINV
IF(ZWCLD==0.)THEN IF(ZWCLD==0.)THEN
SIFRC(JK) = MIN(1.,0.5*MAX(0.,ZRHDIF)) SIFRC(JIJ) = MIN(1.,0.5*MAX(0.,ZRHDIF))
ELSE ELSE
ZA = 1. - 1./ZI2W ZA = 1. - 1./ZI2W
SIFRC(JK) = MIN(1.,ZA*0.5/ (1. - ZRHLIM)) SIFRC(JIJ) = MIN(1.,ZA*0.5/ (1. - ZRHLIM))
SIFRC(JK) = MIN(1.,ZWCLD + SIFRC(JK)) SIFRC(JIJ) = MIN(1.,ZWCLD + SIFRC(JIJ))
ENDIF ENDIF
ENDIF ENDIF
IF(SIFRC(JK) > 0.01) THEN IF(SIFRC(JIJ) > 0.01) THEN
SSIU(JK) = SIFRC(JK) + ZRHLIMICE*(1.-SIFRC(JK)) SSIU(JIJ) = SIFRC(JIJ) + ZRHLIMICE*(1.-SIFRC(JIJ))
SSIO(JK) = (ZRHI - (1.- SIFRC(JK))*SSIU(JK))/SIFRC(JK) SSIO(JIJ) = (ZRHI - (1.- SIFRC(JIJ))*SSIU(JIJ))/SIFRC(JIJ)
ELSE ELSE
SIFRC(JK) = 0.! to aviod mismatch with output variables SIFRC(JIJ) = 0.! to aviod mismatch with output variables
ZA = MIN(0.,ZRHI-ZRHLIMICE) ZA = MIN(0.,ZRHI-ZRHLIMICE)
SSIU(JK) = MAX(0.,SIFRC(JK) + ZRHLIMICE*(1.-SIFRC(JK)) + 2.*ZA ) SSIU(JIJ) = MAX(0.,SIFRC(JIJ) + ZRHLIMICE*(1.-SIFRC(JIJ)) + 2.*ZA )
ENDIF ENDIF
SSIO(JK) = MIN(ZI2W,SSIO(JK)) SSIO(JIJ) = MIN(ZI2W,SSIO(JIJ))
SSIU(JK) = MAX(0.,SSIU(JK)) SSIU(JIJ) = MAX(0.,SSIU(JIJ))
! Transform from relative humidity to degree of saturation: ! Transform from relative humidity to degree of saturation:
SSIU(JK) = SSIU(JK) - 1. SSIU(JIJ) = SSIU(JIJ) - 1.
SSIO(JK) = SSIO(JK) - 1. SSIO(JIJ) = SSIO(JIJ) - 1.
IF (XW2D > 1.) W2D(JK) = 1./(1. - SIFRC(JK) + XW2D*SIFRC(JK)) IF (XW2D > 1.) W2D(JIJ) = 1./(1. - SIFRC(JIJ) + XW2D*SIFRC(JIJ))
ENDDO ENDDO
......
...@@ -28,26 +28,25 @@ TYPE(TURB_t), INTENT(IN) :: TURBN ...@@ -28,26 +28,25 @@ TYPE(TURB_t), INTENT(IN) :: TURBN
CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE
CHARACTER(LEN=4), INTENT(IN) :: HCONDENS CHARACTER(LEN=4), INTENT(IN) :: HCONDENS
CHARACTER(LEN=*), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff CHARACTER(LEN=*), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPABS ! pressure (Pa) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPABS ! pressure (Pa)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PZZ ! height of model levels (m) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PZZ ! height of model levels (m)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRHODREF REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRHODREF
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PT ! grid scale T (K) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) :: PT ! grid scale T (K)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRV_IN ! grid scale water vapor mixing ratio (kg/kg) in input REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRV_IN ! grid scale water vapor mixing ratio (kg/kg) in input
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PRV_OUT! grid scale water vapor mixing ratio (kg/kg) in output REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PRV_OUT! grid scale water vapor mixing ratio (kg/kg) in output
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRC_IN ! grid scale r_c mixing ratio (kg/kg) in input REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRC_IN ! grid scale r_c mixing ratio (kg/kg) in input
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PRC_OUT! grid scale r_c mixing ratio (kg/kg) in output REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PRC_OUT! grid scale r_c mixing ratio (kg/kg) in output
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRI_IN ! grid scale r_i (kg/kg) in input REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRI_IN ! grid scale r_i (kg/kg) in input
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PRI_OUT! grid scale r_i (kg/kg) in output REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PRI_OUT! grid scale r_i (kg/kg) in output
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRR ! grid scale mixing ration of rain (kg/kg) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRR ! grid scale mixing ration of rain (kg/kg)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRS ! grid scale mixing ration of snow (kg/kg) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRS ! grid scale mixing ration of snow (kg/kg)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRG ! grid scale mixing ration of graupel (kg/kg) REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRG ! grid scale mixing ration of graupel (kg/kg)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSIGS ! Sigma_s from turbulence scheme REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSIGS ! Sigma_s from turbulence scheme
LOGICAL, INTENT(IN) :: LMFCONV ! =SIZE(PMFCONV)!=0 LOGICAL, INTENT(IN) :: LMFCONV ! =SIZE(PMFCONV)!=0
REAL, DIMENSION(MERGE(D%NIT,0,LMFCONV),& REAL, DIMENSION(MERGE(D%NIJT,0,LMFCONV),&
MERGE(D%NJT,0,LMFCONV),&
MERGE(D%NKT,0,LMFCONV)), INTENT(IN) :: PMFCONV! convective mass flux (kg /s m^2) MERGE(D%NKT,0,LMFCONV)), INTENT(IN) :: PMFCONV! convective mass flux (kg /s m^2)
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PCLDFR ! cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSIGRC ! s r_c / sig_s^2 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PSIGRC ! s r_c / sig_s^2
LOGICAL, INTENT(IN) :: OUSERI ! logical switch to compute both LOGICAL, INTENT(IN) :: OUSERI ! logical switch to compute both
! liquid and solid condensate (OUSERI=.TRUE.) ! liquid and solid condensate (OUSERI=.TRUE.)
...@@ -57,24 +56,24 @@ LOGICAL, INTENT(IN) :: OSIGMAS! use present global Sigma ...@@ -57,24 +56,24 @@ LOGICAL, INTENT(IN) :: OSIGMAS! use present global Sigma
LOGICAL, INTENT(IN) :: OCND2 ! logical switch to sparate liquid and ice LOGICAL, INTENT(IN) :: OCND2 ! logical switch to sparate liquid and ice
! more rigid (DEFALT value : .FALSE.) ! more rigid (DEFALT value : .FALSE.)
LOGICAL, INTENT(IN) :: LHGT_QS! logical switch for height dependent VQSIGSAT LOGICAL, INTENT(IN) :: LHGT_QS! logical switch for height dependent VQSIGSAT
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PICLDFR ! ice cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PICLDFR ! ice cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PWCLDFR ! water or mixed-phase cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PWCLDFR ! water or mixed-phase cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSSIO ! Super-saturation with respect to ice in the REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PSSIO ! Super-saturation with respect to ice in the
! supersaturated fraction ! supersaturated fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSSIU ! Sub-saturation with respect to ice in the REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PSSIU ! Sub-saturation with respect to ice in the
! subsaturated fraction ! subsaturated fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PIFR ! Ratio cloud ice moist part REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PIFR ! Ratio cloud ice moist part
REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN) :: PSIGQSAT ! use an extra "qsat" variance contribution (OSIGMAS case) REAL, DIMENSION(D%NIJT), INTENT(IN) :: PSIGQSAT ! use an extra "qsat" variance contribution (OSIGMAS case)
! multiplied by PSIGQSAT ! multiplied by PSIGQSAT
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(IN) :: PLV ! Latent heat L_v REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(IN) :: PLV ! Latent heat L_v
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(IN) :: PLS ! Latent heat L_s REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(IN) :: PLS ! Latent heat L_s
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(IN) :: PCPH ! Specific heat C_ph REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(IN) :: PCPH ! Specific heat C_ph
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HRC REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HRC
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HCF ! cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HCF ! cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HRI REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HRI
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HCF REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HCF
REAL, DIMENSION(D%NIT,D%NJT), OPTIONAL, INTENT(IN) :: PICE_CLD_WGT REAL, DIMENSION(D%NIJT), OPTIONAL, INTENT(IN) :: PICE_CLD_WGT
END SUBROUTINE CONDENSATION END SUBROUTINE CONDENSATION
! !
END INTERFACE END INTERFACE
......
...@@ -54,65 +54,62 @@ LOGICAL, INTENT(IN) :: LHGT_QS ! logical switch for height ...@@ -54,65 +54,62 @@ LOGICAL, INTENT(IN) :: LHGT_QS ! logical switch for height
CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF
REAL, INTENT(IN) :: PTSTEP ! Double Time step REAL, INTENT(IN) :: PTSTEP ! Double Time step
! (single if cold start) ! (single if cold start)
REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN) :: PSIGQSAT ! coeff applied to qsat variance contribution REAL, DIMENSION(D%NIJT), INTENT(IN) :: PSIGQSAT ! coeff applied to qsat variance contribution
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRHODJ ! Dry density * Jacobian REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRHODJ ! Dry density * Jacobian
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEXNREF ! Reference Exner function REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEXNREF ! Reference Exner function
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRHODREF REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRHODREF
! !
REAL, DIMENSION(MERGE(D%NIT,0,OSUBG_COND),& REAL, DIMENSION(MERGE(D%NIJT,0,OSUBG_COND),&
MERGE(D%NJT,0,OSUBG_COND),&
MERGE(D%NKT,0,OSUBG_COND)), INTENT(IN) :: PSIGS ! Sigma_s at time t MERGE(D%NKT,0,OSUBG_COND)), INTENT(IN) :: PSIGS ! Sigma_s at time t
LOGICAL, INTENT(IN) :: LMFCONV ! =SIZE(PMFCONV)!=0 LOGICAL, INTENT(IN) :: LMFCONV ! =SIZE(PMFCONV)!=0
REAL, DIMENSION(MERGE(D%NIT,0,LMFCONV),& REAL, DIMENSION(MERGE(D%NIJT,0,LMFCONV),&
MERGE(D%NJT,0,LMFCONV),&
MERGE(D%NKT,0,LMFCONV)), INTENT(IN) :: PMFCONV ! convective mass flux MERGE(D%NKT,0,LMFCONV)), INTENT(IN) :: PMFCONV ! convective mass flux
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PPABST ! Absolute Pressure at t REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PPABST ! Absolute Pressure at t
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PZZ ! height of model layer REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PZZ ! height of model layer
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PEXN ! Exner function REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEXN ! Exner function
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PCF_MF ! Convective Mass Flux Cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PCF_MF ! Convective Mass Flux Cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRC_MF ! Convective Mass Flux liquid mixing ratio REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRC_MF ! Convective Mass Flux liquid mixing ratio
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRI_MF ! Convective Mass Flux ice mixing ratio REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRI_MF ! Convective Mass Flux ice mixing ratio
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRV ! Water vapor m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRV ! Water vapor m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRC ! Cloud water m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRC ! Cloud water m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r. source REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r. source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source
LOGICAL, INTENT(IN) :: OCOMPUTE_SRC LOGICAL, INTENT(IN) :: OCOMPUTE_SRC
REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC),& REAL, DIMENSION(MERGE(D%NIJT,0,OCOMPUTE_SRC),&
MERGE(D%NJT,0,OCOMPUTE_SRC),&
MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(OUT) :: PSRCS ! Second-order flux MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(OUT) :: PSRCS ! Second-order flux
! s'rc'/2Sigma_s2 at time t+1 ! s'rc'/2Sigma_s2 at time t+1
! multiplied by Lambda_3 ! multiplied by Lambda_3
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PICLDFR ! ice cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PICLDFR ! ice cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PWCLDFR ! water or mixed-phase cloud fraction REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PWCLDFR ! water or mixed-phase cloud fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSSIO ! Super-saturation with respect to ice in the REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PSSIO ! Super-saturation with respect to ice in the
! supersaturated fraction ! supersaturated fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSSIU ! Sub-saturation with respect to ice in the REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PSSIU ! Sub-saturation with respect to ice in the
! subsaturated fraction ! subsaturated fraction
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PIFR ! Ratio cloud ice moist part to dry part REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PIFR ! Ratio cloud ice moist part to dry part
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRR ! Rain water m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRR ! Rain water m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRI ! Cloud ice m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRI ! Cloud ice m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRS ! Aggregate m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRS ! Aggregate m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PRG ! Graupel m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PRG ! Graupel m.r. to adjust
TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT):: TBUDGETS TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT):: TBUDGETS
INTEGER, INTENT(IN) :: KBUDGETS INTEGER, INTENT(IN) :: KBUDGETS
REAL, DIMENSION(D%NIT,D%NJT), OPTIONAL, INTENT(IN) :: PICE_CLD_WGT REAL, DIMENSION(D%NIJT), OPTIONAL, INTENT(IN) :: PICE_CLD_WGT
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(IN) :: PRH ! Hail m.r. to adjust REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(IN) :: PRH ! Hail m.r. to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RV ! Adjusted value REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RV ! Adjusted value
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RC ! Adjusted value REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RC ! Adjusted value
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RI ! Adjusted value REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_RI ! Adjusted value
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_TH ! Adjusted value REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: POUT_TH ! Adjusted value
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HRC REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HRC
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HCF REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLC_HCF
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HRI REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HRI
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HCF REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL, INTENT(OUT) :: PHLI_HCF
! !
END SUBROUTINE ICE_ADJUST END SUBROUTINE ICE_ADJUST
! !
......
...@@ -304,7 +304,7 @@ USE MODD_PARAM_LIMA, ONLY: LADJ, LCOLD, LPTSPLIT, LSPRO, NMOD_CCN, NMOD_IFN, ...@@ -304,7 +304,7 @@ USE MODD_PARAM_LIMA, ONLY: LADJ, LCOLD, LPTSPLIT, LSPRO, NMOD_CCN, NMOD_IFN,
USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN, RAIN_ICE_DESCR USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN, RAIN_ICE_DESCR
USE MODD_RAIN_ICE_PARAM, ONLY: RAIN_ICE_PARAM USE MODD_RAIN_ICE_PARAM, ONLY: RAIN_ICE_PARAM
USE MODD_SALT, ONLY: LSALT USE MODD_SALT, ONLY: LSALT
USE MODD_TURB_n, ONLY: CSUBG_AUCV_RI, CCONDENS, CLAMBDA3, CSUBG_MF_PDF USE MODD_TURB_n, ONLY: TURBN, CSUBG_AUCV_RI, CCONDENS, CLAMBDA3, CSUBG_MF_PDF
! !
USE MODE_ll USE MODE_ll
USE MODE_FILL_DIMPHYEX, ONLY: FILL_DIMPHYEX USE MODE_FILL_DIMPHYEX, ONLY: FILL_DIMPHYEX
...@@ -754,7 +754,7 @@ SELECT CASE ( HCLOUD ) ...@@ -754,7 +754,7 @@ SELECT CASE ( HCLOUD )
ENDDO ENDDO
ZZZ = MZF( PZZ ) ZZZ = MZF( PZZ )
IF(LRED .AND. LADJ_BEFORE) THEN IF(LRED .AND. LADJ_BEFORE) THEN
CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM,NEB, TBUCONF, KRR, & CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM, NEB, TURBN, TBUCONF, KRR, &
CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, &
'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., & 'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., &
CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, & CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, &
...@@ -811,7 +811,7 @@ SELECT CASE ( HCLOUD ) ...@@ -811,7 +811,7 @@ SELECT CASE ( HCLOUD )
! !
! !
IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN
CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM,NEB, TBUCONF, KRR, & CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM, NEB, TURBN, TBUCONF, KRR, &
CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, &
'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., & 'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., &
CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, & CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, &
...@@ -849,7 +849,7 @@ SELECT CASE ( HCLOUD ) ...@@ -849,7 +849,7 @@ SELECT CASE ( HCLOUD )
ENDDO ENDDO
ZZZ = MZF( PZZ ) ZZZ = MZF( PZZ )
IF(LRED .AND. LADJ_BEFORE) THEN IF(LRED .AND. LADJ_BEFORE) THEN
CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM,NEB, TBUCONF,KRR, & CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM, NEB, TURBN, TBUCONF, KRR, &
CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, &
'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., & 'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., &
CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, & CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, &
...@@ -910,7 +910,7 @@ SELECT CASE ( HCLOUD ) ...@@ -910,7 +910,7 @@ SELECT CASE ( HCLOUD )
!* 10.2 Perform the saturation adjustment over cloud ice and cloud water !* 10.2 Perform the saturation adjustment over cloud ice and cloud water
! !
IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN
CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM,NEB, TBUCONF, KRR, & CALL ICE_ADJUST (YLDIMPHYEX,CST, RAIN_ICE_PARAM, NEB, TURBN, TBUCONF, KRR, &
CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, &
'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., & 'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE., &
CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, & CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D, &
......
...@@ -8,7 +8,8 @@ set -e ...@@ -8,7 +8,8 @@ set -e
# Repertoire où MNH-V5-5-0_PHYEX.tar.gz modifie pour accueillir PHYEX se trouve # Repertoire où MNH-V5-5-0_PHYEX.tar.gz modifie pour accueillir PHYEX se trouve
#TARGZDIR=$HOME #TARGZDIR=$HOME
availTests="007_16janvier/008_run2, 007_16janvier/008_run2_turb3D, COLD_BUBBLE/002_mesonh, ARMLES/RUN, COLD_BUBBLE_3D/002_mesonh," availTests="007_16janvier/008_run2, 007_16janvier/008_run2_turb3D, COLD_BUBBLE/002_mesonh,
ARMLES/RUN, COLD_BUBBLE_3D/002_mesonh,OCEAN_LES/004_run2"
defaultTest="007_16janvier/008_run2" defaultTest="007_16janvier/008_run2"
separator='_' #- be carrefull, gmkpack (at least on belenos) has multiple allergies (':', '.', '@') separator='_' #- be carrefull, gmkpack (at least on belenos) has multiple allergies (':', '.', '@')
#- seprator must be in sync with prep_code.sh separator #- seprator must be in sync with prep_code.sh separator
...@@ -294,6 +295,9 @@ if [ $check -eq 1 ]; then ...@@ -294,6 +295,9 @@ if [ $check -eq 1 ]; then
elif [ $t == ARMLES/RUN ]; then elif [ $t == ARMLES/RUN ]; then
path_user=$path_user_beg/MY_RUN/KTEST/ARMLES/RUN$path_user_end path_user=$path_user_beg/MY_RUN/KTEST/ARMLES/RUN$path_user_end
path_ref=$path_ref_beg/MY_RUN/KTEST/ARMLES/RUN$path_ref_end path_ref=$path_ref_beg/MY_RUN/KTEST/ARMLES/RUN$path_ref_end
elif [ $t == OCEAN_LES/004_run2 ]; then
path_user=$path_user_beg/MY_RUN/KTEST/OCEAN_LES/004_run2$path_user_end
path_ref=$path_ref_beg/MY_RUN/KTEST/OCEAN_LES/004_run2$path_ref_end
else else
echo "cas $t non reconnu" echo "cas $t non reconnu"
fi fi
...@@ -361,6 +365,32 @@ if [ $check -eq 1 ]; then ...@@ -361,6 +365,32 @@ if [ $check -eq 1 ]; then
fi fi
fi fi
if [ $case == OCEAN_LES ]; then
echo "Compare with python..."
# Compare variable of both Synchronous files with printing difference
file1=$path_user/SPWAN.2.25m00.001.nc
file2=$path_ref/SPWAN.2.25m00.001.nc
set +e
$PHYEXTOOLSDIR/compare.py --f1 $file1 --f2 $file2
t=$?
set -e
allt=$(($allt+$t))
#Check bit-repro before date of creation of Synchronous file from ncdump of all values (pb with direct .nc file checks)
echo "Compare with ncdump..."
if [ -f $file1 -a -f $file2 ]; then
set +e
diff <(ncdump $file1 | head -c 18400) <(ncdump $file2 | head -c 18400)
t=$?
set -e
allt=$(($allt+$t))
else
[ ! -f $file1 ] && echo " $file1 is missing"
[ ! -f $file2 ] && echo " $file2 is missing"
allt=$(($allt+1))
fi
fi
if [ $case == COLD_BUBBLE_3D ]; then if [ $case == COLD_BUBBLE_3D ]; then
echo "Compare with python..." echo "Compare with python..."
# Compare variable of both Synchronous and Diachronic files with printing difference # Compare variable of both Synchronous and Diachronic files with printing difference
......
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