From 29984e99588db82819f56faa6db27ae6fb5a2b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr> Date: Mon, 28 Nov 2022 09:25:20 +0100 Subject: [PATCH] S. Riette 28 nov 2022: bugfix for turb testprogs This version of the turb testprogs need the data generated by commit afa3b585a3081a3dd064f46d3f7c30412ca6e09f --- build/with_fcm/arch/arch-gnu.fcm | 2 +- src/common/turb/mode_turb_ver_thermo_flux.F90 | 2 + .../ice_adjust/getdata_ice_adjust_mod.F90 | 9 +- .../rain_ice/getdata_rain_ice_mod.F90 | 11 +- src/testprogs/support/arrays_manip.F90 | 11 +- src/testprogs/turb_mnh/getdata_turb_mod.F90 | 349 ++++++++++-------- src/testprogs/turb_mnh/main_turb.F90 | 154 ++++---- 7 files changed, 301 insertions(+), 237 deletions(-) diff --git a/build/with_fcm/arch/arch-gnu.fcm b/build/with_fcm/arch/arch-gnu.fcm index 1b16787f6..b97a5ea34 100644 --- a/build/with_fcm/arch/arch-gnu.fcm +++ b/build/with_fcm/arch/arch-gnu.fcm @@ -3,7 +3,7 @@ $FCOMPILER = gfortran $BASE_FFLAGS = -c -fPIC -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fopenmp -fconvert=swap -fallow-argument-mismatch $PROD_FFLAGS = -O3 $DEV_FFLAGS = -O1 -$DEBUG_FFLAGS = -fbounds-check +$DEBUG_FFLAGS = -O0 -g -fbounds-check -finit-real=snan -ffpe-trap=invalid,zero,overflow $CCOMPILER = gcc $BASE_CFLAGS = -c -fPIC -fopenmp $PROD_CFLAGS = -O3 diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90 index cb84c52a5..47063ca84 100644 --- a/src/common/turb/mode_turb_ver_thermo_flux.F90 +++ b/src/common/turb/mode_turb_ver_thermo_flux.F90 @@ -688,6 +688,7 @@ ELSE !$mnh_expand_array(JIJ=IIJB:IIJE) PWTH(IIJB:IIJE,D%NKA)=0.5*(ZFLXZ(IIJB:IIJE,D%NKA)+ZFLXZ(IIJB:IIJE,D%NKA+D%NKL)) PWTH(IIJB:IIJE,IKE)=PWTH(IIJB:IIJE,IKE-D%NKL) + PWTH(IIJB:IIJE,D%NKU)=0. !$mnh_end_expand_array(JIJ=IIJB:IIJE) END IF ! @@ -1075,6 +1076,7 @@ IF (KRR /= 0) THEN !$mnh_expand_array(JIJ=IIJB:IIJE) PWRC(IIJB:IIJE,D%NKA)=0.5*(ZFLXZ(IIJB:IIJE,D%NKA)+ZFLXZ(IIJB:IIJE,D%NKA+D%NKL)) PWRC(IIJB:IIJE,IKE)=PWRC(IIJB:IIJE,IKE-D%NKL) + PWRC(IIJB:IIJE,D%NKU)=0. !$mnh_end_expand_array(JIJ=IIJB:IIJE) ENDIF ! diff --git a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 index 1372fcd92..644f9211c 100644 --- a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 +++ b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 @@ -1,7 +1,7 @@ MODULE GETDATA_ICE_ADJUST_MOD USE OMP_LIB -USE ARRAYS_MANIP, ONLY: SETUP, XNAN, REPLICATE, NPROMIZE, INTERPOLATE, SET +USE ARRAYS_MANIP, ONLY: SETUP, REPLICATE, NPROMIZE, INTERPOLATE, SET CONTAINS @@ -167,13 +167,6 @@ CALL SET (PHLI_HCF_OUT_B) ZSIGQSAT_B = 2.0000000000000000E-002 ZICE_CLD_WGT_B = 1.5 -PSRCS_B = XNAN -PCLDFR_B = XNAN -PHLI_HCF_B = XNAN -PHLI_HRI_B = XNAN -PHLC_HCF_B = XNAN -PHLC_HRC_B = XNAN - IOFF = 0 IBL = 0 diff --git a/src/testprogs/rain_ice/getdata_rain_ice_mod.F90 b/src/testprogs/rain_ice/getdata_rain_ice_mod.F90 index 8940901fd..9d3751853 100644 --- a/src/testprogs/rain_ice/getdata_rain_ice_mod.F90 +++ b/src/testprogs/rain_ice/getdata_rain_ice_mod.F90 @@ -1,6 +1,6 @@ MODULE GETDATA_RAIN_ICE_MOD -USE ARRAYS_MANIP, ONLY: SETUP, XNAN, REPLICATE, NPROMIZE, INTERPOLATE, SET +USE ARRAYS_MANIP, ONLY: SETUP, REPLICATE, NPROMIZE, INTERPOLATE, SET CONTAINS @@ -184,15 +184,6 @@ CALL SET (ZINDEP_OUT_B ) CALL SET (ZRAINFR_OUT_B ) CALL SET (PFPR_OUT_B ) -ZINPRC_OUT_B = XNAN -PINPRR_OUT_B = XNAN -PEVAP_OUT_B = XNAN -PINPRS_OUT_B = XNAN -PINPRG_OUT_B = XNAN -ZINDEP_OUT_B = XNAN -ZRAINFR_OUT_B = XNAN -PFPR_OUT_B = XNAN - IOFF = 0 IBL = 0 LLEXIST = .TRUE. diff --git a/src/testprogs/support/arrays_manip.F90 b/src/testprogs/support/arrays_manip.F90 index 3f659a613..0556f3b55 100644 --- a/src/testprogs/support/arrays_manip.F90 +++ b/src/testprogs/support/arrays_manip.F90 @@ -29,12 +29,13 @@ INTERFACE SET MODULE PROCEDURE SET5 END INTERFACE -REAL, SAVE :: XNAN +REAL, SAVE :: XINVALID CONTAINS SUBROUTINE SETUP() -XNAN = IEEE_VALUE (1., IEEE_SIGNALING_NAN) + !XINVALID = IEEE_VALUE (1., IEEE_SIGNALING_NAN) + XINVALID = HUGE(1.) END SUBROUTINE SETUP SUBROUTINE REPLICATE4 (KOFF, P) @@ -379,7 +380,7 @@ JBLK1 = 1 + (IGPBLKS * (ITID+0)) / NTID JBLK2 = (IGPBLKS * (ITID+1)) / NTID DO IBL = JBLK1, JBLK2 - P (:,:,IBL) = XNAN + P (:,:,IBL) = XINVALID ENDDO !$OMP END PARALLEL @@ -402,7 +403,7 @@ JBLK1 = 1 + (IGPBLKS * (ITID+0)) / NTID JBLK2 = (IGPBLKS * (ITID+1)) / NTID DO IBL = JBLK1, JBLK2 - P (:,:,:,IBL) = XNAN + P (:,:,:,IBL) = XINVALID ENDDO !$OMP END PARALLEL @@ -425,7 +426,7 @@ JBLK1 = 1 + (IGPBLKS * (ITID+0)) / NTID JBLK2 = (IGPBLKS * (ITID+1)) / NTID DO IBL = JBLK1, JBLK2 - P (:,:,:,:,IBL) = XNAN + P (:,:,:,:,IBL) = XINVALID ENDDO !$OMP END PARALLEL diff --git a/src/testprogs/turb_mnh/getdata_turb_mod.F90 b/src/testprogs/turb_mnh/getdata_turb_mod.F90 index c30126cdc..ecdc7fb25 100644 --- a/src/testprogs/turb_mnh/getdata_turb_mod.F90 +++ b/src/testprogs/turb_mnh/getdata_turb_mod.F90 @@ -1,25 +1,37 @@ MODULE GETDATA_TURB_MOD -USE ARRAYS_MANIP, ONLY: SETUP, XNAN, REPLICATE, NPROMIZE, INTERPOLATE, SET +USE ARRAYS_MANIP, ONLY: SETUP, REPLICATE, NPROMIZE, INTERPOLATE, SET CONTAINS -SUBROUTINE GETDATA_TURB (NPROMA, NGPBLKS, NFLEVG, & - !Inputs - &ZDXX_B, ZDYY_B, ZDZZ_B, ZDZX_B, ZDZY_B, ZZZ_B, ZDIRCOSXW_B, ZDIRCOSYW_B, ZDIRCOSZW_B, & - &ZCOSSLOPE_B, ZSINSLOPE_B, PRHODJ_B, & - &PTHVREF_B, PSFTH_B, PSFRV_B, PSFU_B, PSFV_B, PSFSV_B, PPABSM_B, PUM_B, & - &PVM_B, PWM_B, PTKEM_B, ZSVM_B, PSRCM_B, PTHM_B, ZRM_B, PRUS_B, & - &PRVS_B, PRWS_B, PRTHS_B, PRTKES_B, PRRS_B, PRSVS_B, PSIGS_B, PFLXZTHVMF_B, & - &PLENGTHM_B, PLENGTHH_B, MFMOIST_B, ZBL_DEPTH_B, ZSBL_DEPTH_B, ZCEI_B, & - !Outputs - &PTHM_OUT_B, ZRM_OUT_B, PRUS_OUT_B, PRVS_OUT_B, PRWS_OUT_B, PRTHS_OUT_B, PRTKES_OUT_B, PRTKES_OUT_OUT_B, & - &ZRRS_B, ZRRS_OUT_B, ZRSVS_B, ZRSVS_OUT_B, PSIGS_OUT_B, ZWTH_B, ZWTH_OUT_B, ZWRC_B, ZWRC_OUT_B, & - &ZWSV_B, ZWSV_OUT_B, PDP_B, PDP_OUT_B, PTP_B, PTP_OUT_B, & - &PTDIFF_B, PTDIFF_OUT_B, PTDISS_B, PTDISS_OUT_B, PEDR_B, PEDR_OUT_B, PTPMF_B, PTPMF_OUT_B, & - &PDRUS_TURB_B, PDRUS_TURB_OUT_B, PDRVS_TURB_B, PDRVS_TURB_OUT_B, & - &PDRTHLS_TURB_B, PDRTHLS_TURB_OUT_B, PDRRTS_TURB_B, PDRRTS_TURB_OUT_B, ZDRSVS_TURB_B, ZDRSVS_TURB_OUT_B) - +SUBROUTINE GETDATA_TURB (NPROMA, NGPBLKS, NFLEVG, KRR, KRRL, KRRI, KSV, KLEV, & + !IN and INOUT (allocation and reading) + &ZDXX_B, ZDYY_B, ZDZZ_B, ZDZX_B, ZDZY_B, ZZZ_B, & + &ZDIRCOSXW_B, ZDIRCOSYW_B, ZDIRCOSZW_B, ZCOSSLOPE_B, ZSINSLOPE_B, & + &PRHODJ_B, PTHVREF_B, & + &PSFTH_B, PSFRV_B, PSFU_B, PSFV_B, PSFSV_B, & + &PPABSM_B, PUM_B, PVM_B, PWM_B, PTKEM_B, ZSVM_B, PSRCM_B, & + &PLENGTHM_B, PLENGTHH_B, MFMOIST_B, & + &ZBL_DEPTH_B, ZSBL_DEPTH_B, & + &ZCEI_B, & + &PTHM_B, ZRM_B, & + &PRUS_B, PRVS_B, PRWS_B, PRTHS_B, ZRRS_B, ZRSVS_B, PRTKES_OUT_B, & + &PFLXZTHVMF_B, & + !OUT (allocation) + &PSIGS_B, & + &ZWTH_B,ZWRC_B,ZWSV_B,PDP_B,PTP_B,PTDIFF_B,PTDISS_B, & + &PEDR_B,PTPMF_B, & + &PDRUS_TURB_B,PDRVS_TURB_B, & + &PDRTHLS_TURB_B,PDRRTS_TURB_B,ZDRSVS_TURB_B, & + !OUT and INOUT (expected values) + &ZBL_DEPTH_OUT_B, ZSBL_DEPTH_OUT_B, & + &PTHM_OUT_B, ZRM_OUT_B, & + &PRUS_OUT_B, PRVS_OUT_B, PRWS_OUT_B, PRTHS_OUT_B, ZRRS_OUT_B, ZRSVS_OUT_B, PRTKES_OUT_OUT_B, & + &PSIGS_OUT_B, & + &ZWTH_OUT_B, ZWRC_OUT_B, ZWSV_OUT_B, PDP_OUT_B, PTP_OUT_B, PTDIFF_OUT_B, PTDISS_OUT_B, & + &PEDR_OUT_B, PTPMF_OUT_B, & + &PDRUS_TURB_OUT_B, PDRVS_TURB_OUT_B, & + &PDRTHLS_TURB_OUT_B, PDRRTS_TURB_OUT_B, ZDRSVS_TURB_OUT_B) IMPLICIT NONE @@ -29,13 +41,13 @@ INTEGER :: KLON INTEGER :: KIDIA INTEGER :: KFDIA INTEGER :: KLEV -INTEGER :: KRR +INTEGER :: KRR, KRRL, KRRI INTEGER :: KSV INTEGER :: KDUM LOGICAL :: LDVERBOSE -!Inputs +!IN and INOUTS REAL, ALLOCATABLE :: ZDXX_B (:,:,:,:) REAL, ALLOCATABLE :: ZDYY_B (:,:,:,:) REAL, ALLOCATABLE :: ZDZZ_B (:,:,:,:) @@ -61,67 +73,69 @@ REAL, ALLOCATABLE :: PWM_B (:,:,:,:) REAL, ALLOCATABLE :: PTKEM_B (:,:,:,:) REAL, ALLOCATABLE :: ZSVM_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: PSRCM_B (:,:,:,:) -REAL, ALLOCATABLE :: PTHM_B (:,:,:,:) -REAL, ALLOCATABLE :: ZRM_B (:,:,:,:,:) !(KLON,1,KLEV,KRR) -REAL, ALLOCATABLE :: PRUS_B (:,:,:,:) -REAL, ALLOCATABLE :: PRVS_B (:,:,:,:) -REAL, ALLOCATABLE :: PRWS_B (:,:,:,:) -REAL, ALLOCATABLE :: PRTHS_B (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_B (:,:,:,:) !(KLON,1,KLEV) -REAL, ALLOCATABLE :: PRRS_B (:,:,:,:,:) !(KLON,1,KLEV,KRR) -REAL, ALLOCATABLE :: PRSVS_B (:,:,:,:,:) !(KLON,1,KLEV,KSV) -REAL, ALLOCATABLE :: PSIGS_B (:,:,:,:) -REAL, ALLOCATABLE :: PFLXZTHVMF_B (:,:,:,:) REAL, ALLOCATABLE :: PLENGTHM_B (:,:,:,:) REAL, ALLOCATABLE :: PLENGTHH_B (:,:,:,:) REAL, ALLOCATABLE :: MFMOIST_B (:,:,:,:) REAL, ALLOCATABLE :: ZBL_DEPTH_B (:,:,:) REAL, ALLOCATABLE :: ZSBL_DEPTH_B (:,:,:) REAL, ALLOCATABLE :: ZCEI_B (:,:,:,:) -!Outputs +REAL, ALLOCATABLE :: PTHM_B (:,:,:,:) +REAL, ALLOCATABLE :: ZRM_B (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) +REAL, ALLOCATABLE :: PRUS_B (:,:,:,:) +REAL, ALLOCATABLE :: PRVS_B (:,:,:,:) +REAL, ALLOCATABLE :: PRWS_B (:,:,:,:) +REAL, ALLOCATABLE :: PRTHS_B (:,:,:,:) +REAL, ALLOCATABLE :: ZRRS_B (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) +REAL, ALLOCATABLE :: ZRSVS_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT_B (:,:,:,:) +REAL, ALLOCATABLE :: PFLXZTHVMF_B (:,:,:,:) + +!OUT +REAL, ALLOCATABLE :: PSIGS_B (:,:,:,:) +REAL, ALLOCATABLE :: ZWTH_B (:,:,:,:) +REAL, ALLOCATABLE :: ZWRC_B (:,:,:,:) +REAL, ALLOCATABLE :: ZWSV_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PDP_B (:,:,:,:) +REAL, ALLOCATABLE :: PTP_B (:,:,:,:) +REAL, ALLOCATABLE :: PTDIFF_B (:,:,:,:) +REAL, ALLOCATABLE :: PTDISS_B (:,:,:,:) +REAL, ALLOCATABLE :: PEDR_B (:,:,:,:) +REAL, ALLOCATABLE :: PTPMF_B (:,:,:,:) +REAL, ALLOCATABLE :: PDRUS_TURB_B (:,:,:,:) +REAL, ALLOCATABLE :: PDRVS_TURB_B (:,:,:,:) +REAL, ALLOCATABLE :: PDRTHLS_TURB_B (:,:,:,:) +REAL, ALLOCATABLE :: PDRRTS_TURB_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDRSVS_TURB_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) + +!Expected values +REAL, ALLOCATABLE :: ZBL_DEPTH_OUT_B (:,:,:) +REAL, ALLOCATABLE :: ZSBL_DEPTH_OUT_B (:,:,:) REAL, ALLOCATABLE :: PTHM_OUT_B (:,:,:,:) REAL, ALLOCATABLE :: ZRM_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: PRUS_OUT_B (:,:,:,:) REAL, ALLOCATABLE :: PRVS_OUT_B (:,:,:,:) REAL, ALLOCATABLE :: PRWS_OUT_B (:,:,:,:) REAL, ALLOCATABLE :: PRTHS_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_OUT_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: ZRRS_B (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: ZRRS_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) -REAL, ALLOCATABLE :: ZRSVS_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -REAL, ALLOCATABLE :: ZRSVS_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: ZRSVS_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT_OUT_B (:,:,:,:) REAL, ALLOCATABLE :: PSIGS_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: ZWTH_B (:,:,:,:) REAL, ALLOCATABLE :: ZWTH_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: ZWRC_B (:,:,:,:) REAL, ALLOCATABLE :: ZWRC_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: ZWSV_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: ZWSV_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -REAL, ALLOCATABLE :: PDP_B (:,:,:,:) REAL, ALLOCATABLE :: PDP_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PTP_B (:,:,:,:) REAL, ALLOCATABLE :: PTP_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PTDIFF_B (:,:,:,:) REAL, ALLOCATABLE :: PTDIFF_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PTDISS_B (:,:,:,:) REAL, ALLOCATABLE :: PTDISS_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PEDR_B (:,:,:,:) REAL, ALLOCATABLE :: PEDR_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PTPMF_B (:,:,:,:) REAL, ALLOCATABLE :: PTPMF_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PDRUS_TURB_B (:,:,:,:) REAL, ALLOCATABLE :: PDRUS_TURB_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PDRVS_TURB_B (:,:,:,:) REAL, ALLOCATABLE :: PDRVS_TURB_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PDRTHLS_TURB_B (:,:,:,:) REAL, ALLOCATABLE :: PDRTHLS_TURB_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: PDRRTS_TURB_B (:,:,:,:) REAL, ALLOCATABLE :: PDRRTS_TURB_OUT_B (:,:,:,:) -REAL, ALLOCATABLE :: ZDRSVS_TURB_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: ZDRSVS_TURB_OUT_B (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -!Inputs +!Inputs to read REAL, ALLOCATABLE :: ZDXX (:,:,:,:) REAL, ALLOCATABLE :: ZDYY (:,:,:,:) REAL, ALLOCATABLE :: ZDZZ (:,:,:,:) @@ -147,27 +161,34 @@ REAL, ALLOCATABLE :: PWM (:,:,:,:) REAL, ALLOCATABLE :: PTKEM (:,:,:,:) REAL, ALLOCATABLE :: ZSVM (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: PSRCM (:,:,:,:) +REAL, ALLOCATABLE :: PLENGTHM (:,:,:,:) +REAL, ALLOCATABLE :: PLENGTHH (:,:,:,:) +REAL, ALLOCATABLE :: MFMOIST (:,:,:,:) +REAL, ALLOCATABLE :: ZBL_DEPTH (:,:,:) +REAL, ALLOCATABLE :: ZSBL_DEPTH (:,:,:) +REAL, ALLOCATABLE :: ZCEI (:,:,:,:) REAL, ALLOCATABLE :: PTHM (:,:,:,:) REAL, ALLOCATABLE :: ZRM (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: PRUS (:,:,:,:) REAL, ALLOCATABLE :: PRVS (:,:,:,:) REAL, ALLOCATABLE :: PRWS (:,:,:,:) REAL, ALLOCATABLE :: PRTHS (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES (:,:,:,:) -REAL, ALLOCATABLE :: PRRS (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) -REAL, ALLOCATABLE :: PRSVS (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -REAL, ALLOCATABLE :: PSIGS (:,:,:,:) +REAL, ALLOCATABLE :: ZRRS (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) +REAL, ALLOCATABLE :: ZRSVS (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT (:,:,:,:) REAL, ALLOCATABLE :: PFLXZTHVMF (:,:,:,:) -!Outputs +!Expected values to read +REAL, ALLOCATABLE :: ZBL_DEPTH_OUT (:,:,:) +REAL, ALLOCATABLE :: ZSBL_DEPTH_OUT (:,:,:) REAL, ALLOCATABLE :: PTHM_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZRM_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: PRUS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRVS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRWS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRTHS_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_OUT_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZRRS_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: ZRSVS_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT_OUT (:,:,:,:) REAL, ALLOCATABLE :: PSIGS_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZWTH_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZWRC_OUT (:,:,:,:) @@ -184,7 +205,6 @@ REAL, ALLOCATABLE :: PDRTHLS_TURB_OUT (:,:,:,:) REAL, ALLOCATABLE :: PDRRTS_TURB_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZDRSVS_TURB_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) - INTEGER :: NGPTOT, NPROMA, NGPBLKS, NFLEVG INTEGER :: IOFF, IBL LOGICAL :: LLEXIST @@ -198,9 +218,8 @@ IBL = 1 WRITE (CLFILE, '("data/",I8.8,".dat")') IBL OPEN (IFILE, FILE=TRIM (CLFILE), FORM='UNFORMATTED') READ (IFILE) KLON, KDUM, KLEV +READ (IFILE) KRR, KRRL, KRRI, KSV CLOSE (IFILE) -KRR = 6 -KSV = 0 IF (NFLEVG < 0) NFLEVG = KLEV @@ -229,63 +248,64 @@ ALLOCATE (PWM_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTKEM_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (ZSVM_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) ALLOCATE (PSRCM_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PLENGTHM_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PLENGTHH_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (MFMOIST_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZBL_DEPTH_B (NPROMA,1,NGPBLKS)) +ALLOCATE (ZSBL_DEPTH_B (NPROMA,1,NGPBLKS)) +ALLOCATE (ZCEI_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTHM_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (ZRM_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) ALLOCATE (PRUS_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRVS_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRWS_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRTHS_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PRTKES_B (NPROMA,1,NFLEVG-2,NGPBLKS)) -ALLOCATE (PRRS_B (NPROMA,1,NFLEVG-2,KRR,NGPBLKS)) -ALLOCATE (PRSVS_B (NPROMA,1,NFLEVG-2,KSV,NGPBLKS)) -ALLOCATE (PSIGS_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZRRS_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) +ALLOCATE (ZRSVS_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) +ALLOCATE (PRTKES_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PFLXZTHVMF_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PLENGTHM_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PLENGTHH_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (MFMOIST_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZBL_DEPTH_B (NPROMA,1,NGPBLKS)) -ALLOCATE (ZSBL_DEPTH_B (NPROMA,1,NGPBLKS)) -ALLOCATE (ZCEI_B (NPROMA,1,NFLEVG,NGPBLKS)) + +ALLOCATE (PSIGS_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZWTH_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZWRC_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZWSV_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) +ALLOCATE (PDP_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PTP_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PTDIFF_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PTDISS_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PEDR_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PTPMF_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PDRUS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PDRVS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PDRTHLS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (PDRRTS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDRSVS_TURB_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) + +ALLOCATE (ZBL_DEPTH_OUT_B (NPROMA,1,NGPBLKS)) +ALLOCATE (ZSBL_DEPTH_OUT_B (NPROMA,1,NGPBLKS)) ALLOCATE (PTHM_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (ZRM_OUT_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) ALLOCATE (PRUS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRVS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRWS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRTHS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PRTKES_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PRTKES_OUT_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZRRS_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) ALLOCATE (ZRRS_OUT_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) -ALLOCATE (ZRSVS_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) ALLOCATE (ZRSVS_OUT_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) +ALLOCATE (PRTKES_OUT_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PSIGS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZWTH_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (ZWTH_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZWRC_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (ZWRC_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZWSV_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) ALLOCATE (ZWSV_OUT_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) -ALLOCATE (PDP_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PDP_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PTP_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTP_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PTDIFF_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTDIFF_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PTDISS_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTDISS_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PEDR_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PEDR_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PTPMF_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTPMF_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PDRUS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PDRUS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PDRVS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PDRVS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PDRTHLS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PDRTHLS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (PDRRTS_TURB_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PDRRTS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS)) -ALLOCATE (ZDRSVS_TURB_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) ALLOCATE (ZDRSVS_TURB_OUT_B (NPROMA,1,NFLEVG,KSV,NGPBLKS)) CALL SET (ZDXX_B ) @@ -313,64 +333,64 @@ CALL SET (PWM_B ) CALL SET (PTKEM_B ) CALL SET (ZSVM_B ) CALL SET (PSRCM_B ) +CALL SET (PLENGTHM_B ) +CALL SET (PLENGTHH_B ) +CALL SET (MFMOIST_B ) +CALL SET (ZBL_DEPTH_B ) +CALL SET (ZSBL_DEPTH_B ) +CALL SET (ZCEI_B ) CALL SET (PTHM_B ) CALL SET (ZRM_B ) CALL SET (PRUS_B ) CALL SET (PRVS_B ) CALL SET (PRWS_B ) CALL SET (PRTHS_B ) -CALL SET (PRTKES_B ) -CALL SET (PRRS_B ) -CALL SET (PRSVS_B ) -CALL SET (PSIGS_B ) +CALL SET (ZRRS_B ) +CALL SET (ZRSVS_B ) +CALL SET (PRTKES_OUT_B ) CALL SET (PFLXZTHVMF_B ) -CALL SET (PLENGTHM_B ) -CALL SET (PLENGTHH_B ) -CALL SET (MFMOIST_B ) -CALL SET (ZBL_DEPTH_B ) -CALL SET (ZSBL_DEPTH_B ) -CALL SET (ZCEI_B ) +CALL SET (PSIGS_B ) +CALL SET (ZWTH_B ) +CALL SET (ZWRC_B ) +CALL SET (ZWSV_B ) +CALL SET (PDP_B ) +CALL SET (PTP_B ) +CALL SET (PTDIFF_B ) +CALL SET (PTDISS_B ) +CALL SET (PEDR_B ) +CALL SET (PTPMF_B ) +CALL SET (PDRUS_TURB_B ) +CALL SET (PDRVS_TURB_B ) +CALL SET (PDRTHLS_TURB_B ) +CALL SET (PDRRTS_TURB_B ) +CALL SET (ZDRSVS_TURB_B ) + +CALL SET (ZBL_DEPTH_OUT_B ) +CALL SET (ZSBL_DEPTH_OUT_B ) CALL SET (PTHM_OUT_B ) CALL SET (ZRM_OUT_B ) CALL SET (PRUS_OUT_B ) CALL SET (PRVS_OUT_B ) CALL SET (PRWS_OUT_B ) CALL SET (PRTHS_OUT_B ) -CALL SET (PRTKES_OUT_B ) -CALL SET (PRTKES_OUT_OUT_B ) -CALL SET (ZRRS_B ) CALL SET (ZRRS_OUT_B ) -CALL SET (ZRSVS_B ) CALL SET (ZRSVS_OUT_B ) +CALL SET (PRTKES_OUT_OUT_B ) CALL SET (PSIGS_OUT_B ) -CALL SET (ZWTH_B ) CALL SET (ZWTH_OUT_B ) -CALL SET (ZWRC_B ) CALL SET (ZWRC_OUT_B ) -CALL SET (ZWSV_B ) CALL SET (ZWSV_OUT_B ) -CALL SET (PDP_B ) CALL SET (PDP_OUT_B ) -CALL SET (PTP_B ) CALL SET (PTP_OUT_B ) -CALL SET (PTDIFF_B ) CALL SET (PTDIFF_OUT_B ) -CALL SET (PTDISS_B ) CALL SET (PTDISS_OUT_B ) -CALL SET (PEDR_B ) CALL SET (PEDR_OUT_B ) -CALL SET (PTPMF_B ) CALL SET (PTPMF_OUT_B ) -CALL SET (PDRUS_TURB_B ) CALL SET (PDRUS_TURB_OUT_B ) -CALL SET (PDRVS_TURB_B ) CALL SET (PDRVS_TURB_OUT_B ) -CALL SET (PDRTHLS_TURB_B ) CALL SET (PDRTHLS_TURB_OUT_B ) -CALL SET (PDRRTS_TURB_B ) CALL SET (PDRRTS_TURB_OUT_B ) -CALL SET (ZDRSVS_TURB_B ) CALL SET (ZDRSVS_TURB_OUT_B ) IOFF = 0 @@ -390,6 +410,7 @@ DO WHILE(LLEXIST) OPEN (IFILE, FILE=TRIM (CLFILE), FORM='UNFORMATTED') READ (IFILE) KLON, KDUM, KLEV + READ (IFILE) KRR, KRRL, KRRI, KSV IF (IBL == 1) THEN ALLOCATE (ZDXX (NGPTOT,1,KLEV,1)) @@ -417,26 +438,34 @@ DO WHILE(LLEXIST) ALLOCATE (PTKEM (NGPTOT,1,KLEV,1)) ALLOCATE (ZSVM (NGPTOT,1,KLEV,KSV,1)) ALLOCATE (PSRCM (NGPTOT,1,KLEV,1)) + ALLOCATE (PLENGTHM (NGPTOT,1,KLEV,1)) + ALLOCATE (PLENGTHH (NGPTOT,1,KLEV,1)) + ALLOCATE (MFMOIST (NGPTOT,1,KLEV,1)) + ALLOCATE (ZBL_DEPTH (NGPTOT,1,1)) + ALLOCATE (ZSBL_DEPTH (NGPTOT,1,1)) + ALLOCATE (ZCEI (NGPTOT,1,KLEV,1)) ALLOCATE (PTHM (NGPTOT,1,KLEV,1)) ALLOCATE (ZRM (NGPTOT,1,KLEV,KRR,1)) ALLOCATE (PRUS (NGPTOT,1,KLEV,1)) ALLOCATE (PRVS (NGPTOT,1,KLEV,1)) ALLOCATE (PRWS (NGPTOT,1,KLEV,1)) ALLOCATE (PRTHS (NGPTOT,1,KLEV,1)) - ALLOCATE (PRTKES (NGPTOT,1,KLEV-2,1)) - ALLOCATE (PRRS (NGPTOT,1,KLEV-2,KRR,1)) - ALLOCATE (PRSVS (NGPTOT,1,KLEV-2,KSV,1)) - ALLOCATE (PSIGS (NGPTOT,1,KLEV,1)) + ALLOCATE (ZRRS (NGPTOT,1,KLEV,KRR,1)) + ALLOCATE (ZRSVS (NGPTOT,1,KLEV,KSV,1)) + ALLOCATE (PRTKES_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (PFLXZTHVMF (NGPTOT,1,KLEV,1)) + + ALLOCATE (ZBL_DEPTH_OUT (NGPTOT,1,1)) + ALLOCATE (ZSBL_DEPTH_OUT (NGPTOT,1,1)) ALLOCATE (PTHM_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (ZRM_OUT (NGPTOT,1,KLEV,KRR,1)) ALLOCATE (PRUS_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (PRVS_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (PRWS_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (PRTHS_OUT (NGPTOT,1,KLEV,1)) - ALLOCATE (PRTKES_OUT_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (ZRRS_OUT (NGPTOT,1,KLEV,KRR,1)) ALLOCATE (ZRSVS_OUT (NGPTOT,1,KLEV,KSV,1)) + ALLOCATE (PRTKES_OUT_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (PSIGS_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (ZWTH_OUT (NGPTOT,1,KLEV,1)) ALLOCATE (ZWRC_OUT (NGPTOT,1,KLEV,1)) @@ -464,9 +493,9 @@ DO WHILE(LLEXIST) READ(IFILE) ZDZX (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZDZY (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZZZ (IOFF+1:IOFF+KLON,:,:,1) - ZDIRCOSXW(IOFF+1:IOFF+KLON,:,1)=1. - ZDIRCOSYW(IOFF+1:IOFF+KLON,:,1)=1. - ZDIRCOSZW(IOFF+1:IOFF+KLON,:,1)=1. + READ(IFILE) ZDIRCOSXW (IOFF+1:IOFF+KLON,:,1) + READ(IFILE) ZDIRCOSYW (IOFF+1:IOFF+KLON,:,1) + READ(IFILE) ZDIRCOSZW (IOFF+1:IOFF+KLON,:,1) READ(IFILE) ZCOSSLOPE (IOFF+1:IOFF+KLON,:,1) READ(IFILE) ZSINSLOPE (IOFF+1:IOFF+KLON,:,1) READ(IFILE) PRHODJ (IOFF+1:IOFF+KLON,:,:,1) @@ -483,26 +512,34 @@ DO WHILE(LLEXIST) READ(IFILE) PTKEM (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZSVM (IOFF+1:IOFF+KLON,:,:,:,1) READ(IFILE) PSRCM (IOFF+1:IOFF+KLON,:,:,1) + READ(IFILE) PLENGTHM (IOFF+1:IOFF+KLON,:,:,1) + READ(IFILE) PLENGTHH (IOFF+1:IOFF+KLON,:,:,1) + READ(IFILE) MFMOIST (IOFF+1:IOFF+KLON,:,:,1) + READ(IFILE) ZBL_DEPTH (IOFF+1:IOFF+KLON,:,1) + READ(IFILE) ZSBL_DEPTH (IOFF+1:IOFF+KLON,:,1) + READ(IFILE) ZCEI (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PTHM (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZRM (IOFF+1:IOFF+KLON,:,:,:,1) READ(IFILE) PRUS (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRVS (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRWS (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRTHS (IOFF+1:IOFF+KLON,:,:,1) - READ(IFILE) PRTKES (IOFF+1:IOFF+KLON,:,:,1) - READ(IFILE) PRRS (IOFF+1:IOFF+KLON,:,:,:,1) - READ(IFILE) PRSVS (IOFF+1:IOFF+KLON,:,:,:,1) - READ(IFILE) PSIGS (IOFF+1:IOFF+KLON,:,:,1) + READ(IFILE) ZRRS (IOFF+1:IOFF+KLON,:,:,:,1) + READ(IFILE) ZRSVS (IOFF+1:IOFF+KLON,:,:,:,1) + READ(IFILE) PRTKES_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PFLXZTHVMF (IOFF+1:IOFF+KLON,:,:,1) + + READ(IFILE) ZBL_DEPTH_OUT (IOFF+1:IOFF+KLON,:,1) + READ(IFILE) ZSBL_DEPTH_OUT (IOFF+1:IOFF+KLON,:,1) READ(IFILE) PTHM_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZRM_OUT (IOFF+1:IOFF+KLON,:,:,:,1) READ(IFILE) PRUS_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRVS_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRWS_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PRTHS_OUT (IOFF+1:IOFF+KLON,:,:,1) - READ(IFILE) PRTKES_OUT_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZRRS_OUT (IOFF+1:IOFF+KLON,:,:,:,1) READ(IFILE) ZRSVS_OUT (IOFF+1:IOFF+KLON,:,:,:,1) + READ(IFILE) PRTKES_OUT_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) PSIGS_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZWTH_OUT (IOFF+1:IOFF+KLON,:,:,1) READ(IFILE) ZWRC_OUT (IOFF+1:IOFF+KLON,:,:,1) @@ -551,26 +588,34 @@ IF (NFLEVG /= KLEV) THEN CALL INTERPOLATE (NFLEVG, IOFF, PTKEM ) CALL INTERPOLATE (NFLEVG, IOFF, ZSVM ) CALL INTERPOLATE (NFLEVG, IOFF, PSRCM ) + CALL INTERPOLATE (NFLEVG, IOFF, PLENGTHM ) + CALL INTERPOLATE (NFLEVG, IOFF, PLENGTHH ) + CALL INTERPOLATE (NFLEVG, IOFF, MFMOIST ) +! CALL INTERPOLATE (NFLEVG, IOFF, ZBL_DEPTH ) +! CALL INTERPOLATE (NFLEVG, IOFF, ZSBL_DEPTH ) + CALL INTERPOLATE (NFLEVG, IOFF, ZCEI ) CALL INTERPOLATE (NFLEVG, IOFF, PTHM ) CALL INTERPOLATE (NFLEVG, IOFF, ZRM ) CALL INTERPOLATE (NFLEVG, IOFF, PRUS ) CALL INTERPOLATE (NFLEVG, IOFF, PRVS ) CALL INTERPOLATE (NFLEVG, IOFF, PRWS ) CALL INTERPOLATE (NFLEVG, IOFF, PRTHS ) - CALL INTERPOLATE (NFLEVG, IOFF, PRTKES ) - CALL INTERPOLATE (NFLEVG, IOFF, PRRS ) - CALL INTERPOLATE (NFLEVG, IOFF, PRSVS ) - CALL INTERPOLATE (NFLEVG, IOFF, PSIGS ) + CALL INTERPOLATE (NFLEVG, IOFF, ZRRS ) + CALL INTERPOLATE (NFLEVG, IOFF, ZRSVS ) + CALL INTERPOLATE (NFLEVG, IOFF, PRTKES_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PFLXZTHVMF ) + +! CALL INTERPOLATE (NFLEVG, IOFF, ZBL_DEPTH_OUT ) +! CALL INTERPOLATE (NFLEVG, IOFF, ZSBL_DEPTH_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PTHM_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, ZRM_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PRUS_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PRVS_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PRWS_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PRTHS_OUT ) - CALL INTERPOLATE (NFLEVG, IOFF, PRTKES_OUT_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, ZRRS_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, ZRSVS_OUT ) + CALL INTERPOLATE (NFLEVG, IOFF, PRTKES_OUT_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, PSIGS_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, ZWTH_OUT ) CALL INTERPOLATE (NFLEVG, IOFF, ZWRC_OUT ) @@ -614,26 +659,34 @@ CALL REPLICATE (IOFF, PWM (:,:,:,1)) CALL REPLICATE (IOFF, PTKEM (:,:,:,1)) CALL REPLICATE (IOFF, ZSVM (:,:,:,:,1)) CALL REPLICATE (IOFF, PSRCM (:,:,:,1)) +CALL REPLICATE (IOFF, PLENGTHM (:,:,:,1)) +CALL REPLICATE (IOFF, PLENGTHH (:,:,:,1)) +CALL REPLICATE (IOFF, MFMOIST (:,:,:,1)) +CALL REPLICATE (IOFF, ZBL_DEPTH (:,:,1)) +CALL REPLICATE (IOFF, ZSBL_DEPTH (:,:,1)) +CALL REPLICATE (IOFF, ZCEI (:,:,:,1)) CALL REPLICATE (IOFF, PTHM (:,:,:,1)) CALL REPLICATE (IOFF, ZRM (:,:,:,:,1)) CALL REPLICATE (IOFF, PRUS (:,:,:,1)) CALL REPLICATE (IOFF, PRVS (:,:,:,1)) CALL REPLICATE (IOFF, PRWS (:,:,:,1)) CALL REPLICATE (IOFF, PRTHS (:,:,:,1)) -CALL REPLICATE (IOFF, PRTKES (:,:,:,1)) -CALL REPLICATE (IOFF, PRRS (:,:,:,:,1)) -CALL REPLICATE (IOFF, PRSVS (:,:,:,:,1)) -CALL REPLICATE (IOFF, PSIGS (:,:,:,1)) +CALL REPLICATE (IOFF, ZRRS (:,:,:,:,1)) +CALL REPLICATE (IOFF, ZRSVS (:,:,:,:,1)) +CALL REPLICATE (IOFF, PRTKES_OUT (:,:,:,1)) CALL REPLICATE (IOFF, PFLXZTHVMF (:,:,:,1)) + +CALL REPLICATE (IOFF, ZBL_DEPTH_OUT (:,:,1)) +CALL REPLICATE (IOFF, ZSBL_DEPTH_OUT (:,:,1)) CALL REPLICATE (IOFF, PTHM_OUT (:,:,:,1)) CALL REPLICATE (IOFF, ZRM_OUT (:,:,:,:,1)) CALL REPLICATE (IOFF, PRUS_OUT (:,:,:,1)) CALL REPLICATE (IOFF, PRVS_OUT (:,:,:,1)) CALL REPLICATE (IOFF, PRWS_OUT (:,:,:,1)) CALL REPLICATE (IOFF, PRTHS_OUT (:,:,:,1)) -CALL REPLICATE (IOFF, PRTKES_OUT_OUT (:,:,:,1)) CALL REPLICATE (IOFF, ZRRS_OUT (:,:,:,:,1)) CALL REPLICATE (IOFF, ZRSVS_OUT (:,:,:,:,1)) +CALL REPLICATE (IOFF, PRTKES_OUT_OUT (:,:,:,1)) CALL REPLICATE (IOFF, PSIGS_OUT (:,:,:,1)) CALL REPLICATE (IOFF, ZWTH_OUT (:,:,:,1)) CALL REPLICATE (IOFF, ZWRC_OUT (:,:,:,1)) @@ -675,26 +728,34 @@ CALL NPROMIZE (NPROMA, PWM , PWM_B ) CALL NPROMIZE (NPROMA, PTKEM , PTKEM_B ) CALL NPROMIZE (NPROMA, ZSVM , ZSVM_B ) CALL NPROMIZE (NPROMA, PSRCM , PSRCM_B ) +CALL NPROMIZE (NPROMA, PLENGTHM , PLENGTHM_B ) +CALL NPROMIZE (NPROMA, PLENGTHH , PLENGTHH_B ) +CALL NPROMIZE (NPROMA, MFMOIST , MFMOIST_B ) +CALL NPROMIZE (NPROMA, ZBL_DEPTH , ZBL_DEPTH_B ) +CALL NPROMIZE (NPROMA, ZSBL_DEPTH , ZSBL_DEPTH_B ) +CALL NPROMIZE (NPROMA, ZCEI , ZCEI_B ) CALL NPROMIZE (NPROMA, PTHM , PTHM_B ) CALL NPROMIZE (NPROMA, ZRM , ZRM_B ) CALL NPROMIZE (NPROMA, PRUS , PRUS_B ) CALL NPROMIZE (NPROMA, PRVS , PRVS_B ) CALL NPROMIZE (NPROMA, PRWS , PRWS_B ) CALL NPROMIZE (NPROMA, PRTHS , PRTHS_B ) -CALL NPROMIZE (NPROMA, PRTKES , PRTKES_B ) -CALL NPROMIZE (NPROMA, PRRS , PRRS_B ) -CALL NPROMIZE (NPROMA, PRSVS , PRSVS_B ) -CALL NPROMIZE (NPROMA, PSIGS , PSIGS_B ) +CALL NPROMIZE (NPROMA, ZRRS , ZRRS_B ) +CALL NPROMIZE (NPROMA, ZRSVS , ZRSVS_B ) +CALL NPROMIZE (NPROMA, PRTKES_OUT , PRTKES_OUT_B ) CALL NPROMIZE (NPROMA, PFLXZTHVMF , PFLXZTHVMF_B ) + +CALL NPROMIZE (NPROMA, ZBL_DEPTH_OUT , ZBL_DEPTH_OUT_B ) +CALL NPROMIZE (NPROMA, ZSBL_DEPTH_OUT , ZSBL_DEPTH_OUT_B ) CALL NPROMIZE (NPROMA, PTHM_OUT , PTHM_OUT_B ) CALL NPROMIZE (NPROMA, ZRM_OUT , ZRM_OUT_B ) CALL NPROMIZE (NPROMA, PRUS_OUT , PRUS_OUT_B ) CALL NPROMIZE (NPROMA, PRVS_OUT , PRVS_OUT_B ) CALL NPROMIZE (NPROMA, PRWS_OUT , PRWS_OUT_B ) CALL NPROMIZE (NPROMA, PRTHS_OUT , PRTHS_OUT_B ) -CALL NPROMIZE (NPROMA, PRTKES_OUT_OUT , PRTKES_OUT_OUT_B ) CALL NPROMIZE (NPROMA, ZRRS_OUT , ZRRS_OUT_B ) CALL NPROMIZE (NPROMA, ZRSVS_OUT , ZRSVS_OUT_B ) +CALL NPROMIZE (NPROMA, PRTKES_OUT_OUT , PRTKES_OUT_OUT_B ) CALL NPROMIZE (NPROMA, PSIGS_OUT , PSIGS_OUT_B ) CALL NPROMIZE (NPROMA, ZWTH_OUT , ZWTH_OUT_B ) CALL NPROMIZE (NPROMA, ZWRC_OUT , ZWRC_OUT_B ) diff --git a/src/testprogs/turb_mnh/main_turb.F90 b/src/testprogs/turb_mnh/main_turb.F90 index a080971f8..acb1b1165 100644 --- a/src/testprogs/turb_mnh/main_turb.F90 +++ b/src/testprogs/turb_mnh/main_turb.F90 @@ -24,7 +24,7 @@ INTEGER :: KLEV INTEGER :: KRR, KRRL, KRRI INTEGER :: KSV -!Inputs +!IN and INOUTS REAL, ALLOCATABLE :: ZDXX (:,:,:,:) REAL, ALLOCATABLE :: ZDYY (:,:,:,:) REAL, ALLOCATABLE :: ZDZZ (:,:,:,:) @@ -50,64 +50,66 @@ REAL, ALLOCATABLE :: PWM (:,:,:,:) REAL, ALLOCATABLE :: PTKEM (:,:,:,:) REAL, ALLOCATABLE :: ZSVM (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: PSRCM (:,:,:,:) +REAL, ALLOCATABLE :: PLENGTHM (:,:,:,:) +REAL, ALLOCATABLE :: PLENGTHH (:,:,:,:) +REAL, ALLOCATABLE :: MFMOIST (:,:,:,:) +REAL, ALLOCATABLE :: ZBL_DEPTH (:,:,:) +REAL, ALLOCATABLE :: ZSBL_DEPTH (:,:,:) +REAL, ALLOCATABLE :: ZCEI (:,:,:,:) REAL, ALLOCATABLE :: PTHM (:,:,:,:) REAL, ALLOCATABLE :: ZRM (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: PRUS (:,:,:,:) REAL, ALLOCATABLE :: PRVS (:,:,:,:) REAL, ALLOCATABLE :: PRWS (:,:,:,:) REAL, ALLOCATABLE :: PRTHS (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES (:,:,:,:) -REAL, ALLOCATABLE :: PRRS (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) -REAL, ALLOCATABLE :: PRSVS (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -REAL, ALLOCATABLE :: PSIGS (:,:,:,:) +REAL, ALLOCATABLE :: ZRRS (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) +REAL, ALLOCATABLE :: ZRSVS (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT (:,:,:,:) REAL, ALLOCATABLE :: PFLXZTHVMF (:,:,:,:) -REAL, ALLOCATABLE :: PLENGTHM (:,:,:,:) -REAL, ALLOCATABLE :: PLENGTHH (:,:,:,:) -REAL, ALLOCATABLE :: MFMOIST (:,:,:,:) -REAL, ALLOCATABLE :: ZBL_DEPTH (:,:,:) -REAL, ALLOCATABLE :: ZSBL_DEPTH (:,:,:) -REAL, ALLOCATABLE :: ZCEI (:,:,:,:) -!Outputs + +!OUT +REAL, ALLOCATABLE :: PSIGS (:,:,:,:) +REAL, ALLOCATABLE :: ZWTH (:,:,:,:) +REAL, ALLOCATABLE :: ZWRC (:,:,:,:) +REAL, ALLOCATABLE :: ZWSV (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PDP (:,:,:,:) +REAL, ALLOCATABLE :: PTP (:,:,:,:) +REAL, ALLOCATABLE :: PTDIFF (:,:,:,:) +REAL, ALLOCATABLE :: PTDISS (:,:,:,:) +REAL, ALLOCATABLE :: PEDR (:,:,:,:) +REAL, ALLOCATABLE :: PTPMF (:,:,:,:) +REAL, ALLOCATABLE :: PDRUS_TURB (:,:,:,:) +REAL, ALLOCATABLE :: PDRVS_TURB (:,:,:,:) +REAL, ALLOCATABLE :: PDRTHLS_TURB (:,:,:,:) +REAL, ALLOCATABLE :: PDRRTS_TURB (:,:,:,:) +REAL, ALLOCATABLE :: ZDRSVS_TURB (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) + +!Expected values +REAL, ALLOCATABLE :: ZBL_DEPTH_OUT (:,:,:) +REAL, ALLOCATABLE :: ZSBL_DEPTH_OUT (:,:,:) REAL, ALLOCATABLE :: PTHM_OUT (:,:,:,:) REAL, ALLOCATABLE :: ZRM_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: PRUS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRVS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRWS_OUT (:,:,:,:) REAL, ALLOCATABLE :: PRTHS_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PRTKES_OUT_OUT (:,:,:,:) -REAL, ALLOCATABLE :: ZRRS (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) REAL, ALLOCATABLE :: ZRRS_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KRR) -REAL, ALLOCATABLE :: ZRSVS (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: ZRSVS_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) +REAL, ALLOCATABLE :: PRTKES_OUT_OUT (:,:,:,:) REAL, ALLOCATABLE :: PSIGS_OUT (:,:,:,:) -REAL, ALLOCATABLE :: ZWTH (:,:,:,:) REAL, ALLOCATABLE :: ZWTH_OUT (:,:,:,:) -REAL, ALLOCATABLE :: ZWRC (:,:,:,:) REAL, ALLOCATABLE :: ZWRC_OUT (:,:,:,:) -REAL, ALLOCATABLE :: ZWSV (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: ZWSV_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) -REAL, ALLOCATABLE :: PDP (:,:,:,:) REAL, ALLOCATABLE :: PDP_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PTP (:,:,:,:) REAL, ALLOCATABLE :: PTP_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PTDIFF (:,:,:,:) REAL, ALLOCATABLE :: PTDIFF_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PTDISS (:,:,:,:) REAL, ALLOCATABLE :: PTDISS_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PEDR (:,:,:,:) REAL, ALLOCATABLE :: PEDR_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PTPMF (:,:,:,:) REAL, ALLOCATABLE :: PTPMF_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PDRUS_TURB (:,:,:,:) REAL, ALLOCATABLE :: PDRUS_TURB_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PDRVS_TURB (:,:,:,:) REAL, ALLOCATABLE :: PDRVS_TURB_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PDRTHLS_TURB (:,:,:,:) REAL, ALLOCATABLE :: PDRTHLS_TURB_OUT (:,:,:,:) -REAL, ALLOCATABLE :: PDRRTS_TURB (:,:,:,:) REAL, ALLOCATABLE :: PDRRTS_TURB_OUT (:,:,:,:) -REAL, ALLOCATABLE :: ZDRSVS_TURB (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) REAL, ALLOCATABLE :: ZDRSVS_TURB_OUT (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) INTEGER :: NPROMA, NGPBLKS, NFLEVG @@ -172,35 +174,42 @@ IF (LLBIND) THEN CALL LINUX_BIND_DUMP (IRANK, ISIZE) ENDIF -CALL GETDATA_TURB (NPROMA, NGPBLKS, NFLEVG, & - !Inputs - &ZDXX, ZDYY, ZDZZ, ZDZX, ZDZY, ZZZ, ZDIRCOSXW, ZDIRCOSYW, ZDIRCOSZW, & - &ZCOSSLOPE, ZSINSLOPE, PRHODJ, & - &PTHVREF, PSFTH, PSFRV, PSFU, PSFV, PSFSV, PPABSM, PUM, & - &PVM, PWM, PTKEM, ZSVM, PSRCM, PTHM, ZRM, PRUS, & - &PRVS, PRWS, PRTHS, PRTKES, PRRS, PRSVS, PSIGS, PFLXZTHVMF, & - &PLENGTHM, PLENGTHH, MFMOIST, ZBL_DEPTH, ZSBL_DEPTH, ZCEI, & - !Outputs - &PTHM_OUT, ZRM_OUT, PRUS_OUT, PRVS_OUT, PRWS_OUT, PRTHS_OUT, PRTKES_OUT, PRTKES_OUT_OUT, & - &ZRRS, ZRRS_OUT, ZRSVS, ZRSVS_OUT, PSIGS_OUT, ZWTH, ZWTH_OUT, ZWRC, ZWRC_OUT, & - &ZWSV, ZWSV_OUT, PDP, PDP_OUT, PTP, PTP_OUT, & - &PTDIFF, PTDIFF_OUT, PTDISS, PTDISS_OUT, PEDR, PEDR_OUT, PTPMF, PTPMF_OUT, & - &PDRUS_TURB, PDRUS_TURB_OUT, PDRVS_TURB, PDRVS_TURB_OUT, & - &PDRTHLS_TURB, PDRTHLS_TURB_OUT, PDRRTS_TURB, PDRRTS_TURB_OUT, ZDRSVS_TURB, ZDRSVS_TURB_OUT) - -KLEV = SIZE (PRRS, 3) -KRR = SIZE (PRRS, 4) -KRRL = 2 -KRRI = 3 -KSV = SIZE (PRSVS, 4) +CALL GETDATA_TURB (NPROMA, NGPBLKS, NFLEVG, KRR, KRRL, KRRI, KSV, KLEV, & + !IN and INOUT (allocation and values are needed for the call) + &ZDXX, ZDYY, ZDZZ, ZDZX, ZDZY, ZZZ, & + &ZDIRCOSXW, ZDIRCOSYW, ZDIRCOSZW, ZCOSSLOPE, ZSINSLOPE, & + &PRHODJ, PTHVREF, & + &PSFTH, PSFRV, PSFU, PSFV, PSFSV, & + &PPABSM, PUM, PVM, PWM, PTKEM, ZSVM, PSRCM, & + &PLENGTHM, PLENGTHH, MFMOIST, & + &ZBL_DEPTH, ZSBL_DEPTH, & + &ZCEI, & + &PTHM, ZRM, & + &PRUS, PRVS, PRWS, PRTHS, ZRRS, ZRSVS, PRTKES_OUT, & + &PFLXZTHVMF, & + !OUT only (needed to allocate the array to be passed to the subroutine) + &PSIGS, & + &ZWTH,ZWRC,ZWSV,PDP,PTP,PTDIFF,PTDISS, & + &PEDR,PTPMF, & + &PDRUS_TURB,PDRVS_TURB, & + &PDRTHLS_TURB,PDRRTS_TURB,ZDRSVS_TURB, & + !OUT and INOUT (expected values) + &ZBL_DEPTH_OUT, ZSBL_DEPTH_OUT, & + &PTHM_OUT, ZRM_OUT, & + &PRUS_OUT, PRVS_OUT, PRWS_OUT, PRTHS_OUT, ZRRS_OUT, ZRSVS_OUT, PRTKES_OUT_OUT, & + &PSIGS_OUT, & + &ZWTH_OUT, ZWRC_OUT, ZWSV_OUT, PDP_OUT, PTP_OUT, PTDIFF_OUT, PTDISS_OUT, & + &PEDR_OUT, PTPMF_OUT, & + &PDRUS_TURB_OUT, PDRVS_TURB_OUT, & + &PDRTHLS_TURB_OUT, PDRRTS_TURB_OUT, ZDRSVS_TURB_OUT) IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS IMI = 1 -HLBCX(:)='CYCL' -HLBCY(:)='CYCL' +HLBCX(:)='CYCLCYCL' +HLBCY(:)='CYCLCYCL' ISPLIT = 1 KSV_LGBEG = 0 KSV_LGEND = 0 @@ -221,6 +230,9 @@ ZCEI_MIN=0.0 ZCOEF_AMPL_SAT=0.0 ! PTSTEP = 25.0000000000000 +print*, 'OCOMPUTE_SRC=', OCOMPUTE_SRC +print*, 'KRR', KRR + CALL INIT_PHYEX () DO JRR=1, NBUDGET_RH @@ -246,8 +258,8 @@ D0%NKTB = 2 D0%NKTE = KLEV-1 D0%NIBC = 1 D0%NJBC = 1 -D0%NIEC = D%NIE -D0%NJEC = D%NJT +D0%NIEC = D0%NIE +D0%NJEC = D0%NJT ISTSZ = NPROMA * 20 * KLEV ALLOCATE (PSTACK (ISTSZ, NGPBLKS)) @@ -304,6 +316,8 @@ JBLK2 = (NGPBLKS * (ITID+1)) / NTID D%NIE = JLON D%NIJB = JLON D%NIJE = JLON + D%NIBC = JLON + D%NIEC = JLON #endif #ifdef USE_OPENMP @@ -326,21 +340,21 @@ CALL TURB (CST,CSTURB,TBUCONF,TURBN, D,& & OOCEAN,ODEEPOC, .FALSE., & & 'NONE',CMICRO, & & 2*PTSTEP,ZTFILE, & - & ZDXX,ZDYY,ZDZZ,ZDZX,ZDZY,ZZZ, & + & ZDXX(:,:,:,IBL),ZDYY(:,:,:,IBL),ZDZZ(:,:,:,IBL),ZDZX(:,:,:,IBL),ZDZY(:,:,:,IBL),ZZZ(:,:,:,IBL), & & ZDIRCOSXW,ZDIRCOSYW,ZDIRCOSZW,ZCOSSLOPE,ZSINSLOPE, & - & PRHODJ,PTHVREF, & - & PSFTH,PSFRV,PSFSV,PSFU,PSFV, & - & PPABSM,PUM,PVM,PWM,PTKEM,ZSVM,PSRCM, & - & PLENGTHM,PLENGTHH,MFMOIST, & - & ZBL_DEPTH,ZSBL_DEPTH, & - & ZCEI,ZCEI_MIN,ZCEI_MAX,ZCOEF_AMPL_SAT, & - & PTHM,ZRM, & - & PRUS,PRVS,PRWS,PRTHS,ZRRS,ZRSVS,PRTKES_OUT, & - & PSIGS, & - & PFLXZTHVMF,ZWTH,ZWRC,ZWSV,PDP,PTP,PTDIFF,PTDISS,& - & YLBUDGET, KBUDGETS=SIZE(YLBUDGET),PEDR=PEDR,PTPMF=PTPMF,& - & PDRUS_TURB=PDRUS_TURB,PDRVS_TURB=PDRVS_TURB, & - & PDRTHLS_TURB=PDRTHLS_TURB,PDRRTS_TURB=PDRRTS_TURB,PDRSVS_TURB=ZDRSVS_TURB) + & PRHODJ(:,:,:,IBL),PTHVREF(:,:,:,IBL), & + & PSFTH(:,:,IBL),PSFRV(:,:,IBL),PSFSV(:,:,:,IBL),PSFU(:,:,IBL),PSFV(:,:,IBL), & + & PPABSM(:,:,:,IBL),PUM(:,:,:,IBL),PVM(:,:,:,IBL),PWM(:,:,:,IBL),PTKEM(:,:,:,IBL),ZSVM(:,:,:,:,IBL),PSRCM(:,:,:,IBL), & + & PLENGTHM(:,:,:,IBL),PLENGTHH(:,:,:,IBL),MFMOIST(:,:,:,IBL), & + & ZBL_DEPTH(:,:,IBL),ZSBL_DEPTH(:,:,IBL), & + & ZCEI(:,:,:,IBL),ZCEI_MIN,ZCEI_MAX,ZCOEF_AMPL_SAT, & + & PTHM(:,:,:,IBL),ZRM(:,:,:,:,IBL), & + & PRUS(:,:,:,IBL),PRVS(:,:,:,IBL),PRWS(:,:,:,IBL),PRTHS(:,:,:,IBL),ZRRS(:,:,:,:,IBL),ZRSVS(:,:,:,:,IBL),PRTKES_OUT(:,:,:,IBL), & + & PSIGS(:,:,:,IBL), & + & PFLXZTHVMF(:,:,:,IBL),ZWTH(:,:,:,IBL),ZWRC(:,:,:,IBL),ZWSV(:,:,:,:,IBL),PDP(:,:,:,IBL),PTP(:,:,:,IBL),PTDIFF(:,:,:,IBL),PTDISS(:,:,:,IBL),& + & YLBUDGET, KBUDGETS=SIZE(YLBUDGET),PEDR=PEDR(:,:,:,IBL),PTPMF=PTPMF(:,:,:,IBL),& + & PDRUS_TURB=PDRUS_TURB(:,:,:,IBL),PDRVS_TURB=PDRVS_TURB(:,:,:,IBL), & + & PDRTHLS_TURB=PDRTHLS_TURB(:,:,:,IBL),PDRRTS_TURB=PDRRTS_TURB(:,:,:,IBL),PDRSVS_TURB=ZDRSVS_TURB(:,:,:,:,IBL)) #ifdef _OPENACC ENDDO @@ -384,6 +398,8 @@ IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN WRITE (CLTEXT, '("ZRRS JRR=",I3.3)') JRR CALL DIFF3 (CLTEXT, ZRRS_OUT (:,:,:,JRR,IBL), ZRRS (:,:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) ENDDO + CALL DIFF2 ("ZBL_DEPTH ", ZBL_DEPTH_OUT (:,:,IBL) , ZBL_DEPTH (:,:,IBL) , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) + CALL DIFF2 ("ZSBL_DEPTH ", ZSBL_DEPTH_OUT (:,:,IBL) , ZSBL_DEPTH (:,:,IBL) , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) CALL DIFF3 ("PTHM ", PTHM_OUT (:,:,:,IBL), PTHM (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) CALL DIFF3 ("PRUS ", PRUS_OUT (:,:,:,IBL), PRUS (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) CALL DIFF3 ("PRVS ", PRVS_OUT (:,:,:,IBL), PRVS (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF) -- GitLab