Skip to content
Snippets Groups Projects
getdata_rain_ice_mod.F90 15.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • MODULE GETDATA_RAIN_ICE_MOD
    
    
    USE ARRAYS_MANIP, ONLY: SETUP, XNAN, REPLICATE, NPROMIZE, INTERPOLATE, SET
    
    
    CONTAINS
    
    SUBROUTINE GETDATA_RAIN_ICE (NPROMA, NGPBLKS, NFLEVG, LLMICRO_B, PEXNREF_B, PDZZ_B, PRHODJ_B, PRHODREF_B, &
      &PEXNREF2_B, PPABSM_B, PCIT_B, PCLDFR_B, PHLC_HRC_B, PHLC_HCF_B, PHLI_HRI_B, PHLI_HCF_B, PTHT_B, PRT_B, PTHS_B, &
      &PRS_B, PSIGS_B, PSEA_B, PTOWN_B, PCIT_OUT_B, PRS_OUT_B, ZINPRC_B, ZINPRC_OUT_B, PINPRR_B, PINPRR_OUT_B, PEVAP_B, PEVAP_OUT_B, &
      &PINPRS_B, PINPRS_OUT_B, PINPRG_B, PINPRG_OUT_B, ZINDEP_B, ZINDEP_OUT_B, ZRAINFR_B, ZRAINFR_OUT_B, PFPR_B, PFPR_OUT_B, LDVERBOSE)
    
    IMPLICIT NONE
    
    INTEGER, PARAMETER :: IFILE = 77
    
    INTEGER      :: KLON 
    INTEGER      :: KIDIA  
    INTEGER      :: KFDIA  
    INTEGER      :: KLEV  
    INTEGER      :: KRR  
    INTEGER      :: KDUM
    
    LOGICAL :: LDVERBOSE
    
    LOGICAL, ALLOCATABLE:: LLMICRO_B      (:,:,:,:)
    REAL, ALLOCATABLE   :: PEXNREF_B      (:,:,:,:)
    REAL, ALLOCATABLE   :: PDZZ_B         (:,:,:,:)
    REAL, ALLOCATABLE   :: PRHODJ_B       (:,:,:,:)   
    REAL, ALLOCATABLE   :: PRHODREF_B     (:,:,:,:)   
    REAL, ALLOCATABLE   :: PEXNREF2_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PPABSM_B       (:,:,:,:)
    REAL, ALLOCATABLE   :: PCIT_B         (:,:,:,:)
    REAL, ALLOCATABLE   :: PCLDFR_B       (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLC_HRC_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLC_HCF_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLI_HRI_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLI_HCF_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PTHT_B         (:,:,:,:)
    REAL, ALLOCATABLE   :: PRT_B          (:,:,:,:,:)
    REAL, ALLOCATABLE   :: PTHS_B         (:,:,:,:)
    REAL, ALLOCATABLE   :: PRS_B          (:,:,:,:,:)
    REAL, ALLOCATABLE   :: PSIGS_B        (:,:,:,:)
    REAL, ALLOCATABLE   :: PSEA_B         (:,:,:)
    REAL, ALLOCATABLE   :: PTOWN_B        (:,:,:)
    REAL, ALLOCATABLE   :: PCIT_OUT_B     (:,:,:,:)
    REAL, ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:,:)
    REAL, ALLOCATABLE   :: ZINPRC_B       (:,:,:)
    REAL, ALLOCATABLE   :: ZINPRC_OUT_B   (:,:,:)
    REAL, ALLOCATABLE   :: PINPRR_B       (:,:,:)
    REAL, ALLOCATABLE   :: PINPRR_OUT_B   (:,:,:)
    REAL, ALLOCATABLE   :: PEVAP_B        (:,:,:,:)
    REAL, ALLOCATABLE   :: PEVAP_OUT_B    (:,:,:,:)
    REAL, ALLOCATABLE   :: PINPRS_B       (:,:,:)
    REAL, ALLOCATABLE   :: PINPRS_OUT_B   (:,:,:)
    REAL, ALLOCATABLE   :: PINPRG_B       (:,:,:)
    REAL, ALLOCATABLE   :: PINPRG_OUT_B   (:,:,:)
    REAL, ALLOCATABLE   :: ZINDEP_B       (:,:,:)
    REAL, ALLOCATABLE   :: ZINDEP_OUT_B   (:,:,:)
    REAL, ALLOCATABLE   :: ZRAINFR_B      (:,:,:,:)
    REAL, ALLOCATABLE   :: ZRAINFR_OUT_B  (:,:,:,:)
    REAL, ALLOCATABLE   :: PFPR_B         (:,:,:,:,:)
    REAL, ALLOCATABLE   :: PFPR_OUT_B     (:,:,:,:,:)
    
    LOGICAL, ALLOCATABLE   :: LLMICRO        (:,:,:,:)
    REAL, ALLOCATABLE   :: PEXNREF        (:,:,:,:)
    REAL, ALLOCATABLE   :: PDZZ           (:,:,:,:)
    REAL, ALLOCATABLE   :: PRHODJ         (:,:,:,:)   
    REAL, ALLOCATABLE   :: PRHODREF       (:,:,:,:)   
    REAL, ALLOCATABLE   :: PEXNREF2       (:,:,:,:)
    REAL, ALLOCATABLE   :: PPABSM         (:,:,:,:)   
    REAL, ALLOCATABLE   :: PCIT           (:,:,:,:)
    REAL, ALLOCATABLE   :: PCLDFR         (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLC_HRC       (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLC_HCF       (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLI_HRI       (:,:,:,:)
    REAL, ALLOCATABLE   :: PHLI_HCF       (:,:,:,:)
    REAL, ALLOCATABLE   :: PTHT           (:,:,:,:)
    REAL, ALLOCATABLE   :: PRT            (:,:,:,:,:)
    REAL, ALLOCATABLE   :: PTHS           (:,:,:,:)
    REAL, ALLOCATABLE   :: PRS            (:,:,:,:,:)
    REAL, ALLOCATABLE   :: PSIGS          (:,:,:,:)
    REAL, ALLOCATABLE   :: PSEA           (:,:,:)
    REAL, ALLOCATABLE   :: PTOWN          (:,:,:)
    REAL, ALLOCATABLE   :: PCIT_OUT       (:,:,:,:)
    REAL, ALLOCATABLE   :: PRS_OUT        (:,:,:,:,:)
    REAL, ALLOCATABLE   :: ZINPRC_OUT     (:,:,:)
    REAL, ALLOCATABLE   :: PINPRR_OUT     (:,:,:)
    REAL, ALLOCATABLE   :: PEVAP_OUT      (:,:,:,:)
    REAL, ALLOCATABLE   :: PINPRS_OUT     (:,:,:)
    REAL, ALLOCATABLE   :: PINPRG_OUT     (:,:,:)
    REAL, ALLOCATABLE   :: ZINDEP_OUT     (:,:,:)
    REAL, ALLOCATABLE   :: ZRAINFR_OUT    (:,:,:,:)
    REAL, ALLOCATABLE   :: PFPR_OUT       (:,:,:,:,:)
    
    
    INTEGER :: IPROMA, ISIZE
    INTEGER :: NGPTOT, NPROMA, NGPBLKS, NFLEVG
    INTEGER :: IOFF, IBL
    LOGICAL :: LLEXIST
    CHARACTER(LEN=32) :: CLFILE
    
    
    KRR=6
    NGPTOT = NPROMA * NGPBLKS
    
    IBL = 1
    
    WRITE (CLFILE, '("data/",I8.8,".dat")') IBL
    
    OPEN (IFILE, FILE=TRIM (CLFILE), FORM='UNFORMATTED') 
    READ (IFILE) IPROMA, ISIZE
    READ (IFILE) KLON, KDUM, KLEV, KRR
    CLOSE (IFILE)
    
    IF (NFLEVG < 0) NFLEVG = KLEV
    
    ALLOCATE (LLMICRO_B       (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PEXNREF_B       (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PDZZ_B          (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PRHODJ_B        (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PRHODREF_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PEXNREF2_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PPABSM_B        (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PCIT_B          (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PCLDFR_B        (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PHLC_HRC_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PHLC_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PHLI_HRI_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PHLI_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PTHT_B          (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PRT_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
    ALLOCATE (PTHS_B          (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PRS_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
    ALLOCATE (PSIGS_B         (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PSEA_B          (NPROMA,1,NGPBLKS))
    ALLOCATE (PTOWN_B         (NPROMA,1,NGPBLKS))
    ALLOCATE (PCIT_OUT_B      (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PRS_OUT_B       (NPROMA,1,NFLEVG,KRR,NGPBLKS))
    ALLOCATE (ZINPRC_B        (NPROMA,1,NGPBLKS))
    ALLOCATE (ZINPRC_OUT_B    (NPROMA,1,NGPBLKS))
    ALLOCATE (PINPRR_B        (NPROMA,1,NGPBLKS))
    ALLOCATE (PINPRR_OUT_B    (NPROMA,1,NGPBLKS))
    ALLOCATE (PEVAP_B         (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PEVAP_OUT_B     (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PINPRS_B        (NPROMA,1,NGPBLKS))
    ALLOCATE (PINPRS_OUT_B    (NPROMA,1,NGPBLKS))
    ALLOCATE (PINPRG_B        (NPROMA,1,NGPBLKS))
    ALLOCATE (PINPRG_OUT_B    (NPROMA,1,NGPBLKS))
    ALLOCATE (ZINDEP_B        (NPROMA,1,NGPBLKS))
    ALLOCATE (ZINDEP_OUT_B    (NPROMA,1,NGPBLKS))
    ALLOCATE (ZRAINFR_B       (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (ZRAINFR_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
    ALLOCATE (PFPR_B          (NPROMA,1,NFLEVG,KRR,NGPBLKS))
    ALLOCATE (PFPR_OUT_B      (NPROMA,1,NFLEVG,KRR,NGPBLKS))
    
    
    !CALL SET (LLMICRO_B     )
    CALL SET (PEXNREF_B     )
    CALL SET (PDZZ_B        )
    CALL SET (PRHODJ_B      )
    CALL SET (PRHODREF_B    )
    CALL SET (PEXNREF2_B    )
    CALL SET (PPABSM_B      )
    CALL SET (PCIT_B        )
    CALL SET (PCLDFR_B      )
    CALL SET (PHLC_HRC_B    )
    CALL SET (PHLC_HCF_B    )
    CALL SET (PHLI_HRI_B    )
    CALL SET (PHLI_HCF_B    )
    CALL SET (PTHT_B        )
    CALL SET (PRT_B         )
    CALL SET (PTHS_B        )
    CALL SET (PRS_B         )
    CALL SET (PSIGS_B       )
    CALL SET (PSEA_B        )
    CALL SET (PTOWN_B       )
    CALL SET (PCIT_OUT_B    )
    CALL SET (PRS_OUT_B     )
    CALL SET (ZINPRC_OUT_B  )
    CALL SET (PINPRR_OUT_B  )
    CALL SET (PEVAP_OUT_B   )
    CALL SET (PINPRS_OUT_B  )
    CALL SET (PINPRG_OUT_B  )
    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
    
    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) IPROMA, ISIZE
      READ (IFILE) KLON, KDUM, KLEV, KRR
    
      IF (IBL == 1) THEN
        ALLOCATE (LLMICRO      (NGPTOT,1,KLEV,1))
        ALLOCATE (PEXNREF      (NGPTOT,1,KLEV,1))
        ALLOCATE (PDZZ         (NGPTOT,1,KLEV,1))
        ALLOCATE (PRHODJ       (NGPTOT,1,KLEV,1))
        ALLOCATE (PRHODREF     (NGPTOT,1,KLEV,1))
        ALLOCATE (PEXNREF2     (NGPTOT,1,KLEV,1))
        ALLOCATE (PPABSM       (NGPTOT,1,KLEV,1))
        ALLOCATE (PCIT         (NGPTOT,1,KLEV,1))
        ALLOCATE (PCLDFR       (NGPTOT,1,KLEV,1))
        ALLOCATE (PHLC_HRC     (NGPTOT,1,KLEV,1))
        ALLOCATE (PHLC_HCF     (NGPTOT,1,KLEV,1))
        ALLOCATE (PHLI_HRI     (NGPTOT,1,KLEV,1))
        ALLOCATE (PHLI_HCF     (NGPTOT,1,KLEV,1))
        ALLOCATE (PTHT         (NGPTOT,1,KLEV,1))
        ALLOCATE (PRT          (NGPTOT,1,KLEV,KRR,1))
        ALLOCATE (PTHS         (NGPTOT,1,KLEV,1))
        ALLOCATE (PRS          (NGPTOT,1,KLEV,KRR,1))
        ALLOCATE (PSIGS        (NGPTOT,1,KLEV,1))
        ALLOCATE (PSEA         (NGPTOT,1,1))
        ALLOCATE (PTOWN        (NGPTOT,1,1))
        ALLOCATE (PCIT_OUT     (NGPTOT,1,KLEV,1))
        ALLOCATE (PRS_OUT      (NGPTOT,1,KLEV,KRR,1))
        ALLOCATE (ZINPRC_OUT   (NGPTOT,1,1))
        ALLOCATE (PINPRR_OUT   (NGPTOT,1,1))
        ALLOCATE (PEVAP_OUT    (NGPTOT,1,KLEV,1))
        ALLOCATE (PINPRS_OUT   (NGPTOT,1,1))
        ALLOCATE (PINPRG_OUT   (NGPTOT,1,1))
        ALLOCATE (ZINDEP_OUT   (NGPTOT,1,1))
        ALLOCATE (ZRAINFR_OUT  (NGPTOT,1,KLEV,1))
        ALLOCATE (PFPR_OUT     (NGPTOT,1,KLEV,KRR,1))
      ENDIF
    
      IF (IOFF+KLON > NGPTOT) THEN
        EXIT
      ENDIF
    
      READ (IFILE) LLMICRO      (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PEXNREF      (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PDZZ         (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PRHODJ       (IOFF+1:IOFF+KLON,:,:,1) 
      READ (IFILE) PRHODREF     (IOFF+1:IOFF+KLON,:,:,1) 
      READ (IFILE) PEXNREF2     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PPABSM       (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PCIT         (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PCLDFR       (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PHLC_HRC     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PHLC_HCF     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PHLI_HRI     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PHLI_HCF     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PTHT         (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PRT          (IOFF+1:IOFF+KLON,:,:,:,1)
      READ (IFILE) PTHS         (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PRS          (IOFF+1:IOFF+KLON,:,:,:,1)
      READ (IFILE) PSIGS        (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PSEA         (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) PTOWN        (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) PCIT_OUT     (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PRS_OUT      (IOFF+1:IOFF+KLON,:,:,:,1)
      READ (IFILE) ZINPRC_OUT   (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) PINPRR_OUT   (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) PEVAP_OUT    (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PINPRS_OUT   (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) PINPRG_OUT   (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) ZINDEP_OUT   (IOFF+1:IOFF+KLON,:,1)
      READ (IFILE) ZRAINFR_OUT  (IOFF+1:IOFF+KLON,:,:,1)
      READ (IFILE) PFPR_OUT     (IOFF+1:IOFF+KLON,:,:,:,1)
      
      CLOSE (IFILE)
    
      IOFF = IOFF + KLON
    
    ENDDO
    
    IF (NFLEVG /= KLEV) THEN
      CALL INTERPOLATE (NFLEVG, IOFF, LLMICRO     )
      CALL INTERPOLATE (NFLEVG, IOFF, PEXNREF     )
      CALL INTERPOLATE (NFLEVG, IOFF, PDZZ        )
      CALL INTERPOLATE (NFLEVG, IOFF, PRHODJ      )
      CALL INTERPOLATE (NFLEVG, IOFF, PRHODREF    )
      CALL INTERPOLATE (NFLEVG, IOFF, PEXNREF2    )
      CALL INTERPOLATE (NFLEVG, IOFF, PPABSM      )
      CALL INTERPOLATE (NFLEVG, IOFF, PCIT        )
      CALL INTERPOLATE (NFLEVG, IOFF, PCLDFR      )
      CALL INTERPOLATE (NFLEVG, IOFF, PHLC_HRC    )
      CALL INTERPOLATE (NFLEVG, IOFF, PHLC_HCF    )
      CALL INTERPOLATE (NFLEVG, IOFF, PHLI_HRI    )
      CALL INTERPOLATE (NFLEVG, IOFF, PHLI_HCF    )
      CALL INTERPOLATE (NFLEVG, IOFF, PTHT        )
      CALL INTERPOLATE (NFLEVG, IOFF, PRT         )
      CALL INTERPOLATE (NFLEVG, IOFF, PTHS        )
      CALL INTERPOLATE (NFLEVG, IOFF, PRS         )
      CALL INTERPOLATE (NFLEVG, IOFF, PSIGS       )
    !  CALL INTERPOLATE (NFLEVG, IOFF, PSEA        )
    !  CALL INTERPOLATE (NFLEVG, IOFF, PTOWN       )
      CALL INTERPOLATE (NFLEVG, IOFF, PCIT_OUT    )
      CALL INTERPOLATE (NFLEVG, IOFF, PRS_OUT     )
    !  CALL INTERPOLATE (NFLEVG, IOFF, ZINPRC_OUT  )
    !  CALL INTERPOLATE (NFLEVG, IOFF, PINPRR_OUT  )
      CALL INTERPOLATE (NFLEVG, IOFF, PEVAP_OUT   )
    !  CALL INTERPOLATE (NFLEVG, IOFF, PINPRS_OUT  )
    !  CALL INTERPOLATE (NFLEVG, IOFF, PINPRG_OUT  )
    !  CALL INTERPOLATE (NFLEVG, IOFF, ZINDEP_OUT  )
      CALL INTERPOLATE (NFLEVG, IOFF, ZRAINFR_OUT )
      CALL INTERPOLATE (NFLEVG, IOFF, PFPR_OUT    )
    
    ENDIF
    
    CALL REPLICATE (IOFF, LLMICRO      (:, :, :, 1))
    CALL REPLICATE (IOFF, PEXNREF      (:, :, :, 1))
    CALL REPLICATE (IOFF, PDZZ         (:, :, :, 1))
    CALL REPLICATE (IOFF, PRHODJ       (:, :, :, 1))
    CALL REPLICATE (IOFF, PRHODREF     (:, :, :, 1))
    CALL REPLICATE (IOFF, PEXNREF2     (:, :, :, 1))
    CALL REPLICATE (IOFF, PPABSM       (:, :, :, 1))
    CALL REPLICATE (IOFF, PCIT         (:, :, :, 1))
    CALL REPLICATE (IOFF, PCLDFR       (:, :, :, 1))
    CALL REPLICATE (IOFF, PHLC_HRC     (:, :, :, 1))
    CALL REPLICATE (IOFF, PHLC_HCF     (:, :, :, 1))
    CALL REPLICATE (IOFF, PHLI_HRI     (:, :, :, 1))
    CALL REPLICATE (IOFF, PHLI_HCF     (:, :, :, 1))
    CALL REPLICATE (IOFF, PTHT         (:, :, :, 1))
    CALL REPLICATE (IOFF, PRT          (:, :, :, :, 1))
    CALL REPLICATE (IOFF, PTHS         (:, :, :, 1))
    CALL REPLICATE (IOFF, PRS          (:, :, :, :, 1))
    CALL REPLICATE (IOFF, PSIGS        (:, :, :, 1))
    CALL REPLICATE (IOFF, PSEA         (:, :, 1))
    CALL REPLICATE (IOFF, PTOWN        (:, :, 1))
    CALL REPLICATE (IOFF, PCIT_OUT     (:, :, :, 1))
    CALL REPLICATE (IOFF, PRS_OUT      (:, :, :, :, 1))
    CALL REPLICATE (IOFF, ZINPRC_OUT   (:, :, 1))
    CALL REPLICATE (IOFF, PINPRR_OUT   (:, :, 1))
    CALL REPLICATE (IOFF, PEVAP_OUT    (:, :, :, 1))
    CALL REPLICATE (IOFF, PINPRS_OUT   (:, :, 1))
    CALL REPLICATE (IOFF, PINPRG_OUT   (:, :, 1))
    CALL REPLICATE (IOFF, ZINDEP_OUT   (:, :, 1))
    CALL REPLICATE (IOFF, ZRAINFR_OUT  (:, :, :, 1))
    CALL REPLICATE (IOFF, PFPR_OUT     (:, :, :, :, 1))
    
    
    CALL NPROMIZE (NPROMA, LLMICRO     ,  LLMICRO_B       )
    CALL NPROMIZE (NPROMA, PEXNREF     ,  PEXNREF_B       )
    CALL NPROMIZE (NPROMA, PDZZ        ,  PDZZ_B          )
    CALL NPROMIZE (NPROMA, PRHODJ      ,  PRHODJ_B        )
    CALL NPROMIZE (NPROMA, PRHODREF    ,  PRHODREF_B      )
    CALL NPROMIZE (NPROMA, PEXNREF2    ,  PEXNREF2_B      )
    CALL NPROMIZE (NPROMA, PPABSM      ,  PPABSM_B        )
    CALL NPROMIZE (NPROMA, PCIT        ,  PCIT_B          )
    CALL NPROMIZE (NPROMA, PCLDFR      ,  PCLDFR_B        )
    CALL NPROMIZE (NPROMA, PHLC_HRC    ,  PHLC_HRC_B      )
    CALL NPROMIZE (NPROMA, PHLC_HCF    ,  PHLC_HCF_B      )
    CALL NPROMIZE (NPROMA, PHLI_HRI    ,  PHLI_HRI_B      )
    CALL NPROMIZE (NPROMA, PHLI_HCF    ,  PHLI_HCF_B      )
    CALL NPROMIZE (NPROMA, PTHT        ,  PTHT_B          )
    CALL NPROMIZE (NPROMA, PRT         ,  PRT_B           )
    CALL NPROMIZE (NPROMA, PTHS        ,  PTHS_B          )
    CALL NPROMIZE (NPROMA, PRS         ,  PRS_B           )
    CALL NPROMIZE (NPROMA, PSIGS       ,  PSIGS_B         )
    CALL NPROMIZE (NPROMA, PSEA        ,  PSEA_B          )
    CALL NPROMIZE (NPROMA, PTOWN       ,  PTOWN_B         )
    CALL NPROMIZE (NPROMA, PCIT_OUT    ,  PCIT_OUT_B      )
    CALL NPROMIZE (NPROMA, PRS_OUT     ,  PRS_OUT_B       )
    CALL NPROMIZE (NPROMA, ZINPRC_OUT  ,  ZINPRC_OUT_B    )
    CALL NPROMIZE (NPROMA, PINPRR_OUT  ,  PINPRR_OUT_B    )
    CALL NPROMIZE (NPROMA, PEVAP_OUT   ,  PEVAP_OUT_B     )
    CALL NPROMIZE (NPROMA, PINPRS_OUT  ,  PINPRS_OUT_B    )
    CALL NPROMIZE (NPROMA, PINPRG_OUT  ,  PINPRG_OUT_B    )
    CALL NPROMIZE (NPROMA, ZINDEP_OUT  ,  ZINDEP_OUT_B    )
    CALL NPROMIZE (NPROMA, ZRAINFR_OUT ,  ZRAINFR_OUT_B   )
    CALL NPROMIZE (NPROMA, PFPR_OUT    ,  PFPR_OUT_B      )
    
    
    END SUBROUTINE 
    
    END  MODULE