SUBROUTINE SU_GHGCLIM ( KINDAT, KMINUT, KSTEP, KUPGHG )

!!!
!!! #ifdef RS6K
!!! @PROCESS NOOPTIMIZE
!!! #endif
!!! !pgi$r opt=0 
!!!

!**   GREENHOUSE GASES CLIMATOLOGIES FROM D.CARIOLLE 2D MODEL* 

!     PURPOSE.
!     --------

!**   INTERFACE.
!     ----------
!        CALL *SU_GHGCLIM* FROM *UPDTIM*

!        EXPLICIT ARGUMENTS :
!        --------------------
!     ==== INPUTS ===
!     ==== OUTPUTS ===

!        IMPLICIT ARGUMENTS :   NONE
!        --------------------

!     METHOD.
!     -------

!     EXTERNALS.
!     ----------

!          NONE

!     REFERENCE.
!     ----------

!        SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
!        ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE "I.F.S"

!     AUTHOR.
!     -------
!     J.-J. MORCRETTE  E.C.M.W.F.    20080423

!     MODIFICATIONS.
!     --------------
!        Same history as suecaesu
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
!     R. Elkhatib 12-10-2005 Split for faster and more robust compilation.

!-----------------------------------------------------------------------

USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOERAD    ,ONLY : NGHGRAD, LETRACGMS
USE YOERADGHG ,ONLY : RSINCL, RCLCO2, RCLCH4, RCLN2O, RCLNO2, &
 & RCLC11, RCLC12, RCLC22, RCLCCL4, RCLOZO, RCLPR
USE YOERDI    ,ONLY : RCARDI, RCH4, RN2O, RNO2, RCFC11, RCFC12

USE YOMCT0    ,ONLY : NPRINTLEV
!USE YOMCT3    ,ONLY : NSTEP
USE YOMLUN    ,ONLY : NULOUT
USE YOMCLIM   ,ONLY : RGHG1, RGHG2, RGHG3, RGHG4, RGHG5, RGHG6, RGHG7, RGHG8, RGHG9

IMPLICIT NONE

!     -----------------------------------------------------------------

!*       0.1   ARGUMENTS.
!              ----------
INTEGER(KIND=JPIM),INTENT(IN)    :: KINDAT 
INTEGER(KIND=JPIM),INTENT(IN)    :: KMINUT 
INTEGER(KIND=JPIM),INTENT(IN)    :: KSTEP
INTEGER(KIND=JPIM),INTENT(INOUT) :: KUPGHG

!     ----------------------------------------------------------------- 

!*       0.2   LOCAL ARRAYS.
!              -------------

INTEGER(KIND=JPIM) :: IDY, IFIX, ILAT, ILEV, IM, IM1, IM2, IMN, IPLEV
INTEGER(KIND=JPIM) :: ICNT, ISTEP
INTEGER(KIND=JPIM) :: JK, JL

! REAL(KIND=JPRB) :: ZGHG(64,91,12), ZPRESH(0:91)
  REAL(KIND=JPRB) :: ZPRESH(0:91)
REAL(KIND=JPRB),SAVE :: ZYTIME(12), ZMDAY(12), ZREFP(91), ZSLAT(64)

REAL(KIND=JPRB) :: ZAIRMWG, ZCO2MWG, ZCH4MWG, ZN2OMWG, ZNO2MWG, &
 & ZO3MWG, ZC11MWG, ZC12MWG, ZC22MWG, ZCL4MWG
REAL(KIND=JPRB) :: ZR_CO2, ZR_CH4, ZR_N2O, ZR_NO2, ZR_OZO, &
 & ZR_C11, ZR_C12, ZR_C22, ZR_CL4
REAL(KIND=JPRB) :: ZFCTCO2, ZFCTCH4, ZFCTN2O, ZFCTNO2, ZFCTOZO, ZFCTC11, ZFCTC12, ZFCTC22, ZFCTCCL4
REAL(KIND=JPRB) :: ZGAS0  , ZGAS   , ZLATINT, ZTIMI  , ZXTIME

REAL(KIND=JPRB) :: ZHOOK_HANDLE
REAL(KIND=JPRB) :: ZHOOK_HANDLE1
REAL(KIND=JPRB) :: ZHOOK_HANDLE2
!INTEGER(KIND=JPIM) :: JJ

LOGICAL :: LHOOK_SAVE=.false.

#include "abor1.intfb.h"
#include "fcttim.h"
#include "su_co2clim.intfb.h"      
#include "su_ch4clim.intfb.h"     
#include "su_n2oclim.intfb.h"     
#include "su_no2clim.intfb.h"     
#include "su_c11clim.intfb.h"   
#include "su_c12clim.intfb.h"   
#include "su_c22clim.intfb.h"   
#include "su_ccl4clim.intfb.h"   
#include "su_ozoclim.intfb.h"

#include "su_gco2clim.intfb.h"
#include "su_gch4clim.intfb.h"
#include "su_gozoclim.intfb.h"
!     ------------------------------------------------------------------
IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM',0,ZHOOK_HANDLE)

CALL PART1

ZAIRMWG = 28.970_JPRB
ZCO2MWG = 44.011_JPRB
ZCH4MWG = 16.043_JPRB
ZN2OMWG = 44.013_JPRB
ZNO2MWG = 46.006_JPRB
ZO3MWG  = 47.9982_JPRB
ZC11MWG = 137.3686_JPRB
ZC12MWG = 120.9140_JPRB
ZC22MWG =  86.4690_JPRB
ZCL4MWG=  153.8230_JPRB

ZFCTCO2=ZCO2MWG/ZAIRMWG
ZFCTCH4=ZCH4MWG/ZAIRMWG
ZFCTN2O=ZN2OMWG/ZAIRMWG
ZFCTNO2=ZNO2MWG/ZAIRMWG
ZFCTOZO=ZO3MWG /ZAIRMWG
ZFCTC11=ZC11MWG/ZAIRMWG
ZFCTC12=ZC12MWG/ZAIRMWG
ZFCTC22=ZC22MWG/ZAIRMWG
ZFCTCCL4=ZCL4MWG/ZAIRMWG

!-- reference volume concentrations in D.Cariolle's climatology: IPCC 2002

ZR_CO2 = 0.371E-03_JPRB
ZR_CH4 = 0.178E-05_JPRB
ZR_N2O = 0.318E-06_JPRB
ZR_NO2 = 1.000E+00_JPRB
ZR_OZO = 1.000E+00_JPRB
ZR_C11 = 0.263E-09_JPRB
ZR_C12 = 0.536E-09_JPRB
ZR_C22 = 0.170E-09_JPRB
ZR_CL4 = 0.883E-10_JPRB

ICNT=100
ISTEP=INT(KSTEP/ICNT)*ICNT
IF (ISTEP == KSTEP.AND. NPRINTLEV > 0) THEN
  WRITE(NULOUT,9001) ZR_CO2,ZR_CH4,ZR_N2O,ZR_NO2,ZR_C11,ZR_C12,ZR_C22,ZR_CL4
9001 FORMAT(1X,'Reference concentrations for D.Cariolle climatologies : ',/,(8E15.8))
ENDIF

ILAT=64
ILEV=91
IFIX=1

!     ------------------------------------------------------------------

!*         1.     TIME INDEX WITHIN THE CLIMATOLOGIES
!                 -----------------------------------

IDY=NDD(KINDAT)-1
IMN=NMM(KINDAT)
IF (IMN == 1) THEN
  ZXTIME=REAL(IDY,KIND(ZXTIME))*1440._JPRB + KMINUT
ELSEIF (IMN == 2) THEN
  IF(IDY == 28) IDY=IDY-1
! A DAY IN FEB. IS 28.25*24*60/28=1452.8571min LONG.
  ZXTIME=44640._JPRB+REAL(IDY,KIND(ZXTIME))*1452.8571_JPRB+KMINUT
ELSE
  ZXTIME=(ZMDAY(IMN-1)+REAL(IDY,KIND(ZXTIME)))*1440._JPRB+KMINUT
ENDIF
! 525960=MINUTES IN A SIDERAL YEAR (365.25d)
ZXTIME=MOD(ZXTIME,525960._JPRB)

IM1=0
IM2=0
IF (ZXTIME <= ZYTIME(1)) THEN
  IM1=12
  IM2=1
  ZTIMI=(ZYTIME(1)-ZXTIME)/44640._JPRB
ELSEIF(ZXTIME > ZYTIME(12)) THEN
  IM1=12
  IM2=1
  ZTIMI=(548280._JPRB-ZXTIME)/44640._JPRB
! 548280.=(365.25d + 15.5d)*24*60
ELSE
  DO IM=1,11
    IF (ZXTIME > ZYTIME(IM) .AND. ZXTIME <= ZYTIME(IM+1)) THEN
      IM1=IM
      IM2=IM+1
      ZTIMI=(ZXTIME-ZYTIME(IM2))/(ZYTIME(IM1)-ZYTIME(IM2))
    ENDIF
  ENDDO
  IF (IM1 == 0.OR. IM2 == 0 ) THEN
    CALL ABOR1('Problem with time interpolation in suecozc!')
  ENDIF
ENDIF


!*         2.     VECTOR OF LATITUDES FOR GHG CLIMATOLOGIES
!                 -----------------------------------------

ZLATINT=180._JPRB/ILAT
DO JL=1,ILAT
!  RSINCL(JL)=SIN( (-90._JPRB + ZLATINT*0.5_JPRB + (JL-1)*ZLATINT) *RPI/180._JPRB)
  RSINCL(JL)=ZSLAT(JL)
ENDDO
IF (ISTEP == KSTEP.AND. NPRINTLEV > 0) THEN
  WRITE(NULOUT,9002) (RSINCL(JL),JL=1,ILAT)
9002 FORMAT(1X,'Reference latitudes for Daniel climatologies : ',/,(8E15.8))
ENDIF


!*         3.     TIME INTERPOLATED FIELDS
!                 ------------------------

!* Field is 1/ transformed from vmr to mmr (kg/kg) 
!           2/ potentially modified to account for the ongoing increase in GHG
!           3/ then accumulated top-down, keeping the same 2D =(64 lat x 91 lev) structure )

! NGHGRAD index for defining which trace gas is taken from the 2D (lat-height) climatologies
! = 1   CO2
! = 2   CH4
! = 3   N2O
! = 4   NO2
! = 5   CFC11
! = 6   CFC12
! = 7   O3
! = 8   HCFC22
! = 9   CCl4

! = 11  CO2+CH4
! = 12  CO2+CH4+N2O
! = 15  CO2+CH4+N2O+CFC11
! = 16  CO2+CH4+N2O+CFC11+CFC12

! = 17  CO2+CH4+N2O+CFC11+CFC12+O3
! = 18  CO2+CH4+N2O+CFC11+CFC12+O3+HCFC22
! = 19  CO2+CH4+N2O+CFC11+CFC12+O3+HCFC22+CCl4

! = 20  CO2+CH4+N2O+CFC11+CFC12+HCFC22+CCl4+NO2
! = 21  CO2+CH4+N2O+CFC11+CFC12+HCFC22+CCl4+NO2+O3 [all]


ZPRESH(0)=0.0_JPRB
RCLPR(0) =0.0_JPRB
DO JK=1,ILEV-1
  ZPRESH(JK)=(ZREFP(JK)+ZREFP(JK+1))*0.5_JPRB
  RCLPR(JK) =ZPRESH(JK)
ENDDO
ZPRESH(ILEV)=110000._JPRB
RCLPR(JK)   =ZPRESH(ILEV)
IF (ISTEP == KSTEP.AND. NPRINTLEV > 0) THEN
  WRITE(NULOUT,9003) (ZREFP(JK),JK=1,ILEV)
9003 FORMAT(1X,'Reference pressures for Daniel climatologies : ',/,(8E15.8))
ENDIF

RCLCO2(:,0)=0.0_JPRB
RCLCH4(:,0)=0.0_JPRB
RCLN2O(:,0)=0.0_JPRB
RCLNO2(:,0)=0.0_JPRB
RCLC11(:,0)=0.0_JPRB
RCLC12(:,0)=0.0_JPRB
RCLC22(:,0)=0.0_JPRB
RCLCCL4(:,0)=0.0_JPRB
RCLOZO(:,0)=0.0_JPRB


IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM1',0,ZHOOK_HANDLE1)

LHOOK_SAVE=LHOOK
LHOOK=.false.

!J!$OMP PARALLEL DO PRIVATE(ZGAS0,ZGAS,IPLEV)
!Jdo jj=1,10
!Jif(jj==1) then

IF (NGHGRAD == 1 .OR. NGHGRAD >= 10) THEN
  
  IF (LETRACGMS) THEN
    CALL SU_GCO2CLIM
  ELSE
    CALL SU_CO2CLIM
  ENDIF
ENDIF

!Jendif
!Jif(jj==2) then

IF (NGHGRAD == 2 .OR. NGHGRAD >= 11) THEN
  IF (LETRACGMS) THEN
    CALL SU_GCH4CLIM
  ELSE
    CALL SU_CH4CLIM
  ENDIF
ENDIF 

!Jendif
!JIF(JJ==3) then

IF (NGHGRAD == 3 .OR. NGHGRAD >= 12) THEN
  CALL SU_N2OCLIM
ENDIF

!Jendif
!Jif(jj==4) then

IF (NGHGRAD == 4 .OR. NGHGRAD >= 20) THEN
  CALL SU_NO2CLIM
ENDIF

!Jendif
!Jif(jj==5) then

IF (NGHGRAD == 5 .OR. NGHGRAD >= 15) THEN
  CALL SU_C11CLIM
ENDIF

!Jendif
!Jif(jj==6) then

IF (NGHGRAD == 6 .OR. NGHGRAD >= 16) THEN
  CALL SU_C12CLIM
ENDIF

!Jendif
!Jif(jj==7) then

IF (NGHGRAD == 7 .OR. NGHGRAD == 17 .OR. NGHGRAD >= 21) THEN
  IF (LETRACGMS) THEN
    CALL SU_GOZOCLIM
  ELSE
    CALL SU_OZOCLIM
  ENDIF
ENDIF

!Jendif
!Jif(jj==8) then

IF (NGHGRAD == 8 .OR. NGHGRAD >= 18) THEN
  CALL SU_C22CLIM
ENDIF

!Jendif
!Jif(jj==9) then

IF (NGHGRAD == 9 .OR. NGHGRAD >= 19) THEN
  CALL SU_CCL4CLIM
ENDIF

!Jendif
!Jenddo
!J!$OMP END PARALLEL DO

!JLHOOK=.true.
  LHOOK=LHOOK_SAVE

IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM1',1,ZHOOK_HANDLE1)
IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM2',0,ZHOOK_HANDLE2)

IF (NGHGRAD == 1 .OR. NGHGRAD >= 10) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS0 = ZCO2MWG/ZAIRMWG * (RGHG1(JL,JK,IM2)&
       & +ZTIMI*(RGHG1(JL,JK,IM1)-RGHG1(JL,JK,IM2)))

!-- to get the variable concentrations together with Daniel's 2/3D fields
! RCARDI is mmr, ZFCTCO2 is massCO2/massAir, ZR_CO2 is vmr in DC climatology
      ZGAS=ZGAS0*RCARDI/(ZFCTCO2*ZR_CO2)
      RCLCO2(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
      IF (ISTEP == KSTEP.AND.NPRINTLEV>0) THEN
        IPLEV=INT(JK/10)*10
        IF (IPLEV == JK .AND. ((JL == 1).OR.(JL == ILAT)) ) THEN
          WRITE(NULOUT,9004) JK,JL,ZGAS0,ZGAS,RCARDI,ZFCTCO2,ZR_CO2,ZFCTCO2*ZR_CO2
9004      FORMAT(1X,2I4,6E12.5)
        ENDIF
      ENDIF
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 2 .OR. NGHGRAD >= 11) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZCH4MWG/ZAIRMWG * (RGHG2(JL,JK,IM2)&
       & +ZTIMI*(RGHG2(JL,JK,IM1)-RGHG2(JL,JK,IM2)))  

      ZGAS=ZGAS*RCH4/(ZFCTCH4*ZR_CH4)
      RCLCH4(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 3 .OR. NGHGRAD >= 12) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZN2OMWG/ZAIRMWG * (RGHG3(JL,JK,IM2)&
       & +ZTIMI*(RGHG3(JL,JK,IM1)-RGHG3(JL,JK,IM2)))  

      ZGAS=ZGAS*RN2O/(ZFCTN2O*ZR_N2O)
      RCLN2O(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 4 .OR. NGHGRAD >= 20) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZNO2MWG/ZAIRMWG * (RGHG4(JL,JK,IM2)&
       & +ZTIMI*(RGHG4(JL,JK,IM1)-RGHG4(JL,JK,IM2)))  

      ZGAS=RNO2
      ZGAS=ZR_NO2
      RCLNO2(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 5 .OR. NGHGRAD >= 15) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZC11MWG/ZAIRMWG * (RGHG5(JL,JK,IM2)&
       & +ZTIMI*(RGHG5(JL,JK,IM1)-RGHG5(JL,JK,IM2)))  
       
      ZGAS=ZGAS*RCFC11/(ZFCTC11*ZR_C11)
      RCLC11(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 6 .OR. NGHGRAD >= 16) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZC12MWG/ZAIRMWG * (RGHG6(JL,JK,IM2)&
       & +ZTIMI*(RGHG6(JL,JK,IM1)-RGHG6(JL,JK,IM2)))  

      ZGAS=ZGAS*RCFC12/(ZFCTC12*ZR_C12)
      RCLC12(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 7 .OR. NGHGRAD == 17 .OR. NGHGRAD >= 21) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZO3MWG/ZAIRMWG * (RGHG7(JL,JK,IM2)&
       & +ZTIMI*(RGHG7(JL,JK,IM1)-RGHG7(JL,JK,IM2)))  
      RCLOZO(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 8 .OR. NGHGRAD >= 18) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZC22MWG/ZAIRMWG * (RGHG8(JL,JK,IM2)&
       & +ZTIMI*(RGHG8(JL,JK,IM1)-RGHG8(JL,JK,IM2)))  
      RCLC22(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (NGHGRAD == 9 .OR. NGHGRAD >= 19) THEN
  DO JK=1,ILEV
    DO JL=1,ILAT
      ZGAS = ZCL4MWG/ZAIRMWG * (RGHG9(JL,JK,IM2)&
       & +ZTIMI*(RGHG9(JL,JK,IM1)-RGHG9(JL,JK,IM2)))
      RCLCCL4(JL,JK) = ZGAS * (ZPRESH(JK)-ZPRESH(JK-1))
    ENDDO
  ENDDO
ENDIF

IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM2',1,ZHOOK_HANDLE2)

KUPGHG=KUPGHG+1
IF (ISTEP == KSTEP.AND.NPRINTLEV>0) THEN
  WRITE(NULOUT,FMT='(1X,''NGHGRAD='',I3,'' ILAT='',I3,'' ILEV='',I3)') NGHGRAD, ILAT, ILEV
  DO JK=1,ILEV,10
    WRITE(NULOUT,9012) JK,(RCLCO2(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9012 FORMAT(1X,'SU_GHGCLIM CO2 ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9013) JK,(RCLCH4(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9013 FORMAT(1X,'SU_GHGCLIM CH4 ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9014) JK,(RCLN2O(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9014 FORMAT(1X,'SU_GHGCLIM N2O ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9015) JK,(RCLOZO(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9015 FORMAT(1X,'SU_GHGCLIM OZO ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9016) JK,(RCLC11(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9016 FORMAT(1X,'SU_GHGCLIM C11 ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9017) JK,(RCLC12(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9017 FORMAT(1X,'SU_GHGCLIM C12 ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9018) JK,(RCLC22(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9018 FORMAT(1X,'SU_GHGCLIM C22 ',I3,(10E12.5))
  ENDDO
  DO JK=1,ILEV,10
    WRITE(NULOUT,9019) JK,(RCLCCL4(JL,JK)/(ZPRESH(JK)-ZPRESH(JK-1)),JL=1,ILAT)
9019 FORMAT(1X,'SU_GHGCLIM CL4 ',I3,(10E12.5))
  ENDDO
ENDIF

!     ------------------------------------------------------------------


IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM',1,ZHOOK_HANDLE)

!-----------------------------------------------------------------------------

CONTAINS

SUBROUTINE PART1
REAL(KIND=JPRB) :: ZHOOK_HANDLE

IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM:PART1',0,ZHOOK_HANDLE)

ZMDAY = (/&
 & 31._JPRB,    59.25_JPRB,  90.25_JPRB, 120.25_JPRB, 151.25_JPRB, 181.25_JPRB &
 & ,  212.25_JPRB, 243.25_JPRB, 273.25_JPRB, 304.25_JPRB, 334.25_JPRB, 365.25_JPRB &
 & /)  
ZYTIME= (/&
 & 22320._JPRB,  64980._JPRB, 107640._JPRB, 151560._JPRB, 195480._JPRB, 239400._JPRB &
 & , 283320._JPRB, 327960._JPRB, 371880._JPRB, 415800._JPRB, 459720._JPRB, 503640._JPRB &
 & /)
ZREFP = (/&
  & 0.10000000E+01_JPRB, 0.29900000E+01_JPRB, 0.56834998E+01_JPRB, 0.10147500E+02_JPRB, &
  & 0.17160500E+02_JPRB, 0.27682501E+02_JPRB, 0.42848999E+02_JPRB, 0.63956501E+02_JPRB, &
  & 0.92440987E+02_JPRB, 0.12985049E+03_JPRB, 0.17781149E+03_JPRB, 0.23799651E+03_JPRB, &
  & 0.31209000E+03_JPRB, 0.40175449E+03_JPRB, 0.50860199E+03_JPRB, 0.63416602E+03_JPRB, &
  & 0.77987903E+03_JPRB, 0.94705548E+03_JPRB, 0.11368750E+04_JPRB, 0.13503740E+04_JPRB, &
  & 0.15884360E+04_JPRB, 0.18517920E+04_JPRB, 0.21410149E+04_JPRB, 0.24565259E+04_JPRB, &
  & 0.27986001E+04_JPRB, 0.31673640E+04_JPRB, 0.35628110E+04_JPRB, 0.39848059E+04_JPRB, &
  & 0.44330962E+04_JPRB, 0.49073169E+04_JPRB, 0.54070068E+04_JPRB, 0.59314971E+04_JPRB, &
  & 0.64797832E+04_JPRB, 0.70505981E+04_JPRB, 0.76428970E+04_JPRB, 0.82572246E+04_JPRB, &
  & 0.88957646E+04_JPRB, 0.95614326E+04_JPRB, 0.10257570E+05_JPRB, 0.10988080E+05_JPRB, &
  & 0.11757620E+05_JPRB, 0.12571580E+05_JPRB, 0.13435160E+05_JPRB, 0.14352070E+05_JPRB, &
  & 0.15325200E+05_JPRB, 0.16357520E+05_JPRB, 0.17452211E+05_JPRB, 0.18612539E+05_JPRB, &
  & 0.19841900E+05_JPRB, 0.21144000E+05_JPRB, 0.22522650E+05_JPRB, 0.23981760E+05_JPRB, &
  & 0.25525529E+05_JPRB, 0.27158301E+05_JPRB, 0.28884641E+05_JPRB, 0.30709301E+05_JPRB, &
  & 0.32637240E+05_JPRB, 0.34673641E+05_JPRB, 0.36823859E+05_JPRB, 0.39093570E+05_JPRB, &
  & 0.41487949E+05_JPRB, 0.44010520E+05_JPRB, 0.46651148E+05_JPRB, 0.49386160E+05_JPRB, &
  & 0.52190051E+05_JPRB, 0.55035488E+05_JPRB, 0.57894629E+05_JPRB, 0.60745699E+05_JPRB, &
  & 0.63574230E+05_JPRB, 0.66367703E+05_JPRB, 0.69114523E+05_JPRB, 0.71801031E+05_JPRB, &
  & 0.74412922E+05_JPRB, 0.76938641E+05_JPRB, 0.79368109E+05_JPRB, 0.81689688E+05_JPRB, &
  & 0.83891563E+05_JPRB, 0.85965023E+05_JPRB, 0.87903594E+05_JPRB, 0.89700203E+05_JPRB, &
  & 0.91347422E+05_JPRB, 0.92841422E+05_JPRB, 0.94181656E+05_JPRB, 0.95367977E+05_JPRB, &
  & 0.96399797E+05_JPRB, 0.97280203E+05_JPRB, 0.98034609E+05_JPRB, 0.98677672E+05_JPRB, &
  & 0.99198242E+05_JPRB, 0.99594977E+05_JPRB, 0.99881500E+05_JPRB /)
ZSLAT = (/&
  &-1.540100_JPRB,        -1.485100_JPRB,   -1.436550_JPRB,    -1.387950_JPRB, &    
  &-1.339250_JPRB,        -1.290550_JPRB,   -1.241850_JPRB,    -1.193150_JPRB, &    
  &-1.144500_JPRB,        -1.095850_JPRB,   -1.047150_JPRB,   -0.9984350_JPRB, &    
  &-0.9497200_JPRB,      -0.9010250_JPRB,  -0.8523300_JPRB,   -0.8036350_JPRB, &    
  &-0.7549400_JPRB,      -0.7062450_JPRB,  -0.6575550_JPRB,   -0.6088600_JPRB, &    
  &-0.5601650_JPRB,      -0.5114700_JPRB,  -0.4627750_JPRB,   -0.4139950_JPRB, &    
  &-0.3652100_JPRB,      -0.3165150_JPRB,  -0.2678200_JPRB,   -0.2191250_JPRB, &    
  &-0.1704300_JPRB, -0.1217345_JPRB, -7.3041998E-02_JPRB, -2.4347501E-02_JPRB, &
  & 2.4347501E-02_JPRB, 7.3041998E-02_JPRB, 0.1217345_JPRB,    0.1704300_JPRB, &
  & 0.2191250_JPRB,         0.2678200_JPRB, 0.3165150_JPRB,    0.3652100_JPRB, &
  & 0.4139950_JPRB,        0.4627750_JPRB,  0.5114700_JPRB,    0.5601650_JPRB, &    
  & 0.6088600_JPRB,        0.6575550_JPRB,  0.7062450_JPRB,    0.7549400_JPRB, &    
  & 0.8036350_JPRB,        0.8523300_JPRB,  0.9010250_JPRB,    0.9497200_JPRB, &    
  & 0.9984350_JPRB,         1.047150_JPRB,   1.095850_JPRB,     1.144500_JPRB, &    
  &  1.193150_JPRB,         1.241850_JPRB,   1.290550_JPRB,     1.339250_JPRB, &    
  &  1.387950_JPRB,         1.436550_JPRB,   1.485100_JPRB,     1.540100_JPRB /)    
   
IF (LHOOK) CALL DR_HOOK('SU_GHGCLIM:PART1',1,ZHOOK_HANDLE)
END SUBROUTINE PART1

END SUBROUTINE SU_GHGCLIM

