Changeset 1220 for LMDZ4


Ignore:
Timestamp:
Aug 5, 2009, 4:38:34 PM (15 years ago)
Author:
lguez
Message:

-- Replaced "integer*4" declarations by "integer", "real*8" by

"real(kind=8)" and "real*4" by "real". Note that these are the only
modifications in the files "radiation_AR4.F" and "sw_aeroAR4.F90".

-- Corrected the kind of arguments to "max" and "min".

-- Replaced "nH" edit descriptors, which is a deleted feature in

Fortran 95, by character strings.

-- "regr_lat_time_climoz" now allows the pressure coordinate in the

input file to be in descending order.

-- Replaced call to not standard function "float" by call to intrinsic

function "real".

-- Included file "radepsi.h" in "physiq" was not used. Removed it.

The following set of modifications is related to the management of time.

-- In "gcm", "leapfrog" and "sortvarc0", "day_ini" was defined as 1

plus number of days between the reference date "(annee_ref,
day_ref)" and the first day of the current simulation. Changed
definition: "(annee_ref, day_ini)" is the first day of the current
simulation. There is an accompanying modification for "day_end".

-- Corrected bug in call to "ioconf_startdate" in "gcm".

-- Added call to "ioconf_calendar" in "create_etat0_limit".

Location:
LMDZ4/branches/LMDZ4-dev/libf
Files:
40 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/initdynav.F

    r1186 r1220  
    5353C
    5454      character*(*) infile
    55       integer*4 day0, anne0
     55      integer day0, anne0
    5656      real tstep, t_ops, t_wrt
    5757      integer fileid
  • LMDZ4/branches/LMDZ4-dev/libf/bibio/inithist.F

    r1186 r1220  
    5555C
    5656      character*(*) infile
    57       integer*4 day0, anne0
     57      integer day0, anne0
    5858      real tstep, t_ops, t_wrt
    5959      integer fileid, filevid
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/coefpoly.F

    r524 r1220  
    1919c  On en revient a resoudre un systeme de 4 equat.a 4 inconnues a0,a1,a2,a3
    2020
    21       REAL*8 Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi
    22       REAL*8 Xfout, Xprim
    23       REAL*8 a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car
     21      REAL(KIND=8) Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi
     22      REAL(KIND=8) Xfout, Xprim
     23      REAL(KIND=8) a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car
    2424
    2525      xtil1car = xtild1 * xtild1
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F

    r1114 r1220  
    66       USE comgeomphy
    77       USE infotrac
     8#ifdef CPP_IOIPSL
     9       use ioipsl, only: ioconf_calendar
     10#endif
     11       IMPLICIT NONE
    812c
    913c
     
    4448      call InitComgeomphy
    4549
     50#ifdef CPP_IOIPSL
     51      call ioconf_calendar('360d')
     52#endif
     53
    4654      WRITE(6,*) '  *********************  '
    4755      WRITE(6,*) ' interbar = ',interbar
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/etat0_netcdf.F

    r1154 r1220  
    655655      itau_phy = 0
    656656      iday = dayref +itau/day_step
    657       time = FLOAT(itau-(iday-dayref)*day_step)/day_step
     657      time = real(itau-(iday-dayref)*day_step)/day_step
    658658c     
    659659      IF(time.GT.1)  THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fxhyp.F

    r650 r1220  
    4848c
    4949       REAL   dzoom
    50        REAL*8 xlon(iip1),xprimm(iip1),xuv
    51        REAL*8 xtild(0:nmax2)
    52        REAL*8 fhyp(0:nmax2),ffdx,beta,Xprimt(0:nmax2)
    53        REAL*8 Xf(0:nmax2),xxpr(0:nmax2)
    54        REAL*8 xvrai(iip1),xxprim(iip1)
    55        REAL*8 pi,depi,epsilon,xzoom,fa,fb
    56        REAL*8 Xf1, Xfi , a0,a1,a2,a3,xi2
     50       REAL(KIND=8) xlon(iip1),xprimm(iip1),xuv
     51       REAL(KIND=8) xtild(0:nmax2)
     52       REAL(KIND=8) fhyp(0:nmax2),ffdx,beta,Xprimt(0:nmax2)
     53       REAL(KIND=8) Xf(0:nmax2),xxpr(0:nmax2)
     54       REAL(KIND=8) xvrai(iip1),xxprim(iip1)
     55       REAL(KIND=8) pi,depi,epsilon,xzoom,fa,fb
     56       REAL(KIND=8) Xf1, Xfi , a0,a1,a2,a3,xi2
    5757       INTEGER i,it,ik,iter,ii,idif,ii1,ii2
    58        REAL*8 xi,xo1,xmoy,xlon2,fxm,Xprimin
    59        REAL*8 champmin,champmax,decalx
     58       REAL(KIND=8) xi,xo1,xmoy,xlon2,fxm,Xprimin
     59       REAL(KIND=8) champmin,champmax,decalx
    6060       INTEGER is2
    6161       SAVE is2
    6262
    63        REAL*8 heavyside
     63       REAL(KIND=8) heavyside
    6464
    6565       pi       = 2. * ASIN(1.)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fxyhyper.F

    r524 r1220  
    4141       REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1),
    4242     , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
    43        REAL*8  dxmin, dxmax , dymin, dymax
     43       REAL(KIND=8)  dxmin, dxmax , dymin, dymax
    4444
    4545c   ....   var. locales   .....
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fyhyp.F

    r650 r1220  
    5050     
    5151       REAL   dzoom
    52        REAL*8 ylat(jjp1), yprim(jjp1)
    53        REAL*8 yuv
    54        REAL*8 yt(0:nmax2)
    55        REAL*8 fhyp(0:nmax2),beta,Ytprim(0:nmax2),fxm(0:nmax2)
     52       REAL(KIND=8) ylat(jjp1), yprim(jjp1)
     53       REAL(KIND=8) yuv
     54       REAL(KIND=8) yt(0:nmax2)
     55       REAL(KIND=8) fhyp(0:nmax2),beta,Ytprim(0:nmax2),fxm(0:nmax2)
    5656       SAVE Ytprim, yt,Yf
    57        REAL*8 Yf(0:nmax2),yypr(0:nmax2)
    58        REAL*8 yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)
    59        REAL*8 pi,depi,pis2,epsilon,y0,pisjm
    60        REAL*8 yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax
    61        REAL*8 yfi,Yf1,ffdy
    62        REAL*8 ypn,deply,y00
     57       REAL(KIND=8) Yf(0:nmax2),yypr(0:nmax2)
     58       REAL(KIND=8) yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)
     59       REAL(KIND=8) pi,depi,pis2,epsilon,y0,pisjm
     60       REAL(KIND=8) yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax
     61       REAL(KIND=8) yfi,Yf1,ffdy
     62       REAL(KIND=8) ypn,deply,y00
    6363       SAVE y00, deply
    6464
     
    6666       INTEGER jpn,jjpn
    6767       SAVE jpn
    68        REAL*8 a0,a1,a2,a3,yi2,heavyy0,heavyy0m
    69        REAL*8 fa(0:nmax2),fb(0:nmax2)
     68       REAL(KIND=8) a0,a1,a2,a3,yi2,heavyy0,heavyy0m
     69       REAL(KIND=8) fa(0:nmax2),fb(0:nmax2)
    7070       REAL y0min,y0max
    7171
    72        REAL*8     heavyside
     72       REAL(KIND=8)     heavyside
    7373
    7474       pi       = 2. * ASIN(1.)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F

    r1201 r1220  
    313313          annee_ref = anneeref
    314314          day_ref = dayref
    315           day_ini = 1
     315          day_ini = dayref
    316316          itau_dyn = 0
    317317          itau_phy = 0
     
    331331
    332332#ifdef CPP_IOIPSL
    333       call ioconf_startdate(annee_ref,0,day_ref, 0.)
     333      call ioconf_startdate(annee_ref,1,day_ref, 0.)
    334334#endif
    335335
     
    413413      WRITE(lunout,300)day_ini,day_end
    414414 300  FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
    415       call ju2ymds(jD_ref+day_ini-1,an, mois, jour, heure)
     415      call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
    416416      write (lunout,301)jour, mois, an
    417       call ju2ymds(jD_ref+day_end-1,an, mois, jour, heure)
     417      call ju2ymds(jD_ref + day_end - day_ref, an, mois, jour, heure)
    418418      write (lunout,302)jour, mois, an
    419419 301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/grid_atob.F

    r524 r1220  
    700700      PARAMETER (imtmp=360,jmtmp=180)
    701701      REAL xtmp(imtmp), ytmp(jmtmp)
    702       REAL*8 cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)
     702      REAL(KIND=8) cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)
    703703      REAL zzzz
    704704c
     
    859859              number(ii,jj) = number(ii,jj) + 1.0
    860860              rugs(ii,jj) = rugs(ii,jj)
    861      .                       + LOG(MAX(0.001,cham2tmp(i,j)))
     861     .                       + LOG(MAX(0.001_8,cham2tmp(i,j)))
    862862          ENDIF
    863863          ENDDO
     
    892892         i_proche = ij_proche - (j_proche-1)*imtmp
    893893         PRINT*, "solution:", ij_proche, i_proche, j_proche
    894          rugs(i,j) = LOG(MAX(0.001,cham2tmp(i_proche,j_proche)))
     894         rugs(i,j) = LOG(MAX(0.001_8,cham2tmp(i_proche,j_proche)))
    895895         ENDIF
    896896      ENDDO
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/heavyside.F

    r524 r1220  
    1010       IMPLICIT NONE
    1111
    12        REAL*8 heavyside , a
     12       REAL(KIND=8) heavyside , a
    1313
    1414       IF ( a.LE.0. )  THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/inter_barx.F

    r790 r1220  
    212212     
    213213
    214 3      FORMAT(1x,70(1h-))
     2143      FORMAT(1x,70("-"))
    2152152      FORMAT(1x,8f8.2)
    216216
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F

    r1201 r1220  
    219219   1  CONTINUE
    220220
    221       jD_cur = jD_ref + (day_ini - 1) + int (itau * dtvr / daysec)
     221      jD_cur = jD_ref + day_ini - day_ref + int (itau * dtvr / daysec)
    222222      jH_cur = jH_ref +                                                 &
    223223     &          (itau * dtvr / daysec - int(itau * dtvr / daysec))
     
    356356!           rdaym_ini  = itau * dtvr / daysec
    357357!           rdayvrai   = rdaym_ini  + day_ini
    358            jD_cur = jD_ref + (day_ini - 1) + int (itau * dtvr / daysec)
     358           jD_cur = jD_ref + day_ini - day_ref
     359     $        + int (itau * dtvr / daysec)
    359360           jH_cur = jH_ref +                                            &
    360361     &              (itau * dtvr / daysec - int(itau * dtvr / daysec))
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/sortvarc.F

    r1201 r1220  
    157157      RETURN
    158158
    159 3500   FORMAT('0'10(1h*),4x,'pas'i7,5x,'jour'f9.0,'heure'f5.1,4x
    160      *   ,'date',f14.4,4x,10(1h*))
     1593500   FORMAT(10("*"),4x,'pas',i7,5x,'jour',f9.0,'heure',f5.1,4x
     160     *   ,'date',f14.4,4x,10("*"))
    1611614000   FORMAT(10x,'masse',4x,'rmsdpdt',7x,'energie',2x,'enstrophie'
    162162     * ,2x,'entropie',3x,'rmsv',4x,'mt.ang',/,'GLOB  '
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/sortvarc0.F

    r524 r1220  
    130130      ang0   = SSUM(     llm,  angl, 1 )
    131131
    132       rday = FLOAT(INT ( day_ini + time ))
     132      rday = FLOAT(INT (time ))
    133133c
    134134      PRINT 3500, itau, rday, heure, time
    135135      PRINT *, ptot0,etot0,ztot0,stot0,ang0
    136136
    137 3500   FORMAT('0',10(1h*),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x
    138      *   ,'date',f10.5,4x,10(1h*))
     1373500   FORMAT(10("*"),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x
     138     *   ,'date',f10.5,4x,10("*"))
    139139      RETURN
    140140      END
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/coefpoly.F

    r774 r1220  
    1919c  On en revient a resoudre un systeme de 4 equat.a 4 inconnues a0,a1,a2,a3
    2020
    21       REAL*8 Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi
    22       REAL*8 Xfout, Xprim
    23       REAL*8 a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car
     21      REAL(KIND=8) Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi
     22      REAL(KIND=8) Xfout, Xprim
     23      REAL(KIND=8) a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car
    2424
    2525      xtil1car = xtild1 * xtild1
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F

    r1114 r1220  
    99       USE phys_state_var_mod     
    1010       USE infotrac
     11#ifdef CPP_IOIPSL
     12       use ioipsl, only: ioconf_calendar
     13#endif
    1114       IMPLICIT NONE
    1215c
     
    4144         call init_const_lmdz(
    4245     $        nbtr,anneeref,dayref,
    43      $        iphysiq,day_step,nday)
     46     $        iphysiq, day_step,nday)
    4447#endif
    4548         print *, 'nbtr =' , nbtr
     
    6063      call InitComgeomphy
    6164     
     65#ifdef CPP_IOIPSL
     66      call ioconf_calendar('360d')
     67#endif
    6268
    6369      WRITE(6,*) '  *********************  '
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F

    r1154 r1220  
    654654      itau_phy = 0
    655655      iday = dayref +itau/day_step
    656       time = FLOAT(itau-(iday-dayref)*day_step)/day_step
     656      time = real(itau-(iday-dayref)*day_step)/day_step
    657657c     
    658658      IF(time.GT.1)  THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fxyhyper.F

    r774 r1220  
    4141       REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1),
    4242     , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
    43        REAL*8  dxmin, dxmax , dymin, dymax
     43       REAL(KIND=8)  dxmin, dxmax , dymin, dymax
    4444
    4545c   ....   var. locales   .....
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fyhyp.F

    r764 r1220  
    5050     
    5151       REAL   dzoom
    52        REAL*8 ylat(jjp1), yprim(jjp1)
    53        REAL*8 yuv
    54        REAL*8 yt(0:nmax2)
    55        REAL*8 fhyp(0:nmax2),beta,Ytprim(0:nmax2),fxm(0:nmax2)
     52       REAL(KIND=8) ylat(jjp1), yprim(jjp1)
     53       REAL(KIND=8) yuv
     54       REAL(KIND=8) yt(0:nmax2)
     55       REAL(KIND=8) fhyp(0:nmax2),beta,Ytprim(0:nmax2),fxm(0:nmax2)
    5656       SAVE Ytprim, yt,Yf
    57        REAL*8 Yf(0:nmax2),yypr(0:nmax2)
    58        REAL*8 yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)
    59        REAL*8 pi,depi,pis2,epsilon,y0,pisjm
    60        REAL*8 yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax
    61        REAL*8 yfi,Yf1,ffdy
    62        REAL*8 ypn,deply,y00
     57       REAL(KIND=8) Yf(0:nmax2),yypr(0:nmax2)
     58       REAL(KIND=8) yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)
     59       REAL(KIND=8) pi,depi,pis2,epsilon,y0,pisjm
     60       REAL(KIND=8) yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax
     61       REAL(KIND=8) yfi,Yf1,ffdy
     62       REAL(KIND=8) ypn,deply,y00
    6363       SAVE y00, deply
    6464
     
    6666       INTEGER jpn,jjpn
    6767       SAVE jpn
    68        REAL*8 a0,a1,a2,a3,yi2,heavyy0,heavyy0m
    69        REAL*8 fa(0:nmax2),fb(0:nmax2)
     68       REAL(KIND=8) a0,a1,a2,a3,yi2,heavyy0,heavyy0m
     69       REAL(KIND=8) fa(0:nmax2),fb(0:nmax2)
    7070       REAL y0min,y0max
    7171
    72        REAL*8     heavyside
     72       REAL(KIND=8)     heavyside
    7373
    7474       pi       = 2. * ASIN(1.)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F

    r1201 r1220  
    326326          annee_ref = anneeref
    327327          day_ref = dayref
    328           day_ini = 1
     328          day_ini = dayref
    329329          itau_dyn = 0
    330330          itau_phy = 0
     
    344344
    345345#ifdef CPP_IOIPSL
    346       call ioconf_startdate(annee_ref,0,day_ref, 0.)
     346      call ioconf_startdate(annee_ref,1,day_ref, 0.)
    347347#endif
    348348
     
    436436      WRITE(lunout,300)day_ini,day_end
    437437 300  FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
    438       call ju2ymds(jD_ref+day_ini-1,an, mois, jour, heure)
     438      call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
    439439      write (lunout,301)jour, mois, an
    440       call ju2ymds(jD_ref+day_end-1,an, mois, jour, heure)
     440      call ju2ymds(jD_ref + day_end - day_ref, an, mois, jour, heure)
    441441      write (lunout,302)jour, mois, an
    442442 301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/grid_atob.F

    r774 r1220  
    700700      PARAMETER (imtmp=360,jmtmp=180)
    701701      REAL xtmp(imtmp), ytmp(jmtmp)
    702       REAL*8 cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)
     702      REAL(KIND=8) cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)
    703703      REAL zzzz
    704704c
     
    859859              number(ii,jj) = number(ii,jj) + 1.0
    860860              rugs(ii,jj) = rugs(ii,jj)
    861      .                       + LOG(MAX(0.001,cham2tmp(i,j)))
     861     .                       + LOG(MAX(0.001_8,cham2tmp(i,j)))
    862862          ENDIF
    863863          ENDDO
     
    892892         i_proche = ij_proche - (j_proche-1)*imtmp
    893893         PRINT*, "solution:", ij_proche, i_proche, j_proche
    894          rugs(i,j) = LOG(MAX(0.001,cham2tmp(i_proche,j_proche)))
     894         rugs(i,j) = LOG(MAX(0.001_8,cham2tmp(i_proche,j_proche)))
    895895         ENDIF
    896896      ENDDO
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/heavyside.F

    r774 r1220  
    1010       IMPLICIT NONE
    1111
    12        REAL*8 heavyside , a
     12       REAL(KIND=8) heavyside , a
    1313
    1414       IF ( a.LE.0. )  THEN
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inter_barx.F

    r774 r1220  
    8181
    8282      DO idat = 1, idatmax
    83        xxd(idat) = AMOD( xxd(idat) - xim0, 360. )
     83       xxd(idat) = MOD( xxd(idat) - xim0, 360. )
    8484       fdd(idat) = fdat (idat)
    8585      ENDDO
     
    212212     
    213213
    214 3      FORMAT(1x,70(1h-))
     2143      FORMAT(1x,70("-"))
    2152152      FORMAT(1x,8f8.2)
    216216
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F

    r1207 r1220  
    243243   1  CONTINUE
    244244
    245       jD_cur = jD_ref + (day_ini - 1) + int (itau * dtvr / daysec)
     245      jD_cur = jD_ref + day_ini - day_ref + int (itau * dtvr / daysec)
    246246      jH_cur = jH_ref +                                                 &
    247247     &          (itau * dtvr / daysec - int(itau * dtvr / daysec))
     
    684684         CALL exner_hyb_p(  ip1jmp1, ps, p,alpha,beta,pks, pk, pkf )
    685685c$OMP BARRIER
    686            jD_cur = jD_ref + (day_ini -1) + int (itau * dtvr / daysec)
     686           jD_cur = jD_ref + day_ini - day_ref
     687     $        + int (itau * dtvr / daysec)
    687688           jH_cur = jH_ref +                                            &
    688689     &              (itau * dtvr / daysec - int(itau * dtvr / daysec))
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/sortvarc.F

    r1201 r1220  
    157157      RETURN
    158158
    159 3500   FORMAT('0'10(1h*),4x,'pas'i7,5x,'jour'f9.0,'heure'f5.1,4x
    160      *   ,'date',f14.4,4x,10(1h*))
     1593500   FORMAT(10("*"),4x,'pas',i7,5x,'jour',f9.0,'heure',f5.1,4x
     160     *   ,'date',f14.4,4x,10("*"))
    1611614000   FORMAT(10x,'masse',4x,'rmsdpdt',7x,'energie',2x,'enstrophie'
    162162     * ,2x,'entropie',3x,'rmsv',4x,'mt.ang',/,'GLOB  '
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/sortvarc0.F

    r774 r1220  
    130130      ang0   = SSUM(     llm,  angl, 1 )
    131131
    132       rday = FLOAT(INT ( day_ini + time ))
     132      rday = FLOAT(INT (time ))
    133133c
    134134      PRINT 3500, itau, rday, heure, time
    135135      PRINT *, ptot0,etot0,ztot0,stot0,ang0
    136136
    137 3500   FORMAT('0',10(1h*),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x
    138      *   ,'date',f10.5,4x,10(1h*))
     1373500   FORMAT(10("*"),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x
     138     *   ,'date',f10.5,4x,10("*"))
    139139      RETURN
    140140      END
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/ecribin.F

    r940 r1220  
    9494      SUBROUTINE ecriture(nunit, r8, n)
    9595      INTEGER nunit, n, i
    96       REAL*8 r8(n)
    97       REAL*4 r4(n)
     96      REAL(KIND=8) r8(n)
     97      REAL r4(n)
    9898      DO i = 1, n
    9999         r4(i) = r8(i)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/initphysto.F

    r776 r1220  
    5757C   Arguments
    5858      character*(*) infile
    59       integer*4 nhoriid, i
     59      integer nhoriid, i
    6060      real tstep, t_ops, t_wrt
    6161      integer fileid, filevid
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/newmicro.F

    r1183 r1220  
    399399            DO i = 1, klon
    400400               zclear(i)=zclear(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    401      &              /(1.-MIN(zcloud(i),1.-ZEPSEC))
     401     &              /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    402402               pct(i)=1.-zclear(i)
    403403               IF (pplay(i,k).LE.cetahb*paprs(i,1)) THEN
    404404                  pch(i) = pch(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    405      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     405     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    406406               ELSE IF (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
    407407     &                 pplay(i,k).LE.cetamb*paprs(i,1)) THEN
    408408                  pcm(i) = pcm(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    409      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     409     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    410410               ELSE IF (pplay(i,k).GT.cetamb*paprs(i,1)) THEN
    411411                  pcl(i) = pcl(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    412      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     412     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    413413               endif
    414414               zcloud(i)=pclc(i,k)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/open_climoz_m.F90

    r1156 r1220  
    1010    ! This procedure should be called once per "gcm" run, by a single
    1111    ! thread of each MPI process.
    12     ! The root process opens "climoz_LMDZ.nc", reads the pressure
     12    ! The root MPI process opens "climoz_LMDZ.nc", reads the pressure
    1313    ! levels and broadcasts them to the other processes.
    1414
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/ozonecm_m.F90

    r1215 r1220  
    66contains
    77
    8   function ozonecm(rjour,rlat,paprs)
     8  function ozonecm(rlat, paprs, rjour)
    99
    1010    ! The ozone climatology is based on an analytic formula which fits the
     
    2424    use assert_m, only: assert
    2525
    26     REAL, INTENT (IN) :: rjour
    2726    REAL, INTENT (IN) :: rlat(:) ! (klon)
    2827    REAL, INTENT (IN) :: paprs(:, :) ! (klon,klev+1)
     28    REAL, INTENT (IN) :: rjour
    2929
    3030    REAL ozonecm(klon,klev)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F

    r1217 r1220  
    2929      USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
    3030      USE phys_output_mod
    31       use open_climoz_m, only: open_climoz ! ozone climatology
     31      use open_climoz_m, only: open_climoz ! ozone climatology from a file
    3232      use regr_pr, only: regr_pr_av
    3333      use netcdf95, only: nf95_close
     
    284284      real T2STD(klon,nlevSTD)
    285285c
    286 #include "radepsi.h"
    287286#include "radopt.h"
    288287c
     
    743742      EXTERNAL hgardfou  ! verifier les temperatures
    744743      EXTERNAL nuage     ! calculer les proprietes radiatives
    745       EXTERNAL o3cm      ! initialiser l'ozone
     744CC      EXTERNAL o3cm      ! initialiser l'ozone
    746745      EXTERNAL orbite    ! calculer l'orbite terrestre
    747746      EXTERNAL phyetat0  ! lire l'etat initial de la physique
     
    982981      REAL zx_tmp_fiNC(klon,nlevSTD)
    983982c#endif
    984       REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D
     983      REAL(KIND=8) zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D
    985984      REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev)
    986985      REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1)
     
    11001099      integer iunit
    11011100
    1102       logical, save::  read_climoz ! read ozone climatology
     1101      logical, save::  read_climoz ! read ozone climatology from a file
    11031102      integer, save:: ncid_climoz ! NetCDF file containing ozone climatology
    11041103
     
    17131712c Prescrire l'ozone et calculer l'albedo sur l'ocean.
    17141713c
    1715       IF (MOD(itap-1,lmt_pas) .EQ. 0) THEN
     1714      IF (MOD(itap-1,lmt_pas) == 0) THEN
    17161715C        Once per day, update ozone:
    17171716         if (read_climoz) then
    17181717C           Ozone climatology from a NetCDF file
    1719             call regr_pr_av(ncid_climoz, "tro3", days_elapsed+1,
    1720      &           press_climoz,
    1721      $           paprs, wo)
     1718            call regr_pr_av(ncid_climoz, "tro3", julien=days_elapsed+1,
     1719     &           press_in_edg=press_climoz, paprs=paprs, v3=wo)
    17221720!           Convert from mole fraction of ozone to column density of ozone in a
    17231721!           cell, in kDU:
     
    17281726C           "zmasse" changes a little.)
    17291727         else
    1730             wo = ozonecm(real(days_elapsed+1), rlat, paprs)
     1728            wo = ozonecm(rlat, paprs, rjour=real(days_elapsed+1))
    17311729         end if
    17321730      ENDIF
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/printflag.F

    r879 r1220  
    132132       PRINT 100
    133133
    134  4    FORMAT(2x,5(1H*),'  ok_journe= ',l3,3x,',ok_instan = ',
    135      , l3,3x,',ok_region = ',l3,3x,5(1H*) )
     134 4    FORMAT(2x,5("*"),'  ok_journe= ',l3,3x,',ok_instan = ',
     135     , l3,3x,',ok_region = ',l3,3x,5("*") )
    136136
    137  7     FORMAT(2x,5(1H*),15x,'      ok_limitvrai   = ',l3,16x,5(1h*) )
     137 7     FORMAT(2x,5("*"),15x,'      ok_limitvrai   = ',l3,16x,5("*") )
    138138
    139139 8     FORMAT(2x,'*****             radpas    =                      ' ,
    140140     , i4,6x,' *****')
    141141
    142  10    FORMAT(2x,5(1H*),'    Cycle_diurne = ',l3,4x,', Soil_model = ',
    143      , l3,12x,6(1H*) )
     142 10    FORMAT(2x,5("*"),'    Cycle_diurne = ',l3,4x,', Soil_model = ',
     143     , l3,12x,6("*") )
    144144
    145145
    146  11    FORMAT(2x,5(1H*),'  new_oliq = ',l3,3x,', Ok_orodr = ',
    147      , l3,3x,', Ok_orolf = ',l3,3x,5(1H*) )
     146 11    FORMAT(2x,5("*"),'  new_oliq = ',l3,3x,', Ok_orodr = ',
     147     , l3,3x,', Ok_orolf = ',l3,3x,5("*") )
    148148
    149149
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/radepsi.h

    r524 r1220  
    22! $Header$
    33!
    4       REAL*8 ZEELOG, ZEPSC, ZEPSCO, ZEPSCQ, ZEPSCT, ZEPSCW
    5       REAL*8 ZEPSEC, ZEPSCR
     4      REAL(KIND=8) ZEELOG, ZEPSC, ZEPSCO, ZEPSCQ, ZEPSCT, ZEPSCW
     5      REAL(KIND=8) ZEPSEC, ZEPSCR
    66      PARAMETER (ZEELOG = 1.E-07) !1.e-10 (not good for 32-bit machines)
    77      PARAMETER (ZEPSC  = 1.E-20)
     
    1313      PARAMETER (ZEPSCR = 1.0E-10)
    1414c
    15       REAL*8 REPSCT
     15      REAL(KIND=8) REPSCT
    1616      PARAMETER (REPSCT=1.0E-10)
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/radiation_AR4.F

    r1215 r1220  
    5454C* ARGUMENTS:
    5555C
    56       REAL*8 PSCT  ! constante solaire (valeur conseillee: 1370)
    57 cIM ctes ds clesphys.h   REAL*8 RCO2  ! concentration CO2 (IPCC: 353.E-06*44.011/28.97)
     56      REAL(KIND=8) PSCT  ! constante solaire (valeur conseillee: 1370)
     57cIM ctes ds clesphys.h   REAL(KIND=8) RCO2  ! concentration CO2 (IPCC: 353.E-06*44.011/28.97)
    5858#include "clesphys.h"
    5959C
    60       REAL*8 PPSOL(KDLON)        ! SURFACE PRESSURE (PA)
    61       REAL*8 PDP(KDLON,KFLEV)    ! LAYER THICKNESS (PA)
    62       REAL*8 PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
    63 C
    64       REAL*8 PRMU0(KDLON)  ! COSINE OF ZENITHAL ANGLE
    65       REAL*8 PFRAC(KDLON)  ! fraction de la journee
    66 C
    67       REAL*8 PTAVE(KDLON,KFLEV)  ! LAYER TEMPERATURE (K)
    68       REAL*8 PWV(KDLON,KFLEV)    ! SPECIFIC HUMIDITY (KG/KG)
    69       REAL*8 PQS(KDLON,KFLEV)    ! SATURATED WATER VAPOUR (KG/KG)
    70       REAL*8 POZON(KDLON,KFLEV)  ! OZONE CONCENTRATION (KG/KG)
    71       REAL*8 PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS
    72 C
    73       REAL*8 PALBD(KDLON,2)  ! albedo du sol (lumiere diffuse)
    74       REAL*8 PALBP(KDLON,2)  ! albedo du sol (lumiere parallele)
    75 C
    76       REAL*8 PCLDSW(KDLON,KFLEV)    ! CLOUD FRACTION
    77       REAL*8 PTAU(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS
    78       REAL*8 PCG(KDLON,2,KFLEV)     ! ASYMETRY FACTOR
    79       REAL*8 POMEGA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
    80 C
    81       REAL*8 PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)
    82       REAL*8 PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky
    83       REAL*8 PALBPLA(KDLON)     ! PLANETARY ALBEDO
    84       REAL*8 PTOPSW(KDLON)      ! SHORTWAVE FLUX AT T.O.A.
    85       REAL*8 PSOLSW(KDLON)      ! SHORTWAVE FLUX AT SURFACE
    86       REAL*8 PTOPSW0(KDLON)     ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)
    87       REAL*8 PSOLSW0(KDLON)     ! SHORTWAVE FLUX AT SURFACE (CLEAR-SKY)
     60      REAL(KIND=8) PPSOL(KDLON)        ! SURFACE PRESSURE (PA)
     61      REAL(KIND=8) PDP(KDLON,KFLEV)    ! LAYER THICKNESS (PA)
     62      REAL(KIND=8) PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
     63C
     64      REAL(KIND=8) PRMU0(KDLON)  ! COSINE OF ZENITHAL ANGLE
     65      REAL(KIND=8) PFRAC(KDLON)  ! fraction de la journee
     66C
     67      REAL(KIND=8) PTAVE(KDLON,KFLEV)  ! LAYER TEMPERATURE (K)
     68      REAL(KIND=8) PWV(KDLON,KFLEV)    ! SPECIFIC HUMIDITY (KG/KG)
     69      REAL(KIND=8) PQS(KDLON,KFLEV)    ! SATURATED WATER VAPOUR (KG/KG)
     70      REAL(KIND=8) POZON(KDLON,KFLEV)  ! OZONE CONCENTRATION (KG/KG)
     71      REAL(KIND=8) PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS
     72C
     73      REAL(KIND=8) PALBD(KDLON,2)  ! albedo du sol (lumiere diffuse)
     74      REAL(KIND=8) PALBP(KDLON,2)  ! albedo du sol (lumiere parallele)
     75C
     76      REAL(KIND=8) PCLDSW(KDLON,KFLEV)    ! CLOUD FRACTION
     77      REAL(KIND=8) PTAU(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS
     78      REAL(KIND=8) PCG(KDLON,2,KFLEV)     ! ASYMETRY FACTOR
     79      REAL(KIND=8) POMEGA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
     80C
     81      REAL(KIND=8) PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)
     82      REAL(KIND=8) PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky
     83      REAL(KIND=8) PALBPLA(KDLON)     ! PLANETARY ALBEDO
     84      REAL(KIND=8) PTOPSW(KDLON)      ! SHORTWAVE FLUX AT T.O.A.
     85      REAL(KIND=8) PSOLSW(KDLON)      ! SHORTWAVE FLUX AT SURFACE
     86      REAL(KIND=8) PTOPSW0(KDLON)     ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)
     87      REAL(KIND=8) PSOLSW0(KDLON)     ! SHORTWAVE FLUX AT SURFACE (CLEAR-SKY)
    8888C
    8989C* LOCAL VARIABLES:
     
    9191      real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
    9292
    93       REAL(kind=8) ZOZ(KDLON,KFLEV)
     93      REAL(KIND=8) ZOZ(KDLON,KFLEV)
    9494!     column-density of ozone in layer, in kilo-Dobsons
    9595
    96       REAL*8 ZAKI(KDLON,2)     
    97       REAL*8 ZCLD(KDLON,KFLEV)
    98       REAL*8 ZCLEAR(KDLON)
    99       REAL*8 ZDSIG(KDLON,KFLEV)
    100       REAL*8 ZFACT(KDLON)
    101       REAL*8 ZFD(KDLON,KFLEV+1)
    102       REAL*8 ZFDOWN(KDLON,KFLEV+1)
    103       REAL*8 ZFU(KDLON,KFLEV+1)
    104       REAL*8 ZFUP(KDLON,KFLEV+1)
    105       REAL*8 ZRMU(KDLON)
    106       REAL*8 ZSEC(KDLON)
    107       REAL*8 ZUD(KDLON,5,KFLEV+1)
    108       REAL*8 ZCLDSW0(KDLON,KFLEV)
     96      REAL(KIND=8) ZAKI(KDLON,2)     
     97      REAL(KIND=8) ZCLD(KDLON,KFLEV)
     98      REAL(KIND=8) ZCLEAR(KDLON)
     99      REAL(KIND=8) ZDSIG(KDLON,KFLEV)
     100      REAL(KIND=8) ZFACT(KDLON)
     101      REAL(KIND=8) ZFD(KDLON,KFLEV+1)
     102      REAL(KIND=8) ZFDOWN(KDLON,KFLEV+1)
     103      REAL(KIND=8) ZFU(KDLON,KFLEV+1)
     104      REAL(KIND=8) ZFUP(KDLON,KFLEV+1)
     105      REAL(KIND=8) ZRMU(KDLON)
     106      REAL(KIND=8) ZSEC(KDLON)
     107      REAL(KIND=8) ZUD(KDLON,5,KFLEV+1)
     108      REAL(KIND=8) ZCLDSW0(KDLON,KFLEV)
    109109c
    110       REAL*8 ZFSUP(KDLON,KFLEV+1)
    111       REAL*8 ZFSDN(KDLON,KFLEV+1)
    112       REAL*8 ZFSUP0(KDLON,KFLEV+1)
    113       REAL*8 ZFSDN0(KDLON,KFLEV+1)
     110      REAL(KIND=8) ZFSUP(KDLON,KFLEV+1)
     111      REAL(KIND=8) ZFSDN(KDLON,KFLEV+1)
     112      REAL(KIND=8) ZFSUP0(KDLON,KFLEV+1)
     113      REAL(KIND=8) ZFSDN0(KDLON,KFLEV+1)
    114114C
    115115      INTEGER inu, jl, jk, i, k, kpl1
     
    126126c$OMP THREADPRIVATE(itapsw)
    127127cjq-Introduced for aerosol forcings
    128       real*8 flag_aer
     128      real(kind=8) flag_aer
    129129      logical ok_ade, ok_aie    ! use aerosol forcings or not?
    130       real*8 tauae(kdlon,kflev,2)  ! aerosol optical properties
    131       real*8 pizae(kdlon,kflev,2)  ! (see aeropt.F)
    132       real*8 cgae(kdlon,kflev,2)   ! -"-
    133       REAL*8 PTAUA(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS (pre-industrial value)
    134       REAL*8 POMEGAA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
    135       REAL*8 PTOPSWAD(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
    136       REAL*8 PSOLSWAD(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
    137       REAL*8 PTOPSWAI(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)
    138       REAL*8 PSOLSWAI(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
     130      real(kind=8) tauae(kdlon,kflev,2)  ! aerosol optical properties
     131      real(kind=8) pizae(kdlon,kflev,2)  ! (see aeropt.F)
     132      real(kind=8) cgae(kdlon,kflev,2)   ! -"-
     133      REAL(KIND=8) PTAUA(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS (pre-industrial value)
     134      REAL(KIND=8) POMEGAA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
     135      REAL(KIND=8) PTOPSWAD(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
     136      REAL(KIND=8) PSOLSWAD(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
     137      REAL(KIND=8) PTOPSWAI(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)
     138      REAL(KIND=8) PSOLSWAI(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
    139139cjq - Fluxes including aerosol effects
    140       REAL*8,allocatable,save :: ZFSUPAD(:,:)
     140      REAL(KIND=8),allocatable,save :: ZFSUPAD(:,:)
    141141c$OMP THREADPRIVATE(ZFSUPAD)
    142       REAL*8,allocatable,save :: ZFSDNAD(:,:)
     142      REAL(KIND=8),allocatable,save :: ZFSDNAD(:,:)
    143143c$OMP THREADPRIVATE(ZFSDNAD)
    144       REAL*8,allocatable,save :: ZFSUPAI(:,:)
     144      REAL(KIND=8),allocatable,save :: ZFSUPAI(:,:)
    145145c$OMP THREADPRIVATE(ZFSUPAI)
    146       REAL*8,allocatable,save :: ZFSDNAI(:,:)
     146      REAL(KIND=8),allocatable,save :: ZFSDNAI(:,:)
    147147c$OMP THREADPRIVATE(ZFSDNAI)
    148148      logical initialized
     
    353353C* ARGUMENTS:
    354354C
    355       REAL*8 PSCT
    356 cIM ctes ds clesphys.h   REAL*8 RCO2
     355      REAL(KIND=8) PSCT
     356cIM ctes ds clesphys.h   REAL(KIND=8) RCO2
    357357#include "clesphys.h"
    358       REAL*8 PCLDSW(KDLON,KFLEV)
    359       REAL*8 PPMB(KDLON,KFLEV+1)
    360       REAL*8 PPSOL(KDLON)
    361       REAL*8 PRMU0(KDLON)
    362       REAL*8 PFRAC(KDLON)
    363       REAL*8 PTAVE(KDLON,KFLEV)
    364       REAL*8 PWV(KDLON,KFLEV)
    365 C
    366       REAL*8 PAKI(KDLON,2)
    367       REAL*8 PCLD(KDLON,KFLEV)
    368       REAL*8 PCLEAR(KDLON)
    369       REAL*8 PDSIG(KDLON,KFLEV)
    370       REAL*8 PFACT(KDLON)
    371       REAL*8 PRMU(KDLON)
    372       REAL*8 PSEC(KDLON)
    373       REAL*8 PUD(KDLON,5,KFLEV+1)
     358      REAL(KIND=8) PCLDSW(KDLON,KFLEV)
     359      REAL(KIND=8) PPMB(KDLON,KFLEV+1)
     360      REAL(KIND=8) PPSOL(KDLON)
     361      REAL(KIND=8) PRMU0(KDLON)
     362      REAL(KIND=8) PFRAC(KDLON)
     363      REAL(KIND=8) PTAVE(KDLON,KFLEV)
     364      REAL(KIND=8) PWV(KDLON,KFLEV)
     365C
     366      REAL(KIND=8) PAKI(KDLON,2)
     367      REAL(KIND=8) PCLD(KDLON,KFLEV)
     368      REAL(KIND=8) PCLEAR(KDLON)
     369      REAL(KIND=8) PDSIG(KDLON,KFLEV)
     370      REAL(KIND=8) PFACT(KDLON)
     371      REAL(KIND=8) PRMU(KDLON)
     372      REAL(KIND=8) PSEC(KDLON)
     373      REAL(KIND=8) PUD(KDLON,5,KFLEV+1)
    374374C
    375375C* LOCAL VARIABLES:
    376376C
    377377      INTEGER IIND(2)
    378       REAL*8 ZC1J(KDLON,KFLEV+1)
    379       REAL*8 ZCLEAR(KDLON)
    380       REAL*8 ZCLOUD(KDLON)
    381       REAL*8 ZN175(KDLON)
    382       REAL*8 ZN190(KDLON)
    383       REAL*8 ZO175(KDLON)
    384       REAL*8 ZO190(KDLON)
    385       REAL*8 ZSIGN(KDLON)
    386       REAL*8 ZR(KDLON,2)
    387       REAL*8 ZSIGO(KDLON)
    388       REAL*8 ZUD(KDLON,2)
    389       REAL*8 ZRTH, ZRTU, ZWH2O, ZDSCO2, ZDSH2O, ZFPPW
     378      REAL(KIND=8) ZC1J(KDLON,KFLEV+1)
     379      REAL(KIND=8) ZCLEAR(KDLON)
     380      REAL(KIND=8) ZCLOUD(KDLON)
     381      REAL(KIND=8) ZN175(KDLON)
     382      REAL(KIND=8) ZN190(KDLON)
     383      REAL(KIND=8) ZO175(KDLON)
     384      REAL(KIND=8) ZO190(KDLON)
     385      REAL(KIND=8) ZSIGN(KDLON)
     386      REAL(KIND=8) ZR(KDLON,2)
     387      REAL(KIND=8) ZSIGO(KDLON)
     388      REAL(KIND=8) ZUD(KDLON,2)
     389      REAL(KIND=8) ZRTH, ZRTU, ZWH2O, ZDSCO2, ZDSH2O, ZFPPW
    390390      INTEGER jl, jk, jkp1, jkl, jklp1, ja
    391391C
    392392C* Prescribed Data:
    393393c
    394       REAL*8 ZPDH2O,ZPDUMG
     394      REAL(KIND=8) ZPDH2O,ZPDUMG
    395395      SAVE ZPDH2O,ZPDUMG
    396396c$OMP THREADPRIVATE(ZPDH2O,ZPDUMG)
    397       REAL*8 ZPRH2O,ZPRUMG
     397      REAL(KIND=8) ZPRH2O,ZPRUMG
    398398      SAVE ZPRH2O,ZPRUMG
    399399c$OMP THREADPRIVATE(ZPRH2O,ZPRUMG)
    400       REAL*8 RTDH2O,RTDUMG
     400      REAL(KIND=8) RTDH2O,RTDUMG
    401401      SAVE RTDH2O,RTDUMG
    402402c$OMP THREADPRIVATE(RTDH2O,RTDUMG)
    403       REAL*8 RTH2O ,RTUMG
     403      REAL(KIND=8) RTH2O ,RTUMG
    404404      SAVE RTH2O ,RTUMG
    405405c$OMP THREADPRIVATE(RTH2O ,RTUMG)
     
    577577      INTEGER KNU
    578578c-OB
    579       real*8 flag_aer
    580       real*8 tauae(kdlon,kflev,2)
    581       real*8 pizae(kdlon,kflev,2)
    582       real*8 cgae(kdlon,kflev,2)
    583       REAL*8 PAER(KDLON,KFLEV,5)
    584       REAL*8 PALBD(KDLON,2)
    585       REAL*8 PALBP(KDLON,2)
    586       REAL*8 PCG(KDLON,2,KFLEV) 
    587       REAL*8 PCLD(KDLON,KFLEV)
    588       REAL*8 PCLDSW(KDLON,KFLEV)
    589       REAL*8 PCLEAR(KDLON)
    590       REAL*8 PDSIG(KDLON,KFLEV)
    591       REAL*8 POMEGA(KDLON,2,KFLEV)
    592       REAL*8 POZ(KDLON,KFLEV)
    593       REAL*8 PRMU(KDLON)
    594       REAL*8 PSEC(KDLON)
    595       REAL*8 PTAU(KDLON,2,KFLEV)
    596       REAL*8 PUD(KDLON,5,KFLEV+1)
    597 C
    598       REAL*8 PFD(KDLON,KFLEV+1)
    599       REAL*8 PFU(KDLON,KFLEV+1)
     579      real(kind=8) flag_aer
     580      real(kind=8) tauae(kdlon,kflev,2)
     581      real(kind=8) pizae(kdlon,kflev,2)
     582      real(kind=8) cgae(kdlon,kflev,2)
     583      REAL(KIND=8) PAER(KDLON,KFLEV,5)
     584      REAL(KIND=8) PALBD(KDLON,2)
     585      REAL(KIND=8) PALBP(KDLON,2)
     586      REAL(KIND=8) PCG(KDLON,2,KFLEV) 
     587      REAL(KIND=8) PCLD(KDLON,KFLEV)
     588      REAL(KIND=8) PCLDSW(KDLON,KFLEV)
     589      REAL(KIND=8) PCLEAR(KDLON)
     590      REAL(KIND=8) PDSIG(KDLON,KFLEV)
     591      REAL(KIND=8) POMEGA(KDLON,2,KFLEV)
     592      REAL(KIND=8) POZ(KDLON,KFLEV)
     593      REAL(KIND=8) PRMU(KDLON)
     594      REAL(KIND=8) PSEC(KDLON)
     595      REAL(KIND=8) PTAU(KDLON,2,KFLEV)
     596      REAL(KIND=8) PUD(KDLON,5,KFLEV+1)
     597C
     598      REAL(KIND=8) PFD(KDLON,KFLEV+1)
     599      REAL(KIND=8) PFU(KDLON,KFLEV+1)
    600600C
    601601C* LOCAL VARIABLES:
     
    603603      INTEGER IIND(4)
    604604C     
    605       REAL*8 ZCGAZ(KDLON,KFLEV)
    606       REAL*8 ZDIFF(KDLON)
    607       REAL*8 ZDIRF(KDLON)       
    608       REAL*8 ZPIZAZ(KDLON,KFLEV)
    609       REAL*8 ZRAYL(KDLON)
    610       REAL*8 ZRAY1(KDLON,KFLEV+1)
    611       REAL*8 ZRAY2(KDLON,KFLEV+1)
    612       REAL*8 ZREFZ(KDLON,2,KFLEV+1)
    613       REAL*8 ZRJ(KDLON,6,KFLEV+1)
    614       REAL*8 ZRJ0(KDLON,6,KFLEV+1)
    615       REAL*8 ZRK(KDLON,6,KFLEV+1)
    616       REAL*8 ZRK0(KDLON,6,KFLEV+1)
    617       REAL*8 ZRMUE(KDLON,KFLEV+1)
    618       REAL*8 ZRMU0(KDLON,KFLEV+1)
    619       REAL*8 ZR(KDLON,4)
    620       REAL*8 ZTAUAZ(KDLON,KFLEV)
    621       REAL*8 ZTRA1(KDLON,KFLEV+1)
    622       REAL*8 ZTRA2(KDLON,KFLEV+1)
    623       REAL*8 ZW(KDLON,4)
     605      REAL(KIND=8) ZCGAZ(KDLON,KFLEV)
     606      REAL(KIND=8) ZDIFF(KDLON)
     607      REAL(KIND=8) ZDIRF(KDLON)       
     608      REAL(KIND=8) ZPIZAZ(KDLON,KFLEV)
     609      REAL(KIND=8) ZRAYL(KDLON)
     610      REAL(KIND=8) ZRAY1(KDLON,KFLEV+1)
     611      REAL(KIND=8) ZRAY2(KDLON,KFLEV+1)
     612      REAL(KIND=8) ZREFZ(KDLON,2,KFLEV+1)
     613      REAL(KIND=8) ZRJ(KDLON,6,KFLEV+1)
     614      REAL(KIND=8) ZRJ0(KDLON,6,KFLEV+1)
     615      REAL(KIND=8) ZRK(KDLON,6,KFLEV+1)
     616      REAL(KIND=8) ZRK0(KDLON,6,KFLEV+1)
     617      REAL(KIND=8) ZRMUE(KDLON,KFLEV+1)
     618      REAL(KIND=8) ZRMU0(KDLON,KFLEV+1)
     619      REAL(KIND=8) ZR(KDLON,4)
     620      REAL(KIND=8) ZTAUAZ(KDLON,KFLEV)
     621      REAL(KIND=8) ZTRA1(KDLON,KFLEV+1)
     622      REAL(KIND=8) ZTRA2(KDLON,KFLEV+1)
     623      REAL(KIND=8) ZW(KDLON,4)
    624624C
    625625      INTEGER jl, jk, k, jaj, ikm1, ikl
     
    627627c Prescribed Data:
    628628c
    629       REAL*8 RSUN(2)
     629      REAL(KIND=8) RSUN(2)
    630630      SAVE RSUN
    631631c$OMP THREADPRIVATE(RSUN)
    632       REAL*8 RRAY(2,6)
     632      REAL(KIND=8) RRAY(2,6)
    633633      SAVE RRAY
    634634c$OMP THREADPRIVATE(RRAY)
     
    825825      INTEGER KNU
    826826c-OB
    827       real*8 flag_aer
    828       real*8 tauae(kdlon,kflev,2)
    829       real*8 pizae(kdlon,kflev,2)
    830       real*8 cgae(kdlon,kflev,2)
    831       REAL*8 PAER(KDLON,KFLEV,5)
    832       REAL*8 PAKI(KDLON,2)
    833       REAL*8 PALBD(KDLON,2)
    834       REAL*8 PALBP(KDLON,2)
    835       REAL*8 PCG(KDLON,2,KFLEV)
    836       REAL*8 PCLD(KDLON,KFLEV)
    837       REAL*8 PCLDSW(KDLON,KFLEV)
    838       REAL*8 PCLEAR(KDLON)
    839       REAL*8 PDSIG(KDLON,KFLEV)
    840       REAL*8 POMEGA(KDLON,2,KFLEV)
    841       REAL*8 POZ(KDLON,KFLEV)
    842       REAL*8 PQS(KDLON,KFLEV)
    843       REAL*8 PRMU(KDLON)
    844       REAL*8 PSEC(KDLON)
    845       REAL*8 PTAU(KDLON,2,KFLEV)
    846       REAL*8 PUD(KDLON,5,KFLEV+1)
    847       REAL*8 PWV(KDLON,KFLEV)
    848 C
    849       REAL*8 PFDOWN(KDLON,KFLEV+1)
    850       REAL*8 PFUP(KDLON,KFLEV+1)
     827      real(kind=8) flag_aer
     828      real(kind=8) tauae(kdlon,kflev,2)
     829      real(kind=8) pizae(kdlon,kflev,2)
     830      real(kind=8) cgae(kdlon,kflev,2)
     831      REAL(KIND=8) PAER(KDLON,KFLEV,5)
     832      REAL(KIND=8) PAKI(KDLON,2)
     833      REAL(KIND=8) PALBD(KDLON,2)
     834      REAL(KIND=8) PALBP(KDLON,2)
     835      REAL(KIND=8) PCG(KDLON,2,KFLEV)
     836      REAL(KIND=8) PCLD(KDLON,KFLEV)
     837      REAL(KIND=8) PCLDSW(KDLON,KFLEV)
     838      REAL(KIND=8) PCLEAR(KDLON)
     839      REAL(KIND=8) PDSIG(KDLON,KFLEV)
     840      REAL(KIND=8) POMEGA(KDLON,2,KFLEV)
     841      REAL(KIND=8) POZ(KDLON,KFLEV)
     842      REAL(KIND=8) PQS(KDLON,KFLEV)
     843      REAL(KIND=8) PRMU(KDLON)
     844      REAL(KIND=8) PSEC(KDLON)
     845      REAL(KIND=8) PTAU(KDLON,2,KFLEV)
     846      REAL(KIND=8) PUD(KDLON,5,KFLEV+1)
     847      REAL(KIND=8) PWV(KDLON,KFLEV)
     848C
     849      REAL(KIND=8) PFDOWN(KDLON,KFLEV+1)
     850      REAL(KIND=8) PFUP(KDLON,KFLEV+1)
    851851C
    852852C* LOCAL VARIABLES:
    853853C
    854854      INTEGER IIND2(2), IIND3(3)
    855       REAL*8 ZCGAZ(KDLON,KFLEV)
    856       REAL*8 ZFD(KDLON,KFLEV+1)
    857       REAL*8 ZFU(KDLON,KFLEV+1)
    858       REAL*8 ZG(KDLON)
    859       REAL*8 ZGG(KDLON)
    860       REAL*8 ZPIZAZ(KDLON,KFLEV)
    861       REAL*8 ZRAYL(KDLON)
    862       REAL*8 ZRAY1(KDLON,KFLEV+1)
    863       REAL*8 ZRAY2(KDLON,KFLEV+1)
    864       REAL*8 ZREF(KDLON)
    865       REAL*8 ZREFZ(KDLON,2,KFLEV+1)
    866       REAL*8 ZRE1(KDLON)
    867       REAL*8 ZRE2(KDLON)
    868       REAL*8 ZRJ(KDLON,6,KFLEV+1)
    869       REAL*8 ZRJ0(KDLON,6,KFLEV+1)
    870       REAL*8 ZRK(KDLON,6,KFLEV+1)
    871       REAL*8 ZRK0(KDLON,6,KFLEV+1)
    872       REAL*8 ZRL(KDLON,8)
    873       REAL*8 ZRMUE(KDLON,KFLEV+1)
    874       REAL*8 ZRMU0(KDLON,KFLEV+1)
    875       REAL*8 ZRMUZ(KDLON)
    876       REAL*8 ZRNEB(KDLON)
    877       REAL*8 ZRUEF(KDLON,8)
    878       REAL*8 ZR1(KDLON)
    879       REAL*8 ZR2(KDLON,2)
    880       REAL*8 ZR3(KDLON,3)
    881       REAL*8 ZR4(KDLON)
    882       REAL*8 ZR21(KDLON)
    883       REAL*8 ZR22(KDLON)
    884       REAL*8 ZS(KDLON)
    885       REAL*8 ZTAUAZ(KDLON,KFLEV)
    886       REAL*8 ZTO1(KDLON)
    887       REAL*8 ZTR(KDLON,2,KFLEV+1)
    888       REAL*8 ZTRA1(KDLON,KFLEV+1)
    889       REAL*8 ZTRA2(KDLON,KFLEV+1)
    890       REAL*8 ZTR1(KDLON)
    891       REAL*8 ZTR2(KDLON)
    892       REAL*8 ZW(KDLON)   
    893       REAL*8 ZW1(KDLON)
    894       REAL*8 ZW2(KDLON,2)
    895       REAL*8 ZW3(KDLON,3)
    896       REAL*8 ZW4(KDLON)
    897       REAL*8 ZW5(KDLON)
     855      REAL(KIND=8) ZCGAZ(KDLON,KFLEV)
     856      REAL(KIND=8) ZFD(KDLON,KFLEV+1)
     857      REAL(KIND=8) ZFU(KDLON,KFLEV+1)
     858      REAL(KIND=8) ZG(KDLON)
     859      REAL(KIND=8) ZGG(KDLON)
     860      REAL(KIND=8) ZPIZAZ(KDLON,KFLEV)
     861      REAL(KIND=8) ZRAYL(KDLON)
     862      REAL(KIND=8) ZRAY1(KDLON,KFLEV+1)
     863      REAL(KIND=8) ZRAY2(KDLON,KFLEV+1)
     864      REAL(KIND=8) ZREF(KDLON)
     865      REAL(KIND=8) ZREFZ(KDLON,2,KFLEV+1)
     866      REAL(KIND=8) ZRE1(KDLON)
     867      REAL(KIND=8) ZRE2(KDLON)
     868      REAL(KIND=8) ZRJ(KDLON,6,KFLEV+1)
     869      REAL(KIND=8) ZRJ0(KDLON,6,KFLEV+1)
     870      REAL(KIND=8) ZRK(KDLON,6,KFLEV+1)
     871      REAL(KIND=8) ZRK0(KDLON,6,KFLEV+1)
     872      REAL(KIND=8) ZRL(KDLON,8)
     873      REAL(KIND=8) ZRMUE(KDLON,KFLEV+1)
     874      REAL(KIND=8) ZRMU0(KDLON,KFLEV+1)
     875      REAL(KIND=8) ZRMUZ(KDLON)
     876      REAL(KIND=8) ZRNEB(KDLON)
     877      REAL(KIND=8) ZRUEF(KDLON,8)
     878      REAL(KIND=8) ZR1(KDLON)
     879      REAL(KIND=8) ZR2(KDLON,2)
     880      REAL(KIND=8) ZR3(KDLON,3)
     881      REAL(KIND=8) ZR4(KDLON)
     882      REAL(KIND=8) ZR21(KDLON)
     883      REAL(KIND=8) ZR22(KDLON)
     884      REAL(KIND=8) ZS(KDLON)
     885      REAL(KIND=8) ZTAUAZ(KDLON,KFLEV)
     886      REAL(KIND=8) ZTO1(KDLON)
     887      REAL(KIND=8) ZTR(KDLON,2,KFLEV+1)
     888      REAL(KIND=8) ZTRA1(KDLON,KFLEV+1)
     889      REAL(KIND=8) ZTRA2(KDLON,KFLEV+1)
     890      REAL(KIND=8) ZTR1(KDLON)
     891      REAL(KIND=8) ZTR2(KDLON)
     892      REAL(KIND=8) ZW(KDLON)   
     893      REAL(KIND=8) ZW1(KDLON)
     894      REAL(KIND=8) ZW2(KDLON,2)
     895      REAL(KIND=8) ZW3(KDLON,3)
     896      REAL(KIND=8) ZW4(KDLON)
     897      REAL(KIND=8) ZW5(KDLON)
    898898C
    899899      INTEGER jl, jk, k, jaj, ikm1, ikl, jn, jabs, jkm1
    900900      INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs
    901       REAL*8 ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11
     901      REAL(KIND=8) ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11
    902902C
    903903C* Prescribed Data:
    904904C
    905       REAL*8 RSUN(2)
     905      REAL(KIND=8) RSUN(2)
    906906      SAVE RSUN
    907907c$OMP THREADPRIVATE(RSUN)
    908       REAL*8 RRAY(2,6)
     908      REAL(KIND=8) RRAY(2,6)
    909909      SAVE RRAY
    910910c$OMP THREADPRIVATE(RRAY)
     
    13611361      INTEGER KNU
    13621362c-OB
    1363       real*8 flag_aer
    1364       real*8 tauae(kdlon,kflev,2)
    1365       real*8 pizae(kdlon,kflev,2)
    1366       real*8 cgae(kdlon,kflev,2)
    1367       REAL*8 PAER(KDLON,KFLEV,5)
    1368       REAL*8 PALBP(KDLON,2)
    1369       REAL*8 PDSIG(KDLON,KFLEV)
    1370       REAL*8 PRAYL(KDLON)
    1371       REAL*8 PSEC(KDLON)
    1372 C
    1373       REAL*8 PCGAZ(KDLON,KFLEV)     
    1374       REAL*8 PPIZAZ(KDLON,KFLEV)
    1375       REAL*8 PRAY1(KDLON,KFLEV+1)
    1376       REAL*8 PRAY2(KDLON,KFLEV+1)
    1377       REAL*8 PREFZ(KDLON,2,KFLEV+1)
    1378       REAL*8 PRJ(KDLON,6,KFLEV+1)
    1379       REAL*8 PRK(KDLON,6,KFLEV+1)
    1380       REAL*8 PRMU0(KDLON,KFLEV+1)
    1381       REAL*8 PTAUAZ(KDLON,KFLEV)
    1382       REAL*8 PTRA1(KDLON,KFLEV+1)
    1383       REAL*8 PTRA2(KDLON,KFLEV+1)
     1363      real(kind=8) flag_aer
     1364      real(kind=8) tauae(kdlon,kflev,2)
     1365      real(kind=8) pizae(kdlon,kflev,2)
     1366      real(kind=8) cgae(kdlon,kflev,2)
     1367      REAL(KIND=8) PAER(KDLON,KFLEV,5)
     1368      REAL(KIND=8) PALBP(KDLON,2)
     1369      REAL(KIND=8) PDSIG(KDLON,KFLEV)
     1370      REAL(KIND=8) PRAYL(KDLON)
     1371      REAL(KIND=8) PSEC(KDLON)
     1372C
     1373      REAL(KIND=8) PCGAZ(KDLON,KFLEV)     
     1374      REAL(KIND=8) PPIZAZ(KDLON,KFLEV)
     1375      REAL(KIND=8) PRAY1(KDLON,KFLEV+1)
     1376      REAL(KIND=8) PRAY2(KDLON,KFLEV+1)
     1377      REAL(KIND=8) PREFZ(KDLON,2,KFLEV+1)
     1378      REAL(KIND=8) PRJ(KDLON,6,KFLEV+1)
     1379      REAL(KIND=8) PRK(KDLON,6,KFLEV+1)
     1380      REAL(KIND=8) PRMU0(KDLON,KFLEV+1)
     1381      REAL(KIND=8) PTAUAZ(KDLON,KFLEV)
     1382      REAL(KIND=8) PTRA1(KDLON,KFLEV+1)
     1383      REAL(KIND=8) PTRA2(KDLON,KFLEV+1)
    13841384C
    13851385C* LOCAL VARIABLES:
    13861386C
    1387       REAL*8 ZC0I(KDLON,KFLEV+1)       
    1388       REAL*8 ZCLE0(KDLON,KFLEV)
    1389       REAL*8 ZCLEAR(KDLON)
    1390       REAL*8 ZR21(KDLON)
    1391       REAL*8 ZR23(KDLON)
    1392       REAL*8 ZSS0(KDLON)
    1393       REAL*8 ZSCAT(KDLON)
    1394       REAL*8 ZTR(KDLON,2,KFLEV+1)
     1387      REAL(KIND=8) ZC0I(KDLON,KFLEV+1)       
     1388      REAL(KIND=8) ZCLE0(KDLON,KFLEV)
     1389      REAL(KIND=8) ZCLEAR(KDLON)
     1390      REAL(KIND=8) ZR21(KDLON)
     1391      REAL(KIND=8) ZR23(KDLON)
     1392      REAL(KIND=8) ZSS0(KDLON)
     1393      REAL(KIND=8) ZSCAT(KDLON)
     1394      REAL(KIND=8) ZTR(KDLON,2,KFLEV+1)
    13951395C
    13961396      INTEGER jl, jk, ja, jae, jkl, jklp1, jaj, jkm1, in
    1397       REAL*8 ZTRAY, ZGAR, ZRATIO, ZFF, ZFACOA, ZCORAE
    1398       REAL*8 ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZMU1, ZDEN1
    1399       REAL*8 ZBMU0, ZBMU1, ZRE11
     1397      REAL(KIND=8) ZTRAY, ZGAR, ZRATIO, ZFF, ZFACOA, ZCORAE
     1398      REAL(KIND=8) ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZMU1, ZDEN1
     1399      REAL(KIND=8) ZBMU0, ZBMU1, ZRE11
    14001400C
    14011401C* Prescribed Data for Aerosols:
    14021402C
    1403       REAL*8 TAUA(2,5), RPIZA(2,5), RCGA(2,5)
     1403      REAL(KIND=8) TAUA(2,5), RPIZA(2,5), RCGA(2,5)
    14041404      SAVE TAUA, RPIZA, RCGA
    14051405c$OMP THREADPRIVATE(TAUA, RPIZA, RCGA)
     
    17281728C
    17291729      INTEGER KNU
    1730       REAL*8 PALBD(KDLON,2)
    1731       REAL*8 PCG(KDLON,2,KFLEV)
    1732       REAL*8 PCLD(KDLON,KFLEV)
    1733       REAL*8 PDSIG(KDLON,KFLEV)
    1734       REAL*8 POMEGA(KDLON,2,KFLEV)
    1735       REAL*8 PRAYL(KDLON)
    1736       REAL*8 PSEC(KDLON)
    1737       REAL*8 PTAU(KDLON,2,KFLEV)
    1738 C
    1739       REAL*8 PRAY1(KDLON,KFLEV+1)
    1740       REAL*8 PRAY2(KDLON,KFLEV+1)
    1741       REAL*8 PREFZ(KDLON,2,KFLEV+1)
    1742       REAL*8 PRJ(KDLON,6,KFLEV+1)
    1743       REAL*8 PRK(KDLON,6,KFLEV+1)
    1744       REAL*8 PRMUE(KDLON,KFLEV+1)
    1745       REAL*8 PCGAZ(KDLON,KFLEV)
    1746       REAL*8 PPIZAZ(KDLON,KFLEV)
    1747       REAL*8 PTAUAZ(KDLON,KFLEV)
    1748       REAL*8 PTRA1(KDLON,KFLEV+1)
    1749       REAL*8 PTRA2(KDLON,KFLEV+1)
     1730      REAL(KIND=8) PALBD(KDLON,2)
     1731      REAL(KIND=8) PCG(KDLON,2,KFLEV)
     1732      REAL(KIND=8) PCLD(KDLON,KFLEV)
     1733      REAL(KIND=8) PDSIG(KDLON,KFLEV)
     1734      REAL(KIND=8) POMEGA(KDLON,2,KFLEV)
     1735      REAL(KIND=8) PRAYL(KDLON)
     1736      REAL(KIND=8) PSEC(KDLON)
     1737      REAL(KIND=8) PTAU(KDLON,2,KFLEV)
     1738C
     1739      REAL(KIND=8) PRAY1(KDLON,KFLEV+1)
     1740      REAL(KIND=8) PRAY2(KDLON,KFLEV+1)
     1741      REAL(KIND=8) PREFZ(KDLON,2,KFLEV+1)
     1742      REAL(KIND=8) PRJ(KDLON,6,KFLEV+1)
     1743      REAL(KIND=8) PRK(KDLON,6,KFLEV+1)
     1744      REAL(KIND=8) PRMUE(KDLON,KFLEV+1)
     1745      REAL(KIND=8) PCGAZ(KDLON,KFLEV)
     1746      REAL(KIND=8) PPIZAZ(KDLON,KFLEV)
     1747      REAL(KIND=8) PTAUAZ(KDLON,KFLEV)
     1748      REAL(KIND=8) PTRA1(KDLON,KFLEV+1)
     1749      REAL(KIND=8) PTRA2(KDLON,KFLEV+1)
    17501750C
    17511751C* LOCAL VARIABLES:
    17521752C
    1753       REAL*8 ZC1I(KDLON,KFLEV+1)
    1754       REAL*8 ZCLEQ(KDLON,KFLEV)
    1755       REAL*8 ZCLEAR(KDLON)
    1756       REAL*8 ZCLOUD(KDLON)
    1757       REAL*8 ZGG(KDLON)
    1758       REAL*8 ZREF(KDLON)
    1759       REAL*8 ZRE1(KDLON)
    1760       REAL*8 ZRE2(KDLON)
    1761       REAL*8 ZRMUZ(KDLON)
    1762       REAL*8 ZRNEB(KDLON)
    1763       REAL*8 ZR21(KDLON)
    1764       REAL*8 ZR22(KDLON)
    1765       REAL*8 ZR23(KDLON)
    1766       REAL*8 ZSS1(KDLON)
    1767       REAL*8 ZTO1(KDLON)
    1768       REAL*8 ZTR(KDLON,2,KFLEV+1)
    1769       REAL*8 ZTR1(KDLON)
    1770       REAL*8 ZTR2(KDLON)
    1771       REAL*8 ZW(KDLON)
     1753      REAL(KIND=8) ZC1I(KDLON,KFLEV+1)
     1754      REAL(KIND=8) ZCLEQ(KDLON,KFLEV)
     1755      REAL(KIND=8) ZCLEAR(KDLON)
     1756      REAL(KIND=8) ZCLOUD(KDLON)
     1757      REAL(KIND=8) ZGG(KDLON)
     1758      REAL(KIND=8) ZREF(KDLON)
     1759      REAL(KIND=8) ZRE1(KDLON)
     1760      REAL(KIND=8) ZRE2(KDLON)
     1761      REAL(KIND=8) ZRMUZ(KDLON)
     1762      REAL(KIND=8) ZRNEB(KDLON)
     1763      REAL(KIND=8) ZR21(KDLON)
     1764      REAL(KIND=8) ZR22(KDLON)
     1765      REAL(KIND=8) ZR23(KDLON)
     1766      REAL(KIND=8) ZSS1(KDLON)
     1767      REAL(KIND=8) ZTO1(KDLON)
     1768      REAL(KIND=8) ZTR(KDLON,2,KFLEV+1)
     1769      REAL(KIND=8) ZTR1(KDLON)
     1770      REAL(KIND=8) ZTR2(KDLON)
     1771      REAL(KIND=8) ZW(KDLON)
    17721772C
    17731773      INTEGER jk, jl, ja, jkl, jklp1, jkm1, jaj
    1774       REAL*8 ZFACOA, ZFACOC, ZCORAE, ZCORCD
    1775       REAL*8 ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZDEN1
    1776       REAL*8 ZMU1, ZRE11, ZBMU0, ZBMU1
     1774      REAL(KIND=8) ZFACOA, ZFACOC, ZCORAE, ZCORCD
     1775      REAL(KIND=8) ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZDEN1
     1776      REAL(KIND=8) ZMU1, ZRE11, ZBMU0, ZBMU1
    17771777C
    17781778C     ------------------------------------------------------------------
     
    20812081C* ARGUMENTS:
    20822082C
    2083       REAL*8 PGG(KDLON)   ! ASSYMETRY FACTOR
    2084       REAL*8 PREF(KDLON)  ! REFLECTIVITY OF THE UNDERLYING LAYER
    2085       REAL*8 PRMUZ(KDLON) ! COSINE OF SOLAR ZENITH ANGLE
    2086       REAL*8 PTO1(KDLON)  ! OPTICAL THICKNESS
    2087       REAL*8 PW(KDLON)    ! SINGLE SCATTERING ALBEDO
    2088       REAL*8 PRE1(KDLON)  ! LAYER REFLECTIVITY (NO UNDERLYING-LAYER REFLECTION)
    2089       REAL*8 PRE2(KDLON)  ! LAYER REFLECTIVITY
    2090       REAL*8 PTR1(KDLON)  ! LAYER TRANSMISSIVITY (NO UNDERLYING-LAYER REFLECTION)
    2091       REAL*8 PTR2(KDLON)  ! LAYER TRANSMISSIVITY
     2083      REAL(KIND=8) PGG(KDLON)   ! ASSYMETRY FACTOR
     2084      REAL(KIND=8) PREF(KDLON)  ! REFLECTIVITY OF THE UNDERLYING LAYER
     2085      REAL(KIND=8) PRMUZ(KDLON) ! COSINE OF SOLAR ZENITH ANGLE
     2086      REAL(KIND=8) PTO1(KDLON)  ! OPTICAL THICKNESS
     2087      REAL(KIND=8) PW(KDLON)    ! SINGLE SCATTERING ALBEDO
     2088      REAL(KIND=8) PRE1(KDLON)  ! LAYER REFLECTIVITY (NO UNDERLYING-LAYER REFLECTION)
     2089      REAL(KIND=8) PRE2(KDLON)  ! LAYER REFLECTIVITY
     2090      REAL(KIND=8) PTR1(KDLON)  ! LAYER TRANSMISSIVITY (NO UNDERLYING-LAYER REFLECTION)
     2091      REAL(KIND=8) PTR2(KDLON)  ! LAYER TRANSMISSIVITY
    20922092C
    20932093C* LOCAL VARIABLES:
    20942094C
    20952095      INTEGER jl
    2096       REAL*8 ZFF, ZGP, ZTOP, ZWCP, ZDT, ZX1, ZWM
    2097       REAL*8 ZRM2, ZRK, ZX2, ZRP, ZALPHA, ZBETA, ZARG
    2098       REAL*8 ZEXMU0, ZARG2, ZEXKP, ZEXKM, ZXP2P, ZXM2P, ZAP2B, ZAM2B
    2099       REAL*8 ZA11, ZA12, ZA13, ZA21, ZA22, ZA23
    2100       REAL*8 ZDENA, ZC1A, ZC2A, ZRI0A, ZRI1A
    2101       REAL*8 ZRI0B, ZRI1B
    2102       REAL*8 ZB21, ZB22, ZB23, ZDENB, ZC1B, ZC2B
    2103       REAL*8 ZRI0C, ZRI1C, ZRI0D, ZRI1D
     2096      REAL(KIND=8) ZFF, ZGP, ZTOP, ZWCP, ZDT, ZX1, ZWM
     2097      REAL(KIND=8) ZRM2, ZRK, ZX2, ZRP, ZALPHA, ZBETA, ZARG
     2098      REAL(KIND=8) ZEXMU0, ZARG2, ZEXKP, ZEXKM, ZXP2P, ZXM2P, ZAP2B,
     2099     $     ZAM2B
     2100      REAL(KIND=8) ZA11, ZA12, ZA13, ZA21, ZA22, ZA23
     2101      REAL(KIND=8) ZDENA, ZC1A, ZC2A, ZRI0A, ZRI1A
     2102      REAL(KIND=8) ZRI0B, ZRI1B
     2103      REAL(KIND=8) ZB21, ZB22, ZB23, ZDENB, ZC1B, ZC2B
     2104      REAL(KIND=8) ZRI0C, ZRI1C, ZRI0D, ZRI1D
    21042105C     ------------------------------------------------------------------
    21052106C
     
    22162217      INTEGER KNU     ! INDEX OF THE SPECTRAL INTERVAL
    22172218      INTEGER KA      ! INDEX OF THE ABSORBER
    2218       REAL*8 PU(KDLON)  ! ABSORBER AMOUNT
    2219 C
    2220       REAL*8 PTR(KDLON) ! TRANSMISSION FUNCTION
     2219      REAL(KIND=8) PU(KDLON)  ! ABSORBER AMOUNT
     2220C
     2221      REAL(KIND=8) PTR(KDLON) ! TRANSMISSION FUNCTION
    22212222C
    22222223C* LOCAL VARIABLES:
    22232224C
    2224       REAL*8 ZR1(KDLON), ZR2(KDLON)
     2225      REAL(KIND=8) ZR1(KDLON), ZR2(KDLON)
    22252226      INTEGER jl, i,j
    22262227C
    22272228C* Prescribed Data:
    22282229C
    2229       REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3)
     2230      REAL(KIND=8) APAD(2,3,7), BPAD(2,3,7), D(2,3)
    22302231      SAVE APAD, BPAD, D
    22312232c$OMP THREADPRIVATE(APAD, BPAD, D)
     
    23342335      INTEGER KABS         ! NUMBER OF ABSORBERS
    23352336      INTEGER KIND(KABS)   ! INDICES OF THE ABSORBERS
    2336       REAL*8 PU(KDLON,KABS)  ! ABSORBER AMOUNT
    2337 C
    2338       REAL*8 PTR(KDLON,KABS) ! TRANSMISSION FUNCTION
     2337      REAL(KIND=8) PU(KDLON,KABS)  ! ABSORBER AMOUNT
     2338C
     2339      REAL(KIND=8) PTR(KDLON,KABS) ! TRANSMISSION FUNCTION
    23392340C
    23402341C* LOCAL VARIABLES:
    23412342C
    2342       REAL*8 ZR1(KDLON)
    2343       REAL*8 ZR2(KDLON)
    2344       REAL*8 ZU(KDLON)
     2343      REAL(KIND=8) ZR1(KDLON)
     2344      REAL(KIND=8) ZR2(KDLON)
     2345      REAL(KIND=8) ZU(KDLON)
    23452346      INTEGER jl, ja, i, j, ia
    23462347C
    23472348C* Prescribed Data:
    23482349C
    2349       REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3)
     2350      REAL(KIND=8) APAD(2,3,7), BPAD(2,3,7), D(2,3)
    23502351      SAVE APAD, BPAD, D
    23512352c$OMP THREADPRIVATE(APAD, BPAD, D)
     
    24682469C-----------------------------------------------------------------------
    24692470cIM ctes ds clesphys.h
    2470 c     REAL*8 RCO2   ! CO2 CONCENTRATION (IPCC:353.E-06* 44.011/28.97)
    2471 c     REAL*8 RCH4   ! CH4 CONCENTRATION (IPCC: 1.72E-06* 16.043/28.97)
    2472 c     REAL*8 RN2O   ! N2O CONCENTRATION (IPCC: 310.E-09* 44.013/28.97)
    2473 c     REAL*8 RCFC11 ! CFC11 CONCENTRATION (IPCC: 280.E-12* 137.3686/28.97)
    2474 c     REAL*8 RCFC12 ! CFC12 CONCENTRATION (IPCC: 484.E-12* 120.9140/28.97)
     2471c     REAL(KIND=8) RCO2   ! CO2 CONCENTRATION (IPCC:353.E-06* 44.011/28.97)
     2472c     REAL(KIND=8) RCH4   ! CH4 CONCENTRATION (IPCC: 1.72E-06* 16.043/28.97)
     2473c     REAL(KIND=8) RN2O   ! N2O CONCENTRATION (IPCC: 310.E-09* 44.013/28.97)
     2474c     REAL(KIND=8) RCFC11 ! CFC11 CONCENTRATION (IPCC: 280.E-12* 137.3686/28.97)
     2475c     REAL(KIND=8) RCFC12 ! CFC12 CONCENTRATION (IPCC: 484.E-12* 120.9140/28.97)
    24752476#include "clesphys.h"
    2476       REAL*8 PCLDLD(KDLON,KFLEV)  ! DOWNWARD EFFECTIVE CLOUD COVER
    2477       REAL*8 PCLDLU(KDLON,KFLEV)  ! UPWARD EFFECTIVE CLOUD COVER
    2478       REAL*8 PDP(KDLON,KFLEV)     ! LAYER PRESSURE THICKNESS (Pa)
    2479       REAL*8 PDT0(KDLON)          ! SURFACE TEMPERATURE DISCONTINUITY (K)
    2480       REAL*8 PEMIS(KDLON)         ! SURFACE EMISSIVITY
    2481       REAL*8 PPMB(KDLON,KFLEV+1)  ! HALF LEVEL PRESSURE (mb)
    2482       REAL*8 PPSOL(KDLON)         ! SURFACE PRESSURE (Pa)
    2483       REAL(kind=8) POZON(KDLON,KFLEV)   ! O3 mass fraction
    2484       REAL*8 PTL(KDLON,KFLEV+1)   ! HALF LEVEL TEMPERATURE (K)
    2485       REAL*8 PAER(KDLON,KFLEV,5)  ! OPTICAL THICKNESS OF THE AEROSOLS
    2486       REAL*8 PTAVE(KDLON,KFLEV)   ! LAYER TEMPERATURE (K)
    2487       REAL*8 PVIEW(KDLON)         ! COSECANT OF VIEWING ANGLE
    2488       REAL*8 PWV(KDLON,KFLEV)     ! SPECIFIC HUMIDITY (kg/kg)
    2489 C
    2490       REAL*8 PCOLR(KDLON,KFLEV)   ! LONG-WAVE TENDENCY (K/day)
    2491       REAL*8 PCOLR0(KDLON,KFLEV)  ! LONG-WAVE TENDENCY (K/day) clear-sky
    2492       REAL*8 PTOPLW(KDLON)        ! LONGWAVE FLUX AT T.O.A.
    2493       REAL*8 PSOLLW(KDLON)        ! LONGWAVE FLUX AT SURFACE
    2494       REAL*8 PTOPLW0(KDLON)       ! LONGWAVE FLUX AT T.O.A. (CLEAR-SKY)
    2495       REAL*8 PSOLLW0(KDLON)       ! LONGWAVE FLUX AT SURFACE (CLEAR-SKY)
     2477      REAL(KIND=8) PCLDLD(KDLON,KFLEV)  ! DOWNWARD EFFECTIVE CLOUD COVER
     2478      REAL(KIND=8) PCLDLU(KDLON,KFLEV)  ! UPWARD EFFECTIVE CLOUD COVER
     2479      REAL(KIND=8) PDP(KDLON,KFLEV)     ! LAYER PRESSURE THICKNESS (Pa)
     2480      REAL(KIND=8) PDT0(KDLON)          ! SURFACE TEMPERATURE DISCONTINUITY (K)
     2481      REAL(KIND=8) PEMIS(KDLON)         ! SURFACE EMISSIVITY
     2482      REAL(KIND=8) PPMB(KDLON,KFLEV+1)  ! HALF LEVEL PRESSURE (mb)
     2483      REAL(KIND=8) PPSOL(KDLON)         ! SURFACE PRESSURE (Pa)
     2484      REAL(KIND=8) POZON(KDLON,KFLEV)   ! O3 mass fraction
     2485      REAL(KIND=8) PTL(KDLON,KFLEV+1)   ! HALF LEVEL TEMPERATURE (K)
     2486      REAL(KIND=8) PAER(KDLON,KFLEV,5)  ! OPTICAL THICKNESS OF THE AEROSOLS
     2487      REAL(KIND=8) PTAVE(KDLON,KFLEV)   ! LAYER TEMPERATURE (K)
     2488      REAL(KIND=8) PVIEW(KDLON)         ! COSECANT OF VIEWING ANGLE
     2489      REAL(KIND=8) PWV(KDLON,KFLEV)     ! SPECIFIC HUMIDITY (kg/kg)
     2490C
     2491      REAL(KIND=8) PCOLR(KDLON,KFLEV)   ! LONG-WAVE TENDENCY (K/day)
     2492      REAL(KIND=8) PCOLR0(KDLON,KFLEV)  ! LONG-WAVE TENDENCY (K/day) clear-sky
     2493      REAL(KIND=8) PTOPLW(KDLON)        ! LONGWAVE FLUX AT T.O.A.
     2494      REAL(KIND=8) PSOLLW(KDLON)        ! LONGWAVE FLUX AT SURFACE
     2495      REAL(KIND=8) PTOPLW0(KDLON)       ! LONGWAVE FLUX AT T.O.A. (CLEAR-SKY)
     2496      REAL(KIND=8) PSOLLW0(KDLON)       ! LONGWAVE FLUX AT SURFACE (CLEAR-SKY)
    24962497c Rajout LF
    2497       real*8 psollwdown(kdlon)    ! LONGWAVE downwards flux at surface
     2498      real(kind=8) psollwdown(kdlon)    ! LONGWAVE downwards flux at surface
    24982499c Rajout IM
    2499 cIM   real*8 psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface
    2500 cIM   real*8 ptoplwdown(kdlon)    ! LONGWAVE downwards flux at T.O.A.
    2501 cIM   real*8 ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.
     2500cIM   real(kind=8) psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface
     2501cIM   real(kind=8) ptoplwdown(kdlon)    ! LONGWAVE downwards flux at T.O.A.
     2502cIM   real(kind=8) ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.
    25022503cIM
    2503       REAL*8 plwup(KDLON,KFLEV+1)  ! LW up total sky
    2504       REAL*8 plwup0(KDLON,KFLEV+1) ! LW up clear sky
    2505       REAL*8 plwdn(KDLON,KFLEV+1)  ! LW down total sky
    2506       REAL*8 plwdn0(KDLON,KFLEV+1) ! LW down clear sky
     2504      REAL(KIND=8) plwup(KDLON,KFLEV+1)  ! LW up total sky
     2505      REAL(KIND=8) plwup0(KDLON,KFLEV+1) ! LW up clear sky
     2506      REAL(KIND=8) plwdn(KDLON,KFLEV+1)  ! LW down total sky
     2507      REAL(KIND=8) plwdn0(KDLON,KFLEV+1) ! LW down clear sky
    25072508C-------------------------------------------------------------------------
    2508       REAL*8 ZABCU(KDLON,NUA,3*KFLEV+1)
     2509      REAL(KIND=8) ZABCU(KDLON,NUA,3*KFLEV+1)
    25092510
    2510       REAL(kind=8) ZOZ(KDLON,KFLEV)
     2511      REAL(KIND=8) ZOZ(KDLON,KFLEV)
    25112512!     equivalent pressure of ozone in a layer, in Pa
    25122513
    2513 cym      REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)
    2514 cym      REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
    2515 cym      REAL*8 ZBINT(KDLON,KFLEV+1)            ! Intermediate variable
    2516 cym      REAL*8 ZBSUI(KDLON)                    ! Intermediate variable
    2517 cym      REAL*8,ZCTS(KDLON,KFLEV)               ! Intermediate variable
    2518 cym      REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1)   ! Intermediate variable
     2514cym      REAL(KIND=8) ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)
     2515cym      REAL(KIND=8) ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
     2516cym      REAL(KIND=8) ZBINT(KDLON,KFLEV+1)            ! Intermediate variable
     2517cym      REAL(KIND=8) ZBSUI(KDLON)                    ! Intermediate variable
     2518cym      REAL(KIND=8) ZCTS(KDLON,KFLEV)               ! Intermediate variable
     2519cym      REAL(KIND=8) ZCNTRB(KDLON,KFLEV+1,KFLEV+1)   ! Intermediate variable
    25192520cym      SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB
    2520       REAL*8,allocatable,save :: ZFLUX(:,:,:) ! RADIATIVE FLUXES (1:up; 2:down)
    2521       REAL*8,allocatable,save :: ZFLUC(:,:,:) ! CLEAR-SKY RADIATIVE FLUXES
    2522       REAL*8,allocatable,save :: ZBINT(:,:)            ! Intermediate variable
    2523       REAL*8,allocatable,save :: ZBSUI(:)                    ! Intermediate variable
    2524       REAL*8,allocatable,save :: ZCTS(:,:)               ! Intermediate variable
    2525       REAL*8,allocatable,save :: ZCNTRB(:,:,:)   ! Intermediate variable
     2521      REAL(KIND=8),allocatable,save :: ZFLUX(:,:,:) ! RADIATIVE FLUXES (1:up; 2:down)
     2522      REAL(KIND=8),allocatable,save :: ZFLUC(:,:,:) ! CLEAR-SKY RADIATIVE FLUXES
     2523      REAL(KIND=8),allocatable,save :: ZBINT(:,:)            ! Intermediate variable
     2524      REAL(KIND=8),allocatable,save :: ZBSUI(:)                    ! Intermediate variable
     2525      REAL(KIND=8),allocatable,save :: ZCTS(:,:)               ! Intermediate variable
     2526      REAL(KIND=8),allocatable,save :: ZCNTRB(:,:,:)   ! Intermediate variable
    25262527c$OMP THREADPRIVATE(ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB)
    25272528c
     
    26522653C* ARGUMENTS:
    26532654cIM ctes ds clesphys.h
    2654 c     REAL*8 RCO2
    2655 c     REAL*8 RCH4, RN2O, RCFC11, RCFC12
     2655c     REAL(KIND=8) RCO2
     2656c     REAL(KIND=8) RCH4, RN2O, RCFC11, RCFC12
    26562657#include "clesphys.h"
    2657       REAL*8 PAER(KDLON,KFLEV,5)
    2658       REAL*8 PDP(KDLON,KFLEV)
    2659       REAL*8 PPMB(KDLON,KFLEV+1)
    2660       REAL*8 PPSOL(KDLON)
    2661       REAL*8 POZ(KDLON,KFLEV)
    2662       REAL*8 PTAVE(KDLON,KFLEV)
    2663       REAL*8 PVIEW(KDLON)
    2664       REAL*8 PWV(KDLON,KFLEV)
    2665 C
    2666       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS
     2658      REAL(KIND=8) PAER(KDLON,KFLEV,5)
     2659      REAL(KIND=8) PDP(KDLON,KFLEV)
     2660      REAL(KIND=8) PPMB(KDLON,KFLEV+1)
     2661      REAL(KIND=8) PPSOL(KDLON)
     2662      REAL(KIND=8) POZ(KDLON,KFLEV)
     2663      REAL(KIND=8) PTAVE(KDLON,KFLEV)
     2664      REAL(KIND=8) PVIEW(KDLON)
     2665      REAL(KIND=8) PWV(KDLON,KFLEV)
     2666C
     2667      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS
    26672668C
    26682669C-----------------------------------------------------------------------
    26692670C* LOCAL VARIABLES:
    2670       REAL*8 ZABLY(KDLON,NUA,3*KFLEV+1)
    2671       REAL*8 ZDUC(KDLON,3*KFLEV+1)
    2672       REAL*8 ZPHIO(KDLON)
    2673       REAL*8 ZPSC2(KDLON)
    2674       REAL*8 ZPSC3(KDLON)
    2675       REAL*8 ZPSH1(KDLON)
    2676       REAL*8 ZPSH2(KDLON)
    2677       REAL*8 ZPSH3(KDLON)
    2678       REAL*8 ZPSH4(KDLON)
    2679       REAL*8 ZPSH5(KDLON)
    2680       REAL*8 ZPSH6(KDLON)
    2681       REAL*8 ZPSIO(KDLON)
    2682       REAL*8 ZTCON(KDLON)
    2683       REAL*8 ZPHM6(KDLON)
    2684       REAL*8 ZPSM6(KDLON)
    2685       REAL*8 ZPHN6(KDLON)
    2686       REAL*8 ZPSN6(KDLON)
    2687       REAL*8 ZSSIG(KDLON,3*KFLEV+1)
    2688       REAL*8 ZTAVI(KDLON)
    2689       REAL*8 ZUAER(KDLON,Ninter)
    2690       REAL*8 ZXOZ(KDLON)
    2691       REAL*8 ZXWV(KDLON)
     2671      REAL(KIND=8) ZABLY(KDLON,NUA,3*KFLEV+1)
     2672      REAL(KIND=8) ZDUC(KDLON,3*KFLEV+1)
     2673      REAL(KIND=8) ZPHIO(KDLON)
     2674      REAL(KIND=8) ZPSC2(KDLON)
     2675      REAL(KIND=8) ZPSC3(KDLON)
     2676      REAL(KIND=8) ZPSH1(KDLON)
     2677      REAL(KIND=8) ZPSH2(KDLON)
     2678      REAL(KIND=8) ZPSH3(KDLON)
     2679      REAL(KIND=8) ZPSH4(KDLON)
     2680      REAL(KIND=8) ZPSH5(KDLON)
     2681      REAL(KIND=8) ZPSH6(KDLON)
     2682      REAL(KIND=8) ZPSIO(KDLON)
     2683      REAL(KIND=8) ZTCON(KDLON)
     2684      REAL(KIND=8) ZPHM6(KDLON)
     2685      REAL(KIND=8) ZPSM6(KDLON)
     2686      REAL(KIND=8) ZPHN6(KDLON)
     2687      REAL(KIND=8) ZPSN6(KDLON)
     2688      REAL(KIND=8) ZSSIG(KDLON,3*KFLEV+1)
     2689      REAL(KIND=8) ZTAVI(KDLON)
     2690      REAL(KIND=8) ZUAER(KDLON,Ninter)
     2691      REAL(KIND=8) ZXOZ(KDLON)
     2692      REAL(KIND=8) ZXWV(KDLON)
    26922693C
    26932694      INTEGER jl, jk, jkj, jkjr, jkjp, ig1
     
    26962697      INTEGER jae1, jae2, jae3, jae, jjpn
    26972698      INTEGER ir, jc, jcp1
    2698       REAL*8 zdpm, zupm, zupmh2o, zupmco2, zupmo3, zu6, zup
    2699       REAL*8 zfppw, ztx, ztx2, zzably
    2700       REAL*8 zcah1, zcbh1, zcah2, zcbh2, zcah3, zcbh3
    2701       REAL*8 zcah4, zcbh4, zcah5, zcbh5, zcah6, zcbh6
    2702       REAL*8 zcac8, zcbc8
    2703       REAL*8 zalup, zdiff
     2699      REAL(KIND=8) zdpm, zupm, zupmh2o, zupmco2, zupmo3, zu6, zup
     2700      REAL(KIND=8) zfppw, ztx, ztx2, zzably
     2701      REAL(KIND=8) zcah1, zcbh1, zcah2, zcbh2, zcah3, zcbh3
     2702      REAL(KIND=8) zcah4, zcbh4, zcah5, zcbh5, zcah6, zcbh6
     2703      REAL(KIND=8) zcac8, zcbc8
     2704      REAL(KIND=8) zalup, zdiff
    27042705c
    2705       REAL*8 PVGCO2, PVGH2O, PVGO3
    2706 C
    2707       REAL*8 R10E  ! DECIMAL/NATURAL LOG.FACTOR
     2706      REAL(KIND=8) PVGCO2, PVGH2O, PVGO3
     2707C
     2708      REAL(KIND=8) R10E  ! DECIMAL/NATURAL LOG.FACTOR
    27082709      PARAMETER (R10E=0.4342945)
    27092710c
    27102711c Used Data Block:
    27112712c
    2712       REAL*8 TREF
     2713      REAL(KIND=8) TREF
    27132714      SAVE TREF
    27142715c$OMP THREADPRIVATE(TREF)
    2715       REAL*8 RT1(2)
     2716      REAL(KIND=8) RT1(2)
    27162717      SAVE RT1
    27172718c$OMP THREADPRIVATE(RT1)
    2718       REAL*8 RAER(5,5)
     2719      REAL(KIND=8) RAER(5,5)
    27192720      SAVE RAER
    27202721c$OMP THREADPRIVATE(RAER)
    2721       REAL*8 AT(8,3), BT(8,3)
     2722      REAL(KIND=8) AT(8,3), BT(8,3)
    27222723      SAVE AT, BT
    27232724c$OMP THREADPRIVATE(AT, BT)
    2724       REAL*8 OCT(4)
     2725      REAL(KIND=8) OCT(4)
    27252726      SAVE OCT
    27262727c$OMP THREADPRIVATE(OCT)
     
    30533054      INTEGER KLIM
    30543055C
    3055       REAL*8 PDP(KDLON,KFLEV)
    3056       REAL*8 PDT0(KDLON)
    3057       REAL*8 PEMIS(KDLON)
    3058       REAL*8 PPMB(KDLON,KFLEV+1)
    3059       REAL*8 PTL(KDLON,KFLEV+1)
    3060       REAL*8 PTAVE(KDLON,KFLEV)
    3061 C
    3062       REAL*8 PFLUC(KDLON,2,KFLEV+1)
     3056      REAL(KIND=8) PDP(KDLON,KFLEV)
     3057      REAL(KIND=8) PDT0(KDLON)
     3058      REAL(KIND=8) PEMIS(KDLON)
     3059      REAL(KIND=8) PPMB(KDLON,KFLEV+1)
     3060      REAL(KIND=8) PTL(KDLON,KFLEV+1)
     3061      REAL(KIND=8) PTAVE(KDLON,KFLEV)
     3062C
     3063      REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1)
    30633064C     
    3064       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1)
    3065       REAL*8 PBINT(KDLON,KFLEV+1)
    3066       REAL*8 PBSUI(KDLON)
    3067       REAL*8 PCTS(KDLON,KFLEV)
    3068       REAL*8 PCNTRB(KDLON,KFLEV+1,KFLEV+1)
     3065      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1)
     3066      REAL(KIND=8) PBINT(KDLON,KFLEV+1)
     3067      REAL(KIND=8) PBSUI(KDLON)
     3068      REAL(KIND=8) PCTS(KDLON,KFLEV)
     3069      REAL(KIND=8) PCNTRB(KDLON,KFLEV+1,KFLEV+1)
    30693070C
    30703071C-------------------------------------------------------------------------
    30713072C
    30723073C* LOCAL VARIABLES:
    3073       REAL*8 ZB(KDLON,Ninter,KFLEV+1)
    3074       REAL*8 ZBSUR(KDLON,Ninter)
    3075       REAL*8 ZBTOP(KDLON,Ninter)
    3076       REAL*8 ZDBSL(KDLON,Ninter,KFLEV*2)
    3077       REAL*8 ZGA(KDLON,8,2,KFLEV)
    3078       REAL*8 ZGB(KDLON,8,2,KFLEV)
    3079       REAL*8 ZGASUR(KDLON,8,2)
    3080       REAL*8 ZGBSUR(KDLON,8,2)
    3081       REAL*8 ZGATOP(KDLON,8,2)
    3082       REAL*8 ZGBTOP(KDLON,8,2)
     3074      REAL(KIND=8) ZB(KDLON,Ninter,KFLEV+1)
     3075      REAL(KIND=8) ZBSUR(KDLON,Ninter)
     3076      REAL(KIND=8) ZBTOP(KDLON,Ninter)
     3077      REAL(KIND=8) ZDBSL(KDLON,Ninter,KFLEV*2)
     3078      REAL(KIND=8) ZGA(KDLON,8,2,KFLEV)
     3079      REAL(KIND=8) ZGB(KDLON,8,2,KFLEV)
     3080      REAL(KIND=8) ZGASUR(KDLON,8,2)
     3081      REAL(KIND=8) ZGBSUR(KDLON,8,2)
     3082      REAL(KIND=8) ZGATOP(KDLON,8,2)
     3083      REAL(KIND=8) ZGBTOP(KDLON,8,2)
    30833084C
    30843085      INTEGER nuaer, ntraer
     
    31563157C* ARGUMENTS:
    31573158      INTEGER klim
    3158       REAL*8 PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
    3159       REAL*8 PBINT(KDLON,KFLEV+1)   ! HALF LEVEL PLANCK FUNCTION
    3160       REAL*8 PBSUIN(KDLON)          ! SURFACE PLANCK FUNCTION
    3161       REAL*8 PCNTRB(KDLON,KFLEV+1,KFLEV+1) !CLEAR-SKY ENERGY EXCHANGE
    3162       REAL*8 PCTS(KDLON,KFLEV)      ! CLEAR-SKY LAYER COOLING-TO-SPACE
     3159      REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
     3160      REAL(KIND=8) PBINT(KDLON,KFLEV+1)   ! HALF LEVEL PLANCK FUNCTION
     3161      REAL(KIND=8) PBSUIN(KDLON)          ! SURFACE PLANCK FUNCTION
     3162      REAL(KIND=8) PCNTRB(KDLON,KFLEV+1,KFLEV+1) !CLEAR-SKY ENERGY EXCHANGE
     3163      REAL(KIND=8) PCTS(KDLON,KFLEV)      ! CLEAR-SKY LAYER COOLING-TO-SPACE
    31633164c
    3164       REAL*8 PCLDLD(KDLON,KFLEV)
    3165       REAL*8 PCLDLU(KDLON,KFLEV)
    3166       REAL*8 PEMIS(KDLON)
    3167 C
    3168       REAL*8 PFLUX(KDLON,2,KFLEV+1)
     3165      REAL(KIND=8) PCLDLD(KDLON,KFLEV)
     3166      REAL(KIND=8) PCLDLU(KDLON,KFLEV)
     3167      REAL(KIND=8) PEMIS(KDLON)
     3168C
     3169      REAL(KIND=8) PFLUX(KDLON,2,KFLEV+1)
    31693170C-----------------------------------------------------------------------
    31703171C* LOCAL VARIABLES:
    31713172      INTEGER IMX(KDLON), IMXP(KDLON)
    31723173C
    3173       REAL*8 ZCLEAR(KDLON),ZCLOUD(KDLON),ZDNF(KDLON,KFLEV+1,KFLEV+1)
     3174      REAL(KIND=8) ZCLEAR(KDLON),ZCLOUD(KDLON),
     3175     $     ZDNF(KDLON,KFLEV+1,KFLEV+1)
    31743176     S  , ZFD(KDLON), ZFN10(KDLON), ZFU(KDLON)
    31753177     S  , ZUPF(KDLON,KFLEV+1,KFLEV+1)
    3176       REAL*8 ZCLM(KDLON,KFLEV+1,KFLEV+1)
     3178      REAL(KIND=8) ZCLM(KDLON,KFLEV+1,KFLEV+1)
    31773179C
    31783180      INTEGER jk, jl, imaxc, imx1, imx2, jkj, jkp1, jkm1
    31793181      INTEGER jk1, jk2, jkc, jkcp1, jcloud
    31803182      INTEGER imxm1, imxp1
    3181       REAL*8 zcfrac
     3183      REAL(KIND=8) zcfrac
    31823184C     ------------------------------------------------------------------
    31833185C
     
    35653567C ARGUMENTS:
    35663568C
    3567       REAL*8 PDT0(KDLON)
    3568       REAL*8 PTAVE(KDLON,KFLEV)
    3569       REAL*8 PTL(KDLON,KFLEV+1)
    3570 C
    3571       REAL*8 PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF LEVEL PLANCK FUNCTION
    3572       REAL*8 PBINT(KDLON,KFLEV+1) ! HALF LEVEL PLANCK FUNCTION
    3573       REAL*8 PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION
    3574       REAL*8 PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION
    3575       REAL*8 PBTOP(KDLON,Ninter) ! TOP SPECTRAL PLANCK FUNCTION
    3576       REAL*8 PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
    3577       REAL*8 PGA(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS
    3578       REAL*8 PGB(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS
    3579       REAL*8 PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
    3580       REAL*8 PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
    3581       REAL*8 PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
    3582       REAL*8 PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
     3569      REAL(KIND=8) PDT0(KDLON)
     3570      REAL(KIND=8) PTAVE(KDLON,KFLEV)
     3571      REAL(KIND=8) PTL(KDLON,KFLEV+1)
     3572C
     3573      REAL(KIND=8) PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF LEVEL PLANCK FUNCTION
     3574      REAL(KIND=8) PBINT(KDLON,KFLEV+1) ! HALF LEVEL PLANCK FUNCTION
     3575      REAL(KIND=8) PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION
     3576      REAL(KIND=8) PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION
     3577      REAL(KIND=8) PBTOP(KDLON,Ninter) ! TOP SPECTRAL PLANCK FUNCTION
     3578      REAL(KIND=8) PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
     3579      REAL(KIND=8) PGA(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS
     3580      REAL(KIND=8) PGB(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS
     3581      REAL(KIND=8) PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
     3582      REAL(KIND=8) PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
     3583      REAL(KIND=8) PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
     3584      REAL(KIND=8) PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
    35833585C
    35843586C-------------------------------------------------------------------------
    35853587C*  LOCAL VARIABLES:
    35863588      INTEGER INDB(KDLON),INDS(KDLON)
    3587       REAL*8 ZBLAY(KDLON,KFLEV),ZBLEV(KDLON,KFLEV+1)
    3588       REAL*8 ZRES(KDLON),ZRES2(KDLON),ZTI(KDLON),ZTI2(KDLON)
     3589      REAL(KIND=8) ZBLAY(KDLON,KFLEV),ZBLEV(KDLON,KFLEV+1)
     3590      REAL(KIND=8) ZRES(KDLON),ZRES2(KDLON),ZTI(KDLON),ZTI2(KDLON)
    35893591c
    35903592      INTEGER jk, jl, ic, jnu, jf, jg
     
    35923594      INTEGER k, j, ixtox, indto, ixtx, indt
    35933595      INTEGER indsu, indtp
    3594       REAL*8 zdsto1, zdstox, zdst1, zdstx
     3596      REAL(KIND=8) zdsto1, zdstox, zdst1, zdstx
    35953597c
    35963598C* Quelques parametres:
    3597       REAL*8 TSTAND
     3599      REAL(KIND=8) TSTAND
    35983600      PARAMETER (TSTAND=250.0)
    3599       REAL*8 TSTP
     3601      REAL(KIND=8) TSTP
    36003602      PARAMETER (TSTP=12.5)
    36013603      INTEGER MXIXT
     
    36033605C
    36043606C* Used Data Block:
    3605       REAL*8 TINTP(11)
     3607      REAL(KIND=8) TINTP(11)
    36063608      SAVE TINTP
    36073609c$OMP THREADPRIVATE(TINTP)
    3608       REAL*8 GA(11,16,3), GB(11,16,3)
     3610      REAL(KIND=8) GA(11,16,3), GB(11,16,3)
    36093611      SAVE GA, GB
    36103612c$OMP THREADPRIVATE(GA, GB)
    3611       REAL*8 XP(6,6)
     3613      REAL(KIND=8) XP(6,6)
    36123614      SAVE XP
    36133615c$OMP THREADPRIVATE(XP)
     
    49644966      INTEGER KUAER,KTRAER, KLIM
    49654967C
    4966       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS
    4967       REAL*8 PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
    4968       REAL*8 PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
    4969       REAL*8 PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION
    4970       REAL*8 PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION
    4971       REAL*8 PBTOP(KDLON,Ninter) ! T.O.A. SPECTRAL PLANCK FUNCTION
    4972       REAL*8 PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
    4973       REAL*8 PEMIS(KDLON) ! SURFACE EMISSIVITY
    4974       REAL*8 PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
    4975       REAL*8 PTAVE(KDLON,KFLEV) ! TEMPERATURE
    4976       REAL*8 PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    4977       REAL*8 PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    4978       REAL*8 PGASUR(KDLON,8,2) ! PADE APPROXIMANTS
    4979       REAL*8 PGBSUR(KDLON,8,2) ! PADE APPROXIMANTS
    4980       REAL*8 PGATOP(KDLON,8,2) ! PADE APPROXIMANTS
    4981       REAL*8 PGBTOP(KDLON,8,2) ! PADE APPROXIMANTS
    4982 C
    4983       REAL*8 PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX
    4984       REAL*8 PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
    4985       REAL*8 PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
     4968      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS
     4969      REAL(KIND=8) PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
     4970      REAL(KIND=8) PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
     4971      REAL(KIND=8) PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION
     4972      REAL(KIND=8) PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION
     4973      REAL(KIND=8) PBTOP(KDLON,Ninter) ! T.O.A. SPECTRAL PLANCK FUNCTION
     4974      REAL(KIND=8) PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
     4975      REAL(KIND=8) PEMIS(KDLON) ! SURFACE EMISSIVITY
     4976      REAL(KIND=8) PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
     4977      REAL(KIND=8) PTAVE(KDLON,KFLEV) ! TEMPERATURE
     4978      REAL(KIND=8) PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     4979      REAL(KIND=8) PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     4980      REAL(KIND=8) PGASUR(KDLON,8,2) ! PADE APPROXIMANTS
     4981      REAL(KIND=8) PGBSUR(KDLON,8,2) ! PADE APPROXIMANTS
     4982      REAL(KIND=8) PGATOP(KDLON,8,2) ! PADE APPROXIMANTS
     4983      REAL(KIND=8) PGBTOP(KDLON,8,2) ! PADE APPROXIMANTS
     4984C
     4985      REAL(KIND=8) PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX
     4986      REAL(KIND=8) PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
     4987      REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
    49864988C-----------------------------------------------------------------------
    49874989C LOCAL VARIABLES:
    4988       REAL*8 ZADJD(KDLON,KFLEV+1)
    4989       REAL*8 ZADJU(KDLON,KFLEV+1)
    4990       REAL*8 ZDBDT(KDLON,Ninter,KFLEV)
    4991       REAL*8 ZDISD(KDLON,KFLEV+1)
    4992       REAL*8 ZDISU(KDLON,KFLEV+1)
     4990      REAL(KIND=8) ZADJD(KDLON,KFLEV+1)
     4991      REAL(KIND=8) ZADJU(KDLON,KFLEV+1)
     4992      REAL(KIND=8) ZDBDT(KDLON,Ninter,KFLEV)
     4993      REAL(KIND=8) ZDISD(KDLON,KFLEV+1)
     4994      REAL(KIND=8) ZDISU(KDLON,KFLEV+1)
    49934995C
    49944996      INTEGER jk, jl
     
    50815083      INTEGER KUAER,KTRAER, KLIM
    50825084C
    5083       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
    5084       REAL*8 PADJD(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
    5085       REAL*8 PADJU(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
    5086       REAL*8 PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
    5087       REAL*8 PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
    5088       REAL*8 PBSUR(KDLON,Ninter) ! SPECTRAL SURFACE PLANCK FUNCTION
    5089       REAL*8 PBSUI(KDLON) ! SURFACE PLANCK FUNCTION
    5090       REAL*8 PBTOP(KDLON,Ninter) ! SPECTRAL T.O.A. PLANCK FUNCTION
    5091       REAL*8 PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
    5092       REAL*8 PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
    5093       REAL*8 PEMIS(KDLON) ! SURFACE EMISSIVITY
    5094       REAL*8 PPMB(KDLON,KFLEV+1) ! PRESSURE MB
    5095       REAL*8 PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5096       REAL*8 PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5097       REAL*8 PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
    5098       REAL*8 PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
    5099       REAL*8 PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
    5100       REAL*8 PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
    5101 C
    5102       REAL*8 PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
    5103       REAL*8 PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
     5085      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
     5086      REAL(KIND=8) PADJD(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
     5087      REAL(KIND=8) PADJU(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
     5088      REAL(KIND=8) PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
     5089      REAL(KIND=8) PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
     5090      REAL(KIND=8) PBSUR(KDLON,Ninter) ! SPECTRAL SURFACE PLANCK FUNCTION
     5091      REAL(KIND=8) PBSUI(KDLON) ! SURFACE PLANCK FUNCTION
     5092      REAL(KIND=8) PBTOP(KDLON,Ninter) ! SPECTRAL T.O.A. PLANCK FUNCTION
     5093      REAL(KIND=8) PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
     5094      REAL(KIND=8) PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
     5095      REAL(KIND=8) PEMIS(KDLON) ! SURFACE EMISSIVITY
     5096      REAL(KIND=8) PPMB(KDLON,KFLEV+1) ! PRESSURE MB
     5097      REAL(KIND=8) PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5098      REAL(KIND=8) PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5099      REAL(KIND=8) PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
     5100      REAL(KIND=8) PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
     5101      REAL(KIND=8) PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
     5102      REAL(KIND=8) PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
     5103C
     5104      REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
     5105      REAL(KIND=8) PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
    51045106C
    51055107C* LOCAL VARIABLES:
    51065108C
    5107       REAL*8 ZBGND(KDLON)
    5108       REAL*8 ZFD(KDLON)
    5109       REAL*8  ZFN10(KDLON)
    5110       REAL*8 ZFU(KDLON)
    5111       REAL*8  ZTT(KDLON,NTRA)
    5112       REAL*8 ZTT1(KDLON,NTRA)
    5113       REAL*8 ZTT2(KDLON,NTRA)
    5114       REAL*8  ZUU(KDLON,NUA)
    5115       REAL*8 ZCNSOL(KDLON)
    5116       REAL*8 ZCNTOP(KDLON)
     5109      REAL(KIND=8) ZBGND(KDLON)
     5110      REAL(KIND=8) ZFD(KDLON)
     5111      REAL(KIND=8)  ZFN10(KDLON)
     5112      REAL(KIND=8) ZFU(KDLON)
     5113      REAL(KIND=8)  ZTT(KDLON,NTRA)
     5114      REAL(KIND=8) ZTT1(KDLON,NTRA)
     5115      REAL(KIND=8) ZTT2(KDLON,NTRA)
     5116      REAL(KIND=8)  ZUU(KDLON,NUA)
     5117      REAL(KIND=8) ZCNSOL(KDLON)
     5118      REAL(KIND=8) ZCNTOP(KDLON)
    51175119C
    51185120      INTEGER jk, jl, ja
    51195121      INTEGER jstra, jstru
    51205122      INTEGER ind1, ind2, ind3, ind4, in, jlim
    5121       REAL*8 zctstr
     5123      REAL(KIND=8) zctstr
    51225124C-----------------------------------------------------------------------
    51235125C
     
    54065408      INTEGER KUAER,KTRAER
    54075409C
    5408       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
    5409       REAL*8 PDBDT(KDLON,Ninter,KFLEV) ! LAYER PLANCK FUNCTION GRADIENT
    5410       REAL*8 PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5411       REAL*8 PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5412 C
    5413       REAL*8 PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! ENERGY EXCHANGE MATRIX
    5414       REAL*8 PDISD(KDLON,KFLEV+1) !  CONTRIBUTION BY DISTANT LAYERS
    5415       REAL*8 PDISU(KDLON,KFLEV+1) !  CONTRIBUTION BY DISTANT LAYERS
     5410      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
     5411      REAL(KIND=8) PDBDT(KDLON,Ninter,KFLEV) ! LAYER PLANCK FUNCTION GRADIENT
     5412      REAL(KIND=8) PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5413      REAL(KIND=8) PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5414C
     5415      REAL(KIND=8) PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! ENERGY EXCHANGE MATRIX
     5416      REAL(KIND=8) PDISD(KDLON,KFLEV+1) !  CONTRIBUTION BY DISTANT LAYERS
     5417      REAL(KIND=8) PDISU(KDLON,KFLEV+1) !  CONTRIBUTION BY DISTANT LAYERS
    54165418C
    54175419C* LOCAL VARIABLES:
    54185420C
    5419       REAL*8 ZGLAYD(KDLON)
    5420       REAL*8 ZGLAYU(KDLON)
    5421       REAL*8 ZTT(KDLON,NTRA)
    5422       REAL*8 ZTT1(KDLON,NTRA)
    5423       REAL*8 ZTT2(KDLON,NTRA)
     5421      REAL(KIND=8) ZGLAYD(KDLON)
     5422      REAL(KIND=8) ZGLAYU(KDLON)
     5423      REAL(KIND=8) ZTT(KDLON,NTRA)
     5424      REAL(KIND=8) ZTT1(KDLON,NTRA)
     5425      REAL(KIND=8) ZTT2(KDLON,NTRA)
    54245426C
    54255427      INTEGER jl, jk, ja, ikp1, ikn, ikd1, jkj, ikd2
    54265428      INTEGER ikjp1, ikm1, ikj, jlk, iku1, ijkl, iku2
    54275429      INTEGER ind1, ind2, ind3, ind4, itt
    5428       REAL*8 zww, zdzxdg, zdzxmg
     5430      REAL(KIND=8) zww, zdzxdg, zdzxmg
    54295431C
    54305432C*         1.    INITIALIZATION
     
    56615663      INTEGER KUAER,KTRAER
    56625664C
    5663       REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
    5664       REAL*8 PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
    5665       REAL*8 PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5666       REAL*8 PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
    5667 C
    5668       REAL*8 PADJD(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS
    5669       REAL*8 PADJU(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS
    5670       REAL*8 PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX
    5671       REAL*8 PDBDT(KDLON,Ninter,KFLEV) !  LAYER PLANCK FUNCTION GRADIENT
     5665      REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
     5666      REAL(KIND=8) PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT
     5667      REAL(KIND=8) PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5668      REAL(KIND=8) PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
     5669C
     5670      REAL(KIND=8) PADJD(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS
     5671      REAL(KIND=8) PADJU(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS
     5672      REAL(KIND=8) PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX
     5673      REAL(KIND=8) PDBDT(KDLON,Ninter,KFLEV) !  LAYER PLANCK FUNCTION GRADIENT
    56725674C
    56735675C* LOCAL ARRAYS:
    56745676C
    5675       REAL*8 ZGLAYD(KDLON)
    5676       REAL*8 ZGLAYU(KDLON)
    5677       REAL*8 ZTT(KDLON,NTRA)
    5678       REAL*8 ZTT1(KDLON,NTRA)
    5679       REAL*8 ZTT2(KDLON,NTRA)
    5680       REAL*8 ZUU(KDLON,NUA)
     5677      REAL(KIND=8) ZGLAYD(KDLON)
     5678      REAL(KIND=8) ZGLAYU(KDLON)
     5679      REAL(KIND=8) ZTT(KDLON,NTRA)
     5680      REAL(KIND=8) ZTT1(KDLON,NTRA)
     5681      REAL(KIND=8) ZTT2(KDLON,NTRA)
     5682      REAL(KIND=8) ZUU(KDLON,NUA)
    56815683C
    56825684      INTEGER jk, jl, ja, im12, ind, inu, ixu, jg
    56835685      INTEGER ixd, ibs, idd, imu, jk1, jk2, jnu
    5684       REAL*8 zwtr
     5686      REAL(KIND=8) zwtr
    56855687c
    56865688C* Data Block:
    56875689c
    5688       REAL*8 WG1(2)
     5690      REAL(KIND=8) WG1(2)
    56895691      SAVE WG1
    56905692c$OMP THREADPRIVATE(WG1)
     
    58705872C
    58715873C-----------------------------------------------------------------------
    5872       REAL*8 O1H, O2H
     5874      REAL(KIND=8) O1H, O2H
    58735875      PARAMETER (O1H=2230.)
    58745876      PARAMETER (O2H=100.)
    5875       REAL*8 RPIALF0
     5877      REAL(KIND=8) RPIALF0
    58765878      PARAMETER (RPIALF0=2.0)
    58775879C
    58785880C* ARGUMENTS:
    58795881C
    5880       REAL*8 PUU(KDLON,NUA)
    5881       REAL*8 PTT(KDLON,NTRA)
    5882       REAL*8 PGA(KDLON,8,2)
    5883       REAL*8 PGB(KDLON,8,2)
     5882      REAL(KIND=8) PUU(KDLON,NUA)
     5883      REAL(KIND=8) PTT(KDLON,NTRA)
     5884      REAL(KIND=8) PGA(KDLON,8,2)
     5885      REAL(KIND=8) PGB(KDLON,8,2)
    58845886C
    58855887C* LOCAL VARIABLES:
    58865888C
    5887       REAL*8 zz, zxd, zxn
    5888       REAL*8 zpu, zpu10, zpu11, zpu12, zpu13
    5889       REAL*8 zeu, zeu10, zeu11, zeu12, zeu13
    5890       REAL*8 zx, zy, zsq1, zsq2, zvxy, zuxy
    5891       REAL*8 zaercn, zto1, zto2, zxch4, zych4, zxn2o, zyn2o
    5892       REAL*8 zsqn21, zodn21, zsqh42, zodh42
    5893       REAL*8 zsqh41, zodh41, zsqn22, zodn22, zttf11, zttf12
    5894       REAL*8 zuu11, zuu12, za11, za12
     5889      REAL(KIND=8) zz, zxd, zxn
     5890      REAL(KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
     5891      REAL(KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
     5892      REAL(KIND=8) zx, zy, zsq1, zsq2, zvxy, zuxy
     5893      REAL(KIND=8) zaercn, zto1, zto2, zxch4, zych4, zxn2o, zyn2o
     5894      REAL(KIND=8) zsqn21, zodn21, zsqh42, zodh42
     5895      REAL(KIND=8) zsqh41, zodh41, zsqn22, zodn22, zttf11, zttf12
     5896      REAL(KIND=8) zuu11, zuu12, za11, za12
    58955897      INTEGER jl, ja
    58965898C     ------------------------------------------------------------------
     
    60466048C
    60476049C-----------------------------------------------------------------------
    6048       REAL*8 O1H, O2H
     6050      REAL(KIND=8) O1H, O2H
    60496051      PARAMETER (O1H=2230.)
    60506052      PARAMETER (O2H=100.)
    6051       REAL*8 RPIALF0
     6053      REAL(KIND=8) RPIALF0
    60526054      PARAMETER (RPIALF0=2.0)
    60536055C
    60546056C* ARGUMENTS:
    60556057C
    6056       REAL*8 PGA(KDLON,8,2) ! PADE APPROXIMANTS
    6057       REAL*8 PGB(KDLON,8,2) ! PADE APPROXIMANTS
    6058       REAL*8 PUU1(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 1
    6059       REAL*8 PUU2(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 2
    6060       REAL*8 PTT(KDLON,NTRA) ! TRANSMISSION FUNCTIONS
     6058      REAL(KIND=8) PGA(KDLON,8,2) ! PADE APPROXIMANTS
     6059      REAL(KIND=8) PGB(KDLON,8,2) ! PADE APPROXIMANTS
     6060      REAL(KIND=8) PUU1(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 1
     6061      REAL(KIND=8) PUU2(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 2
     6062      REAL(KIND=8) PTT(KDLON,NTRA) ! TRANSMISSION FUNCTIONS
    60616063C
    60626064C* LOCAL VARIABLES:
    60636065C
    60646066      INTEGER ja, jl
    6065       REAL*8 zz, zxd, zxn
    6066       REAL*8 zpu, zpu10, zpu11, zpu12, zpu13
    6067       REAL*8 zeu, zeu10, zeu11, zeu12, zeu13
    6068       REAL*8 zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1, zto2
    6069       REAL*8 zxch4, zych4, zsqh41, zodh41
    6070       REAL*8 zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh42
    6071       REAL*8 zsqn22, zodn22, za11, zttf11, za12, zttf12
    6072       REAL*8 zuu11, zuu12
     6067      REAL(KIND=8) zz, zxd, zxn
     6068      REAL(KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
     6069      REAL(KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
     6070      REAL(KIND=8) zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1, zto2
     6071      REAL(KIND=8) zxch4, zych4, zsqh41, zodh41
     6072      REAL(KIND=8) zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh42
     6073      REAL(KIND=8) zsqn22, zodn22, za11, zttf11, za12, zttf12
     6074      REAL(KIND=8) zuu11, zuu12
    60736075C     ------------------------------------------------------------------
    60746076C
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw.F90

    r1215 r1220  
    137137
    138138! Local variables
    139   REAL*8 ZFSUP(KDLON,KFLEV+1)
    140   REAL*8 ZFSDN(KDLON,KFLEV+1)
    141   REAL*8 ZFSUP0(KDLON,KFLEV+1)
    142   REAL*8 ZFSDN0(KDLON,KFLEV+1)
    143   REAL*8 ZFLUP(KDLON,KFLEV+1)
    144   REAL*8 ZFLDN(KDLON,KFLEV+1)
    145   REAL*8 ZFLUP0(KDLON,KFLEV+1)
    146   REAL*8 ZFLDN0(KDLON,KFLEV+1)
    147   REAL*8 zx_alpha1, zx_alpha2
     139  REAL(KIND=8) ZFSUP(KDLON,KFLEV+1)
     140  REAL(KIND=8) ZFSDN(KDLON,KFLEV+1)
     141  REAL(KIND=8) ZFSUP0(KDLON,KFLEV+1)
     142  REAL(KIND=8) ZFSDN0(KDLON,KFLEV+1)
     143  REAL(KIND=8) ZFLUP(KDLON,KFLEV+1)
     144  REAL(KIND=8) ZFLDN(KDLON,KFLEV+1)
     145  REAL(KIND=8) ZFLUP0(KDLON,KFLEV+1)
     146  REAL(KIND=8) ZFLDN0(KDLON,KFLEV+1)
     147  REAL(KIND=8) zx_alpha1, zx_alpha2
    148148  INTEGER k, kk, i, j, iof, nb_gr
    149   REAL*8 PSCT
    150   REAL*8 PALBD(kdlon,2), PALBP(kdlon,2)
    151   REAL*8 PEMIS(kdlon), PDT0(kdlon), PVIEW(kdlon)
    152   REAL*8 PPSOL(kdlon), PDP(kdlon,KLEV)
    153   REAL*8 PTL(kdlon,kflev+1), PPMB(kdlon,kflev+1)
    154   REAL*8 PTAVE(kdlon,kflev)
    155   REAL*8 PWV(kdlon,kflev), PQS(kdlon,kflev)
     149  REAL(KIND=8) PSCT
     150  REAL(KIND=8) PALBD(kdlon,2), PALBP(kdlon,2)
     151  REAL(KIND=8) PEMIS(kdlon), PDT0(kdlon), PVIEW(kdlon)
     152  REAL(KIND=8) PPSOL(kdlon), PDP(kdlon,KLEV)
     153  REAL(KIND=8) PTL(kdlon,kflev+1), PPMB(kdlon,kflev+1)
     154  REAL(KIND=8) PTAVE(kdlon,kflev)
     155  REAL(KIND=8) PWV(kdlon,kflev), PQS(kdlon,kflev)
    156156  real(kind=8) POZON(kdlon,kflev) ! mass fraction of ozone
    157   REAL*8 PAER(kdlon,kflev,5)
    158   REAL*8 PCLDLD(kdlon,kflev)
    159   REAL*8 PCLDLU(kdlon,kflev)
    160   REAL*8 PCLDSW(kdlon,kflev)
    161   REAL*8 PTAU(kdlon,2,kflev)
    162   REAL*8 POMEGA(kdlon,2,kflev)
    163   REAL*8 PCG(kdlon,2,kflev)
    164   REAL*8 zfract(kdlon), zrmu0(kdlon), zdist
    165   REAL*8 zheat(kdlon,kflev), zcool(kdlon,kflev)
    166   REAL*8 zheat0(kdlon,kflev), zcool0(kdlon,kflev)
    167   REAL*8 ztopsw(kdlon), ztoplw(kdlon)
    168   REAL*8 zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon)
    169   REAL*8 zsollwdown(kdlon)
    170   REAL*8 ztopsw0(kdlon), ztoplw0(kdlon)
    171   REAL*8 zsolsw0(kdlon), zsollw0(kdlon)
    172   REAL*8 zznormcp
    173   REAL*8 tauaero(kdlon,kflev,9,2)                     ! aer opt properties
    174   REAL*8 pizaero(kdlon,kflev,9,2)
    175   REAL*8 cgaero(kdlon,kflev,9,2)
    176   REAL*8 PTAUA(kdlon,2,kflev)                         ! present-day value of cloud opt thickness (PTAU is pre-industrial value), local use
    177   REAL*8 POMEGAA(kdlon,2,kflev)                       ! dito for single scatt albedo
    178   REAL*8 ztopswadaero(kdlon), zsolswadaero(kdlon)     ! Aerosol direct forcing at TOAand surface
    179   REAL*8 ztopswad0aero(kdlon), zsolswad0aero(kdlon)   ! Aerosol direct forcing at TOAand surface
    180   REAL*8 ztopswaiaero(kdlon), zsolswaiaero(kdlon)     ! dito, indirect
    181   REAL*8 ztopsw_aero(kdlon,9), ztopsw0_aero(kdlon,9)
    182   REAL*8 zsolsw_aero(kdlon,9), zsolsw0_aero(kdlon,9)
     157  REAL(KIND=8) PAER(kdlon,kflev,5)
     158  REAL(KIND=8) PCLDLD(kdlon,kflev)
     159  REAL(KIND=8) PCLDLU(kdlon,kflev)
     160  REAL(KIND=8) PCLDSW(kdlon,kflev)
     161  REAL(KIND=8) PTAU(kdlon,2,kflev)
     162  REAL(KIND=8) POMEGA(kdlon,2,kflev)
     163  REAL(KIND=8) PCG(kdlon,2,kflev)
     164  REAL(KIND=8) zfract(kdlon), zrmu0(kdlon), zdist
     165  REAL(KIND=8) zheat(kdlon,kflev), zcool(kdlon,kflev)
     166  REAL(KIND=8) zheat0(kdlon,kflev), zcool0(kdlon,kflev)
     167  REAL(KIND=8) ztopsw(kdlon), ztoplw(kdlon)
     168  REAL(KIND=8) zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon)
     169  REAL(KIND=8) zsollwdown(kdlon)
     170  REAL(KIND=8) ztopsw0(kdlon), ztoplw0(kdlon)
     171  REAL(KIND=8) zsolsw0(kdlon), zsollw0(kdlon)
     172  REAL(KIND=8) zznormcp
     173  REAL(KIND=8) tauaero(kdlon,kflev,9,2)                     ! aer opt properties
     174  REAL(KIND=8) pizaero(kdlon,kflev,9,2)
     175  REAL(KIND=8) cgaero(kdlon,kflev,9,2)
     176  REAL(KIND=8) PTAUA(kdlon,2,kflev)                         ! present-day value of cloud opt thickness (PTAU is pre-industrial value), local use
     177  REAL(KIND=8) POMEGAA(kdlon,2,kflev)                       ! dito for single scatt albedo
     178  REAL(KIND=8) ztopswadaero(kdlon), zsolswadaero(kdlon)     ! Aerosol direct forcing at TOAand surface
     179  REAL(KIND=8) ztopswad0aero(kdlon), zsolswad0aero(kdlon)   ! Aerosol direct forcing at TOAand surface
     180  REAL(KIND=8) ztopswaiaero(kdlon), zsolswaiaero(kdlon)     ! dito, indirect
     181  REAL(KIND=8) ztopsw_aero(kdlon,9), ztopsw0_aero(kdlon,9)
     182  REAL(KIND=8) zsolsw_aero(kdlon,9), zsolsw0_aero(kdlon,9)
    183183  real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
    184 
    185184
    186185  ! initialisation
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/regr_lat_time_climoz_m.F90

    r1158 r1220  
    4444
    4545    ! We assume that in the input file:
    46     ! -- the latitude is in degrees and strictly monotonic (as all
    47     ! NetCDF coordinate variables should be);
     46    ! -- latitude is in degrees;
     47    ! -- pressure is in hPa (even though we do not use pressure values
     48    ! here, we write the unit of pressure in the NetCDF header, and we
     49    ! will use the assumption later, when we regrid in pressure).
     50    ! -- latitude and pressure are strictly monotonic (as all NetCDF
     51    ! coordinate variables should be);
    4852    ! -- time increases (even though we do not use values of the input
    4953    ! time coordinate);
    50     ! -- pressure is in hPa and in strictly ascending order (even
    51     ! though we do not use pressure values here, we write the unit of
    52     ! pressure in the NetCDF header, and we will use the assumptions later,
    53     ! when we regrid in pressure).
    5454
    5555    use regr1_step_av_m, only: regr1_step_av
     
    8181    ! ascending order)
    8282
    83     real, pointer:: plev(:) ! pressure level of input data
     83    real, pointer:: plev(:)
     84    ! pressure levels of input data, sorted in strictly ascending order
     85
    8486    logical desc_lat ! latitude in descending order in the input file
     87    logical desc_plev ! pressure levels in descending order in the input file
    8588
    8689    real, pointer:: o3_in(:, :, :) ! (n_lat, n_plev, 12 or 0:13)
     
    110113
    111114    integer j
    112 
    113     integer varid_in, varid_out, varid_plev, varid_time
    114     integer varid
    115     ! (for NetCDF)
     115    integer varid_in, varid_out, varid_plev, varid_time, varid ! (for NetCDF)
    116116
    117117    real, parameter:: tmidmonth(0:13) = (/(-15. + 30. * j, j = 0, 13)/)
     
    153153    call nf95_gw_var(ncid_in, varid, plev)
    154154    n_plev = size(plev)
    155     ! (We only need the pressure coordinate to copy it to the output file.)
     155    ! We only need the pressure coordinate to copy it to the output file.
     156    ! The program "gcm" will assume that pressure levels are in
     157    ! ascending order in the regridded climatology so invert order if
     158    ! necessary:
     159    desc_plev = plev(1) > plev(n_plev)
     160    if (desc_plev) plev = plev(n_plev:1:-1)
    156161
    157162    ! Create the output file and get the variable IDs:
     
    168173    call nf95_gw_var(ncid_in, varid_in, o3_in)
    169174    if (desc_lat) o3_in = o3_in(n_lat:1:-1, :, :)
     175    if (desc_plev) o3_in = o3_in(:, n_plev:1:-1, :)
    170176
    171177    call nf95_close(ncid_in)
     
    219225    use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, &
    220226         nf95_put_att, nf95_enddef, nf95_copy_att, nf95_put_var
    221     use netcdf, only: nf90_clobber, nf90_float, nf90_copy_att, nf90_global
     227    use netcdf, only: nf90_clobber, nf90_float, nf90_global
    222228
    223229    integer, intent(in):: ncid_in, n_plev
     
    276282    ! Global attributes:
    277283
    278     call nf95_put_att(ncid_out, nf90_global, "comment", "Regridded for LMDZ")
    279 
    280284    ! The following commands, copying attributes, may fail.
    281285    ! That is OK.
     
    290294    call handle_err_copy_att("title")
    291295
     296    call nf95_copy_att(ncid_in, nf90_global, "institution", ncid_out, &
     297         nf90_global, ncerr)
     298    call handle_err_copy_att("institution")
     299
    292300    call nf95_copy_att(ncid_in, nf90_global, "source", ncid_out, nf90_global, &
    293301         ncerr)
    294302    call handle_err_copy_att("source")
    295303
     304    call nf95_put_att(ncid_out, nf90_global, "comment", "Regridded for LMDZ")
     305
    296306    call nf95_enddef(ncid_out)
    297307
     
    311321
    312322      if (ncerr /= nf90_noerr) then
    313          print *, "regr_lat_time_climoz_m prepare_out nf90_copy_att " &
     323         print *, "regr_lat_time_climoz_m prepare_out nf95_copy_att " &
    314324              // att_name // " -- " // trim(nf90_strerror(ncerr))
    315325      end if
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/regr_pr.F90

    r1158 r1220  
    11! $Id$
    22module regr_pr
     3
     4  ! Author: Lionel GUEZ
    35
    46  ! In both procedures of this module:
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90

    r1215 r1220  
    5656  !* ARGUMENTS:
    5757  !
    58   REAL*8 PSCT  ! constante solaire (valeur conseillee: 1370)
    59 
    60   REAL*8 PPSOL(KDLON)        ! SURFACE PRESSURE (PA)
    61   REAL*8 PDP(KDLON,KFLEV)    ! LAYER THICKNESS (PA)
    62   REAL*8 PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
    63 
    64   REAL*8 PRMU0(KDLON)  ! COSINE OF ZENITHAL ANGLE
    65   REAL*8 PFRAC(KDLON)  ! fraction de la journee
    66 
    67   REAL*8 PTAVE(KDLON,KFLEV)  ! LAYER TEMPERATURE (K)
    68   REAL*8 PWV(KDLON,KFLEV)    ! SPECIFI! HUMIDITY (KG/KG)
    69   REAL*8 PQS(KDLON,KFLEV)    ! SATURATED WATER VAPOUR (KG/KG)
    70   REAL*8 POZON(KDLON,KFLEV)  ! OZONE CONCENTRATION (KG/KG)
    71   REAL*8 PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS
    72 
    73   REAL*8 PALBD(KDLON,2)  ! albedo du sol (lumiere diffuse)
    74   REAL*8 PALBP(KDLON,2)  ! albedo du sol (lumiere parallele)
    75 
    76   REAL*8 PCLDSW(KDLON,KFLEV)    ! CLOUD FRACTION
    77   REAL*8 PTAU(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS
    78   REAL*8 PCG(KDLON,2,KFLEV)     ! ASYMETRY FACTOR
    79   REAL*8 POMEGA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
    80 
    81   REAL*8 PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)
    82   REAL*8 PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky
    83   REAL*8 PALBPLA(KDLON)     ! PLANETARY ALBEDO
    84   REAL*8 PTOPSW(KDLON)      ! SHORTWAVE FLUX AT T.O.A.
    85   REAL*8 PSOLSW(KDLON)      ! SHORTWAVE FLUX AT SURFACE
    86   REAL*8 PTOPSW0(KDLON)     ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)
    87   REAL*8 PSOLSW0(KDLON)     ! SHORTWAVE FLUX AT SURFACE (CLEAR-SKY)
     58  REAL(KIND=8) PSCT  ! constante solaire (valeur conseillee: 1370)
     59
     60  REAL(KIND=8) PPSOL(KDLON)        ! SURFACE PRESSURE (PA)
     61  REAL(KIND=8) PDP(KDLON,KFLEV)    ! LAYER THICKNESS (PA)
     62  REAL(KIND=8) PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)
     63
     64  REAL(KIND=8) PRMU0(KDLON)  ! COSINE OF ZENITHAL ANGLE
     65  REAL(KIND=8) PFRAC(KDLON)  ! fraction de la journee
     66
     67  REAL(KIND=8) PTAVE(KDLON,KFLEV)  ! LAYER TEMPERATURE (K)
     68  REAL(KIND=8) PWV(KDLON,KFLEV)    ! SPECIFI! HUMIDITY (KG/KG)
     69  REAL(KIND=8) PQS(KDLON,KFLEV)    ! SATURATED WATER VAPOUR (KG/KG)
     70  REAL(KIND=8) POZON(KDLON,KFLEV)  ! OZONE CONCENTRATION (KG/KG)
     71  REAL(KIND=8) PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS
     72
     73  REAL(KIND=8) PALBD(KDLON,2)  ! albedo du sol (lumiere diffuse)
     74  REAL(KIND=8) PALBP(KDLON,2)  ! albedo du sol (lumiere parallele)
     75
     76  REAL(KIND=8) PCLDSW(KDLON,KFLEV)    ! CLOUD FRACTION
     77  REAL(KIND=8) PTAU(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS
     78  REAL(KIND=8) PCG(KDLON,2,KFLEV)     ! ASYMETRY FACTOR
     79  REAL(KIND=8) POMEGA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
     80
     81  REAL(KIND=8) PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)
     82  REAL(KIND=8) PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky
     83  REAL(KIND=8) PALBPLA(KDLON)     ! PLANETARY ALBEDO
     84  REAL(KIND=8) PTOPSW(KDLON)      ! SHORTWAVE FLUX AT T.O.A.
     85  REAL(KIND=8) PSOLSW(KDLON)      ! SHORTWAVE FLUX AT SURFACE
     86  REAL(KIND=8) PTOPSW0(KDLON)     ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)
     87  REAL(KIND=8) PSOLSW0(KDLON)     ! SHORTWAVE FLUX AT SURFACE (CLEAR-SKY)
    8888  !
    8989  !* LOCAL VARIABLES:
     
    9191  real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
    9292
    93   REAL(kind=8) ZOZ(KDLON,KFLEV)
     93  REAL(KIND=8) ZOZ(KDLON,KFLEV)
    9494  ! column-density of ozone in layer, in kilo-Dobsons
    9595
    96   REAL*8 ZAKI(KDLON,2)     
    97   REAL*8 ZCLD(KDLON,KFLEV)
    98   REAL*8 ZCLEAR(KDLON)
    99   REAL*8 ZDSIG(KDLON,KFLEV)
    100   REAL*8 ZFACT(KDLON)
    101   REAL*8 ZFD(KDLON,KFLEV+1)
    102   REAL*8 ZFDOWN(KDLON,KFLEV+1)
    103   REAL*8 ZFU(KDLON,KFLEV+1)
    104   REAL*8 ZFUP(KDLON,KFLEV+1)
    105   REAL*8 ZRMU(KDLON)
    106   REAL*8 ZSEC(KDLON)
    107   REAL*8 ZUD(KDLON,5,KFLEV+1)
    108   REAL*8 ZCLDSW0(KDLON,KFLEV)
    109 
    110   REAL*8 ZFSUP(KDLON,KFLEV+1)
    111   REAL*8 ZFSDN(KDLON,KFLEV+1)
    112   REAL*8 ZFSUP0(KDLON,KFLEV+1)
    113   REAL*8 ZFSDN0(KDLON,KFLEV+1)
     96  REAL(KIND=8) ZAKI(KDLON,2)     
     97  REAL(KIND=8) ZCLD(KDLON,KFLEV)
     98  REAL(KIND=8) ZCLEAR(KDLON)
     99  REAL(KIND=8) ZDSIG(KDLON,KFLEV)
     100  REAL(KIND=8) ZFACT(KDLON)
     101  REAL(KIND=8) ZFD(KDLON,KFLEV+1)
     102  REAL(KIND=8) ZFDOWN(KDLON,KFLEV+1)
     103  REAL(KIND=8) ZFU(KDLON,KFLEV+1)
     104  REAL(KIND=8) ZFUP(KDLON,KFLEV+1)
     105  REAL(KIND=8) ZRMU(KDLON)
     106  REAL(KIND=8) ZSEC(KDLON)
     107  REAL(KIND=8) ZUD(KDLON,5,KFLEV+1)
     108  REAL(KIND=8) ZCLDSW0(KDLON,KFLEV)
     109
     110  REAL(KIND=8) ZFSUP(KDLON,KFLEV+1)
     111  REAL(KIND=8) ZFSDN(KDLON,KFLEV+1)
     112  REAL(KIND=8) ZFSUP0(KDLON,KFLEV+1)
     113  REAL(KIND=8) ZFSDN0(KDLON,KFLEV+1)
    114114
    115115  INTEGER inu, jl, jk, i, k, kpl1
     
    126126
    127127  !jq-Introduced for aerosol forcings
    128   REAL*8, SAVE :: flag_aer
     128  REAL(KIND=8), SAVE :: flag_aer
    129129  !$OMP THREADPRIVATE(flag_aer)
    130130
    131131  LOGICAL ok_ade, ok_aie    ! use aerosol forcings or not?
    132   REAL*8 tauaero(kdlon,kflev,9,2)  ! aerosol optical properties
    133   REAL*8 pizaero(kdlon,kflev,9,2)  ! (see aeropt.F)
    134   REAL*8 cgaero(kdlon,kflev,9,2)   ! -"-
    135   REAL*8 PTAUA(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS (pre-industrial value)
    136   REAL*8 POMEGAA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
    137   REAL*8 PTOPSWADAERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
    138   REAL*8 PSOLSWADAERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
    139   REAL*8 PTOPSWAD0AERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
    140   REAL*8 PSOLSWAD0AERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
    141   REAL*8 PTOPSWAIAERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)
    142   REAL*8 PSOLSWAIAERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
    143   REAL*8 PTOPSWAERO(KDLON,9)
    144   REAL*8 PTOPSW0AERO(KDLON,9)
    145   REAL*8 PSOLSWAERO(KDLON,9)
    146   REAL*8 PSOLSW0AERO(KDLON,9)
     132  REAL(KIND=8) tauaero(kdlon,kflev,9,2)  ! aerosol optical properties
     133  REAL(KIND=8) pizaero(kdlon,kflev,9,2)  ! (see aeropt.F)
     134  REAL(KIND=8) cgaero(kdlon,kflev,9,2)   ! -"-
     135  REAL(KIND=8) PTAUA(KDLON,2,KFLEV)    ! CLOUD OPTICAL THICKNESS (pre-industrial value)
     136  REAL(KIND=8) POMEGAA(KDLON,2,KFLEV)  ! SINGLE SCATTERING ALBEDO
     137  REAL(KIND=8) PTOPSWADAERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
     138  REAL(KIND=8) PSOLSWADAERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
     139  REAL(KIND=8) PTOPSWAD0AERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)
     140  REAL(KIND=8) PSOLSWAD0AERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)
     141  REAL(KIND=8) PTOPSWAIAERO(KDLON)     ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)
     142  REAL(KIND=8) PSOLSWAIAERO(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
     143  REAL(KIND=8) PTOPSWAERO(KDLON,9)
     144  REAL(KIND=8) PTOPSW0AERO(KDLON,9)
     145  REAL(KIND=8) PSOLSWAERO(KDLON,9)
     146  REAL(KIND=8) PSOLSW0AERO(KDLON,9)
    147147
    148148  !jq - Fluxes including aerosol effects
    149   REAL*8,ALLOCATABLE,SAVE :: ZFSUPAD_AERO(:,:)
     149  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAD_AERO(:,:)
    150150  !$OMP THREADPRIVATE(ZFSUPAD_AERO)
    151   REAL*8,ALLOCATABLE,SAVE :: ZFSDNAD_AERO(:,:)
     151  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAD_AERO(:,:)
    152152  !$OMP THREADPRIVATE(ZFSDNAD_AERO)
    153153  !jq - Fluxes including aerosol effects
    154   REAL*8,ALLOCATABLE,SAVE :: ZFSUPAD0_AERO(:,:)
     154  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAD0_AERO(:,:)
    155155  !$OMP THREADPRIVATE(ZFSUPAD0_AERO)
    156   REAL*8,ALLOCATABLE,SAVE :: ZFSDNAD0_AERO(:,:)
     156  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAD0_AERO(:,:)
    157157  !$OMP THREADPRIVATE(ZFSDNAD0_AERO)
    158   REAL*8,ALLOCATABLE,SAVE :: ZFSUPAI_AERO(:,:)
     158  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAI_AERO(:,:)
    159159  !$OMP THREADPRIVATE(ZFSUPAI_AERO)
    160   REAL*8,ALLOCATABLE,SAVE :: ZFSDNAI_AERO(:,:)
     160  REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAI_AERO(:,:)
    161161  !$OMP THREADPRIVATE(ZFSDNAI_AERO)
    162   REAL*8,ALLOCATABLE,SAVE ::  ZFSUP_AERO(:,:,:)
     162  REAL(KIND=8),ALLOCATABLE,SAVE ::  ZFSUP_AERO(:,:,:)
    163163  !$OMP THREADPRIVATE(ZFSUP_AERO)
    164   REAL*8,ALLOCATABLE,SAVE ::  ZFSDN_AERO(:,:,:)
     164  REAL(KIND=8),ALLOCATABLE,SAVE ::  ZFSDN_AERO(:,:,:)
    165165  !$OMP THREADPRIVATE(ZFSDN_AERO)
    166   REAL*8,ALLOCATABLE,SAVE ::  ZFSUP0_AERO(:,:,:)
     166  REAL(KIND=8),ALLOCATABLE,SAVE ::  ZFSUP0_AERO(:,:,:)
    167167  !$OMP THREADPRIVATE(ZFSUP0_AERO)
    168   REAL*8,ALLOCATABLE,SAVE ::  ZFSDN0_AERO(:,:,:)
     168  REAL(KIND=8),ALLOCATABLE,SAVE ::  ZFSDN0_AERO(:,:,:)
    169169  !$OMP THREADPRIVATE(ZFSDN0_AERO)
    170170
Note: See TracChangeset for help on using the changeset viewer.