Changeset 1220
- Timestamp:
- Aug 5, 2009, 4:38:34 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf
- Files:
-
- 40 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/bibio/initdynav.F
r1186 r1220 53 53 C 54 54 character*(*) infile 55 integer *4day0, anne055 integer day0, anne0 56 56 real tstep, t_ops, t_wrt 57 57 integer fileid -
LMDZ4/branches/LMDZ4-dev/libf/bibio/inithist.F
r1186 r1220 55 55 C 56 56 character*(*) infile 57 integer *4day0, anne057 integer day0, anne0 58 58 real tstep, t_ops, t_wrt 59 59 integer fileid, filevid -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/coefpoly.F
r524 r1220 19 19 c On en revient a resoudre un systeme de 4 equat.a 4 inconnues a0,a1,a2,a3 20 20 21 REAL *8Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi22 REAL *8Xfout, Xprim23 REAL *8a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car21 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 24 24 25 25 xtil1car = xtild1 * xtild1 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F
r1114 r1220 6 6 USE comgeomphy 7 7 USE infotrac 8 #ifdef CPP_IOIPSL 9 use ioipsl, only: ioconf_calendar 10 #endif 11 IMPLICIT NONE 8 12 c 9 13 c … … 44 48 call InitComgeomphy 45 49 50 #ifdef CPP_IOIPSL 51 call ioconf_calendar('360d') 52 #endif 53 46 54 WRITE(6,*) ' ********************* ' 47 55 WRITE(6,*) ' interbar = ',interbar -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/etat0_netcdf.F
r1154 r1220 655 655 itau_phy = 0 656 656 iday = dayref +itau/day_step 657 time = FLOAT(itau-(iday-dayref)*day_step)/day_step657 time = real(itau-(iday-dayref)*day_step)/day_step 658 658 c 659 659 IF(time.GT.1) THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fxhyp.F
r650 r1220 48 48 c 49 49 REAL dzoom 50 REAL *8xlon(iip1),xprimm(iip1),xuv51 REAL *8xtild(0:nmax2)52 REAL *8fhyp(0:nmax2),ffdx,beta,Xprimt(0:nmax2)53 REAL *8Xf(0:nmax2),xxpr(0:nmax2)54 REAL *8xvrai(iip1),xxprim(iip1)55 REAL *8pi,depi,epsilon,xzoom,fa,fb56 REAL *8Xf1, Xfi , a0,a1,a2,a3,xi250 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 57 57 INTEGER i,it,ik,iter,ii,idif,ii1,ii2 58 REAL *8xi,xo1,xmoy,xlon2,fxm,Xprimin59 REAL *8champmin,champmax,decalx58 REAL(KIND=8) xi,xo1,xmoy,xlon2,fxm,Xprimin 59 REAL(KIND=8) champmin,champmax,decalx 60 60 INTEGER is2 61 61 SAVE is2 62 62 63 REAL *8heavyside63 REAL(KIND=8) heavyside 64 64 65 65 pi = 2. * ASIN(1.) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fxyhyper.F
r524 r1220 41 41 REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1), 42 42 , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1) 43 REAL *8dxmin, dxmax , dymin, dymax43 REAL(KIND=8) dxmin, dxmax , dymin, dymax 44 44 45 45 c .... var. locales ..... -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fyhyp.F
r650 r1220 50 50 51 51 REAL dzoom 52 REAL *8ylat(jjp1), yprim(jjp1)53 REAL *8yuv54 REAL *8yt(0:nmax2)55 REAL *8fhyp(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) 56 56 SAVE Ytprim, yt,Yf 57 REAL *8Yf(0:nmax2),yypr(0:nmax2)58 REAL *8yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)59 REAL *8pi,depi,pis2,epsilon,y0,pisjm60 REAL *8yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax61 REAL *8yfi,Yf1,ffdy62 REAL *8ypn,deply,y0057 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 63 63 SAVE y00, deply 64 64 … … 66 66 INTEGER jpn,jjpn 67 67 SAVE jpn 68 REAL *8a0,a1,a2,a3,yi2,heavyy0,heavyy0m69 REAL *8fa(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) 70 70 REAL y0min,y0max 71 71 72 REAL *8heavyside72 REAL(KIND=8) heavyside 73 73 74 74 pi = 2. * ASIN(1.) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F
r1201 r1220 313 313 annee_ref = anneeref 314 314 day_ref = dayref 315 day_ini = 1315 day_ini = dayref 316 316 itau_dyn = 0 317 317 itau_phy = 0 … … 331 331 332 332 #ifdef CPP_IOIPSL 333 call ioconf_startdate(annee_ref, 0,day_ref, 0.)333 call ioconf_startdate(annee_ref,1,day_ref, 0.) 334 334 #endif 335 335 … … 413 413 WRITE(lunout,300)day_ini,day_end 414 414 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) 416 416 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) 418 418 write (lunout,302)jour, mois, an 419 419 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/grid_atob.F
r524 r1220 700 700 PARAMETER (imtmp=360,jmtmp=180) 701 701 REAL xtmp(imtmp), ytmp(jmtmp) 702 REAL *8cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)702 REAL(KIND=8) cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp) 703 703 REAL zzzz 704 704 c … … 859 859 number(ii,jj) = number(ii,jj) + 1.0 860 860 rugs(ii,jj) = rugs(ii,jj) 861 . + LOG(MAX(0.001 ,cham2tmp(i,j)))861 . + LOG(MAX(0.001_8,cham2tmp(i,j))) 862 862 ENDIF 863 863 ENDDO … … 892 892 i_proche = ij_proche - (j_proche-1)*imtmp 893 893 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))) 895 895 ENDIF 896 896 ENDDO -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/heavyside.F
r524 r1220 10 10 IMPLICIT NONE 11 11 12 REAL *8heavyside , a12 REAL(KIND=8) heavyside , a 13 13 14 14 IF ( a.LE.0. ) THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/inter_barx.F
r790 r1220 212 212 213 213 214 3 FORMAT(1x,70( 1h-))214 3 FORMAT(1x,70("-")) 215 215 2 FORMAT(1x,8f8.2) 216 216 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F
r1201 r1220 219 219 1 CONTINUE 220 220 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) 222 222 jH_cur = jH_ref + & 223 223 & (itau * dtvr / daysec - int(itau * dtvr / daysec)) … … 356 356 ! rdaym_ini = itau * dtvr / daysec 357 357 ! 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) 359 360 jH_cur = jH_ref + & 360 361 & (itau * dtvr / daysec - int(itau * dtvr / daysec)) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/sortvarc.F
r1201 r1220 157 157 RETURN 158 158 159 3500 FORMAT( '0'10(1h*),4x,'pas'i7,5x,'jour'f9.0,'heure'f5.1,4x160 * ,'date',f14.4,4x,10( 1h*))159 3500 FORMAT(10("*"),4x,'pas',i7,5x,'jour',f9.0,'heure',f5.1,4x 160 * ,'date',f14.4,4x,10("*")) 161 161 4000 FORMAT(10x,'masse',4x,'rmsdpdt',7x,'energie',2x,'enstrophie' 162 162 * ,2x,'entropie',3x,'rmsv',4x,'mt.ang',/,'GLOB ' -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/sortvarc0.F
r524 r1220 130 130 ang0 = SSUM( llm, angl, 1 ) 131 131 132 rday = FLOAT(INT ( day_ini +time ))132 rday = FLOAT(INT (time )) 133 133 c 134 134 PRINT 3500, itau, rday, heure, time 135 135 PRINT *, ptot0,etot0,ztot0,stot0,ang0 136 136 137 3500 FORMAT( '0',10(1h*),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x138 * ,'date',f10.5,4x,10( 1h*))137 3500 FORMAT(10("*"),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x 138 * ,'date',f10.5,4x,10("*")) 139 139 RETURN 140 140 END -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/coefpoly.F
r774 r1220 19 19 c On en revient a resoudre un systeme de 4 equat.a 4 inconnues a0,a1,a2,a3 20 20 21 REAL *8Xf1, Xf2,Xprim1,Xprim2, xtild1,xtild2, xi22 REAL *8Xfout, Xprim23 REAL *8a1,a2,a3,a0, xtil1car, xtil2car,derr,x1x2car21 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 24 24 25 25 xtil1car = xtild1 * xtild1 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/create_etat0_limit.F
r1114 r1220 9 9 USE phys_state_var_mod 10 10 USE infotrac 11 #ifdef CPP_IOIPSL 12 use ioipsl, only: ioconf_calendar 13 #endif 11 14 IMPLICIT NONE 12 15 c … … 41 44 call init_const_lmdz( 42 45 $ nbtr,anneeref,dayref, 43 $ iphysiq, day_step,nday)46 $ iphysiq, day_step,nday) 44 47 #endif 45 48 print *, 'nbtr =' , nbtr … … 60 63 call InitComgeomphy 61 64 65 #ifdef CPP_IOIPSL 66 call ioconf_calendar('360d') 67 #endif 62 68 63 69 WRITE(6,*) ' ********************* ' -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F
r1154 r1220 654 654 itau_phy = 0 655 655 iday = dayref +itau/day_step 656 time = FLOAT(itau-(iday-dayref)*day_step)/day_step656 time = real(itau-(iday-dayref)*day_step)/day_step 657 657 c 658 658 IF(time.GT.1) THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fxyhyper.F
r774 r1220 41 41 REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1), 42 42 , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1) 43 REAL *8dxmin, dxmax , dymin, dymax43 REAL(KIND=8) dxmin, dxmax , dymin, dymax 44 44 45 45 c .... var. locales ..... -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/fyhyp.F
r764 r1220 50 50 51 51 REAL dzoom 52 REAL *8ylat(jjp1), yprim(jjp1)53 REAL *8yuv54 REAL *8yt(0:nmax2)55 REAL *8fhyp(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) 56 56 SAVE Ytprim, yt,Yf 57 REAL *8Yf(0:nmax2),yypr(0:nmax2)58 REAL *8yvrai(jjp1), yprimm(jjp1),ylatt(jjp1)59 REAL *8pi,depi,pis2,epsilon,y0,pisjm60 REAL *8yo1,yi,ylon2,ymoy,Yprimin,champmin,champmax61 REAL *8yfi,Yf1,ffdy62 REAL *8ypn,deply,y0057 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 63 63 SAVE y00, deply 64 64 … … 66 66 INTEGER jpn,jjpn 67 67 SAVE jpn 68 REAL *8a0,a1,a2,a3,yi2,heavyy0,heavyy0m69 REAL *8fa(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) 70 70 REAL y0min,y0max 71 71 72 REAL *8heavyside72 REAL(KIND=8) heavyside 73 73 74 74 pi = 2. * ASIN(1.) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F
r1201 r1220 326 326 annee_ref = anneeref 327 327 day_ref = dayref 328 day_ini = 1328 day_ini = dayref 329 329 itau_dyn = 0 330 330 itau_phy = 0 … … 344 344 345 345 #ifdef CPP_IOIPSL 346 call ioconf_startdate(annee_ref, 0,day_ref, 0.)346 call ioconf_startdate(annee_ref,1,day_ref, 0.) 347 347 #endif 348 348 … … 436 436 WRITE(lunout,300)day_ini,day_end 437 437 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) 439 439 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) 441 441 write (lunout,302)jour, mois, an 442 442 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/grid_atob.F
r774 r1220 700 700 PARAMETER (imtmp=360,jmtmp=180) 701 701 REAL xtmp(imtmp), ytmp(jmtmp) 702 REAL *8cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp)702 REAL(KIND=8) cham1tmp(imtmp,jmtmp), cham2tmp(imtmp,jmtmp) 703 703 REAL zzzz 704 704 c … … 859 859 number(ii,jj) = number(ii,jj) + 1.0 860 860 rugs(ii,jj) = rugs(ii,jj) 861 . + LOG(MAX(0.001 ,cham2tmp(i,j)))861 . + LOG(MAX(0.001_8,cham2tmp(i,j))) 862 862 ENDIF 863 863 ENDDO … … 892 892 i_proche = ij_proche - (j_proche-1)*imtmp 893 893 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))) 895 895 ENDIF 896 896 ENDDO -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/heavyside.F
r774 r1220 10 10 IMPLICIT NONE 11 11 12 REAL *8heavyside , a12 REAL(KIND=8) heavyside , a 13 13 14 14 IF ( a.LE.0. ) THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inter_barx.F
r774 r1220 81 81 82 82 DO idat = 1, idatmax 83 xxd(idat) = AMOD( xxd(idat) - xim0, 360. )83 xxd(idat) = MOD( xxd(idat) - xim0, 360. ) 84 84 fdd(idat) = fdat (idat) 85 85 ENDDO … … 212 212 213 213 214 3 FORMAT(1x,70( 1h-))214 3 FORMAT(1x,70("-")) 215 215 2 FORMAT(1x,8f8.2) 216 216 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/leapfrog_p.F
r1207 r1220 243 243 1 CONTINUE 244 244 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) 246 246 jH_cur = jH_ref + & 247 247 & (itau * dtvr / daysec - int(itau * dtvr / daysec)) … … 684 684 CALL exner_hyb_p( ip1jmp1, ps, p,alpha,beta,pks, pk, pkf ) 685 685 c$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) 687 688 jH_cur = jH_ref + & 688 689 & (itau * dtvr / daysec - int(itau * dtvr / daysec)) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/sortvarc.F
r1201 r1220 157 157 RETURN 158 158 159 3500 FORMAT( '0'10(1h*),4x,'pas'i7,5x,'jour'f9.0,'heure'f5.1,4x160 * ,'date',f14.4,4x,10( 1h*))159 3500 FORMAT(10("*"),4x,'pas',i7,5x,'jour',f9.0,'heure',f5.1,4x 160 * ,'date',f14.4,4x,10("*")) 161 161 4000 FORMAT(10x,'masse',4x,'rmsdpdt',7x,'energie',2x,'enstrophie' 162 162 * ,2x,'entropie',3x,'rmsv',4x,'mt.ang',/,'GLOB ' -
LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/sortvarc0.F
r774 r1220 130 130 ang0 = SSUM( llm, angl, 1 ) 131 131 132 rday = FLOAT(INT ( day_ini +time ))132 rday = FLOAT(INT (time )) 133 133 c 134 134 PRINT 3500, itau, rday, heure, time 135 135 PRINT *, ptot0,etot0,ztot0,stot0,ang0 136 136 137 3500 FORMAT( '0',10(1h*),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x138 * ,'date',f10.5,4x,10( 1h*))137 3500 FORMAT(10("*"),4x,'pas',i7,5x,'jour',f5.0,'heure',f5.1,4x 138 * ,'date',f10.5,4x,10("*")) 139 139 RETURN 140 140 END -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/ecribin.F
r940 r1220 94 94 SUBROUTINE ecriture(nunit, r8, n) 95 95 INTEGER nunit, n, i 96 REAL *8r8(n)97 REAL *4r4(n)96 REAL(KIND=8) r8(n) 97 REAL r4(n) 98 98 DO i = 1, n 99 99 r4(i) = r8(i) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/initphysto.F
r776 r1220 57 57 C Arguments 58 58 character*(*) infile 59 integer *4nhoriid, i59 integer nhoriid, i 60 60 real tstep, t_ops, t_wrt 61 61 integer fileid, filevid -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/newmicro.F
r1183 r1220 399 399 DO i = 1, klon 400 400 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)) 402 402 pct(i)=1.-zclear(i) 403 403 IF (pplay(i,k).LE.cetahb*paprs(i,1)) THEN 404 404 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)) 406 406 ELSE IF (pplay(i,k).GT.cetahb*paprs(i,1) .AND. 407 407 & pplay(i,k).LE.cetamb*paprs(i,1)) THEN 408 408 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)) 410 410 ELSE IF (pplay(i,k).GT.cetamb*paprs(i,1)) THEN 411 411 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)) 413 413 endif 414 414 zcloud(i)=pclc(i,k) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/open_climoz_m.F90
r1156 r1220 10 10 ! This procedure should be called once per "gcm" run, by a single 11 11 ! thread of each MPI process. 12 ! The root process opens "climoz_LMDZ.nc", reads the pressure12 ! The root MPI process opens "climoz_LMDZ.nc", reads the pressure 13 13 ! levels and broadcasts them to the other processes. 14 14 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/ozonecm_m.F90
r1215 r1220 6 6 contains 7 7 8 function ozonecm(r jour,rlat,paprs)8 function ozonecm(rlat, paprs, rjour) 9 9 10 10 ! The ozone climatology is based on an analytic formula which fits the … … 24 24 use assert_m, only: assert 25 25 26 REAL, INTENT (IN) :: rjour27 26 REAL, INTENT (IN) :: rlat(:) ! (klon) 28 27 REAL, INTENT (IN) :: paprs(:, :) ! (klon,klev+1) 28 REAL, INTENT (IN) :: rjour 29 29 30 30 REAL ozonecm(klon,klev) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
r1217 r1220 29 29 USE fonte_neige_mod, ONLY : fonte_neige_get_vars 30 30 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 32 32 use regr_pr, only: regr_pr_av 33 33 use netcdf95, only: nf95_close … … 284 284 real T2STD(klon,nlevSTD) 285 285 c 286 #include "radepsi.h"287 286 #include "radopt.h" 288 287 c … … 743 742 EXTERNAL hgardfou ! verifier les temperatures 744 743 EXTERNAL nuage ! calculer les proprietes radiatives 745 EXTERNAL o3cm ! initialiser l'ozone744 CC EXTERNAL o3cm ! initialiser l'ozone 746 745 EXTERNAL orbite ! calculer l'orbite terrestre 747 746 EXTERNAL phyetat0 ! lire l'etat initial de la physique … … 982 981 REAL zx_tmp_fiNC(klon,nlevSTD) 983 982 c#endif 984 REAL *8zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D983 REAL(KIND=8) zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 985 984 REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev) 986 985 REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1) … … 1100 1099 integer iunit 1101 1100 1102 logical, save:: read_climoz ! read ozone climatology 1101 logical, save:: read_climoz ! read ozone climatology from a file 1103 1102 integer, save:: ncid_climoz ! NetCDF file containing ozone climatology 1104 1103 … … 1713 1712 c Prescrire l'ozone et calculer l'albedo sur l'ocean. 1714 1713 c 1715 IF (MOD(itap-1,lmt_pas) .EQ.0) THEN1714 IF (MOD(itap-1,lmt_pas) == 0) THEN 1716 1715 C Once per day, update ozone: 1717 1716 if (read_climoz) then 1718 1717 C 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) 1722 1720 ! Convert from mole fraction of ozone to column density of ozone in a 1723 1721 ! cell, in kDU: … … 1728 1726 C "zmasse" changes a little.) 1729 1727 else 1730 wo = ozonecm(r eal(days_elapsed+1), rlat, paprs)1728 wo = ozonecm(rlat, paprs, rjour=real(days_elapsed+1)) 1731 1729 end if 1732 1730 ENDIF -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/printflag.F
r879 r1220 132 132 PRINT 100 133 133 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("*") ) 136 136 137 7 FORMAT(2x,5( 1H*),15x,' ok_limitvrai = ',l3,16x,5(1h*) )137 7 FORMAT(2x,5("*"),15x,' ok_limitvrai = ',l3,16x,5("*") ) 138 138 139 139 8 FORMAT(2x,'***** radpas = ' , 140 140 , i4,6x,' *****') 141 141 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("*") ) 144 144 145 145 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("*") ) 148 148 149 149 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/radepsi.h
r524 r1220 2 2 ! $Header$ 3 3 ! 4 REAL *8ZEELOG, ZEPSC, ZEPSCO, ZEPSCQ, ZEPSCT, ZEPSCW5 REAL *8ZEPSEC, ZEPSCR4 REAL(KIND=8) ZEELOG, ZEPSC, ZEPSCO, ZEPSCQ, ZEPSCT, ZEPSCW 5 REAL(KIND=8) ZEPSEC, ZEPSCR 6 6 PARAMETER (ZEELOG = 1.E-07) !1.e-10 (not good for 32-bit machines) 7 7 PARAMETER (ZEPSC = 1.E-20) … … 13 13 PARAMETER (ZEPSCR = 1.0E-10) 14 14 c 15 REAL *8REPSCT15 REAL(KIND=8) REPSCT 16 16 PARAMETER (REPSCT=1.0E-10) -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/radiation_AR4.F
r1215 r1220 54 54 C* ARGUMENTS: 55 55 C 56 REAL *8PSCT ! constante solaire (valeur conseillee: 1370)57 cIM ctes ds clesphys.h REAL *8RCO2 ! concentration CO2 (IPCC: 353.E-06*44.011/28.97)56 REAL(KIND=8) PSCT ! constante solaire (valeur conseillee: 1370) 57 cIM ctes ds clesphys.h REAL(KIND=8) RCO2 ! concentration CO2 (IPCC: 353.E-06*44.011/28.97) 58 58 #include "clesphys.h" 59 59 C 60 REAL *8PPSOL(KDLON) ! SURFACE PRESSURE (PA)61 REAL *8PDP(KDLON,KFLEV) ! LAYER THICKNESS (PA)62 REAL *8PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)63 C 64 REAL *8PRMU0(KDLON) ! COSINE OF ZENITHAL ANGLE65 REAL *8PFRAC(KDLON) ! fraction de la journee66 C 67 REAL *8PTAVE(KDLON,KFLEV) ! LAYER TEMPERATURE (K)68 REAL *8PWV(KDLON,KFLEV) ! SPECIFIC HUMIDITY (KG/KG)69 REAL *8PQS(KDLON,KFLEV) ! SATURATED WATER VAPOUR (KG/KG)70 REAL *8POZON(KDLON,KFLEV) ! OZONE CONCENTRATION (KG/KG)71 REAL *8PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS72 C 73 REAL *8PALBD(KDLON,2) ! albedo du sol (lumiere diffuse)74 REAL *8PALBP(KDLON,2) ! albedo du sol (lumiere parallele)75 C 76 REAL *8PCLDSW(KDLON,KFLEV) ! CLOUD FRACTION77 REAL *8PTAU(KDLON,2,KFLEV) ! CLOUD OPTICAL THICKNESS78 REAL *8PCG(KDLON,2,KFLEV) ! ASYMETRY FACTOR79 REAL *8POMEGA(KDLON,2,KFLEV) ! SINGLE SCATTERING ALBEDO80 C 81 REAL *8PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)82 REAL *8PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky83 REAL *8PALBPLA(KDLON) ! PLANETARY ALBEDO84 REAL *8PTOPSW(KDLON) ! SHORTWAVE FLUX AT T.O.A.85 REAL *8PSOLSW(KDLON) ! SHORTWAVE FLUX AT SURFACE86 REAL *8PTOPSW0(KDLON) ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)87 REAL *8PSOLSW0(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) 63 C 64 REAL(KIND=8) PRMU0(KDLON) ! COSINE OF ZENITHAL ANGLE 65 REAL(KIND=8) PFRAC(KDLON) ! fraction de la journee 66 C 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 72 C 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 C 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 C 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) 88 88 C 89 89 C* LOCAL VARIABLES: … … 91 91 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 92 92 93 REAL( kind=8) ZOZ(KDLON,KFLEV)93 REAL(KIND=8) ZOZ(KDLON,KFLEV) 94 94 ! column-density of ozone in layer, in kilo-Dobsons 95 95 96 REAL *8ZAKI(KDLON,2)97 REAL *8ZCLD(KDLON,KFLEV)98 REAL *8ZCLEAR(KDLON)99 REAL *8ZDSIG(KDLON,KFLEV)100 REAL *8ZFACT(KDLON)101 REAL *8ZFD(KDLON,KFLEV+1)102 REAL *8ZFDOWN(KDLON,KFLEV+1)103 REAL *8ZFU(KDLON,KFLEV+1)104 REAL *8ZFUP(KDLON,KFLEV+1)105 REAL *8ZRMU(KDLON)106 REAL *8ZSEC(KDLON)107 REAL *8ZUD(KDLON,5,KFLEV+1)108 REAL *8ZCLDSW0(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) 109 109 c 110 REAL *8ZFSUP(KDLON,KFLEV+1)111 REAL *8ZFSDN(KDLON,KFLEV+1)112 REAL *8ZFSUP0(KDLON,KFLEV+1)113 REAL *8ZFSDN0(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) 114 114 C 115 115 INTEGER inu, jl, jk, i, k, kpl1 … … 126 126 c$OMP THREADPRIVATE(itapsw) 127 127 cjq-Introduced for aerosol forcings 128 real *8flag_aer128 real(kind=8) flag_aer 129 129 logical ok_ade, ok_aie ! use aerosol forcings or not? 130 real *8tauae(kdlon,kflev,2) ! aerosol optical properties131 real *8pizae(kdlon,kflev,2) ! (see aeropt.F)132 real *8cgae(kdlon,kflev,2) ! -"-133 REAL *8PTAUA(KDLON,2,KFLEV) ! CLOUD OPTICAL THICKNESS (pre-industrial value)134 REAL *8POMEGAA(KDLON,2,KFLEV) ! SINGLE SCATTERING ALBEDO135 REAL *8PTOPSWAD(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)136 REAL *8PSOLSWAD(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)137 REAL *8PTOPSWAI(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)138 REAL *8PSOLSWAI(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) 139 139 cjq - Fluxes including aerosol effects 140 REAL *8,allocatable,save :: ZFSUPAD(:,:)140 REAL(KIND=8),allocatable,save :: ZFSUPAD(:,:) 141 141 c$OMP THREADPRIVATE(ZFSUPAD) 142 REAL *8,allocatable,save :: ZFSDNAD(:,:)142 REAL(KIND=8),allocatable,save :: ZFSDNAD(:,:) 143 143 c$OMP THREADPRIVATE(ZFSDNAD) 144 REAL *8,allocatable,save :: ZFSUPAI(:,:)144 REAL(KIND=8),allocatable,save :: ZFSUPAI(:,:) 145 145 c$OMP THREADPRIVATE(ZFSUPAI) 146 REAL *8,allocatable,save :: ZFSDNAI(:,:)146 REAL(KIND=8),allocatable,save :: ZFSDNAI(:,:) 147 147 c$OMP THREADPRIVATE(ZFSDNAI) 148 148 logical initialized … … 353 353 C* ARGUMENTS: 354 354 C 355 REAL *8PSCT356 cIM ctes ds clesphys.h REAL *8RCO2355 REAL(KIND=8) PSCT 356 cIM ctes ds clesphys.h REAL(KIND=8) RCO2 357 357 #include "clesphys.h" 358 REAL *8PCLDSW(KDLON,KFLEV)359 REAL *8PPMB(KDLON,KFLEV+1)360 REAL *8PPSOL(KDLON)361 REAL *8PRMU0(KDLON)362 REAL *8PFRAC(KDLON)363 REAL *8PTAVE(KDLON,KFLEV)364 REAL *8PWV(KDLON,KFLEV)365 C 366 REAL *8PAKI(KDLON,2)367 REAL *8PCLD(KDLON,KFLEV)368 REAL *8PCLEAR(KDLON)369 REAL *8PDSIG(KDLON,KFLEV)370 REAL *8PFACT(KDLON)371 REAL *8PRMU(KDLON)372 REAL *8PSEC(KDLON)373 REAL *8PUD(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) 365 C 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) 374 374 C 375 375 C* LOCAL VARIABLES: 376 376 C 377 377 INTEGER IIND(2) 378 REAL *8ZC1J(KDLON,KFLEV+1)379 REAL *8ZCLEAR(KDLON)380 REAL *8ZCLOUD(KDLON)381 REAL *8ZN175(KDLON)382 REAL *8ZN190(KDLON)383 REAL *8ZO175(KDLON)384 REAL *8ZO190(KDLON)385 REAL *8ZSIGN(KDLON)386 REAL *8ZR(KDLON,2)387 REAL *8ZSIGO(KDLON)388 REAL *8ZUD(KDLON,2)389 REAL *8ZRTH, ZRTU, ZWH2O, ZDSCO2, ZDSH2O, ZFPPW378 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 390 390 INTEGER jl, jk, jkp1, jkl, jklp1, ja 391 391 C 392 392 C* Prescribed Data: 393 393 c 394 REAL *8ZPDH2O,ZPDUMG394 REAL(KIND=8) ZPDH2O,ZPDUMG 395 395 SAVE ZPDH2O,ZPDUMG 396 396 c$OMP THREADPRIVATE(ZPDH2O,ZPDUMG) 397 REAL *8ZPRH2O,ZPRUMG397 REAL(KIND=8) ZPRH2O,ZPRUMG 398 398 SAVE ZPRH2O,ZPRUMG 399 399 c$OMP THREADPRIVATE(ZPRH2O,ZPRUMG) 400 REAL *8RTDH2O,RTDUMG400 REAL(KIND=8) RTDH2O,RTDUMG 401 401 SAVE RTDH2O,RTDUMG 402 402 c$OMP THREADPRIVATE(RTDH2O,RTDUMG) 403 REAL *8RTH2O ,RTUMG403 REAL(KIND=8) RTH2O ,RTUMG 404 404 SAVE RTH2O ,RTUMG 405 405 c$OMP THREADPRIVATE(RTH2O ,RTUMG) … … 577 577 INTEGER KNU 578 578 c-OB 579 real *8flag_aer580 real *8tauae(kdlon,kflev,2)581 real *8pizae(kdlon,kflev,2)582 real *8cgae(kdlon,kflev,2)583 REAL *8PAER(KDLON,KFLEV,5)584 REAL *8PALBD(KDLON,2)585 REAL *8PALBP(KDLON,2)586 REAL *8PCG(KDLON,2,KFLEV)587 REAL *8PCLD(KDLON,KFLEV)588 REAL *8PCLDSW(KDLON,KFLEV)589 REAL *8PCLEAR(KDLON)590 REAL *8PDSIG(KDLON,KFLEV)591 REAL *8POMEGA(KDLON,2,KFLEV)592 REAL *8POZ(KDLON,KFLEV)593 REAL *8PRMU(KDLON)594 REAL *8PSEC(KDLON)595 REAL *8PTAU(KDLON,2,KFLEV)596 REAL *8PUD(KDLON,5,KFLEV+1)597 C 598 REAL *8PFD(KDLON,KFLEV+1)599 REAL *8PFU(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) 597 C 598 REAL(KIND=8) PFD(KDLON,KFLEV+1) 599 REAL(KIND=8) PFU(KDLON,KFLEV+1) 600 600 C 601 601 C* LOCAL VARIABLES: … … 603 603 INTEGER IIND(4) 604 604 C 605 REAL *8ZCGAZ(KDLON,KFLEV)606 REAL *8ZDIFF(KDLON)607 REAL *8ZDIRF(KDLON)608 REAL *8ZPIZAZ(KDLON,KFLEV)609 REAL *8ZRAYL(KDLON)610 REAL *8ZRAY1(KDLON,KFLEV+1)611 REAL *8ZRAY2(KDLON,KFLEV+1)612 REAL *8ZREFZ(KDLON,2,KFLEV+1)613 REAL *8ZRJ(KDLON,6,KFLEV+1)614 REAL *8ZRJ0(KDLON,6,KFLEV+1)615 REAL *8ZRK(KDLON,6,KFLEV+1)616 REAL *8ZRK0(KDLON,6,KFLEV+1)617 REAL *8ZRMUE(KDLON,KFLEV+1)618 REAL *8ZRMU0(KDLON,KFLEV+1)619 REAL *8ZR(KDLON,4)620 REAL *8ZTAUAZ(KDLON,KFLEV)621 REAL *8ZTRA1(KDLON,KFLEV+1)622 REAL *8ZTRA2(KDLON,KFLEV+1)623 REAL *8ZW(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) 624 624 C 625 625 INTEGER jl, jk, k, jaj, ikm1, ikl … … 627 627 c Prescribed Data: 628 628 c 629 REAL *8RSUN(2)629 REAL(KIND=8) RSUN(2) 630 630 SAVE RSUN 631 631 c$OMP THREADPRIVATE(RSUN) 632 REAL *8RRAY(2,6)632 REAL(KIND=8) RRAY(2,6) 633 633 SAVE RRAY 634 634 c$OMP THREADPRIVATE(RRAY) … … 825 825 INTEGER KNU 826 826 c-OB 827 real *8flag_aer828 real *8tauae(kdlon,kflev,2)829 real *8pizae(kdlon,kflev,2)830 real *8cgae(kdlon,kflev,2)831 REAL *8PAER(KDLON,KFLEV,5)832 REAL *8PAKI(KDLON,2)833 REAL *8PALBD(KDLON,2)834 REAL *8PALBP(KDLON,2)835 REAL *8PCG(KDLON,2,KFLEV)836 REAL *8PCLD(KDLON,KFLEV)837 REAL *8PCLDSW(KDLON,KFLEV)838 REAL *8PCLEAR(KDLON)839 REAL *8PDSIG(KDLON,KFLEV)840 REAL *8POMEGA(KDLON,2,KFLEV)841 REAL *8POZ(KDLON,KFLEV)842 REAL *8PQS(KDLON,KFLEV)843 REAL *8PRMU(KDLON)844 REAL *8PSEC(KDLON)845 REAL *8PTAU(KDLON,2,KFLEV)846 REAL *8PUD(KDLON,5,KFLEV+1)847 REAL *8PWV(KDLON,KFLEV)848 C 849 REAL *8PFDOWN(KDLON,KFLEV+1)850 REAL *8PFUP(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) 848 C 849 REAL(KIND=8) PFDOWN(KDLON,KFLEV+1) 850 REAL(KIND=8) PFUP(KDLON,KFLEV+1) 851 851 C 852 852 C* LOCAL VARIABLES: 853 853 C 854 854 INTEGER IIND2(2), IIND3(3) 855 REAL *8ZCGAZ(KDLON,KFLEV)856 REAL *8ZFD(KDLON,KFLEV+1)857 REAL *8ZFU(KDLON,KFLEV+1)858 REAL *8ZG(KDLON)859 REAL *8ZGG(KDLON)860 REAL *8ZPIZAZ(KDLON,KFLEV)861 REAL *8ZRAYL(KDLON)862 REAL *8ZRAY1(KDLON,KFLEV+1)863 REAL *8ZRAY2(KDLON,KFLEV+1)864 REAL *8ZREF(KDLON)865 REAL *8ZREFZ(KDLON,2,KFLEV+1)866 REAL *8ZRE1(KDLON)867 REAL *8ZRE2(KDLON)868 REAL *8ZRJ(KDLON,6,KFLEV+1)869 REAL *8ZRJ0(KDLON,6,KFLEV+1)870 REAL *8ZRK(KDLON,6,KFLEV+1)871 REAL *8ZRK0(KDLON,6,KFLEV+1)872 REAL *8ZRL(KDLON,8)873 REAL *8ZRMUE(KDLON,KFLEV+1)874 REAL *8ZRMU0(KDLON,KFLEV+1)875 REAL *8ZRMUZ(KDLON)876 REAL *8ZRNEB(KDLON)877 REAL *8ZRUEF(KDLON,8)878 REAL *8ZR1(KDLON)879 REAL *8ZR2(KDLON,2)880 REAL *8ZR3(KDLON,3)881 REAL *8ZR4(KDLON)882 REAL *8ZR21(KDLON)883 REAL *8ZR22(KDLON)884 REAL *8ZS(KDLON)885 REAL *8ZTAUAZ(KDLON,KFLEV)886 REAL *8ZTO1(KDLON)887 REAL *8ZTR(KDLON,2,KFLEV+1)888 REAL *8ZTRA1(KDLON,KFLEV+1)889 REAL *8ZTRA2(KDLON,KFLEV+1)890 REAL *8ZTR1(KDLON)891 REAL *8ZTR2(KDLON)892 REAL *8ZW(KDLON)893 REAL *8ZW1(KDLON)894 REAL *8ZW2(KDLON,2)895 REAL *8ZW3(KDLON,3)896 REAL *8ZW4(KDLON)897 REAL *8ZW5(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) 898 898 C 899 899 INTEGER jl, jk, k, jaj, ikm1, ikl, jn, jabs, jkm1 900 900 INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs 901 REAL *8ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11901 REAL(KIND=8) ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11 902 902 C 903 903 C* Prescribed Data: 904 904 C 905 REAL *8RSUN(2)905 REAL(KIND=8) RSUN(2) 906 906 SAVE RSUN 907 907 c$OMP THREADPRIVATE(RSUN) 908 REAL *8RRAY(2,6)908 REAL(KIND=8) RRAY(2,6) 909 909 SAVE RRAY 910 910 c$OMP THREADPRIVATE(RRAY) … … 1361 1361 INTEGER KNU 1362 1362 c-OB 1363 real *8flag_aer1364 real *8tauae(kdlon,kflev,2)1365 real *8pizae(kdlon,kflev,2)1366 real *8cgae(kdlon,kflev,2)1367 REAL *8PAER(KDLON,KFLEV,5)1368 REAL *8PALBP(KDLON,2)1369 REAL *8PDSIG(KDLON,KFLEV)1370 REAL *8PRAYL(KDLON)1371 REAL *8PSEC(KDLON)1372 C 1373 REAL *8PCGAZ(KDLON,KFLEV)1374 REAL *8PPIZAZ(KDLON,KFLEV)1375 REAL *8PRAY1(KDLON,KFLEV+1)1376 REAL *8PRAY2(KDLON,KFLEV+1)1377 REAL *8PREFZ(KDLON,2,KFLEV+1)1378 REAL *8PRJ(KDLON,6,KFLEV+1)1379 REAL *8PRK(KDLON,6,KFLEV+1)1380 REAL *8PRMU0(KDLON,KFLEV+1)1381 REAL *8PTAUAZ(KDLON,KFLEV)1382 REAL *8PTRA1(KDLON,KFLEV+1)1383 REAL *8PTRA2(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) 1372 C 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) 1384 1384 C 1385 1385 C* LOCAL VARIABLES: 1386 1386 C 1387 REAL *8ZC0I(KDLON,KFLEV+1)1388 REAL *8ZCLE0(KDLON,KFLEV)1389 REAL *8ZCLEAR(KDLON)1390 REAL *8ZR21(KDLON)1391 REAL *8ZR23(KDLON)1392 REAL *8ZSS0(KDLON)1393 REAL *8ZSCAT(KDLON)1394 REAL *8ZTR(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) 1395 1395 C 1396 1396 INTEGER jl, jk, ja, jae, jkl, jklp1, jaj, jkm1, in 1397 REAL *8ZTRAY, ZGAR, ZRATIO, ZFF, ZFACOA, ZCORAE1398 REAL *8ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZMU1, ZDEN11399 REAL *8ZBMU0, ZBMU1, ZRE111397 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 1400 1400 C 1401 1401 C* Prescribed Data for Aerosols: 1402 1402 C 1403 REAL *8TAUA(2,5), RPIZA(2,5), RCGA(2,5)1403 REAL(KIND=8) TAUA(2,5), RPIZA(2,5), RCGA(2,5) 1404 1404 SAVE TAUA, RPIZA, RCGA 1405 1405 c$OMP THREADPRIVATE(TAUA, RPIZA, RCGA) … … 1728 1728 C 1729 1729 INTEGER KNU 1730 REAL *8PALBD(KDLON,2)1731 REAL *8PCG(KDLON,2,KFLEV)1732 REAL *8PCLD(KDLON,KFLEV)1733 REAL *8PDSIG(KDLON,KFLEV)1734 REAL *8POMEGA(KDLON,2,KFLEV)1735 REAL *8PRAYL(KDLON)1736 REAL *8PSEC(KDLON)1737 REAL *8PTAU(KDLON,2,KFLEV)1738 C 1739 REAL *8PRAY1(KDLON,KFLEV+1)1740 REAL *8PRAY2(KDLON,KFLEV+1)1741 REAL *8PREFZ(KDLON,2,KFLEV+1)1742 REAL *8PRJ(KDLON,6,KFLEV+1)1743 REAL *8PRK(KDLON,6,KFLEV+1)1744 REAL *8PRMUE(KDLON,KFLEV+1)1745 REAL *8PCGAZ(KDLON,KFLEV)1746 REAL *8PPIZAZ(KDLON,KFLEV)1747 REAL *8PTAUAZ(KDLON,KFLEV)1748 REAL *8PTRA1(KDLON,KFLEV+1)1749 REAL *8PTRA2(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) 1738 C 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) 1750 1750 C 1751 1751 C* LOCAL VARIABLES: 1752 1752 C 1753 REAL *8ZC1I(KDLON,KFLEV+1)1754 REAL *8ZCLEQ(KDLON,KFLEV)1755 REAL *8ZCLEAR(KDLON)1756 REAL *8ZCLOUD(KDLON)1757 REAL *8ZGG(KDLON)1758 REAL *8ZREF(KDLON)1759 REAL *8ZRE1(KDLON)1760 REAL *8ZRE2(KDLON)1761 REAL *8ZRMUZ(KDLON)1762 REAL *8ZRNEB(KDLON)1763 REAL *8ZR21(KDLON)1764 REAL *8ZR22(KDLON)1765 REAL *8ZR23(KDLON)1766 REAL *8ZSS1(KDLON)1767 REAL *8ZTO1(KDLON)1768 REAL *8ZTR(KDLON,2,KFLEV+1)1769 REAL *8ZTR1(KDLON)1770 REAL *8ZTR2(KDLON)1771 REAL *8ZW(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) 1772 1772 C 1773 1773 INTEGER jk, jl, ja, jkl, jklp1, jkm1, jaj 1774 REAL *8ZFACOA, ZFACOC, ZCORAE, ZCORCD1775 REAL *8ZMUE, ZGAP, ZWW, ZTO, ZDEN, ZDEN11776 REAL *8ZMU1, ZRE11, ZBMU0, ZBMU11774 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 1777 1777 C 1778 1778 C ------------------------------------------------------------------ … … 2081 2081 C* ARGUMENTS: 2082 2082 C 2083 REAL *8PGG(KDLON) ! ASSYMETRY FACTOR2084 REAL *8PREF(KDLON) ! REFLECTIVITY OF THE UNDERLYING LAYER2085 REAL *8PRMUZ(KDLON) ! COSINE OF SOLAR ZENITH ANGLE2086 REAL *8PTO1(KDLON) ! OPTICAL THICKNESS2087 REAL *8PW(KDLON) ! SINGLE SCATTERING ALBEDO2088 REAL *8PRE1(KDLON) ! LAYER REFLECTIVITY (NO UNDERLYING-LAYER REFLECTION)2089 REAL *8PRE2(KDLON) ! LAYER REFLECTIVITY2090 REAL *8PTR1(KDLON) ! LAYER TRANSMISSIVITY (NO UNDERLYING-LAYER REFLECTION)2091 REAL *8PTR2(KDLON) ! LAYER TRANSMISSIVITY2083 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 2092 2092 C 2093 2093 C* LOCAL VARIABLES: 2094 2094 C 2095 2095 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 2104 2105 C ------------------------------------------------------------------ 2105 2106 C … … 2216 2217 INTEGER KNU ! INDEX OF THE SPECTRAL INTERVAL 2217 2218 INTEGER KA ! INDEX OF THE ABSORBER 2218 REAL *8PU(KDLON) ! ABSORBER AMOUNT2219 C 2220 REAL *8PTR(KDLON) ! TRANSMISSION FUNCTION2219 REAL(KIND=8) PU(KDLON) ! ABSORBER AMOUNT 2220 C 2221 REAL(KIND=8) PTR(KDLON) ! TRANSMISSION FUNCTION 2221 2222 C 2222 2223 C* LOCAL VARIABLES: 2223 2224 C 2224 REAL *8ZR1(KDLON), ZR2(KDLON)2225 REAL(KIND=8) ZR1(KDLON), ZR2(KDLON) 2225 2226 INTEGER jl, i,j 2226 2227 C 2227 2228 C* Prescribed Data: 2228 2229 C 2229 REAL *8APAD(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) 2230 2231 SAVE APAD, BPAD, D 2231 2232 c$OMP THREADPRIVATE(APAD, BPAD, D) … … 2334 2335 INTEGER KABS ! NUMBER OF ABSORBERS 2335 2336 INTEGER KIND(KABS) ! INDICES OF THE ABSORBERS 2336 REAL *8PU(KDLON,KABS) ! ABSORBER AMOUNT2337 C 2338 REAL *8PTR(KDLON,KABS) ! TRANSMISSION FUNCTION2337 REAL(KIND=8) PU(KDLON,KABS) ! ABSORBER AMOUNT 2338 C 2339 REAL(KIND=8) PTR(KDLON,KABS) ! TRANSMISSION FUNCTION 2339 2340 C 2340 2341 C* LOCAL VARIABLES: 2341 2342 C 2342 REAL *8ZR1(KDLON)2343 REAL *8ZR2(KDLON)2344 REAL *8ZU(KDLON)2343 REAL(KIND=8) ZR1(KDLON) 2344 REAL(KIND=8) ZR2(KDLON) 2345 REAL(KIND=8) ZU(KDLON) 2345 2346 INTEGER jl, ja, i, j, ia 2346 2347 C 2347 2348 C* Prescribed Data: 2348 2349 C 2349 REAL *8APAD(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) 2350 2351 SAVE APAD, BPAD, D 2351 2352 c$OMP THREADPRIVATE(APAD, BPAD, D) … … 2468 2469 C----------------------------------------------------------------------- 2469 2470 cIM ctes ds clesphys.h 2470 c REAL *8RCO2 ! CO2 CONCENTRATION (IPCC:353.E-06* 44.011/28.97)2471 c REAL *8RCH4 ! CH4 CONCENTRATION (IPCC: 1.72E-06* 16.043/28.97)2472 c REAL *8RN2O ! N2O CONCENTRATION (IPCC: 310.E-09* 44.013/28.97)2473 c REAL *8RCFC11 ! CFC11 CONCENTRATION (IPCC: 280.E-12* 137.3686/28.97)2474 c REAL *8RCFC12 ! CFC12 CONCENTRATION (IPCC: 484.E-12* 120.9140/28.97)2471 c REAL(KIND=8) RCO2 ! CO2 CONCENTRATION (IPCC:353.E-06* 44.011/28.97) 2472 c REAL(KIND=8) RCH4 ! CH4 CONCENTRATION (IPCC: 1.72E-06* 16.043/28.97) 2473 c REAL(KIND=8) RN2O ! N2O CONCENTRATION (IPCC: 310.E-09* 44.013/28.97) 2474 c REAL(KIND=8) RCFC11 ! CFC11 CONCENTRATION (IPCC: 280.E-12* 137.3686/28.97) 2475 c REAL(KIND=8) RCFC12 ! CFC12 CONCENTRATION (IPCC: 484.E-12* 120.9140/28.97) 2475 2476 #include "clesphys.h" 2476 REAL *8PCLDLD(KDLON,KFLEV) ! DOWNWARD EFFECTIVE CLOUD COVER2477 REAL *8PCLDLU(KDLON,KFLEV) ! UPWARD EFFECTIVE CLOUD COVER2478 REAL *8PDP(KDLON,KFLEV) ! LAYER PRESSURE THICKNESS (Pa)2479 REAL *8PDT0(KDLON) ! SURFACE TEMPERATURE DISCONTINUITY (K)2480 REAL *8PEMIS(KDLON) ! SURFACE EMISSIVITY2481 REAL *8PPMB(KDLON,KFLEV+1) ! HALF LEVEL PRESSURE (mb)2482 REAL *8PPSOL(KDLON) ! SURFACE PRESSURE (Pa)2483 REAL( kind=8) POZON(KDLON,KFLEV) ! O3 mass fraction2484 REAL *8PTL(KDLON,KFLEV+1) ! HALF LEVEL TEMPERATURE (K)2485 REAL *8PAER(KDLON,KFLEV,5) ! OPTICAL THICKNESS OF THE AEROSOLS2486 REAL *8PTAVE(KDLON,KFLEV) ! LAYER TEMPERATURE (K)2487 REAL *8PVIEW(KDLON) ! COSECANT OF VIEWING ANGLE2488 REAL *8PWV(KDLON,KFLEV) ! SPECIFIC HUMIDITY (kg/kg)2489 C 2490 REAL *8PCOLR(KDLON,KFLEV) ! LONG-WAVE TENDENCY (K/day)2491 REAL *8PCOLR0(KDLON,KFLEV) ! LONG-WAVE TENDENCY (K/day) clear-sky2492 REAL *8PTOPLW(KDLON) ! LONGWAVE FLUX AT T.O.A.2493 REAL *8PSOLLW(KDLON) ! LONGWAVE FLUX AT SURFACE2494 REAL *8PTOPLW0(KDLON) ! LONGWAVE FLUX AT T.O.A. (CLEAR-SKY)2495 REAL *8PSOLLW0(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) 2490 C 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) 2496 2497 c Rajout LF 2497 real *8psollwdown(kdlon) ! LONGWAVE downwards flux at surface2498 real(kind=8) psollwdown(kdlon) ! LONGWAVE downwards flux at surface 2498 2499 c Rajout IM 2499 cIM real *8psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface2500 cIM real *8ptoplwdown(kdlon) ! LONGWAVE downwards flux at T.O.A.2501 cIM real *8ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.2500 cIM real(kind=8) psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface 2501 cIM real(kind=8) ptoplwdown(kdlon) ! LONGWAVE downwards flux at T.O.A. 2502 cIM real(kind=8) ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A. 2502 2503 cIM 2503 REAL *8plwup(KDLON,KFLEV+1) ! LW up total sky2504 REAL *8plwup0(KDLON,KFLEV+1) ! LW up clear sky2505 REAL *8plwdn(KDLON,KFLEV+1) ! LW down total sky2506 REAL *8plwdn0(KDLON,KFLEV+1) ! LW down clear sky2504 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 2507 2508 C------------------------------------------------------------------------- 2508 REAL *8ZABCU(KDLON,NUA,3*KFLEV+1)2509 REAL(KIND=8) ZABCU(KDLON,NUA,3*KFLEV+1) 2509 2510 2510 REAL( kind=8) ZOZ(KDLON,KFLEV)2511 REAL(KIND=8) ZOZ(KDLON,KFLEV) 2511 2512 ! equivalent pressure of ozone in a layer, in Pa 2512 2513 2513 cym REAL *8ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)2514 cym REAL *8ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES2515 cym REAL *8ZBINT(KDLON,KFLEV+1) ! Intermediate variable2516 cym REAL *8ZBSUI(KDLON) ! Intermediate variable2517 cym REAL *8,ZCTS(KDLON,KFLEV) ! Intermediate variable2518 cym REAL *8ZCNTRB(KDLON,KFLEV+1,KFLEV+1) ! Intermediate variable2514 cym REAL(KIND=8) ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down) 2515 cym REAL(KIND=8) ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES 2516 cym REAL(KIND=8) ZBINT(KDLON,KFLEV+1) ! Intermediate variable 2517 cym REAL(KIND=8) ZBSUI(KDLON) ! Intermediate variable 2518 cym REAL(KIND=8) ZCTS(KDLON,KFLEV) ! Intermediate variable 2519 cym REAL(KIND=8) ZCNTRB(KDLON,KFLEV+1,KFLEV+1) ! Intermediate variable 2519 2520 cym 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 FLUXES2522 REAL *8,allocatable,save :: ZBINT(:,:) ! Intermediate variable2523 REAL *8,allocatable,save :: ZBSUI(:) ! Intermediate variable2524 REAL *8,allocatable,save :: ZCTS(:,:) ! Intermediate variable2525 REAL *8,allocatable,save :: ZCNTRB(:,:,:) ! Intermediate variable2521 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 2526 2527 c$OMP THREADPRIVATE(ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB) 2527 2528 c … … 2652 2653 C* ARGUMENTS: 2653 2654 cIM ctes ds clesphys.h 2654 c REAL *8RCO22655 c REAL *8RCH4, RN2O, RCFC11, RCFC122655 c REAL(KIND=8) RCO2 2656 c REAL(KIND=8) RCH4, RN2O, RCFC11, RCFC12 2656 2657 #include "clesphys.h" 2657 REAL *8PAER(KDLON,KFLEV,5)2658 REAL *8PDP(KDLON,KFLEV)2659 REAL *8PPMB(KDLON,KFLEV+1)2660 REAL *8PPSOL(KDLON)2661 REAL *8POZ(KDLON,KFLEV)2662 REAL *8PTAVE(KDLON,KFLEV)2663 REAL *8PVIEW(KDLON)2664 REAL *8PWV(KDLON,KFLEV)2665 C 2666 REAL *8PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS2658 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) 2666 C 2667 REAL(KIND=8) PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS 2667 2668 C 2668 2669 C----------------------------------------------------------------------- 2669 2670 C* LOCAL VARIABLES: 2670 REAL *8ZABLY(KDLON,NUA,3*KFLEV+1)2671 REAL *8ZDUC(KDLON,3*KFLEV+1)2672 REAL *8ZPHIO(KDLON)2673 REAL *8ZPSC2(KDLON)2674 REAL *8ZPSC3(KDLON)2675 REAL *8ZPSH1(KDLON)2676 REAL *8ZPSH2(KDLON)2677 REAL *8ZPSH3(KDLON)2678 REAL *8ZPSH4(KDLON)2679 REAL *8ZPSH5(KDLON)2680 REAL *8ZPSH6(KDLON)2681 REAL *8ZPSIO(KDLON)2682 REAL *8ZTCON(KDLON)2683 REAL *8ZPHM6(KDLON)2684 REAL *8ZPSM6(KDLON)2685 REAL *8ZPHN6(KDLON)2686 REAL *8ZPSN6(KDLON)2687 REAL *8ZSSIG(KDLON,3*KFLEV+1)2688 REAL *8ZTAVI(KDLON)2689 REAL *8ZUAER(KDLON,Ninter)2690 REAL *8ZXOZ(KDLON)2691 REAL *8ZXWV(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) 2692 2693 C 2693 2694 INTEGER jl, jk, jkj, jkjr, jkjp, ig1 … … 2696 2697 INTEGER jae1, jae2, jae3, jae, jjpn 2697 2698 INTEGER ir, jc, jcp1 2698 REAL *8zdpm, zupm, zupmh2o, zupmco2, zupmo3, zu6, zup2699 REAL *8zfppw, ztx, ztx2, zzably2700 REAL *8zcah1, zcbh1, zcah2, zcbh2, zcah3, zcbh32701 REAL *8zcah4, zcbh4, zcah5, zcbh5, zcah6, zcbh62702 REAL *8zcac8, zcbc82703 REAL *8zalup, zdiff2699 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 2704 2705 c 2705 REAL *8PVGCO2, PVGH2O, PVGO32706 C 2707 REAL *8R10E ! DECIMAL/NATURAL LOG.FACTOR2706 REAL(KIND=8) PVGCO2, PVGH2O, PVGO3 2707 C 2708 REAL(KIND=8) R10E ! DECIMAL/NATURAL LOG.FACTOR 2708 2709 PARAMETER (R10E=0.4342945) 2709 2710 c 2710 2711 c Used Data Block: 2711 2712 c 2712 REAL *8TREF2713 REAL(KIND=8) TREF 2713 2714 SAVE TREF 2714 2715 c$OMP THREADPRIVATE(TREF) 2715 REAL *8RT1(2)2716 REAL(KIND=8) RT1(2) 2716 2717 SAVE RT1 2717 2718 c$OMP THREADPRIVATE(RT1) 2718 REAL *8RAER(5,5)2719 REAL(KIND=8) RAER(5,5) 2719 2720 SAVE RAER 2720 2721 c$OMP THREADPRIVATE(RAER) 2721 REAL *8AT(8,3), BT(8,3)2722 REAL(KIND=8) AT(8,3), BT(8,3) 2722 2723 SAVE AT, BT 2723 2724 c$OMP THREADPRIVATE(AT, BT) 2724 REAL *8OCT(4)2725 REAL(KIND=8) OCT(4) 2725 2726 SAVE OCT 2726 2727 c$OMP THREADPRIVATE(OCT) … … 3053 3054 INTEGER KLIM 3054 3055 C 3055 REAL *8PDP(KDLON,KFLEV)3056 REAL *8PDT0(KDLON)3057 REAL *8PEMIS(KDLON)3058 REAL *8PPMB(KDLON,KFLEV+1)3059 REAL *8PTL(KDLON,KFLEV+1)3060 REAL *8PTAVE(KDLON,KFLEV)3061 C 3062 REAL *8PFLUC(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) 3062 C 3063 REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1) 3063 3064 C 3064 REAL *8PABCU(KDLON,NUA,3*KFLEV+1)3065 REAL *8PBINT(KDLON,KFLEV+1)3066 REAL *8PBSUI(KDLON)3067 REAL *8PCTS(KDLON,KFLEV)3068 REAL *8PCNTRB(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) 3069 3070 C 3070 3071 C------------------------------------------------------------------------- 3071 3072 C 3072 3073 C* LOCAL VARIABLES: 3073 REAL *8ZB(KDLON,Ninter,KFLEV+1)3074 REAL *8ZBSUR(KDLON,Ninter)3075 REAL *8ZBTOP(KDLON,Ninter)3076 REAL *8ZDBSL(KDLON,Ninter,KFLEV*2)3077 REAL *8ZGA(KDLON,8,2,KFLEV)3078 REAL *8ZGB(KDLON,8,2,KFLEV)3079 REAL *8ZGASUR(KDLON,8,2)3080 REAL *8ZGBSUR(KDLON,8,2)3081 REAL *8ZGATOP(KDLON,8,2)3082 REAL *8ZGBTOP(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) 3083 3084 C 3084 3085 INTEGER nuaer, ntraer … … 3156 3157 C* ARGUMENTS: 3157 3158 INTEGER klim 3158 REAL *8PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES3159 REAL *8PBINT(KDLON,KFLEV+1) ! HALF LEVEL PLANCK FUNCTION3160 REAL *8PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION3161 REAL *8PCNTRB(KDLON,KFLEV+1,KFLEV+1) !CLEAR-SKY ENERGY EXCHANGE3162 REAL *8PCTS(KDLON,KFLEV) ! CLEAR-SKY LAYER COOLING-TO-SPACE3159 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 3163 3164 c 3164 REAL *8PCLDLD(KDLON,KFLEV)3165 REAL *8PCLDLU(KDLON,KFLEV)3166 REAL *8PEMIS(KDLON)3167 C 3168 REAL *8PFLUX(KDLON,2,KFLEV+1)3165 REAL(KIND=8) PCLDLD(KDLON,KFLEV) 3166 REAL(KIND=8) PCLDLU(KDLON,KFLEV) 3167 REAL(KIND=8) PEMIS(KDLON) 3168 C 3169 REAL(KIND=8) PFLUX(KDLON,2,KFLEV+1) 3169 3170 C----------------------------------------------------------------------- 3170 3171 C* LOCAL VARIABLES: 3171 3172 INTEGER IMX(KDLON), IMXP(KDLON) 3172 3173 C 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) 3174 3176 S , ZFD(KDLON), ZFN10(KDLON), ZFU(KDLON) 3175 3177 S , ZUPF(KDLON,KFLEV+1,KFLEV+1) 3176 REAL *8ZCLM(KDLON,KFLEV+1,KFLEV+1)3178 REAL(KIND=8) ZCLM(KDLON,KFLEV+1,KFLEV+1) 3177 3179 C 3178 3180 INTEGER jk, jl, imaxc, imx1, imx2, jkj, jkp1, jkm1 3179 3181 INTEGER jk1, jk2, jkc, jkcp1, jcloud 3180 3182 INTEGER imxm1, imxp1 3181 REAL *8zcfrac3183 REAL(KIND=8) zcfrac 3182 3184 C ------------------------------------------------------------------ 3183 3185 C … … 3565 3567 C ARGUMENTS: 3566 3568 C 3567 REAL *8PDT0(KDLON)3568 REAL *8PTAVE(KDLON,KFLEV)3569 REAL *8PTL(KDLON,KFLEV+1)3570 C 3571 REAL *8PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF LEVEL PLANCK FUNCTION3572 REAL *8PBINT(KDLON,KFLEV+1) ! HALF LEVEL PLANCK FUNCTION3573 REAL *8PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION3574 REAL *8PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION3575 REAL *8PBTOP(KDLON,Ninter) ! TOP SPECTRAL PLANCK FUNCTION3576 REAL *8PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT3577 REAL *8PGA(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS3578 REAL *8PGB(KDLON,8,2,KFLEV) ! dB/dT-weighted LAYER PADE APPROXIMANTS3579 REAL *8PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS3580 REAL *8PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS3581 REAL *8PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS3582 REAL *8PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS3569 REAL(KIND=8) PDT0(KDLON) 3570 REAL(KIND=8) PTAVE(KDLON,KFLEV) 3571 REAL(KIND=8) PTL(KDLON,KFLEV+1) 3572 C 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 3583 3585 C 3584 3586 C------------------------------------------------------------------------- 3585 3587 C* LOCAL VARIABLES: 3586 3588 INTEGER INDB(KDLON),INDS(KDLON) 3587 REAL *8ZBLAY(KDLON,KFLEV),ZBLEV(KDLON,KFLEV+1)3588 REAL *8ZRES(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) 3589 3591 c 3590 3592 INTEGER jk, jl, ic, jnu, jf, jg … … 3592 3594 INTEGER k, j, ixtox, indto, ixtx, indt 3593 3595 INTEGER indsu, indtp 3594 REAL *8zdsto1, zdstox, zdst1, zdstx3596 REAL(KIND=8) zdsto1, zdstox, zdst1, zdstx 3595 3597 c 3596 3598 C* Quelques parametres: 3597 REAL *8TSTAND3599 REAL(KIND=8) TSTAND 3598 3600 PARAMETER (TSTAND=250.0) 3599 REAL *8TSTP3601 REAL(KIND=8) TSTP 3600 3602 PARAMETER (TSTP=12.5) 3601 3603 INTEGER MXIXT … … 3603 3605 C 3604 3606 C* Used Data Block: 3605 REAL *8TINTP(11)3607 REAL(KIND=8) TINTP(11) 3606 3608 SAVE TINTP 3607 3609 c$OMP THREADPRIVATE(TINTP) 3608 REAL *8GA(11,16,3), GB(11,16,3)3610 REAL(KIND=8) GA(11,16,3), GB(11,16,3) 3609 3611 SAVE GA, GB 3610 3612 c$OMP THREADPRIVATE(GA, GB) 3611 REAL *8XP(6,6)3613 REAL(KIND=8) XP(6,6) 3612 3614 SAVE XP 3613 3615 c$OMP THREADPRIVATE(XP) … … 4964 4966 INTEGER KUAER,KTRAER, KLIM 4965 4967 C 4966 REAL *8PABCU(KDLON,NUA,3*KFLEV+1) ! EFFECTIVE ABSORBER AMOUNTS4967 REAL *8PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS4968 REAL *8PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS4969 REAL *8PBSUR(KDLON,Ninter) ! SURFACE SPECTRAL PLANCK FUNCTION4970 REAL *8PBSUIN(KDLON) ! SURFACE PLANCK FUNCTION4971 REAL *8PBTOP(KDLON,Ninter) ! T.O.A. SPECTRAL PLANCK FUNCTION4972 REAL *8PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT4973 REAL *8PEMIS(KDLON) ! SURFACE EMISSIVITY4974 REAL *8PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)4975 REAL *8PTAVE(KDLON,KFLEV) ! TEMPERATURE4976 REAL *8PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS4977 REAL *8PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS4978 REAL *8PGASUR(KDLON,8,2) ! PADE APPROXIMANTS4979 REAL *8PGBSUR(KDLON,8,2) ! PADE APPROXIMANTS4980 REAL *8PGATOP(KDLON,8,2) ! PADE APPROXIMANTS4981 REAL *8PGBTOP(KDLON,8,2) ! PADE APPROXIMANTS4982 C 4983 REAL *8PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX4984 REAL *8PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM4985 REAL *8PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES4968 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 4984 C 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 4986 4988 C----------------------------------------------------------------------- 4987 4989 C LOCAL VARIABLES: 4988 REAL *8ZADJD(KDLON,KFLEV+1)4989 REAL *8ZADJU(KDLON,KFLEV+1)4990 REAL *8ZDBDT(KDLON,Ninter,KFLEV)4991 REAL *8ZDISD(KDLON,KFLEV+1)4992 REAL *8ZDISU(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) 4993 4995 C 4994 4996 INTEGER jk, jl … … 5081 5083 INTEGER KUAER,KTRAER, KLIM 5082 5084 C 5083 REAL *8PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS5084 REAL *8PADJD(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS5085 REAL *8PADJU(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS5086 REAL *8PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS5087 REAL *8PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS5088 REAL *8PBSUR(KDLON,Ninter) ! SPECTRAL SURFACE PLANCK FUNCTION5089 REAL *8PBSUI(KDLON) ! SURFACE PLANCK FUNCTION5090 REAL *8PBTOP(KDLON,Ninter) ! SPECTRAL T.O.A. PLANCK FUNCTION5091 REAL *8PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS5092 REAL *8PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS5093 REAL *8PEMIS(KDLON) ! SURFACE EMISSIVITY5094 REAL *8PPMB(KDLON,KFLEV+1) ! PRESSURE MB5095 REAL *8PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5096 REAL *8PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5097 REAL *8PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS5098 REAL *8PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS5099 REAL *8PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS5100 REAL *8PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS5101 C 5102 REAL *8PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES5103 REAL *8PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM5085 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 5103 C 5104 REAL(KIND=8) PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES 5105 REAL(KIND=8) PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM 5104 5106 C 5105 5107 C* LOCAL VARIABLES: 5106 5108 C 5107 REAL *8ZBGND(KDLON)5108 REAL *8ZFD(KDLON)5109 REAL *8ZFN10(KDLON)5110 REAL *8ZFU(KDLON)5111 REAL *8ZTT(KDLON,NTRA)5112 REAL *8ZTT1(KDLON,NTRA)5113 REAL *8ZTT2(KDLON,NTRA)5114 REAL *8ZUU(KDLON,NUA)5115 REAL *8ZCNSOL(KDLON)5116 REAL *8ZCNTOP(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) 5117 5119 C 5118 5120 INTEGER jk, jl, ja 5119 5121 INTEGER jstra, jstru 5120 5122 INTEGER ind1, ind2, ind3, ind4, in, jlim 5121 REAL *8zctstr5123 REAL(KIND=8) zctstr 5122 5124 C----------------------------------------------------------------------- 5123 5125 C … … 5406 5408 INTEGER KUAER,KTRAER 5407 5409 C 5408 REAL *8PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS5409 REAL *8PDBDT(KDLON,Ninter,KFLEV) ! LAYER PLANCK FUNCTION GRADIENT5410 REAL *8PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5411 REAL *8PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5412 C 5413 REAL *8PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! ENERGY EXCHANGE MATRIX5414 REAL *8PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS5415 REAL *8PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS5410 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 5414 C 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 5416 5418 C 5417 5419 C* LOCAL VARIABLES: 5418 5420 C 5419 REAL *8ZGLAYD(KDLON)5420 REAL *8ZGLAYU(KDLON)5421 REAL *8ZTT(KDLON,NTRA)5422 REAL *8ZTT1(KDLON,NTRA)5423 REAL *8ZTT2(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) 5424 5426 C 5425 5427 INTEGER jl, jk, ja, ikp1, ikn, ikd1, jkj, ikd2 5426 5428 INTEGER ikjp1, ikm1, ikj, jlk, iku1, ijkl, iku2 5427 5429 INTEGER ind1, ind2, ind3, ind4, itt 5428 REAL *8zww, zdzxdg, zdzxmg5430 REAL(KIND=8) zww, zdzxdg, zdzxmg 5429 5431 C 5430 5432 C* 1. INITIALIZATION … … 5661 5663 INTEGER KUAER,KTRAER 5662 5664 C 5663 REAL *8PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS5664 REAL *8PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT5665 REAL *8PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5666 REAL *8PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS5667 C 5668 REAL *8PADJD(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS5669 REAL *8PADJU(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS5670 REAL *8PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX5671 REAL *8PDBDT(KDLON,Ninter,KFLEV) ! LAYER PLANCK FUNCTION GRADIENT5665 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 5669 C 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 5672 5674 C 5673 5675 C* LOCAL ARRAYS: 5674 5676 C 5675 REAL *8ZGLAYD(KDLON)5676 REAL *8ZGLAYU(KDLON)5677 REAL *8ZTT(KDLON,NTRA)5678 REAL *8ZTT1(KDLON,NTRA)5679 REAL *8ZTT2(KDLON,NTRA)5680 REAL *8ZUU(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) 5681 5683 C 5682 5684 INTEGER jk, jl, ja, im12, ind, inu, ixu, jg 5683 5685 INTEGER ixd, ibs, idd, imu, jk1, jk2, jnu 5684 REAL *8zwtr5686 REAL(KIND=8) zwtr 5685 5687 c 5686 5688 C* Data Block: 5687 5689 c 5688 REAL *8WG1(2)5690 REAL(KIND=8) WG1(2) 5689 5691 SAVE WG1 5690 5692 c$OMP THREADPRIVATE(WG1) … … 5870 5872 C 5871 5873 C----------------------------------------------------------------------- 5872 REAL *8O1H, O2H5874 REAL(KIND=8) O1H, O2H 5873 5875 PARAMETER (O1H=2230.) 5874 5876 PARAMETER (O2H=100.) 5875 REAL *8RPIALF05877 REAL(KIND=8) RPIALF0 5876 5878 PARAMETER (RPIALF0=2.0) 5877 5879 C 5878 5880 C* ARGUMENTS: 5879 5881 C 5880 REAL *8PUU(KDLON,NUA)5881 REAL *8PTT(KDLON,NTRA)5882 REAL *8PGA(KDLON,8,2)5883 REAL *8PGB(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) 5884 5886 C 5885 5887 C* LOCAL VARIABLES: 5886 5888 C 5887 REAL *8zz, zxd, zxn5888 REAL *8zpu, zpu10, zpu11, zpu12, zpu135889 REAL *8zeu, zeu10, zeu11, zeu12, zeu135890 REAL *8zx, zy, zsq1, zsq2, zvxy, zuxy5891 REAL *8zaercn, zto1, zto2, zxch4, zych4, zxn2o, zyn2o5892 REAL *8zsqn21, zodn21, zsqh42, zodh425893 REAL *8zsqh41, zodh41, zsqn22, zodn22, zttf11, zttf125894 REAL *8zuu11, zuu12, za11, za125889 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 5895 5897 INTEGER jl, ja 5896 5898 C ------------------------------------------------------------------ … … 6046 6048 C 6047 6049 C----------------------------------------------------------------------- 6048 REAL *8O1H, O2H6050 REAL(KIND=8) O1H, O2H 6049 6051 PARAMETER (O1H=2230.) 6050 6052 PARAMETER (O2H=100.) 6051 REAL *8RPIALF06053 REAL(KIND=8) RPIALF0 6052 6054 PARAMETER (RPIALF0=2.0) 6053 6055 C 6054 6056 C* ARGUMENTS: 6055 6057 C 6056 REAL *8PGA(KDLON,8,2) ! PADE APPROXIMANTS6057 REAL *8PGB(KDLON,8,2) ! PADE APPROXIMANTS6058 REAL *8PUU1(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 16059 REAL *8PUU2(KDLON,NUA) ! ABSORBER AMOUNTS FROM TOP TO LEVEL 26060 REAL *8PTT(KDLON,NTRA) ! TRANSMISSION FUNCTIONS6058 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 6061 6063 C 6062 6064 C* LOCAL VARIABLES: 6063 6065 C 6064 6066 INTEGER ja, jl 6065 REAL *8zz, zxd, zxn6066 REAL *8zpu, zpu10, zpu11, zpu12, zpu136067 REAL *8zeu, zeu10, zeu11, zeu12, zeu136068 REAL *8zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1, zto26069 REAL *8zxch4, zych4, zsqh41, zodh416070 REAL *8zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh426071 REAL *8zsqn22, zodn22, za11, zttf11, za12, zttf126072 REAL *8zuu11, zuu126067 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 6073 6075 C ------------------------------------------------------------------ 6074 6076 C -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw.F90
r1215 r1220 137 137 138 138 ! Local variables 139 REAL *8ZFSUP(KDLON,KFLEV+1)140 REAL *8ZFSDN(KDLON,KFLEV+1)141 REAL *8ZFSUP0(KDLON,KFLEV+1)142 REAL *8ZFSDN0(KDLON,KFLEV+1)143 REAL *8ZFLUP(KDLON,KFLEV+1)144 REAL *8ZFLDN(KDLON,KFLEV+1)145 REAL *8ZFLUP0(KDLON,KFLEV+1)146 REAL *8ZFLDN0(KDLON,KFLEV+1)147 REAL *8zx_alpha1, zx_alpha2139 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 148 148 INTEGER k, kk, i, j, iof, nb_gr 149 REAL *8PSCT150 REAL *8PALBD(kdlon,2), PALBP(kdlon,2)151 REAL *8PEMIS(kdlon), PDT0(kdlon), PVIEW(kdlon)152 REAL *8PPSOL(kdlon), PDP(kdlon,KLEV)153 REAL *8PTL(kdlon,kflev+1), PPMB(kdlon,kflev+1)154 REAL *8PTAVE(kdlon,kflev)155 REAL *8PWV(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) 156 156 real(kind=8) POZON(kdlon,kflev) ! mass fraction of ozone 157 REAL *8PAER(kdlon,kflev,5)158 REAL *8PCLDLD(kdlon,kflev)159 REAL *8PCLDLU(kdlon,kflev)160 REAL *8PCLDSW(kdlon,kflev)161 REAL *8PTAU(kdlon,2,kflev)162 REAL *8POMEGA(kdlon,2,kflev)163 REAL *8PCG(kdlon,2,kflev)164 REAL *8zfract(kdlon), zrmu0(kdlon), zdist165 REAL *8zheat(kdlon,kflev), zcool(kdlon,kflev)166 REAL *8zheat0(kdlon,kflev), zcool0(kdlon,kflev)167 REAL *8ztopsw(kdlon), ztoplw(kdlon)168 REAL *8zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon)169 REAL *8zsollwdown(kdlon)170 REAL *8ztopsw0(kdlon), ztoplw0(kdlon)171 REAL *8zsolsw0(kdlon), zsollw0(kdlon)172 REAL *8zznormcp173 REAL *8tauaero(kdlon,kflev,9,2) ! aer opt properties174 REAL *8pizaero(kdlon,kflev,9,2)175 REAL *8cgaero(kdlon,kflev,9,2)176 REAL *8PTAUA(kdlon,2,kflev) ! present-day value of cloud opt thickness (PTAU is pre-industrial value), local use177 REAL *8POMEGAA(kdlon,2,kflev) ! dito for single scatt albedo178 REAL *8ztopswadaero(kdlon), zsolswadaero(kdlon) ! Aerosol direct forcing at TOAand surface179 REAL *8ztopswad0aero(kdlon), zsolswad0aero(kdlon) ! Aerosol direct forcing at TOAand surface180 REAL *8ztopswaiaero(kdlon), zsolswaiaero(kdlon) ! dito, indirect181 REAL *8ztopsw_aero(kdlon,9), ztopsw0_aero(kdlon,9)182 REAL *8zsolsw_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) 183 183 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 184 185 184 186 185 ! initialisation -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/regr_lat_time_climoz_m.F90
r1158 r1220 44 44 45 45 ! 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); 48 52 ! -- time increases (even though we do not use values of the input 49 53 ! time coordinate); 50 ! -- pressure is in hPa and in strictly ascending order (even51 ! though we do not use pressure values here, we write the unit of52 ! pressure in the NetCDF header, and we will use the assumptions later,53 ! when we regrid in pressure).54 54 55 55 use regr1_step_av_m, only: regr1_step_av … … 81 81 ! ascending order) 82 82 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 84 86 logical desc_lat ! latitude in descending order in the input file 87 logical desc_plev ! pressure levels in descending order in the input file 85 88 86 89 real, pointer:: o3_in(:, :, :) ! (n_lat, n_plev, 12 or 0:13) … … 110 113 111 114 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) 116 116 117 117 real, parameter:: tmidmonth(0:13) = (/(-15. + 30. * j, j = 0, 13)/) … … 153 153 call nf95_gw_var(ncid_in, varid, plev) 154 154 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) 156 161 157 162 ! Create the output file and get the variable IDs: … … 168 173 call nf95_gw_var(ncid_in, varid_in, o3_in) 169 174 if (desc_lat) o3_in = o3_in(n_lat:1:-1, :, :) 175 if (desc_plev) o3_in = o3_in(:, n_plev:1:-1, :) 170 176 171 177 call nf95_close(ncid_in) … … 219 225 use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, & 220 226 nf95_put_att, nf95_enddef, nf95_copy_att, nf95_put_var 221 use netcdf, only: nf90_clobber, nf90_float, nf90_ copy_att, nf90_global227 use netcdf, only: nf90_clobber, nf90_float, nf90_global 222 228 223 229 integer, intent(in):: ncid_in, n_plev … … 276 282 ! Global attributes: 277 283 278 call nf95_put_att(ncid_out, nf90_global, "comment", "Regridded for LMDZ")279 280 284 ! The following commands, copying attributes, may fail. 281 285 ! That is OK. … … 290 294 call handle_err_copy_att("title") 291 295 296 call nf95_copy_att(ncid_in, nf90_global, "institution", ncid_out, & 297 nf90_global, ncerr) 298 call handle_err_copy_att("institution") 299 292 300 call nf95_copy_att(ncid_in, nf90_global, "source", ncid_out, nf90_global, & 293 301 ncerr) 294 302 call handle_err_copy_att("source") 295 303 304 call nf95_put_att(ncid_out, nf90_global, "comment", "Regridded for LMDZ") 305 296 306 call nf95_enddef(ncid_out) 297 307 … … 311 321 312 322 if (ncerr /= nf90_noerr) then 313 print *, "regr_lat_time_climoz_m prepare_out nf9 0_copy_att " &323 print *, "regr_lat_time_climoz_m prepare_out nf95_copy_att " & 314 324 // att_name // " -- " // trim(nf90_strerror(ncerr)) 315 325 end if -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/regr_pr.F90
r1158 r1220 1 1 ! $Id$ 2 2 module regr_pr 3 4 ! Author: Lionel GUEZ 3 5 4 6 ! In both procedures of this module: -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90
r1215 r1220 56 56 !* ARGUMENTS: 57 57 ! 58 REAL *8PSCT ! constante solaire (valeur conseillee: 1370)59 60 REAL *8PPSOL(KDLON) ! SURFACE PRESSURE (PA)61 REAL *8PDP(KDLON,KFLEV) ! LAYER THICKNESS (PA)62 REAL *8PPMB(KDLON,KFLEV+1) ! HALF-LEVEL PRESSURE (MB)63 64 REAL *8PRMU0(KDLON) ! COSINE OF ZENITHAL ANGLE65 REAL *8PFRAC(KDLON) ! fraction de la journee66 67 REAL *8PTAVE(KDLON,KFLEV) ! LAYER TEMPERATURE (K)68 REAL *8PWV(KDLON,KFLEV) ! SPECIFI! HUMIDITY (KG/KG)69 REAL *8PQS(KDLON,KFLEV) ! SATURATED WATER VAPOUR (KG/KG)70 REAL *8POZON(KDLON,KFLEV) ! OZONE CONCENTRATION (KG/KG)71 REAL *8PAER(KDLON,KFLEV,5) ! AEROSOLS' OPTICAL THICKNESS72 73 REAL *8PALBD(KDLON,2) ! albedo du sol (lumiere diffuse)74 REAL *8PALBP(KDLON,2) ! albedo du sol (lumiere parallele)75 76 REAL *8PCLDSW(KDLON,KFLEV) ! CLOUD FRACTION77 REAL *8PTAU(KDLON,2,KFLEV) ! CLOUD OPTICAL THICKNESS78 REAL *8PCG(KDLON,2,KFLEV) ! ASYMETRY FACTOR79 REAL *8POMEGA(KDLON,2,KFLEV) ! SINGLE SCATTERING ALBEDO80 81 REAL *8PHEAT(KDLON,KFLEV) ! SHORTWAVE HEATING (K/DAY)82 REAL *8PHEAT0(KDLON,KFLEV)! SHORTWAVE HEATING (K/DAY) clear-sky83 REAL *8PALBPLA(KDLON) ! PLANETARY ALBEDO84 REAL *8PTOPSW(KDLON) ! SHORTWAVE FLUX AT T.O.A.85 REAL *8PSOLSW(KDLON) ! SHORTWAVE FLUX AT SURFACE86 REAL *8PTOPSW0(KDLON) ! SHORTWAVE FLUX AT T.O.A. (CLEAR-SKY)87 REAL *8PSOLSW0(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) 88 88 ! 89 89 !* LOCAL VARIABLES: … … 91 91 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 92 92 93 REAL( kind=8) ZOZ(KDLON,KFLEV)93 REAL(KIND=8) ZOZ(KDLON,KFLEV) 94 94 ! column-density of ozone in layer, in kilo-Dobsons 95 95 96 REAL *8ZAKI(KDLON,2)97 REAL *8ZCLD(KDLON,KFLEV)98 REAL *8ZCLEAR(KDLON)99 REAL *8ZDSIG(KDLON,KFLEV)100 REAL *8ZFACT(KDLON)101 REAL *8ZFD(KDLON,KFLEV+1)102 REAL *8ZFDOWN(KDLON,KFLEV+1)103 REAL *8ZFU(KDLON,KFLEV+1)104 REAL *8ZFUP(KDLON,KFLEV+1)105 REAL *8ZRMU(KDLON)106 REAL *8ZSEC(KDLON)107 REAL *8ZUD(KDLON,5,KFLEV+1)108 REAL *8ZCLDSW0(KDLON,KFLEV)109 110 REAL *8ZFSUP(KDLON,KFLEV+1)111 REAL *8ZFSDN(KDLON,KFLEV+1)112 REAL *8ZFSUP0(KDLON,KFLEV+1)113 REAL *8ZFSDN0(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) 114 114 115 115 INTEGER inu, jl, jk, i, k, kpl1 … … 126 126 127 127 !jq-Introduced for aerosol forcings 128 REAL *8, SAVE :: flag_aer128 REAL(KIND=8), SAVE :: flag_aer 129 129 !$OMP THREADPRIVATE(flag_aer) 130 130 131 131 LOGICAL ok_ade, ok_aie ! use aerosol forcings or not? 132 REAL *8tauaero(kdlon,kflev,9,2) ! aerosol optical properties133 REAL *8pizaero(kdlon,kflev,9,2) ! (see aeropt.F)134 REAL *8cgaero(kdlon,kflev,9,2) ! -"-135 REAL *8PTAUA(KDLON,2,KFLEV) ! CLOUD OPTICAL THICKNESS (pre-industrial value)136 REAL *8POMEGAA(KDLON,2,KFLEV) ! SINGLE SCATTERING ALBEDO137 REAL *8PTOPSWADAERO(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)138 REAL *8PSOLSWADAERO(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)139 REAL *8PTOPSWAD0AERO(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR)140 REAL *8PSOLSWAD0AERO(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR)141 REAL *8PTOPSWAIAERO(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND)142 REAL *8PSOLSWAIAERO(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)143 REAL *8PTOPSWAERO(KDLON,9)144 REAL *8PTOPSW0AERO(KDLON,9)145 REAL *8PSOLSWAERO(KDLON,9)146 REAL *8PSOLSW0AERO(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) 147 147 148 148 !jq - Fluxes including aerosol effects 149 REAL *8,ALLOCATABLE,SAVE :: ZFSUPAD_AERO(:,:)149 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAD_AERO(:,:) 150 150 !$OMP THREADPRIVATE(ZFSUPAD_AERO) 151 REAL *8,ALLOCATABLE,SAVE :: ZFSDNAD_AERO(:,:)151 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAD_AERO(:,:) 152 152 !$OMP THREADPRIVATE(ZFSDNAD_AERO) 153 153 !jq - Fluxes including aerosol effects 154 REAL *8,ALLOCATABLE,SAVE :: ZFSUPAD0_AERO(:,:)154 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAD0_AERO(:,:) 155 155 !$OMP THREADPRIVATE(ZFSUPAD0_AERO) 156 REAL *8,ALLOCATABLE,SAVE :: ZFSDNAD0_AERO(:,:)156 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAD0_AERO(:,:) 157 157 !$OMP THREADPRIVATE(ZFSDNAD0_AERO) 158 REAL *8,ALLOCATABLE,SAVE :: ZFSUPAI_AERO(:,:)158 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUPAI_AERO(:,:) 159 159 !$OMP THREADPRIVATE(ZFSUPAI_AERO) 160 REAL *8,ALLOCATABLE,SAVE :: ZFSDNAI_AERO(:,:)160 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDNAI_AERO(:,:) 161 161 !$OMP THREADPRIVATE(ZFSDNAI_AERO) 162 REAL *8,ALLOCATABLE,SAVE :: ZFSUP_AERO(:,:,:)162 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUP_AERO(:,:,:) 163 163 !$OMP THREADPRIVATE(ZFSUP_AERO) 164 REAL *8,ALLOCATABLE,SAVE :: ZFSDN_AERO(:,:,:)164 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDN_AERO(:,:,:) 165 165 !$OMP THREADPRIVATE(ZFSDN_AERO) 166 REAL *8,ALLOCATABLE,SAVE :: ZFSUP0_AERO(:,:,:)166 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSUP0_AERO(:,:,:) 167 167 !$OMP THREADPRIVATE(ZFSUP0_AERO) 168 REAL *8,ALLOCATABLE,SAVE :: ZFSDN0_AERO(:,:,:)168 REAL(KIND=8),ALLOCATABLE,SAVE :: ZFSDN0_AERO(:,:,:) 169 169 !$OMP THREADPRIVATE(ZFSDN0_AERO) 170 170
Note: See TracChangeset
for help on using the changeset viewer.