Skip to content
Snippets Groups Projects
getdata_turb_mod.F90 36.8 KiB
Newer Older
MODULE GETDATA_TURB_MOD

USE ARRAYS_MANIP, ONLY: SETUP, REPLICATE, NPROMIZE, INTERPOLATE, SET
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, &
                        &PHGRAD_B, PZS_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

INTEGER, PARAMETER :: IFILE = 77

INTEGER      :: KLON 
INTEGER      :: KIDIA  
INTEGER      :: KFDIA  
INTEGER      :: KLEV  
INTEGER      :: KRR, KRRL, KRRI
INTEGER      :: KSV
INTEGER      :: KDUM

LOGICAL :: LDVERBOSE

REAL, ALLOCATABLE   :: ZDXX_B             (:,:,:,:)
REAL, ALLOCATABLE   :: ZDYY_B             (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZZ_B             (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZX_B             (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZY_B             (:,:,:,:)
REAL, ALLOCATABLE   :: ZZZ_B              (:,:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSXW_B        (:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSYW_B        (:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSZW_B        (:,:,:)
REAL, ALLOCATABLE   :: ZCOSSLOPE_B        (:,:,:)
REAL, ALLOCATABLE   :: ZSINSLOPE_B        (:,:,:)
REAL, ALLOCATABLE   :: PRHODJ_B           (:,:,:,:)
REAL, ALLOCATABLE   :: PTHVREF_B          (:,:,:,:)
REAL, ALLOCATABLE   :: PSFTH_B            (:,:,:)
REAL, ALLOCATABLE   :: PSFRV_B            (:,:,:)
REAL, ALLOCATABLE   :: PSFU_B             (:,:,:)
REAL, ALLOCATABLE   :: PSFV_B             (:,:,:)
REAL, ALLOCATABLE   :: PSFSV_B            (:,:,:,:) !(KLON, 1, KSV)
REAL, ALLOCATABLE   :: PPABSM_B           (:,:,:,:)
REAL, ALLOCATABLE   :: PUM_B              (:,:,:,:)
REAL, ALLOCATABLE   :: PVM_B              (:,:,:,:)
REAL, ALLOCATABLE   :: PWM_B              (:,:,:,:)
REAL, ALLOCATABLE   :: PTKEM_B            (:,:,:,:)
REAL, ALLOCATABLE   :: ZSVM_B             (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
REAL, ALLOCATABLE   :: PSRCM_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             (:,:,:,:)
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       (:,:,:,:)
REAL, ALLOCATABLE   :: PHGRAD_B           (:,:,:,:,:) !(KLON,1,KLEV+2,KGRADIENTS)
REAL, ALLOCATABLE   :: PZS_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   :: ZRRS_OUT_B         (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
REAL, ALLOCATABLE   :: ZRSVS_OUT_B        (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) 
REAL, ALLOCATABLE   :: PRTKES_OUT_OUT_B   (:,:,:,:)
REAL, ALLOCATABLE   :: PSIGS_OUT_B        (:,:,:,:)
REAL, ALLOCATABLE   :: ZWTH_OUT_B         (:,:,:,:)
REAL, ALLOCATABLE   :: ZWRC_OUT_B         (:,:,:,:)
REAL, ALLOCATABLE   :: ZWSV_OUT_B         (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
REAL, ALLOCATABLE   :: PDP_OUT_B          (:,:,:,:)
REAL, ALLOCATABLE   :: PTP_OUT_B          (:,:,:,:)
REAL, ALLOCATABLE   :: PTDIFF_OUT_B       (:,:,:,:)
REAL, ALLOCATABLE   :: PTDISS_OUT_B       (:,:,:,:)
REAL, ALLOCATABLE   :: PEDR_OUT_B         (:,:,:,:)
REAL, ALLOCATABLE   :: PTPMF_OUT_B        (:,:,:,:)
REAL, ALLOCATABLE   :: PDRUS_TURB_OUT_B   (:,:,:,:)
REAL, ALLOCATABLE   :: PDRVS_TURB_OUT_B   (:,:,:,:)
REAL, ALLOCATABLE   :: PDRTHLS_TURB_OUT_B (:,:,:,:)
REAL, ALLOCATABLE   :: PDRRTS_TURB_OUT_B  (:,:,:,:)
REAL, ALLOCATABLE   :: ZDRSVS_TURB_OUT_B  (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)

REAL, ALLOCATABLE   :: ZDXX               (:,:,:,:)
REAL, ALLOCATABLE   :: ZDYY               (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZZ               (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZX               (:,:,:,:)
REAL, ALLOCATABLE   :: ZDZY               (:,:,:,:)
REAL, ALLOCATABLE   :: ZZZ                (:,:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSXW          (:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSYW          (:,:,:)
REAL, ALLOCATABLE   :: ZDIRCOSZW          (:,:,:)
REAL, ALLOCATABLE   :: ZCOSSLOPE          (:,:,:)
REAL, ALLOCATABLE   :: ZSINSLOPE          (:,:,:)
REAL, ALLOCATABLE   :: PRHODJ             (:,:,:,:)
REAL, ALLOCATABLE   :: PTHVREF            (:,:,:,:)
REAL, ALLOCATABLE   :: PSFTH              (:,:,:)
REAL, ALLOCATABLE   :: PSFRV              (:,:,:)
REAL, ALLOCATABLE   :: PSFU               (:,:,:)
REAL, ALLOCATABLE   :: PSFV               (:,:,:)
REAL, ALLOCATABLE   :: PSFSV              (:,:,:,:) !(KLON, 1, KSV)
REAL, ALLOCATABLE   :: PPABSM             (:,:,:,:)
REAL, ALLOCATABLE   :: PUM                (:,:,:,:)
REAL, ALLOCATABLE   :: PVM                (:,:,:,:)
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   :: ZRRS               (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
REAL, ALLOCATABLE   :: ZRSVS              (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
REAL, ALLOCATABLE   :: PRTKES_OUT         (:,:,:,:)
REAL, ALLOCATABLE   :: PFLXZTHVMF         (:,:,:,:)
!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   :: 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           (:,:,:,:)
REAL, ALLOCATABLE   :: ZWSV_OUT           (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
REAL, ALLOCATABLE   :: PDP_OUT            (:,:,:,:)
REAL, ALLOCATABLE   :: PTP_OUT            (:,:,:,:)
REAL, ALLOCATABLE   :: PTDIFF_OUT         (:,:,:,:)
REAL, ALLOCATABLE   :: PTDISS_OUT         (:,:,:,:)
REAL, ALLOCATABLE   :: PEDR_OUT           (:,:,:,:)
REAL, ALLOCATABLE   :: PTPMF_OUT          (:,:,:,:)
REAL, ALLOCATABLE   :: PDRUS_TURB_OUT     (:,:,:,:)
REAL, ALLOCATABLE   :: PDRVS_TURB_OUT     (:,:,:,:)
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
CHARACTER(LEN=32) :: CLFILE

CALL SETUP()

NGPTOT = NPROMA * NGPBLKS

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)

IF (NFLEVG < 0) NFLEVG = KLEV

ALLOCATE (ZDXX_B             (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDYY_B             (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDZZ_B             (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDZX_B             (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDZY_B             (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZZZ_B              (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDIRCOSXW_B        (NPROMA,1,NGPBLKS))
ALLOCATE (ZDIRCOSYW_B        (NPROMA,1,NGPBLKS))
ALLOCATE (ZDIRCOSZW_B        (NPROMA,1,NGPBLKS))
ALLOCATE (ZCOSSLOPE_B        (NPROMA,1,NGPBLKS))
ALLOCATE (ZSINSLOPE_B        (NPROMA,1,NGPBLKS))
ALLOCATE (PRHODJ_B           (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PTHVREF_B          (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PSFTH_B            (NPROMA,1,NGPBLKS))
ALLOCATE (PSFRV_B            (NPROMA,1,NGPBLKS))
ALLOCATE (PSFU_B             (NPROMA,1,NGPBLKS))
ALLOCATE (PSFV_B             (NPROMA,1,NGPBLKS))
ALLOCATE (PSFSV_B            (NPROMA,1,KSV,NGPBLKS))
ALLOCATE (PPABSM_B           (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PUM_B              (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PVM_B              (NPROMA,1,NFLEVG,NGPBLKS))
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 (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 (PHGRAD_B           (NPROMA,1,NFLEVG,0,NGPBLKS))
ALLOCATE (PZS_B              (NPROMA,1,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 (ZRRS_OUT_B         (NPROMA,1,NFLEVG,KRR,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_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZWRC_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZWSV_OUT_B         (NPROMA,1,NFLEVG,KSV,NGPBLKS))
ALLOCATE (PDP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PTP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PTDIFF_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PTDISS_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PEDR_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PTPMF_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PDRUS_TURB_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PDRVS_TURB_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PDRTHLS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (PDRRTS_TURB_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
ALLOCATE (ZDRSVS_TURB_OUT_B  (NPROMA,1,NFLEVG,KSV,NGPBLKS))

CALL SET (ZDXX_B             )
CALL SET (ZDYY_B             )
CALL SET (ZDZZ_B             )
CALL SET (ZDZX_B             )
CALL SET (ZDZY_B             )
CALL SET (ZZZ_B              )
CALL SET (ZDIRCOSXW_B        )
CALL SET (ZDIRCOSYW_B        )
CALL SET (ZDIRCOSZW_B        )
CALL SET (ZCOSSLOPE_B        )
CALL SET (ZSINSLOPE_B        )
CALL SET (PRHODJ_B           )
CALL SET (PTHVREF_B          )
CALL SET (PSFTH_B            )
CALL SET (PSFRV_B            )
CALL SET (PSFU_B             )
CALL SET (PSFV_B             )
CALL SET (PSFSV_B            )
CALL SET (PPABSM_B           )
CALL SET (PUM_B              )
CALL SET (PVM_B              )
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 (ZRRS_B             )
CALL SET (ZRSVS_B            )
CALL SET (PRTKES_OUT_B       )
CALL SET (PFLXZTHVMF_B       )
CALL SET (PHGRAD_B           )
CALL SET (PZS_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 (ZRRS_OUT_B         )
CALL SET (ZRSVS_OUT_B        )
CALL SET (PRTKES_OUT_OUT_B   )
CALL SET (PSIGS_OUT_B        )
CALL SET (ZWTH_OUT_B         )
CALL SET (ZWRC_OUT_B         )
CALL SET (ZWSV_OUT_B         )
CALL SET (PDP_OUT_B          )
CALL SET (PTP_OUT_B          )
CALL SET (PTDIFF_OUT_B       )
CALL SET (PTDISS_OUT_B       )
CALL SET (PEDR_OUT_B         )
CALL SET (PTPMF_OUT_B        )
CALL SET (PDRUS_TURB_OUT_B   )
CALL SET (PDRVS_TURB_OUT_B   )
CALL SET (PDRTHLS_TURB_OUT_B )
CALL SET (PDRRTS_TURB_OUT_B  )
CALL SET (ZDRSVS_TURB_OUT_B  )

IOFF = 0
IBL = 0
LLEXIST = .TRUE.

DO WHILE(LLEXIST)
  IBL = IBL + 1
  WRITE (CLFILE, '("data/",I8.8,".dat")') IBL

  INQUIRE (FILE=TRIM (CLFILE), EXIST=LLEXIST)

  IF (LDVERBOSE) PRINT *, TRIM (CLFILE)

  IF (.NOT. LLEXIST) EXIT

  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))
    ALLOCATE (ZDYY               (NGPTOT,1,KLEV,1))
    ALLOCATE (ZDZZ               (NGPTOT,1,KLEV,1))
    ALLOCATE (ZDZX               (NGPTOT,1,KLEV,1))
    ALLOCATE (ZDZY               (NGPTOT,1,KLEV,1))
    ALLOCATE (ZZZ                (NGPTOT,1,KLEV,1))
    ALLOCATE (ZDIRCOSXW          (NGPTOT,1,1))
    ALLOCATE (ZDIRCOSYW          (NGPTOT,1,1))
    ALLOCATE (ZDIRCOSZW          (NGPTOT,1,1))
    ALLOCATE (ZCOSSLOPE          (NGPTOT,1,1))
    ALLOCATE (ZSINSLOPE          (NGPTOT,1,1))
    ALLOCATE (PRHODJ             (NGPTOT,1,KLEV,1))
    ALLOCATE (PTHVREF            (NGPTOT,1,KLEV,1))
    ALLOCATE (PSFTH              (NGPTOT,1,1))
    ALLOCATE (PSFRV              (NGPTOT,1,1))
    ALLOCATE (PSFU               (NGPTOT,1,1))
    ALLOCATE (PSFV               (NGPTOT,1,1))
    ALLOCATE (PSFSV              (NGPTOT,1,KSV,1))
    ALLOCATE (PPABSM             (NGPTOT,1,KLEV,1))
    ALLOCATE (PUM                (NGPTOT,1,KLEV,1))
    ALLOCATE (PVM                (NGPTOT,1,KLEV,1))
    ALLOCATE (PWM                (NGPTOT,1,KLEV,1))
    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 (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 (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))
    ALLOCATE (ZWSV_OUT           (NGPTOT,1,KLEV,KSV,1))
    ALLOCATE (PDP_OUT            (NGPTOT,1,KLEV,1))
    ALLOCATE (PTP_OUT            (NGPTOT,1,KLEV,1))
    ALLOCATE (PTDIFF_OUT         (NGPTOT,1,KLEV,1))
    ALLOCATE (PTDISS_OUT         (NGPTOT,1,KLEV,1))
    ALLOCATE (PEDR_OUT           (NGPTOT,1,KLEV,1))
    ALLOCATE (PTPMF_OUT          (NGPTOT,1,KLEV,1))
    ALLOCATE (PDRUS_TURB_OUT     (NGPTOT,1,KLEV,1))
    ALLOCATE (PDRVS_TURB_OUT     (NGPTOT,1,KLEV,1))
    ALLOCATE (PDRTHLS_TURB_OUT   (NGPTOT,1,KLEV,1))
    ALLOCATE (PDRRTS_TURB_OUT    (NGPTOT,1,KLEV,1))
    ALLOCATE (ZDRSVS_TURB_OUT    (NGPTOT,1,KLEV,KSV,1))
  ENDIF

  IF (IOFF+KLON > NGPTOT) THEN
    EXIT
  ENDIF

  READ(IFILE) ZDXX               (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZDYY               (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZDZZ               (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZDZX               (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZDZY               (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZZZ                (IOFF+1:IOFF+KLON,:,:,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)
  READ(IFILE) PTHVREF            (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PSFTH              (IOFF+1:IOFF+KLON,:,1)
  READ(IFILE) PSFRV              (IOFF+1:IOFF+KLON,:,1)
  READ(IFILE) PSFU               (IOFF+1:IOFF+KLON,:,1)
  READ(IFILE) PSFV               (IOFF+1:IOFF+KLON,:,1)
  READ(IFILE) PSFSV              (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PPABSM             (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PUM                (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PVM                (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PWM                (IOFF+1:IOFF+KLON,:,:,1)
  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) 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) 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)
  READ(IFILE) ZWSV_OUT           (IOFF+1:IOFF+KLON,:,:,:,1)
  READ(IFILE) PDP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PTP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PTDIFF_OUT         (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PTDISS_OUT         (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PEDR_OUT           (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PTPMF_OUT          (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PDRUS_TURB_OUT     (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PDRVS_TURB_OUT     (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PDRTHLS_TURB_OUT   (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) PDRRTS_TURB_OUT    (IOFF+1:IOFF+KLON,:,:,1)
  READ(IFILE) ZDRSVS_TURB_OUT    (IOFF+1:IOFF+KLON,:,:,:,1)
  
  CLOSE (IFILE)

  IOFF = IOFF + KLON

ENDDO

IF (NFLEVG /= KLEV) THEN
  CALL INTERPOLATE (NFLEVG, IOFF, ZDXX               )
  CALL INTERPOLATE (NFLEVG, IOFF, ZDYY               )
  CALL INTERPOLATE (NFLEVG, IOFF, ZDZZ               )
  CALL INTERPOLATE (NFLEVG, IOFF, ZDZX               )
  CALL INTERPOLATE (NFLEVG, IOFF, ZDZY               )
  CALL INTERPOLATE (NFLEVG, IOFF, ZZZ                )
!  CALL INTERPOLATE (NFLEVG, IOFF, ZDIRCOSXW_B        )
!  CALL INTERPOLATE (NFLEVG, IOFF, ZDIRCOSYW_B        )
!  CALL INTERPOLATE (NFLEVG, IOFF, ZDIRCOSZW_B        )
!  CALL INTERPOLATE (NFLEVG, IOFF, ZCOSSLOPE          )
!  CALL INTERPOLATE (NFLEVG, IOFF, ZSINSLOPE          )
  CALL INTERPOLATE (NFLEVG, IOFF, PRHODJ             )
  CALL INTERPOLATE (NFLEVG, IOFF, PTHVREF            )
!  CALL INTERPOLATE (NFLEVG, IOFF, PSFTH              )
!  CALL INTERPOLATE (NFLEVG, IOFF, PSFRV              )
!  CALL INTERPOLATE (NFLEVG, IOFF, PSFU               )
!  CALL INTERPOLATE (NFLEVG, IOFF, PSFV               )
!  CALL INTERPOLATE (NFLEVG, IOFF, PSFSV              )
  CALL INTERPOLATE (NFLEVG, IOFF, PPABSM             )
  CALL INTERPOLATE (NFLEVG, IOFF, PUM                )
  CALL INTERPOLATE (NFLEVG, IOFF, PVM                )
  CALL INTERPOLATE (NFLEVG, IOFF, PWM                )
  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, 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, 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           )
  CALL INTERPOLATE (NFLEVG, IOFF, ZWSV_OUT           )
  CALL INTERPOLATE (NFLEVG, IOFF, PDP_OUT            )
  CALL INTERPOLATE (NFLEVG, IOFF, PTP_OUT            )
  CALL INTERPOLATE (NFLEVG, IOFF, PTDIFF_OUT         )
  CALL INTERPOLATE (NFLEVG, IOFF, PTDISS_OUT         )
  CALL INTERPOLATE (NFLEVG, IOFF, PEDR_OUT           )
  CALL INTERPOLATE (NFLEVG, IOFF, PTPMF_OUT          )
  CALL INTERPOLATE (NFLEVG, IOFF, PDRUS_TURB_OUT     )
  CALL INTERPOLATE (NFLEVG, IOFF, PDRVS_TURB_OUT     )
  CALL INTERPOLATE (NFLEVG, IOFF, PDRTHLS_TURB_OUT   )
  CALL INTERPOLATE (NFLEVG, IOFF, PDRRTS_TURB_OUT    )
  CALL INTERPOLATE (NFLEVG, IOFF, ZDRSVS_TURB_OUT    )

ENDIF

CALL REPLICATE (IOFF, ZDXX               (:,:,:,1))
CALL REPLICATE (IOFF, ZDYY               (:,:,:,1))
CALL REPLICATE (IOFF, ZDZZ               (:,:,:,1))
CALL REPLICATE (IOFF, ZDZX               (:,:,:,1))
CALL REPLICATE (IOFF, ZDZY               (:,:,:,1))
CALL REPLICATE (IOFF, ZZZ                (:,:,:,1))
CALL REPLICATE (IOFF, ZDIRCOSXW          (:,:,1))
CALL REPLICATE (IOFF, ZDIRCOSYW          (:,:,1))
CALL REPLICATE (IOFF, ZDIRCOSZW          (:,:,1))
CALL REPLICATE (IOFF, ZCOSSLOPE          (:,:,1))
CALL REPLICATE (IOFF, ZSINSLOPE          (:,:,1))
CALL REPLICATE (IOFF, PRHODJ             (:,:,:,1))
CALL REPLICATE (IOFF, PTHVREF            (:,:,:,1))
CALL REPLICATE (IOFF, PSFTH              (:,:,1))
CALL REPLICATE (IOFF, PSFRV              (:,:,1))
CALL REPLICATE (IOFF, PSFU               (:,:,1))
CALL REPLICATE (IOFF, PSFV               (:,:,1))
CALL REPLICATE (IOFF, PSFSV              (:,:,:,1))
CALL REPLICATE (IOFF, PPABSM             (:,:,:,1))
CALL REPLICATE (IOFF, PUM                (:,:,:,1))
CALL REPLICATE (IOFF, PVM                (:,:,:,1))
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, 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, 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))
CALL REPLICATE (IOFF, ZWSV_OUT           (:,:,:,:,1))
CALL REPLICATE (IOFF, PDP_OUT            (:,:,:,1))
CALL REPLICATE (IOFF, PTP_OUT            (:,:,:,1))
CALL REPLICATE (IOFF, PTDIFF_OUT         (:,:,:,1))
CALL REPLICATE (IOFF, PTDISS_OUT         (:,:,:,1))
CALL REPLICATE (IOFF, PEDR_OUT           (:,:,:,1))
CALL REPLICATE (IOFF, PTPMF_OUT          (:,:,:,1))
CALL REPLICATE (IOFF, PDRUS_TURB_OUT     (:,:,:,1))
CALL REPLICATE (IOFF, PDRVS_TURB_OUT     (:,:,:,1))
CALL REPLICATE (IOFF, PDRTHLS_TURB_OUT   (:,:,:,1))
CALL REPLICATE (IOFF, PDRRTS_TURB_OUT    (:,:,:,1))
CALL REPLICATE (IOFF, ZDRSVS_TURB_OUT    (:,:,:,:,1))

CALL NPROMIZE (NPROMA, ZDXX               , ZDXX_B             )
CALL NPROMIZE (NPROMA, ZDYY               , ZDYY_B             )
CALL NPROMIZE (NPROMA, ZDZZ               , ZDZZ_B             )
CALL NPROMIZE (NPROMA, ZDZX               , ZDZX_B             )
CALL NPROMIZE (NPROMA, ZDZY               , ZDZY_B             )
CALL NPROMIZE (NPROMA, ZZZ                , ZZZ_B              )
CALL NPROMIZE (NPROMA, ZDIRCOSXW          , ZDIRCOSXW_B        )
CALL NPROMIZE (NPROMA, ZDIRCOSYW          , ZDIRCOSYW_B        )
CALL NPROMIZE (NPROMA, ZDIRCOSZW          , ZDIRCOSZW_B        )
CALL NPROMIZE (NPROMA, ZCOSSLOPE          , ZCOSSLOPE_B        )
CALL NPROMIZE (NPROMA, ZSINSLOPE          , ZSINSLOPE_B        )
CALL NPROMIZE (NPROMA, PRHODJ             , PRHODJ_B           )
CALL NPROMIZE (NPROMA, PTHVREF            , PTHVREF_B          )
CALL NPROMIZE (NPROMA, PSFTH              , PSFTH_B            )
CALL NPROMIZE (NPROMA, PSFRV              , PSFRV_B            )
CALL NPROMIZE (NPROMA, PSFU               , PSFU_B             )
CALL NPROMIZE (NPROMA, PSFV               , PSFV_B             )
CALL NPROMIZE (NPROMA, PSFSV              , PSFSV_B            )
CALL NPROMIZE (NPROMA, PPABSM             , PPABSM_B           )
CALL NPROMIZE (NPROMA, PUM                , PUM_B              )
CALL NPROMIZE (NPROMA, PVM                , PVM_B              )
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, 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, 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         )
CALL NPROMIZE (NPROMA, ZWSV_OUT           , ZWSV_OUT_B         )
CALL NPROMIZE (NPROMA, PDP_OUT            , PDP_OUT_B          )
CALL NPROMIZE (NPROMA, PTP_OUT            , PTP_OUT_B          )
CALL NPROMIZE (NPROMA, PTDIFF_OUT         , PTDIFF_OUT_B       )
CALL NPROMIZE (NPROMA, PTDISS_OUT         , PTDISS_OUT_B       )
CALL NPROMIZE (NPROMA, PEDR_OUT           , PEDR_OUT_B         )
CALL NPROMIZE (NPROMA, PTPMF_OUT          , PTPMF_OUT_B        )
CALL NPROMIZE (NPROMA, PDRUS_TURB_OUT     , PDRUS_TURB_OUT_B   )
CALL NPROMIZE (NPROMA, PDRVS_TURB_OUT     , PDRVS_TURB_OUT_B   )
CALL NPROMIZE (NPROMA, PDRTHLS_TURB_OUT   , PDRTHLS_TURB_OUT_B )
CALL NPROMIZE (NPROMA, PDRRTS_TURB_OUT    , PDRRTS_TURB_OUT_B  )
CALL NPROMIZE (NPROMA, ZDRSVS_TURB_OUT    , ZDRSVS_TURB_OUT_B  )

END SUBROUTINE 

END  MODULE