[2089] | 1 | SUBROUTINE RADLSW & |
---|
| 2 | &( KIDIA, KFDIA , KLON , KTDIA, KLEV , KMODE, KAER, KBOX, NBOX & |
---|
| 3 | &, NDUMP, KLWRAD & |
---|
| 4 | &, PRII0 & |
---|
| 5 | &, PAER , PALBD , PALBP, PAPH , PAP & |
---|
| 6 | &, PCCO2, PFRCL , PDP , PEMIS, PEMIW , PLSM , PMU0, POZON & |
---|
| 7 | &, PQ , PQIWP , PQLWP, PSQIW, PSQLW , PQS , PQRAIN, PRAINT & |
---|
| 8 | &, PRLVRI,PRLVRL, PTH , PT , PTS , PNBAS, PNTOP & |
---|
| 9 | &, PEMIT, PFCT , PFLT , PFCS , PFLS , PFRSOD, PSUDU, PUVDF, PPARF & |
---|
| 10 | &, PFDCT, PFUCT , PFDLT, PFULT, PFDCS , PFUCS , PFDLS, PFULS & |
---|
| 11 | &, ZTAU , ZTAUINT & |
---|
| 12 | &, ASWBOX, OLRBOX, SLWBOX, SSWBOX, TAUBOX, PCLBX & |
---|
| 13 | ! #DB &, k2iii, k2jjj & |
---|
| 14 | &) |
---|
| 15 | |
---|
| 16 | !**** *RADLSW* - INTERFACE TO ECMWF LW AND SW RADIATION SCHEMES |
---|
| 17 | |
---|
| 18 | ! PURPOSE. |
---|
| 19 | ! -------- |
---|
| 20 | ! CONTROLS RADIATION COMPUTATIONS |
---|
| 21 | |
---|
| 22 | !** INTERFACE. |
---|
| 23 | ! ---------- |
---|
| 24 | |
---|
| 25 | ! EXPLICIT ARGUMENTS : |
---|
| 26 | ! -------------------- |
---|
| 27 | ! PAER : (KLON,6,KLEV) ; OPTICAL THICKNESS OF THE AEROSOLS |
---|
| 28 | ! PALBD : (KLON,NSW) ; SURF. SW ALBEDO FOR DIFFUSE RADIATION |
---|
| 29 | ! PALBP : (KLON,NSW) ; SURF. SW ALBEDO FOR PARALLEL RADIATION |
---|
| 30 | ! PAPH : (KLON,KLEV+1) ; HALF LEVEL PRESSURE |
---|
| 31 | ! PAP : (KLON,KLEV) ; FULL LEVEL PRESSURE |
---|
| 32 | ! PCCO2 : ; CONCENTRATION IN CO2 (PA/PA) |
---|
| 33 | ! PFRCL : (KLON,KLEV) ; CLOUD FRACTIONAL COVER |
---|
| 34 | ! PDP : (KLON,KLEV) ; LAYER PRESSURE THICKNESS |
---|
| 35 | ! PEMIS : (KLON) ; SURFACE LW EMISSIVITY |
---|
| 36 | ! PEMIW : (KLON) ; SURFACE LW WINDOW EMISSIVITY |
---|
| 37 | ! PLSM : (KLON) ; LAND-SEA MASK |
---|
| 38 | ! PMU0 : (KLON) ; SOLAR ANGLE |
---|
| 39 | ! PNBAS : (KLON) ; INDEX OF BASE OF CONVECTIVE LAYER |
---|
| 40 | ! PNTOP : (KLON) ; INDEX OF TOP OF CONVECTIVE LAYER |
---|
| 41 | ! POZON : (KLON,KLEV) ; CONCENTRATION IN OZONE (PA/PA) |
---|
| 42 | ! PQ : (KLON,KLEV) ; SPECIFIC HUMIDITY PA/PA |
---|
| 43 | ! PQIWP : (KLON,KLEV) ; SOLID WATER KG/KG |
---|
| 44 | ! PQLWP : (KLON,KLEV) ; LIQUID WATER KG/KG |
---|
| 45 | ! PQS : (KLON,KLEV) ; SATURATION WATER VAPOR KG/KG |
---|
| 46 | ! PQRAIN : (KLON,KLEV) ; RAIN WATER KG/KG |
---|
| 47 | ! PRAINT : (KLON,KLEV) ; RAIN RATE (m/s) |
---|
| 48 | ! PRLVRI : (KLON,KLEV) ; RELATIVE VARIANCE OF ICE WATER |
---|
| 49 | ! PRLVRL : (KLON,KLEV) ; RELATIVE VARIANCE OF LIQUID WATER |
---|
| 50 | ! PTH : (KLON,KLEV+1) ; HALF LEVEL TEMPERATURE |
---|
| 51 | ! PT : (KLON,KLEV) ; FULL LEVEL TEMPERATURE |
---|
| 52 | ! PTS : (KLON) ; SURFACE TEMPERATURE |
---|
| 53 | ! ==== OUTPUTS === |
---|
| 54 | ! PFCT : (KLON,KLEV+1) ; CLEAR-SKY LW NET FLUXES |
---|
| 55 | ! PFLT : (KLON,KLEV+1) ; TOTAL LW NET FLUXES |
---|
| 56 | ! PFCS : (KLON,KLEV+1) ; CLEAR-SKY SW NET FLUXES |
---|
| 57 | ! PFLS : (KLON,KLEV+1) ; TOTAL SW NET FLUXES |
---|
| 58 | ! PFRSOD : (KLON) ; TOTAL-SKY SURFACE SW DOWNWARD FLUX |
---|
| 59 | ! PEMIT : (KLON) ; SURFACE TOTAL LONGWAVE EMISSIVITY |
---|
| 60 | ! PSUDU : (KLON) ; SOLAR RADIANCE IN SUN'S DIRECTION |
---|
| 61 | ! PUVDF : (KLON) ; SURFACE DOWNWARD U.V. RADIATION |
---|
| 62 | ! PPARF : (KLON) ; PHOTOSYNTHETICALLY ACTIVE RADIATION |
---|
| 63 | |
---|
| 64 | ! IMPLICIT ARGUMENTS : NONE |
---|
| 65 | ! -------------------- |
---|
| 66 | |
---|
| 67 | ! METHOD. |
---|
| 68 | ! ------- |
---|
| 69 | ! SEE DOCUMENTATION |
---|
| 70 | |
---|
| 71 | ! EXTERNALS. |
---|
| 72 | ! ---------- |
---|
| 73 | |
---|
| 74 | ! REFERENCE. |
---|
| 75 | ! ---------- |
---|
| 76 | ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS |
---|
| 77 | |
---|
| 78 | ! AUTHORS. |
---|
| 79 | ! -------- |
---|
| 80 | ! J.-J. MORCRETTE *ECMWF* |
---|
| 81 | |
---|
| 82 | ! MODIFICATIONS. |
---|
| 83 | ! -------------- |
---|
| 84 | ! ORIGINAL : 88-02-04 |
---|
| 85 | ! J.-J. MORCRETTE 94-11-15 DIRECT/DIFFUSE SURFACE ALBEDO |
---|
| 86 | ! 08/96: J.-J. Morcrette/Ph. Dandin: tests of eff. radius param. |
---|
| 87 | ! 9909 : JJMorcrette effect.radius + inhomogeneity factors |
---|
| 88 | ! JJMorcrette 990128 : sunshine duration |
---|
| 89 | ! JJMorcrette : 990831 RRTM-140gp |
---|
| 90 | !----------------------------------------------------------------------- |
---|
| 91 | |
---|
| 92 | #include "tsmbkind.h" |
---|
| 93 | |
---|
| 94 | !USE YOMCT3 , ONLY : NSTEP |
---|
| 95 | USE YOMCST , ONLY : RG ,RD ,RTT ,RPI |
---|
| 96 | USE YOERAD , ONLY : NSW ,LRRTM ,LINHOM, & |
---|
| 97 | &LOIFUEC, LTEMPDS, LOWASYF, LOWHSSS, NRADIP, NRADLP, & |
---|
| 98 | &NICEOPT, NLIQOPT, NOVLP , NHOWINH, RMINICE |
---|
| 99 | USE YOELW , ONLY : NSIL ,NTRA ,NUA ,TSTAND ,XP |
---|
| 100 | USE YOESW , ONLY : RYFWCA ,RYFWCB ,RYFWCC ,RYFWCD ,& |
---|
| 101 | &RYFWCE ,RYFWCF ,REBCUA ,REBCUB ,REBCUC ,& |
---|
| 102 | &REBCUD ,REBCUE ,REBCUF ,REBCUI ,REBCUJ ,& |
---|
| 103 | &REBCUG ,REBCUH ,RHSAVI ,RFULIO ,RFLAA0 ,& |
---|
| 104 | &RFLAA1 ,RFLBB0 ,RFLBB1 ,RFLBB2 ,RFLBB3 ,& |
---|
| 105 | &RFLCC0 ,RFLCC1 ,RFLCC2 ,RFLCC3 ,RFLDD0 ,& |
---|
| 106 | &RFLDD1 ,RFLDD2 ,RFLDD3 ,RFUAA0 ,RFUAA1 ,& |
---|
| 107 | &RFUBB0 ,RFUBB1 ,RFUBB2 ,RFUBB3 ,RFUCC0 ,& |
---|
| 108 | &RFUCC1 ,RFUCC2 ,RFUCC3 ,RFUETA ,RASWCA ,& |
---|
| 109 | &RASWCB ,RASWCC ,RASWCD ,RASWCE ,RASWCF ,& |
---|
| 110 | &RLINLI |
---|
| 111 | USE YOERDU , ONLY : NUAER ,NTRAER ,REPLOG ,REPSC ,DIFF |
---|
| 112 | USE YOERDI , ONLY : REPCLC |
---|
| 113 | USE YOETHF , ONLY : RTICE |
---|
| 114 | USE YOEPHLI , ONLY : LPHYLIN |
---|
| 115 | USE YOERRTWN , ONLY : NG ,NSPA ,NSPB ,WAVENUM1 ,& |
---|
| 116 | &WAVENUM2 ,DELWAVE ,TOTPLNK ,TOTPLK16 |
---|
| 117 | USE YOEDBUG , ONLY : LDEBUG |
---|
| 118 | |
---|
| 119 | |
---|
| 120 | IMPLICIT NONE |
---|
| 121 | |
---|
| 122 | |
---|
| 123 | ! DUMMY INTEGER SCALARS |
---|
| 124 | INTEGER_M :: KAER |
---|
| 125 | INTEGER_M :: KFDIA |
---|
| 126 | INTEGER_M :: KIDIA |
---|
| 127 | INTEGER_M :: KLEV |
---|
| 128 | INTEGER_M :: KLON |
---|
| 129 | INTEGER_M :: KMODE |
---|
| 130 | INTEGER_M :: KTDIA |
---|
| 131 | INTEGER_M :: KBOX |
---|
| 132 | INTEGER_M :: NBOX |
---|
| 133 | INTEGER_M :: NDUMP, KLWRAD |
---|
| 134 | |
---|
| 135 | ! DUMMY REAL SCALARS |
---|
| 136 | REAL_B :: PRII0 |
---|
| 137 | |
---|
| 138 | |
---|
| 139 | |
---|
| 140 | ! ----------------------------------------------------------------- |
---|
| 141 | |
---|
| 142 | !* 0.1 ARGUMENTS. |
---|
| 143 | ! ---------- |
---|
| 144 | REAL_B :: PALBD(KLON,NSW) , PALBP(KLON,NSW) |
---|
| 145 | REAL_B :: PEMIS(KLON) , PEMIW(KLON) |
---|
| 146 | REAL_B :: PLSM(KLON) , PMU0(KLON) |
---|
| 147 | REAL_B :: PCCO2 , POZON(KLON,KLEV) |
---|
| 148 | REAL_B :: PTS(KLON) , PNBAS(KLON) , PNTOP(KLON) |
---|
| 149 | REAL_B :: PT (KLON,KLEV) , PAP (KLON,KLEV) |
---|
| 150 | REAL_B :: PTH(KLON,KLEV+1), PAPH(KLON,KLEV+1) |
---|
| 151 | REAL_B :: PDP(KLON,KLEV) |
---|
| 152 | REAL_B :: PQ (KLON,KLEV) , PQS(KLON,KLEV) |
---|
| 153 | REAL_B :: PQIWP(KLON,KLEV), PQLWP(KLON,KLEV), PQRAIN(KLON,KLEV) |
---|
| 154 | REAL_B :: PRAINT(KLON,KLEV) |
---|
| 155 | REAL_B :: PRLVRI(KLON,KLEV),PRLVRL(KLON,KLEV) |
---|
| 156 | REAL_B :: PSQIW(KLON,KLEV), PSQLW(KLON,KLEV) |
---|
| 157 | REAL_B :: PFRCL(KLON,KLEV), PCLFR(KLON,KLEV), PCLBX(KLON,100,KLEV) |
---|
| 158 | REAL_B :: PAER (KLON,6,KLEV) |
---|
| 159 | |
---|
| 160 | ! #DB integer :: k2iii(KLON),k2jjj(KLON),kio,kjo |
---|
| 161 | |
---|
| 162 | ! ==== COMPUTED IN RADLSW === |
---|
| 163 | REAL_B :: PFCS(KLON,KLEV+1), PFCT(KLON,KLEV+1) |
---|
| 164 | REAL_B :: PFLS(KLON,KLEV+1), PFLT(KLON,KLEV+1) |
---|
| 165 | REAL_B :: PFRSOD(KLON) , PEMIT(KLON) |
---|
| 166 | REAL_B :: PSUDU(KLON) , PUVDF(KLON) , PPARF(KLON) |
---|
| 167 | REAL_B :: PFDCT(KLON,KLEV+1), PFUCT(KLON,KLEV+1) |
---|
| 168 | REAL_B :: PFDLT(KLON,KLEV+1), PFULT(KLON,KLEV+1) |
---|
| 169 | REAL_B :: PFDCS(KLON,KLEV+1), PFUCS(KLON,KLEV+1) |
---|
| 170 | REAL_B :: PFDLS(KLON,KLEV+1), PFULS(KLON,KLEV+1) |
---|
| 171 | |
---|
| 172 | REAL_B :: ASWBOX(KLON, 100), OLRBOX(KLON, 100) |
---|
| 173 | REAL_B :: SLWBOX(KLON, 100), SSWBOX(KLON, 100), TAUBOX(KLON, 100) |
---|
| 174 | |
---|
| 175 | ! ----------------------------------------------------------------- |
---|
| 176 | |
---|
| 177 | !* 0.2 LOCAL ARRAYS. |
---|
| 178 | ! ------------- |
---|
| 179 | ! ----------------------------------------------------------------- |
---|
| 180 | |
---|
| 181 | !-- ARRAYS FOR LOCAL VARIABLES ----------------------------------------- |
---|
| 182 | |
---|
| 183 | INTEGER_M :: IBAS(KLON) , ITOP(KLON) |
---|
| 184 | |
---|
| 185 | ! #DB integer :: jkjllw, jkjlsw, JAERmin, JAERmax, jTAUCLDmin, jTAUCLDmax |
---|
| 186 | ! #DB real :: PAERmin, PAERmax, TAUCLDmin, TAUCLDmax |
---|
| 187 | |
---|
| 188 | REAL_B ::& |
---|
| 189 | &ZALBD(KLON,NSW) , ZALBP(KLON,NSW)& |
---|
| 190 | &, ZCG(KLON,NSW,KLEV) , ZOMEGA(KLON,NSW,KLEV)& |
---|
| 191 | &, ZTAU (KLON,NSW,KLEV) & |
---|
| 192 | &, ZTAUCLD(KLON,KLEV,16), ZTCLEAR(KLON) |
---|
| 193 | REAL_B ::& |
---|
| 194 | &ZCLDLD(KLON,KLEV) , ZCLDLU(KLON,KLEV)& |
---|
| 195 | &, ZCLDSW(KLON,KLEV) , ZCLD0(KLON,KLEV)& |
---|
| 196 | &, ZDT0(KLON) & |
---|
| 197 | &, ZEMIS(KLON) , ZEMIW(KLON)& |
---|
| 198 | &, ZFLUX (KLON,2,KLEV+1) , ZFLUC(KLON,2,KLEV+1)& |
---|
| 199 | &, ZFIWP(KLON) , ZFLWP(KLON) , ZFRWP(KLON)& |
---|
| 200 | &, ZIWC(KLON) , ZLWC(KLON)& |
---|
| 201 | &, ZBICFU(KLON) , ZKICFU1(KLON) , ZKICFU2(KLON)& |
---|
| 202 | !cc , ZRWC(KLON) |
---|
| 203 | &, ZMU0(KLON) , ZOZ(KLON,KLEV) , ZOZN(KLON,KLEV)& |
---|
| 204 | &, ZOZON(KLON,KLEV) , ZPMB(KLON,KLEV+1), ZPSOL(KLON)& |
---|
| 205 | &, ZTAVE (KLON,KLEV) , ZTL(KLON,KLEV+1)& |
---|
| 206 | &, ZVIEW(KLON) |
---|
| 207 | REAL_B ::& |
---|
| 208 | &ZFCDWN(KLON,KLEV+1), ZFCUP(KLON,KLEV+1)& |
---|
| 209 | &, ZFSDWN(KLON,KLEV+1), ZFSUP(KLON,KLEV+1)& |
---|
| 210 | &, ZFSUPN(KLON) , ZFSUPV(KLON)& |
---|
| 211 | &, ZFCUPN(KLON) , ZFCUPV(KLON)& |
---|
| 212 | &, ZFSDNN(KLON) , ZFSDNV(KLON)& |
---|
| 213 | &, ZFCDNN(KLON) , ZFCDNV(KLON)& |
---|
| 214 | &, ZCOOLR(KLON,KLEV) , ZCOOLC(KLON,KLEV)& |
---|
| 215 | &, ZHEATR(KLON,KLEV) , ZHEATC(KLON,KLEV) |
---|
| 216 | REAL_B ::& |
---|
| 217 | &ZALFICE(KLON) , ZGAMICE(KLON) , ZBICE(KLON), ZDESR(KLON) & |
---|
| 218 | &, ZRADIP(KLON) , ZRADLP(KLON) , ZCFUDG(KLON)& |
---|
| 219 | !cc , ZRADRD(KLON) |
---|
| 220 | &, ZRAINT(KLON) , ZRES(KLON)& |
---|
| 221 | &, ZTICE(KLON) , ZEMIT(KLON) , ZTAUINT(KLON) |
---|
| 222 | REAL_B :: ZSUDU(KLON) , ZUVDF(KLON) , ZPARF(KLON), ZCOL(KLON) & |
---|
| 223 | &, ZTCC(KLON) , ZTCA(KLON) |
---|
| 224 | |
---|
| 225 | !-- box-type arrays |
---|
| 226 | |
---|
| 227 | REAL_B :: CPFCS(KLON,KLEV+1) , CPFCT(KLON,KLEV+1) |
---|
| 228 | REAL_B :: CPFLS(KLON,KLEV+1) , CPFLT(KLON,KLEV+1) |
---|
| 229 | REAL_B :: CPFRSOD(KLON) , CPEMIT(KLON) |
---|
| 230 | REAL_B :: CPSUDU(KLON) , CPUVDF(KLON) , CPPARF(KLON) |
---|
| 231 | REAL_B :: CPFDCT(KLON,KLEV+1), CPFUCT(KLON,KLEV+1) |
---|
| 232 | REAL_B :: CPFDLT(KLON,KLEV+1), CPFULT(KLON,KLEV+1) |
---|
| 233 | REAL_B :: CPFDCS(KLON,KLEV+1), CPFUCS(KLON,KLEV+1) |
---|
| 234 | REAL_B :: CPFDLS(KLON,KLEV+1), CPFULS(KLON,KLEV+1) |
---|
| 235 | |
---|
| 236 | ! LOCAL INTEGER SCALARS |
---|
| 237 | INTEGER_M :: IKL, JAE, JK, JKL, JKLP1, JKP1, JL, JNU, JRTM, JSW & |
---|
| 238 | &, NBOXL, ICBOX, IMOV, INDLAY |
---|
| 239 | |
---|
| 240 | ! LOCAL LOGICAL SCALARS |
---|
| 241 | LOGICAL :: LLINTRP |
---|
| 242 | |
---|
| 243 | ! LOCAL REAL SCALARS |
---|
| 244 | REAL_B :: ZASYMX, ZDIFFD, ZGI, ZGL, ZGR, ZIWGKG, ZLWGKG,& |
---|
| 245 | &ZMSAID, ZMSAIU, ZMSALD, ZMSALU, ZMTCONV, & |
---|
| 246 | &ZMTFUDG, ZLWFUDG, ZSWFUDG, ZMULTL, ZOI, ZOL, ZOMGMX, ZOR, & |
---|
| 247 | &ZRMUZ, ZRWGKG, ZTAUD, ZTAUMX, ZTEMPC, & |
---|
| 248 | &ZTOI, ZTOL, ZTOR, ZZFIWP, ZZFLWP, ZDPOG, ZPODT |
---|
| 249 | REAL_B :: ZALND, ZASEA, ZD, ZDEN, ZNTOT, ZNUM, ZRATIO, ZCOEFF, Z1RADI,& |
---|
| 250 | &Z1RADL, ZBETAI, ZOMGI, ZOMGP, ZFDEL, ZWGHT, ZVI, ZVL, ZVR |
---|
| 251 | REAL_B :: ZASW, ZOLR, ZSLW, ZSSW, ZMULTI, ZAIWC, ZBIWC,& |
---|
| 252 | &ZDICE, ZFSR, ZLGIWC, ZTCELS, ZTBLAY, ZADDPLK, ZPLANCK |
---|
| 253 | REAL_B :: ZTOL1, ZTOI1, ZTOR1 |
---|
| 254 | |
---|
| 255 | |
---|
| 256 | ! ----------------------------------------------------------------- |
---|
| 257 | |
---|
| 258 | ! #DB kio = 66 |
---|
| 259 | ! #DB kjo = 53 |
---|
| 260 | |
---|
| 261 | !if (NDUMP.LE.3) then |
---|
| 262 | ! JL=KIDIA |
---|
| 263 | ! DO jk=1,klev |
---|
| 264 | ! print 9104,jk,PAPH(JL,JK),PTH(JL,JK),PAP(JL,JK),PT(JL,JK)& |
---|
| 265 | ! & ,PDP(JL,JK)& |
---|
| 266 | ! & ,PQ(JL,JK),PFRCL(JL,JK),PQIWP(JL,JK),PQLWP(JL,JK)& |
---|
| 267 | ! & ,POZON(JL,JK),PQS(JL,JK) |
---|
| 268 | 9104 format(1x,i3,f9.1,f8.2,f9.1,f8.2,f9.1,e10.3,f7.4,4e10.3) |
---|
| 269 | ! ENDDO |
---|
| 270 | ! jk=klev+1 |
---|
| 271 | ! print 9104,jk,PAPH(JL,JK),PTH(JL,JK) |
---|
| 272 | ! print 9105,PTS(JL),(PALBD(JL,JSW),PALBP(JL,JSW),JSW=1,NSW) |
---|
| 273 | 9105 FORMAT(13X,f8.2,12f8.4) |
---|
| 274 | !end if |
---|
| 275 | |
---|
| 276 | !print *,'NICEOPT, NLIQOPT, NRADIP, NRADLP',NICEOPT,NLIQOPT,NRADIP,NRADLP |
---|
| 277 | |
---|
| 278 | !-- compute total cloud cover |
---|
| 279 | DO JL=KIDIA,KFDIA |
---|
| 280 | ZTCC(JL)=1.-PFRCL(JL,1) |
---|
| 281 | ZTCA(JL)=0. |
---|
| 282 | END DO |
---|
| 283 | DO JK=2,KLEV |
---|
| 284 | DO JL=KIDIA,KFDIA |
---|
| 285 | ZTCC(JL)=ZTCC(JL)*(1.-MAX(PFRCL(JL,JK),PFRCL(JL,JK-1))) & |
---|
| 286 | & /(1.-MIN(PFRCL(JL,JK-1),1.-REPCLC)) |
---|
| 287 | END DO |
---|
| 288 | END DO |
---|
| 289 | DO JL=KIDIA,KFDIA |
---|
| 290 | ZTCC(JL)=1.-ZTCC(JL) |
---|
| 291 | END DO |
---|
| 292 | |
---|
| 293 | !JL=KIDIA |
---|
| 294 | !print 9106,ZTCC(JL) |
---|
| 295 | 9106 format(1x,'TCC :',F7.4) |
---|
| 296 | !print 9107,LINHOM,NHOWINH |
---|
| 297 | 9107 format(1x,'LINHOM=',L8,' NHOWINH=',I2) |
---|
| 298 | |
---|
| 299 | |
---|
| 300 | |
---|
| 301 | |
---|
| 302 | |
---|
| 303 | |
---|
| 304 | !* 1. SET-UP INPUT QUANTITIES FOR RADIATION |
---|
| 305 | ! ------------------------------------- |
---|
| 306 | |
---|
| 307 | IF (.NOT.LINHOM) THEN |
---|
| 308 | ZMTFUDG=1.0_JPRB |
---|
| 309 | ZMTCONV=1.0_JPRB |
---|
| 310 | ZSWFUDG=1.0_JPRB |
---|
| 311 | ZLWFUDG=1.0_JPRB |
---|
| 312 | ELSE IF (LINHOM) THEN |
---|
| 313 | IF (NHOWINH.EQ.1) THEN |
---|
| 314 | ZMTFUDG=0.7_JPRB |
---|
| 315 | ZMTCONV=0.7_JPRB |
---|
| 316 | ZSWFUDG=0.7_JPRB |
---|
| 317 | ZLWFUDG=0.7_JPRB |
---|
| 318 | ELSE |
---|
| 319 | ZMTFUDG=1.0_JPRB |
---|
| 320 | ZMTCONV=1.0_JPRB |
---|
| 321 | ZSWFUDG=1.0_JPRB |
---|
| 322 | ZLWFUDG=1.0_JPRB |
---|
| 323 | ENDIF |
---|
| 324 | ENDIF |
---|
| 325 | !print 9108,LINHOM,NHOWINH,ZSWFUDG |
---|
| 326 | 9108 format(1x,'LINHOM=',L8,' NHOWINH=',I2,' FUDG=',f4.2) |
---|
| 327 | |
---|
| 328 | DO JL = KIDIA,KFDIA |
---|
| 329 | ZFCUP(JL,KLEV+1) = _ZERO_ |
---|
| 330 | ZFCDWN(JL,KLEV+1) = REPLOG |
---|
| 331 | ZFSUP(JL,KLEV+1) = _ZERO_ |
---|
| 332 | ZFSDWN(JL,KLEV+1) = REPLOG |
---|
| 333 | ZFLUX(JL,1,KLEV+1) = _ZERO_ |
---|
| 334 | ZFLUX(JL,2,KLEV+1) = _ZERO_ |
---|
| 335 | ZFLUC(JL,1,KLEV+1) = _ZERO_ |
---|
| 336 | ZFLUC(JL,2,KLEV+1) = _ZERO_ |
---|
| 337 | ZFSDNN(JL) = _ZERO_ |
---|
| 338 | ZFSDNV(JL) = _ZERO_ |
---|
| 339 | ZFCDNN(JL) = _ZERO_ |
---|
| 340 | ZFCDNV(JL) = _ZERO_ |
---|
| 341 | ZFSUPN(JL) = _ZERO_ |
---|
| 342 | ZFSUPV(JL) = _ZERO_ |
---|
| 343 | ZFCUPN(JL) = _ZERO_ |
---|
| 344 | ZFCUPV(JL) = _ZERO_ |
---|
| 345 | ZPSOL(JL) = PAPH(JL,KLEV+1) |
---|
| 346 | ZPMB(JL,1) = ZPSOL(JL) / 100._JPRB |
---|
| 347 | ZDT0(JL) = PTS(JL) - PTH(JL,KLEV+1) |
---|
| 348 | PSUDU(JL) = _ZERO_ |
---|
| 349 | PUVDF(JL) = _ZERO_ |
---|
| 350 | PPARF(JL) = _ZERO_ |
---|
| 351 | ZSUDU(JL) = _ZERO_ |
---|
| 352 | IBAS(JL) = INT ( 0.01_JPRB + PNBAS(JL) ) |
---|
| 353 | ITOP(JL) = INT ( 0.01_JPRB + PNTOP(JL) ) |
---|
| 354 | ENDDO |
---|
| 355 | |
---|
| 356 | DO JK=1,KLEV+1 |
---|
| 357 | DO JL=KIDIA,KFDIA |
---|
| 358 | CPFLS(JL,JK) = _ZERO_ |
---|
| 359 | CPFLT(JL,JK) = _ZERO_ |
---|
| 360 | CPFCS(JL,JK) = _ZERO_ |
---|
| 361 | CPFCT(JL,JK) = _ZERO_ |
---|
| 362 | CPFDCT(JL,JK) = _ZERO_ |
---|
| 363 | CPFUCT(JL,JK) = _ZERO_ |
---|
| 364 | CPFDLT(JL,JK) = _ZERO_ |
---|
| 365 | CPFULT(JL,JK) = _ZERO_ |
---|
| 366 | CPFDCS(JL,JK) = _ZERO_ |
---|
| 367 | CPFUCS(JL,JK) = _ZERO_ |
---|
| 368 | CPFDLS(JL,JK) = _ZERO_ |
---|
| 369 | CPFULS(JL,JK) = _ZERO_ |
---|
| 370 | ENDDO |
---|
| 371 | ENDDO |
---|
| 372 | |
---|
| 373 | DO JL = KIDIA,KFDIA |
---|
| 374 | CPFRSOD(JL) = _ZERO_ |
---|
| 375 | CPEMIT (JL) = _ZERO_ |
---|
| 376 | CPSUDU (JL) = _ZERO_ |
---|
| 377 | CPUVDF (JL) = _ZERO_ |
---|
| 378 | CPPARF (JL) = _ZERO_ |
---|
| 379 | END DO |
---|
| 380 | |
---|
| 381 | |
---|
| 382 | !* 1.1 INITIALIZE VARIOUS FIELDS |
---|
| 383 | ! ------------------------- |
---|
| 384 | |
---|
| 385 | |
---|
| 386 | DO JSW=1,NSW |
---|
| 387 | DO JL = KIDIA,KFDIA |
---|
| 388 | ZALBD(JL,JSW)=PALBD(JL,JSW) |
---|
| 389 | ZALBP(JL,JSW)=PALBP(JL,JSW) |
---|
| 390 | ENDDO |
---|
| 391 | ENDDO |
---|
| 392 | DO JL = KIDIA,KFDIA |
---|
| 393 | ZEMIS(JL) =PEMIS(JL) |
---|
| 394 | ZEMIW(JL) =PEMIW(JL) |
---|
| 395 | ZMU0(JL) =PMU0(JL) |
---|
| 396 | ZUVDF(JL) = _ZERO_ |
---|
| 397 | ZSUDU(JL) = _ZERO_ |
---|
| 398 | ZPARF(JL) = _ZERO_ |
---|
| 399 | ENDDO |
---|
| 400 | |
---|
| 401 | DO JK = 1 , KLEV |
---|
| 402 | JKP1 = JK + 1 |
---|
| 403 | JKL = KLEV+ 1 - JK |
---|
| 404 | JKLP1 = JKL + 1 |
---|
| 405 | DO JL = KIDIA,KFDIA |
---|
| 406 | ZPMB(JL,JK+1)=PAPH(JL,JKL)/100._JPRB |
---|
| 407 | ZOZ(JL,JK) = POZON(JL,JKL) * 46.6968_JPRB / RG |
---|
| 408 | ZOZON(JL,JK) = POZON(JL,JKL) |
---|
| 409 | ZCLD0(JL,JK) = _ZERO_ |
---|
| 410 | ZFCUP(JL,JK) = _ZERO_ |
---|
| 411 | ZFCDWN(JL,JK) = _ZERO_ |
---|
| 412 | ZFSUP(JL,JK) = _ZERO_ |
---|
| 413 | ZFSDWN(JL,JK) = _ZERO_ |
---|
| 414 | ZFLUX(JL,1,JK) = _ZERO_ |
---|
| 415 | ZFLUX(JL,2,JK) = _ZERO_ |
---|
| 416 | ZFLUC(JL,1,JK) = _ZERO_ |
---|
| 417 | ZFLUC(JL,2,JK) = _ZERO_ |
---|
| 418 | ENDDO |
---|
| 419 | ENDDO |
---|
| 420 | |
---|
| 421 | |
---|
| 422 | !** INPUTS ARE FULL LEVEL TEMPERATURES + SURFACE TEMPERATURE |
---|
| 423 | ! INTERPOLATION TO GET HALF-LEVEL TEMPERATURES FOLLOWS |
---|
| 424 | ! WHAT IS DONE IN *RADINT* AND *RADHEAT* |
---|
| 425 | |
---|
| 426 | !* LLINTRP=.T. Half-level temperatures on the coarse grid are |
---|
| 427 | ! vertically interpolated linearly with horizontal |
---|
| 428 | ! sampled pressure from the full-level temperatures |
---|
| 429 | ! of the sampled grid. |
---|
| 430 | |
---|
| 431 | !* LLINTRP=.F. Half-level temperatures are those horizontally |
---|
| 432 | ! sampled on the coarse grid |
---|
| 433 | |
---|
| 434 | LLINTRP=.FALSE. |
---|
| 435 | IF (LLINTRP) THEN |
---|
| 436 | DO JK=2,KLEV |
---|
| 437 | DO JL=KIDIA,KFDIA |
---|
| 438 | PTH(JL,JK)=(PT (JL,JK-1)*PAP (JL,JK-1)& |
---|
| 439 | &*(PAP (JL,JK)-PAPH (JL,JK))& |
---|
| 440 | &+PT (JL,JK)*PAP (JL,JK)*(PAPH (JL,JK)-PAP (JL,JK-1)))& |
---|
| 441 | &*(_ONE_/(PAPH (JL,JK)*(PAP (JL,JK)-PAP (JL,JK-1)))) |
---|
| 442 | ENDDO |
---|
| 443 | ENDDO |
---|
| 444 | IF (LTEMPDS) THEN |
---|
| 445 | DO JL=KIDIA,KFDIA |
---|
| 446 | PTH(JL,1)= PT (JL,1)-PAP (JL,1)*(PT (JL,1)-PTH(JL,2))& |
---|
| 447 | &/(PAP (JL,1)-PAPH (JL,2)) |
---|
| 448 | PTH(JL,KLEV+1)=PT(JL,KLEV)& |
---|
| 449 | & +(PAPH(JL,KLEV+1)-PAP(JL,KLEV))& |
---|
| 450 | & *(PT(JL,KLEV)-PTH(JL,KLEV))& |
---|
| 451 | & /(PAP(JL,KLEV)-PAPH(JL,KLEV)) |
---|
| 452 | ENDDO |
---|
| 453 | ELSE |
---|
| 454 | DO JL=KIDIA,KFDIA |
---|
| 455 | PTH(JL,1)= PT (JL,1)-PAP (JL,1)*(PT (JL,1)-PTH(JL,2))& |
---|
| 456 | &/(PAP (JL,1)-PAPH (JL,2)) |
---|
| 457 | PTH(JL,KLEV+1)= PTS(JL) |
---|
| 458 | ENDDO |
---|
| 459 | ENDIF |
---|
| 460 | ENDIF |
---|
| 461 | |
---|
| 462 | DO JK=1,KLEV |
---|
| 463 | JKL=KLEV+1-JK |
---|
| 464 | JKLP1=JKL+1 |
---|
| 465 | DO JL=KIDIA,KFDIA |
---|
| 466 | ZTL(JL,JK)=PTH(JL,JKLP1) |
---|
| 467 | ZTAVE(JL,JK)=PT(JL,JKL) |
---|
| 468 | ENDDO |
---|
| 469 | ENDDO |
---|
| 470 | DO JL=KIDIA,KFDIA |
---|
| 471 | ZTL(JL,KLEV+1)= PTH(JL,1) |
---|
| 472 | ZPMB(JL,KLEV+1) = PAPH(JL,1)/100._JPRB |
---|
| 473 | ENDDO |
---|
| 474 | !*** |
---|
| 475 | |
---|
| 476 | ! ------------------------------------------------------------------ |
---|
| 477 | |
---|
| 478 | !* 2. CLOUD AND AEROSOL PARAMETERS |
---|
| 479 | ! ---------------------------- |
---|
| 480 | |
---|
| 481 | NBOXL=1 |
---|
| 482 | IF (KBOX.EQ.1) THEN |
---|
| 483 | CALL COL2BOX & |
---|
| 484 | & ( KIDIA, KFDIA, KLON, KLEV, NBOX, NOVLP & |
---|
| 485 | & , PFRCL, PCLBX & |
---|
| 486 | & ) |
---|
| 487 | NBOXL=NBOX |
---|
| 488 | END IF |
---|
| 489 | ZWGHT=1./FLOAT(NBOXL) |
---|
| 490 | |
---|
| 491 | !-- initialise box-type outputs OLR, ASW, SDLW, SDSW, TAU |
---|
| 492 | DO ICBOX=1,NBOXL |
---|
| 493 | DO JL=KIDIA,KFDIA |
---|
| 494 | OLRBOX(JL,ICBOX)=_ZERO_ |
---|
| 495 | ASWBOX(JL,ICBOX)=_ZERO_ |
---|
| 496 | SLWBOX(JL,ICBOX)=_ZERO_ |
---|
| 497 | SSWBOX(JL,ICBOX)=_ZERO_ |
---|
| 498 | TAUBOX(JL,ICBOX)=_ZERO_ |
---|
| 499 | END DO |
---|
| 500 | END DO |
---|
| 501 | |
---|
| 502 | DO ICBOX=1,NBOXL |
---|
| 503 | IF (KBOX.EQ.1) THEN |
---|
| 504 | DO JK=1,KLEV |
---|
| 505 | DO JL=KIDIA,KFDIA |
---|
| 506 | PCLFR(JL,JK)=PCLBX(JL,ICBOX,JK) |
---|
| 507 | END DO |
---|
| 508 | END DO |
---|
| 509 | |
---|
| 510 | ELSE |
---|
| 511 | DO JK=1,KLEV |
---|
| 512 | DO JL=KIDIA,KFDIA |
---|
| 513 | PCLFR(JL,JK)=PFRCL(JL,JK) |
---|
| 514 | END DO |
---|
| 515 | END DO |
---|
| 516 | END IF |
---|
| 517 | DO JL=KIDIA,KFDIA |
---|
| 518 | PSUDU(JL) = _ZERO_ |
---|
| 519 | ZTAUINT(JL) = _ZERO_ |
---|
| 520 | END DO |
---|
| 521 | |
---|
| 522 | !-- compute total cloud cover for that particular calculation |
---|
| 523 | DO JL=KIDIA,KFDIA |
---|
| 524 | ZCOL(JL)=1.-PCLFR(JL,1) |
---|
| 525 | END DO |
---|
| 526 | DO JK=2,KLEV |
---|
| 527 | DO JL=KIDIA,KFDIA |
---|
| 528 | ZCOL(JL)=ZCOL(JL)*(1.-MAX(PCLFR(JL,JK),PCLFR(JL,JK-1))) & |
---|
| 529 | & /(1.-MIN(PCLFR(JL,JK-1),1.-REPCLC)) |
---|
| 530 | END DO |
---|
| 531 | END DO |
---|
| 532 | DO JL=KIDIA,KFDIA |
---|
| 533 | ZCOL(JL)=1.-ZCOL(JL) |
---|
| 534 | END DO |
---|
| 535 | |
---|
| 536 | |
---|
| 537 | |
---|
| 538 | |
---|
| 539 | |
---|
| 540 | |
---|
| 541 | DO JK = 1 , KLEV |
---|
| 542 | IKL = KLEV + 1 - JK |
---|
| 543 | |
---|
| 544 | ! 2.1 INITIALIZE OPTICAL PROPERTIES TO CLEAR SKY VALUES |
---|
| 545 | ! ------------------------------------------------- |
---|
| 546 | |
---|
| 547 | DO JSW = 1,NSW |
---|
| 548 | DO JL = KIDIA,KFDIA |
---|
| 549 | ZTAU(JL,JSW,JK) = _ZERO_ |
---|
| 550 | ZOMEGA(JL,JSW,JK)= _ONE_ |
---|
| 551 | ZCG(JL,JSW,JK) = _ZERO_ |
---|
| 552 | ENDDO |
---|
| 553 | ENDDO |
---|
| 554 | DO JL = KIDIA,KFDIA |
---|
| 555 | ZCLDSW(JL,JK) = _ZERO_ |
---|
| 556 | ZCLDLD(JL,JK) = _ZERO_ |
---|
| 557 | ZCLDLU(JL,JK) = _ZERO_ |
---|
| 558 | ENDDO |
---|
| 559 | |
---|
| 560 | |
---|
| 561 | ! 2.2 CLOUD ICE AND LIQUID CONTENT AND PATH |
---|
| 562 | ! ------------------------------------- |
---|
| 563 | |
---|
| 564 | DO JL = KIDIA,KFDIA |
---|
| 565 | ! PCLFR(JL,IKL)=MAX(REPSC,MIN(PCLFR(JL,IKL),_ONE_-REPSC)) |
---|
| 566 | PCLFR(JL,IKL)=MAX( _ZERO_ ,MIN( PCLFR(JL,IKL), _ONE_ )) |
---|
| 567 | |
---|
| 568 | ! --- LIQUID WATER CONTENT (g.m-3) AND LIQUID WATER PATH (g.m-2) |
---|
| 569 | ZLWGKG=MAX(PQLWP(JL,IKL)*1000._JPRB,_ZERO_) |
---|
| 570 | ZIWGKG=MAX(PQIWP(JL,IKL)*1000._JPRB,_ZERO_) |
---|
| 571 | !! IF (PCLFR(JL,IKL) > (_TWO_*REPCLC)) THEN |
---|
| 572 | !! ZLWGKG=ZLWGKG/PCLFR(JL,IKL) |
---|
| 573 | !! ZIWGKG=ZIWGKG/PCLFR(JL,IKL) |
---|
| 574 | !! IF (PCLFR(JL,IKL) > REPCLC) THEN |
---|
| 575 | IF (PCLFR(JL,IKL) > 15.E-06_JPRB) THEN |
---|
| 576 | ZLWGKG=ZLWGKG/PFRCL(JL,IKL) |
---|
| 577 | ZIWGKG=ZIWGKG/PFRCL(JL,IKL) |
---|
| 578 | ELSE |
---|
| 579 | ZLWGKG=_ZERO_ |
---|
| 580 | ZIWGKG=_ZERO_ |
---|
| 581 | ENDIF |
---|
| 582 | |
---|
| 583 | ! --- RAIN LIQUID WATER CONTENT (g.m-3) AND LIQUID WATER PATH (g.m-2) |
---|
| 584 | ! IF (PRAINT(JL,IKL).GT.(2.*REPCLC)) THEN |
---|
| 585 | ! ZRWGKG=MAX(PQRAIN(JL,IKL)*1000., 0.0) |
---|
| 586 | ! ZRAINT(JL)=PRAINT(JL,IKL)*3600.*1000. |
---|
| 587 | !- no radiative effect of rain (for the moment) |
---|
| 588 | ! ZRWGKG=0. |
---|
| 589 | ! ZRAINT(JL)=0. |
---|
| 590 | ! =========================================================== |
---|
| 591 | |
---|
| 592 | ! Modifications Martin et al. |
---|
| 593 | ! ELSE |
---|
| 594 | ZRWGKG=_ZERO_ |
---|
| 595 | ZRAINT(JL)=_ZERO_ |
---|
| 596 | ! END IF |
---|
| 597 | |
---|
| 598 | IF (IBAS(JL) /= 1.AND. ITOP(JL) /= 1 ) THEN |
---|
| 599 | ZCFUDG(JL)=ZMTCONV |
---|
| 600 | ELSE |
---|
| 601 | ZCFUDG(JL)=ZMTFUDG |
---|
| 602 | ENDIF |
---|
| 603 | |
---|
| 604 | ZDPOG=PDP(JL,IKL)/RG |
---|
| 605 | ZFLWP(JL)= ZLWGKG*ZDPOG |
---|
| 606 | ZFIWP(JL)= ZIWGKG*ZDPOG |
---|
| 607 | ZFRWP(JL)= ZRWGKG*ZDPOG |
---|
| 608 | ZPODT=PAP(JL,IKL)/(RD*PT(JL,IKL)) |
---|
| 609 | ZLWC(JL)=ZLWGKG*ZPODT |
---|
| 610 | ZIWC(JL)=ZIWGKG*ZPODT |
---|
| 611 | ! ZRWC(JL)=ZRWGKG*ZPODT |
---|
| 612 | |
---|
| 613 | ! --- EFFECTIVE RADIUS FOR WATER, ICE AND RAIN PARTICLES |
---|
| 614 | |
---|
| 615 | IF (NRADLP.EQ.0) THEN |
---|
| 616 | ! very old parametrization as f(pressure) |
---|
| 617 | ZRADLP(JL)=10._JPRB + (100000._JPRB-PAP(JL,IKL))*3.5E-04_JPRB |
---|
| 618 | |
---|
| 619 | ELSE IF (NRADLP.EQ.1) THEN |
---|
| 620 | ! old simple distinction between land (10) and ocean (13) |
---|
| 621 | IF (PLSM(JL) < _HALF_) THEN |
---|
| 622 | ZRADLP(JL)=13._JPRB |
---|
| 623 | ELSE |
---|
| 624 | ZRADLP(JL)=10._JPRB |
---|
| 625 | ENDIF |
---|
| 626 | |
---|
| 627 | ELSE IF (NRADLP.EQ.2) THEN |
---|
| 628 | !-- based on Martin et al., 1994, JAS |
---|
| 629 | IF (PLSM(JL) < _HALF_) THEN |
---|
| 630 | ZASEA=150._JPRB |
---|
| 631 | ZD=0.33_JPRB |
---|
| 632 | ZNTOT=-1.15E-03_JPRB*ZASEA*ZASEA+0.963_JPRB*ZASEA+5.30_JPRB |
---|
| 633 | ELSE |
---|
| 634 | ZALND=900._JPRB |
---|
| 635 | ! ZALND=600._JPRB |
---|
| 636 | ! ZALND=300._JPRB |
---|
| 637 | ! ZALND=1200._JPRB |
---|
| 638 | ZD=0.43_JPRB |
---|
| 639 | ZNTOT=-2.10E-04_JPRB*ZALND*ZALND+0.568_JPRB*ZALND-27.9_JPRB |
---|
| 640 | ENDIF |
---|
| 641 | |
---|
| 642 | ZNUM=3._JPRB*ZLWC(JL)*(1._JPRB+3._JPRB*ZD*ZD)**2 |
---|
| 643 | ZDEN=4._JPRB*RPI*ZNTOT*(1._JPRB+ZD*ZD)**3 |
---|
| 644 | ZRADLP(JL)=100.*(ZNUM/ZDEN)**0.333_JPRB |
---|
| 645 | |
---|
| 646 | ! 9001 format(1x,I3,1E13.5,F5.0,F5.2,f8.2,3E13.5) |
---|
| 647 | ZRADLP(JL)=MAX(ZRADLP(JL), 4._JPRB) |
---|
| 648 | ZRADLP(JL)=MIN(ZRADLP(JL),16._JPRB) |
---|
| 649 | END IF |
---|
| 650 | ! print *,'ZRADLP(JL) for JK=',JK,ZRADLP(JL) |
---|
| 651 | |
---|
| 652 | ! =========================================================== |
---|
| 653 | ! ___________________________________________________________ |
---|
| 654 | |
---|
| 655 | ! rain drop from : unused as ZRAINT is 0. |
---|
| 656 | ! ZRADRD(JL)=500._JPRB*ZRAINT(JL)**0.22_JPRB |
---|
| 657 | ! IF (ZFLWP(JL).GT.0.) THEN |
---|
| 658 | ! ZRADRD(JL)=ZRADLP(JL)+ZRADRD(JL) |
---|
| 659 | ! END IF |
---|
| 660 | |
---|
| 661 | !- ice particle effective radius =f(T) from Liou and Ou (1994) |
---|
| 662 | |
---|
| 663 | IF (PT(JL,IKL) < RTICE) THEN |
---|
| 664 | ZTEMPC=PT(JL,IKL)-RTT |
---|
| 665 | ELSE |
---|
| 666 | ZTEMPC=RTICE-RTT |
---|
| 667 | ENDIF |
---|
| 668 | |
---|
| 669 | ZRADIP(JL)=326.3_JPRB+ZTEMPC*(12.42_JPRB + ZTEMPC*(0.197_JPRB + ZTEMPC*& |
---|
| 670 | &0.0012_JPRB)) |
---|
| 671 | ZDESR(JL)=2._JPRB*ZRADIP(JL) |
---|
| 672 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 673 | |
---|
| 674 | IF (NRADIP.EQ. 0) THEN |
---|
| 675 | ZRADIP(JL)= 40._JPRB |
---|
| 676 | ZDESR(JL)=2._JPRB*ZRADIP(JL) |
---|
| 677 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 678 | |
---|
| 679 | ELSE IF (NRADIP.EQ. 1) THEN |
---|
| 680 | !-- old formulation based on temperature (40-130microns) |
---|
| 681 | ZRADIP(JL)=MAX(ZRADIP(JL),40._JPRB) |
---|
| 682 | ZDESR(JL)=2._JPRB*ZRADIP(JL) |
---|
| 683 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 684 | |
---|
| 685 | ELSE IF (NRADIP.EQ. 2) THEN |
---|
| 686 | !-- formulation following Jakob, Klein modifications to ice content |
---|
| 687 | ZRADIP(JL)=MAX(ZRADIP(JL),30._JPRB) |
---|
| 688 | ZRADIP(JL)=MIN(ZRADIP(JL),60._JPRB) |
---|
| 689 | ZDESR(JL)=2._JPRB*ZRADIP(JL) |
---|
| 690 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 691 | |
---|
| 692 | !-- new Sun and Rikus, 1999 D_ice = f(T, IWC) |
---|
| 693 | ELSE IF (NRADIP.EQ. 3 .AND. ZIWC(JL).GT. _ZERO_ ) THEN |
---|
| 694 | ZTEMPC=PT(JL,IKL)-83.15_JPRB |
---|
| 695 | ZTCELS=PT(JL,IKL)-RTT |
---|
| 696 | ZFSR = 1.2351_JPRB +0.0105_JPRB * ZTCELS |
---|
| 697 | ! Sun & Rikus, 1999 |
---|
| 698 | ! ZLGIWC=LOG10( REPCLC + ZIWC(JL)) |
---|
| 699 | ! ZAIWC=26.1571_JPRB / ( ABS(ZLGIWC) **0.5995_JPRB ) |
---|
| 700 | ! ZBIWC=0.6402_JPRB + 0.1810_JPRB * ZLGIWC |
---|
| 701 | ! Sun, 2001 |
---|
| 702 | ZAIWC = 45.8966_JPRB * ZIWC(JL)**0.2214_JPRB |
---|
| 703 | ZBIWC = 0.7957_JPRB * ZIWC(JL)**0.2535_JPRB |
---|
| 704 | ZDESR(JL) = ZFSR * (ZAIWC + ZBIWC*ZTEMPC) |
---|
| 705 | ZDESR(JL) = MIN ( MAX( ZDESR(JL), RMINICE ), 350._JPRB) |
---|
| 706 | ZRADIP(JL)= 0.5 * ZDESR(JL) |
---|
| 707 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 708 | END IF |
---|
| 709 | |
---|
| 710 | !-- ERA-15 definition of effective radii |
---|
| 711 | IF (KLWRAD.EQ.2 .AND. NSW.EQ.2) THEN |
---|
| 712 | ZRADIP(JL)=40._JPRB |
---|
| 713 | ZRADLP(JL)=10._JPRB + (100000._JPRB-PAP(JL,IKL))*3.5_JPRB |
---|
| 714 | ! ZSWFUDG=1._JPRB |
---|
| 715 | ! ZLWFUDG=1._JPRB |
---|
| 716 | LOWASYF=.FALSE. |
---|
| 717 | LOIFUEC=.FALSE. |
---|
| 718 | LRRTM=.FALSE. |
---|
| 719 | ZDESR(JL)=2._JPRB*ZRADIP(JL) |
---|
| 720 | ! print *,'ZRADIP(JL) for JK=',JK,ZRADIP(JL),ZDESR(JL) |
---|
| 721 | END IF |
---|
| 722 | |
---|
| 723 | ENDDO |
---|
| 724 | |
---|
| 725 | |
---|
| 726 | |
---|
| 727 | ! 2.3 CLOUD SHORTWAVE OPTICAL PROPERTIES |
---|
| 728 | ! ---------------------------------- |
---|
| 729 | |
---|
| 730 | ! ------------------------- |
---|
| 731 | ! --+ SW OPTICAL PARAMETERS + Water clouds after Fouquart (1987) |
---|
| 732 | ! ------------------------- Ice clouds (Ebert, Curry, 1992) |
---|
| 733 | |
---|
| 734 | DO JSW=1,NSW |
---|
| 735 | DO JL = KIDIA,KFDIA |
---|
| 736 | ZTOL=_ZERO_ |
---|
| 737 | ZGL =_ZERO_ |
---|
| 738 | ZOL =_ZERO_ |
---|
| 739 | ZTOI=_ZERO_ |
---|
| 740 | ZGI =_ZERO_ |
---|
| 741 | ZOI =_ZERO_ |
---|
| 742 | ZTOR=_ZERO_ |
---|
| 743 | ZGR =_ZERO_ |
---|
| 744 | ZOR =_ZERO_ |
---|
| 745 | IF (ZFLWP(JL)+ZFIWP(JL)+ZFRWP(JL) /= _ZERO_) THEN |
---|
| 746 | IF (ZFLWP(JL) /= _ZERO_) THEN |
---|
| 747 | IF (NLIQOPT.NE.0 ) THEN |
---|
| 748 | !-- SW: Slingo, 1989 |
---|
| 749 | ZTOL = ZFLWP(JL)*(RASWCA(JSW)+RASWCB(JSW)/ZRADLP(JL)) |
---|
| 750 | ZGL = RASWCE(JSW)+RASWCF(JSW)*ZRADLP(JL) |
---|
| 751 | ZOL = 1. - RASWCC(JSW)-RASWCD(JSW)*ZRADLP(JL) |
---|
| 752 | ELSE |
---|
| 753 | !-- SW: Fouquart, 1991 |
---|
| 754 | ZTOL = ZFLWP(JL)*(RYFWCA(JSW)+RYFWCB(JSW)/ZRADLP(JL)) |
---|
| 755 | ZGL = RYFWCF(JSW) |
---|
| 756 | ZOL = RYFWCC(JSW)-RYFWCD(JSW)*EXP(-RYFWCE(JSW)*ZTOL) |
---|
| 757 | ENDIF |
---|
| 758 | ENDIF |
---|
| 759 | |
---|
| 760 | IF (ZFIWP(JL) /= _ZERO_) THEN |
---|
| 761 | IF (NICEOPT.LE.1) THEN |
---|
| 762 | !-- SW: Ebert-Curry |
---|
| 763 | ZTOI = ZFIWP(JL)*(REBCUA(JSW)+REBCUB(JSW)/ZRADIP(JL)) |
---|
| 764 | ZGI = REBCUE(JSW)+REBCUF(JSW)*ZRADIP(JL) |
---|
| 765 | ZOI = _ONE_ - REBCUC(JSW)-REBCUD(JSW)*ZRADIP(JL) |
---|
| 766 | |
---|
| 767 | ELSE IF (NICEOPT.EQ.2) THEN |
---|
| 768 | !-- SW: Fu-Liou, 1993 |
---|
| 769 | Z1RADI = 0.5 / ZRADIP(JL) |
---|
| 770 | ZBETAI = RFLAA0(JSW)+Z1RADI* RFLAA1(JSW) |
---|
| 771 | ZTOI = ZFIWP(JL) * ZBETAI |
---|
| 772 | ZOMGI= RFLBB0(JSW)+ZRADIP(JL)*(RFLBB1(JSW) + ZRADIP(JL) & |
---|
| 773 | & *(RFLBB2(JSW)+ZRADIP(JL)* RFLBB3(JSW) )) |
---|
| 774 | ZOI = _ONE_ - ZOMGI |
---|
| 775 | ZOMGP= RFLCC0(JSW)+ZRADIP(JL)*(RFLCC1(JSW) + ZRADIP(JL) & |
---|
| 776 | & *(RFLCC2(JSW)+ZRADIP(JL)* RFLCC3(JSW) )) |
---|
| 777 | ZFDEL= RFLDD0(JSW)+ZRADIP(JL)*(RFLDD1(JSW) + ZRADIP(JL) & |
---|
| 778 | & *(RFLDD2(JSW)+ZRADIP(JL)* RFLDD3(JSW) )) |
---|
| 779 | ZGI = ((1.-ZFDEL)*ZOMGP + ZFDEL*3.) / 3. |
---|
| 780 | |
---|
| 781 | ELSE IF (NICEOPT.EQ.3) THEN |
---|
| 782 | !-- SW: Fu 1996 |
---|
| 783 | Z1RADI = _ONE_ / ZDESR(JL) |
---|
| 784 | ZBETAI = RFUAA0(JSW)+Z1RADI* RFUAA1(JSW) |
---|
| 785 | ZTOI = ZFIWP(JL) * ZBETAI |
---|
| 786 | ZOMGI= RFUBB0(JSW)+ZDESR(JL)*(RFUBB1(JSW) + ZDESR(JL) & |
---|
| 787 | & *(RFUBB2(JSW)+ZDESR(JL)* RFUBB3(JSW) )) |
---|
| 788 | ZOI = _ONE_ - ZOMGI |
---|
| 789 | ZGI = RFUCC0(JSW)+ZDESR(JL)*(RFUCC1(JSW) + ZDESR(JL) & |
---|
| 790 | & *(RFUCC2(JSW)+ZDESR(JL)* RFUCC3(JSW) )) |
---|
| 791 | |
---|
| 792 | ENDIF |
---|
| 793 | ENDIF |
---|
| 794 | |
---|
| 795 | ! IF (ZFRWP(JL) .NE. 0.) THEN |
---|
| 796 | ! ZTOR= ZFRWP(JL)*0.003_JPRB*_JPRBZRAINT(JL)**(-0.22_JPRB) |
---|
| 797 | ! ZOR = 1._JPRB - RROMA(JSW)*ZRAINT(JL)**RROMB(JSW) |
---|
| 798 | ! ZGR = RRASY(JSW) |
---|
| 799 | ! END IF |
---|
| 800 | |
---|
| 801 | ! - MIX of WATER and ICE CLOUDS |
---|
| 802 | ! ZTAUMX= ZTOL + ZTOI + ZTOR |
---|
| 803 | ! ZOMGMX= ZTOL*ZOL + ZTOI*ZOI + ZTOR*ZOR |
---|
| 804 | ! ZASYMX= ZTOL*ZOL*ZGL + ZTOI*ZOI*ZGI + ZTOR*ZOR*ZGR |
---|
| 805 | ! |
---|
| 806 | ! ZASYMX= ZASYMX/ZOMGMX |
---|
| 807 | ! ZOMGMX= ZOMGMX/ZTAUMX |
---|
| 808 | |
---|
| 809 | IF (.NOT.LINHOM .OR. (LINHOM .AND. NHOWINH.EQ.1) ) THEN |
---|
| 810 | ZVL=ZSWFUDG |
---|
| 811 | ZVI=ZSWFUDG |
---|
| 812 | ZVR=0. |
---|
| 813 | ZTAUMX= ZTOL*ZVL + ZTOI*ZVI + ZTOR*ZVR |
---|
| 814 | ZOMGMX= ZTOL*ZVL*ZOL + ZTOI*ZVI*ZOI + ZTOR*ZVR*ZOR |
---|
| 815 | ZASYMX= ZTOL*ZVL*ZOL*ZGL + ZTOI*ZVI*ZOI*ZGI + ZTOR*ZVR*ZOR*ZGR |
---|
| 816 | ZASYMX= ZASYMX/ZOMGMX |
---|
| 817 | ZOMGMX= ZOMGMX/ZTAUMX |
---|
| 818 | ELSE IF (LINHOM .AND. NHOWINH.EQ.2) THEN |
---|
| 819 | ZVL=PSQLW(JL,IKL) |
---|
| 820 | ZVI=PSQIW(JL,IKL) |
---|
| 821 | ZVR=0. |
---|
| 822 | ZTAUMX= ZTOL*ZVL + ZTOI*ZVI + ZTOR*ZVR |
---|
| 823 | ZOMGMX= ZTOL*ZVL*ZOL + ZTOI*ZVI*ZOI + ZTOR*ZVR*ZOR |
---|
| 824 | ZASYMX= ZTOL*ZVL*ZOL*ZGL + ZTOI*ZVI*ZOI*ZGI + ZTOR*ZVR*ZOR*ZGR |
---|
| 825 | ZASYMX= ZASYMX/ZOMGMX |
---|
| 826 | ZOMGMX= ZOMGMX/ZTAUMX |
---|
| 827 | ELSE IF (LINHOM .AND. NHOWINH.EQ.3) THEN |
---|
| 828 | ZVL=PRLVRL(JL,IKL) |
---|
| 829 | ZVI=PRLVRI(JL,IKL) |
---|
| 830 | ZVR=0. |
---|
| 831 | ZTOL1 = ZTOL/(1.+ZVL) |
---|
| 832 | ZTOI1 = ZTOI/(1.+ZVI) |
---|
| 833 | ZTOR1 = ZTOR/(1.+ZVR) |
---|
| 834 | ZTAUMX= ZTOL1 + ZTOI1 + ZTOR1 |
---|
| 835 | ZOI=ZOI/(1.+ZVI*(1.-ZOI)) |
---|
| 836 | ZGI=ZGI*(1.+ZVI*(1.-ZOI))/(1.+ZVI*(1.-ZOI*ZGI)) |
---|
| 837 | ZOL=ZOL/(1.+ZVL*(1.-ZOL)) |
---|
| 838 | ZGL=ZGL*(1.+ZVL*(1.-ZOL))/(1.+ZVL*(1.-ZOL*ZGL)) |
---|
| 839 | |
---|
| 840 | ZOMGMX= ZTOL1*ZOL + ZTOI1*ZOI + ZTOR1*ZOR |
---|
| 841 | ZASYMX= ZTOL1*ZOL*ZGL + ZTOI1*ZOI*ZGI + ZTOR1*ZOR*ZGR |
---|
| 842 | ZASYMX= ZASYMX/ZOMGMX |
---|
| 843 | ZOMGMX= ZOMGMX/ZTAUMX |
---|
| 844 | END IF |
---|
| 845 | ! print 9009,JK,JL,JSW,ZSWFUDG,PSQLW(JL,IKL),PSQIW(JL,IKL) & |
---|
| 846 | ! & , PRLVRL(JL,IKL),PRLVRI(JL,IKL),ZTOL,ZOL,ZGL,ZTOI,ZOI,ZGI & |
---|
| 847 | ! & , ZTAUMX,ZOMGMX,ZASYMX |
---|
| 848 | 9009 format(1x,3I3,14E13.6) |
---|
| 849 | |
---|
| 850 | ! --- SW FINAL CLOUD OPTICAL PARAMETERS |
---|
| 851 | |
---|
| 852 | ZCLDSW(JL,JK) = PCLFR(JL,IKL) |
---|
| 853 | ZTAU(JL,JSW,JK) = ZTAUMX |
---|
| 854 | ZOMEGA(JL,JSW,JK)= ZOMGMX |
---|
| 855 | ZCG(JL,JSW,JK) = ZASYMX |
---|
| 856 | ENDIF |
---|
| 857 | |
---|
| 858 | ! #DB jkjlsw = 0 |
---|
| 859 | ! #DB IF (ZTAU(JL,JSW,JK) .LT.00..OR.ZTAU(JL,JSW,JK) .GT.75. .OR. & |
---|
| 860 | ! #DB & (k2iii(JL) .EQ.kio.AND.k2jjj(JL) .EQ.kjo) ) THEN |
---|
| 861 | ! #DB IF (mod(jkjlsw,20).EQ.0) & |
---|
| 862 | ! #DB & write(6,575) NLIQOPT,NICEOPT |
---|
| 863 | ! #DB 575 format('IN RADLSW: CLOUD SHrtWAVE OPTICAL PROPERTIES ' & |
---|
| 864 | ! #DB & ,3x,' NLIQOPT =',I3,' NICEOPT =',I3,/ & |
---|
| 865 | ! #DB & ,' i j JL JK',7x,'ZTAU',5x,'ZCLDSW',6x,'ZDESR' & |
---|
| 866 | ! #DB & ,5x,'PRLVRL',5x,'PRLVRI',6x,'PQIWP',6x,'PQLWP',3x,'JSW') |
---|
| 867 | ! #DB jkjlsw=jkjlsw+1 |
---|
| 868 | ! #DB write(6,603) k2iii(JL),k2jjj(JL),JL,IKL,ZTAU(JL,JSW,JK) ,ZCLDSW(JL,JK) , ZDESR(JL) & |
---|
| 869 | ! #DB & ,PRLVRL(JL,IKL),PRLVRI(JL,IKL) & |
---|
| 870 | ! #DB & ,PQIWP(JL,IKL), PQLWP(JL,IKL),JSW |
---|
| 871 | ! #DB 603 format(4i5,7e11.3,I6) |
---|
| 872 | ! #DB ENDIF |
---|
| 873 | |
---|
| 874 | ENDDO |
---|
| 875 | ENDDO |
---|
| 876 | |
---|
| 877 | DO JL=KIDIA,KFDIA |
---|
| 878 | ZTAUINT(JL)=ZTAUINT(JL)+ZTAU(JL,1,JK) |
---|
| 879 | END DO |
---|
| 880 | |
---|
| 881 | |
---|
| 882 | !JL=KIDIA |
---|
| 883 | !print 9109,JK,ZCLDSW(JL,JK),ZRADLP(JL),ZRADIP(JL) & |
---|
| 884 | ! & , (ZTAU(JL,JSW,JK),ZOMEGA(JL,JSW,JK),ZCG(JL,JSW,JK),JSW=1,NSW) |
---|
| 885 | 9109 format(1x,'ClOptProp: ',I2,f7.4,2f6.1,6(1x,F7.2,1x,F7.4,1x,f6.3)) |
---|
| 886 | !print *,'Radlsw after SW cloud optical properties for level JK=',JK |
---|
| 887 | |
---|
| 888 | |
---|
| 889 | |
---|
| 890 | ! 2.4 CLOUD LONGWAVE OPTICAL PROPERTIES FOR EC-OPE |
---|
| 891 | ! -------------------------------------------- |
---|
| 892 | |
---|
| 893 | ! ------------------------- |
---|
| 894 | ! --+ LW OPTICAL PARAMETERS + Water (and Ice) from Smith and Shi (1992) |
---|
| 895 | ! ------------------------- Ice clouds (Ebert, Curry, 1992) |
---|
| 896 | |
---|
| 897 | IF (.NOT.LRRTM) THEN |
---|
| 898 | |
---|
| 899 | DO JL = KIDIA,KFDIA |
---|
| 900 | ZALFICE(JL)=_ZERO_ |
---|
| 901 | ZGAMICE(JL)=_ZERO_ |
---|
| 902 | ZBICE(JL)=_ZERO_ |
---|
| 903 | ZTICE(JL)=(PT(JL,IKL)-TSTAND)/TSTAND |
---|
| 904 | ZBICFU(JL)=_ZERO_ |
---|
| 905 | ZKICFU1(JL)=_ZERO_ |
---|
| 906 | ZKICFU2(JL)=_ZERO_ |
---|
| 907 | ENDDO |
---|
| 908 | |
---|
| 909 | DO JNU= 1,NSIL |
---|
| 910 | DO JL = KIDIA,KFDIA |
---|
| 911 | ZRES(JL) = XP(1,JNU)+ZTICE(JL)*(XP(2,JNU)+ZTICE(JL)*(XP(3,& |
---|
| 912 | &JNU)& |
---|
| 913 | &+ZTICE(JL)*(XP(4,JNU)+ZTICE(JL)*(XP(5,JNU)+ZTICE(JL)*(XP(6,& |
---|
| 914 | &JNU)& |
---|
| 915 | &))))) |
---|
| 916 | ZBICE(JL) = ZBICE(JL) + ZRES(JL) |
---|
| 917 | ZGAMICE(JL) = ZGAMICE(JL) + REBCUI(JNU)*ZRES(JL) |
---|
| 918 | ZALFICE(JL) = ZALFICE(JL) + REBCUJ(JNU)*ZRES(JL) |
---|
| 919 | ENDDO |
---|
| 920 | ENDDO |
---|
| 921 | |
---|
| 922 | !-- Fu et al. (1998) with M'91 LW scheme |
---|
| 923 | DO JRTM=1,16 |
---|
| 924 | DO JL=KIDIA,KFDIA |
---|
| 925 | IF (PT(JL,IKL) < 339._JPRB .AND. PT(JL,IKL) >= 160._JPRB) THEN |
---|
| 926 | INDLAY=PT(JL,IKL)-159._JPRB |
---|
| 927 | ZTBLAY =PT(JL,IKL)-INT(PT(JL,IKL)) |
---|
| 928 | ELSE IF (PT(JL,IKL) >= 339._JPRB ) THEN |
---|
| 929 | INDLAY=180 |
---|
| 930 | ZTBLAY =PT(JL,IKL)-339._JPRB |
---|
| 931 | ELSE IF (PT(JL,IKL) < 160._JPRB) THEN |
---|
| 932 | INDLAY=1 |
---|
| 933 | ZTBLAY =PT(JL,IKL)-160._JPRB |
---|
| 934 | END IF |
---|
| 935 | ZADDPLK = TOTPLNK(INDLAY+1,JRTM)-TOTPLNK(INDLAY,JRTM) |
---|
| 936 | ZPLANCK = DELWAVE(JRTM) * (TOTPLNK(INDLAY,JRTM) + ZTBLAY*ZADDPLK) |
---|
| 937 | ZBICFU(JL) = ZBICFU(JL) + ZPLANCK |
---|
| 938 | |
---|
| 939 | IF (ZIWC(JL) > _ZERO_ ) THEN |
---|
| 940 | ! ice cloud spectral emissivity a la Fu & Liou (1993) |
---|
| 941 | ZRATIO= 0.5 / ZRADIP(JL) |
---|
| 942 | ZMSAID = RFULIO(JRTM,1) + ZRATIO& |
---|
| 943 | &*(RFULIO(JRTM,2) + ZRATIO*RFULIO(JRTM,3)) |
---|
| 944 | ZKICFU1(JL) = ZKICFU1(JL)+ ZMSAID*ZPLANCK |
---|
| 945 | |
---|
| 946 | ! ice cloud spectral emissivity a la Fu et al (1998) |
---|
| 947 | Z1RADI = _ONE_ / ZDESR(JL) |
---|
| 948 | ZMSAID = RFUETA(JRTM,1) + Z1RADI& |
---|
| 949 | &*(RFUETA(JRTM,2) + Z1RADI*RFUETA(JRTM,3)) |
---|
| 950 | ZKICFU2(JL) = ZKICFU2(JL)+ ZMSAID*ZPLANCK |
---|
| 951 | END IF |
---|
| 952 | END DO |
---|
| 953 | END DO |
---|
| 954 | |
---|
| 955 | DO JL = KIDIA,KFDIA |
---|
| 956 | ZGAMICE(JL) = ZGAMICE(JL) / ZBICE(JL) |
---|
| 957 | ZALFICE(JL) = ZALFICE(JL) / ZBICE(JL) |
---|
| 958 | ZKICFU1(JL) = ZKICFU1(JL) / ZBICFU(JL) |
---|
| 959 | ZKICFU2(JL) = ZKICFU2(JL) / ZBICFU(JL) |
---|
| 960 | |
---|
| 961 | IF (ZFLWP(JL)+ZFIWP(JL) /= _ZERO_) THEN |
---|
| 962 | |
---|
| 963 | IF (KLWRAD.EQ.2) THEN |
---|
| 964 | ! ice cloud emissivity a la Smith-Shi |
---|
| 965 | ZMULTI=1.2_JPRB-0.006_JPRB*ZRADIP(JL) |
---|
| 966 | ZMSAID= 0.113_JPRB*ZMULTI |
---|
| 967 | ZMSAIU= 0.093_JPRB*ZMULTI |
---|
| 968 | ZMULTL=1.2_JPRB-0.006_JPRB*ZRADLP(JL) |
---|
| 969 | ZMSALD= 0.158_JPRB*ZMULTL |
---|
| 970 | ZMSALU= 0.130_JPRB*ZMULTL |
---|
| 971 | ZZFLWP= ZFLWP(JL) |
---|
| 972 | ZZFIWP= ZFIWP(JL) |
---|
| 973 | |
---|
| 974 | ELSE IF (KLWRAD.EQ.0) THEN |
---|
| 975 | |
---|
| 976 | IF (NLIQOPT.EQ.0) THEN |
---|
| 977 | ! water cloud emissivity a la Smith & Shi (1992) |
---|
| 978 | ZMULTL=1.2_JPRB-0.006_JPRB*ZRADLP(JL) |
---|
| 979 | ZMSALD= 0.158_JPRB*ZMULTL |
---|
| 980 | ZMSALU= 0.130_JPRB*ZMULTL |
---|
| 981 | |
---|
| 982 | ELSE |
---|
| 983 | ! water cloud emissivity a la Savijarvi (1997) |
---|
| 984 | ZMSALU= 0.2441_JPRB-0.0105_JPRB*ZRADLP(JL) |
---|
| 985 | ZMSALD= 1.2154_JPRB*ZMSALU |
---|
| 986 | |
---|
| 987 | END IF |
---|
| 988 | |
---|
| 989 | IF (NICEOPT.EQ.0) THEN |
---|
| 990 | ! ice cloud emissivity a la Smith & Shi (1992) |
---|
| 991 | ZMULTI=1.2_JPRB-0.006_JPRB*ZRADIP(JL) |
---|
| 992 | ZMSAID= 0.113_JPRB*ZMULTI |
---|
| 993 | ZMSAIU= 0.093_JPRB*ZMULTI |
---|
| 994 | |
---|
| 995 | ELSE IF (NICEOPT.EQ.1) THEN |
---|
| 996 | ! ice cloud emissivity a la Ebert & Curry (1992) |
---|
| 997 | ZMSAID= 1.66_JPRB*(ZALFICE(JL)+ZGAMICE(JL)/ZRADIP(JL)) |
---|
| 998 | ZMSAIU= ZMSAID |
---|
| 999 | |
---|
| 1000 | ELSE IF (NICEOPT.EQ.2) THEN |
---|
| 1001 | ! ice cloud emissivity a la Fu & Liou (1993) |
---|
| 1002 | ZMSAID= 1.66_JPRB*ZKICFU1(JL) |
---|
| 1003 | ZMSAIU= ZMSAID |
---|
| 1004 | |
---|
| 1005 | ELSE IF (NICEOPT.EQ.3) THEN |
---|
| 1006 | ! ice cloud emissivity a la Fu et al. (1998) |
---|
| 1007 | ZMSAID= 1.66_JPRB*ZKICFU2(JL) |
---|
| 1008 | ZMSAIU= ZMSAID |
---|
| 1009 | END IF |
---|
| 1010 | |
---|
| 1011 | ! introduce inhomogeneity factor also in LW |
---|
| 1012 | ZZFLWP= ZFLWP(JL) * ZLWFUDG |
---|
| 1013 | ZZFIWP= ZFIWP(JL) * ZLWFUDG |
---|
| 1014 | END IF |
---|
| 1015 | |
---|
| 1016 | ! effective cloudiness accounting for condensed water |
---|
| 1017 | ZCLDLD(JL,JK) = PCLFR(JL,IKL)*(_ONE_-EXP(-ZMSALD*ZZFLWP-ZMSAID* & |
---|
| 1018 | &ZZFIWP)) |
---|
| 1019 | ZCLDLU(JL,JK) = PCLFR(JL,IKL)*(_ONE_-EXP(-ZMSALU*ZZFLWP-ZMSAIU* & |
---|
| 1020 | &ZZFIWP)) |
---|
| 1021 | |
---|
| 1022 | END IF |
---|
| 1023 | ENDDO |
---|
| 1024 | |
---|
| 1025 | ! print *,'Radlsw after LW0 cloud optical properties for level JK=',JK |
---|
| 1026 | |
---|
| 1027 | ELSE |
---|
| 1028 | |
---|
| 1029 | ! 2.5 CLOUD LONGWAVE OPTICAL PROPERTIES FOR RRTM |
---|
| 1030 | ! ------------------------------------------ |
---|
| 1031 | |
---|
| 1032 | ! ------------------------- |
---|
| 1033 | ! --+ LW OPTICAL PARAMETERS + Water (and Ice) from Savijarvi (1998) |
---|
| 1034 | ! ------------------------- Ice clouds (Ebert, Curry, 1992) |
---|
| 1035 | |
---|
| 1036 | ! No need for a fixed diffusivity factor, accounted for spectrally below |
---|
| 1037 | ! The detailed spectral structure does not require defining upward and |
---|
| 1038 | ! downward effective optical properties |
---|
| 1039 | |
---|
| 1040 | ! #DB jkjllw=0 |
---|
| 1041 | |
---|
| 1042 | DO JRTM=1,16 |
---|
| 1043 | DO JL = KIDIA,KFDIA |
---|
| 1044 | ZTAUCLD(JL,JK,JRTM) = _ZERO_ |
---|
| 1045 | ZMSALD = _ZERO_ |
---|
| 1046 | ZMSAID = _ZERO_ |
---|
| 1047 | |
---|
| 1048 | IF (ZFLWP(JL)+ZFIWP(JL) /= _ZERO_) THEN |
---|
| 1049 | |
---|
| 1050 | IF (NLIQOPT.EQ.0) THEN |
---|
| 1051 | ! water cloud total emissivity a la Smith and Shi (1992) |
---|
| 1052 | ZMULTL=1.2_JPRB-0.006_JPRB*ZRADLP(JL) |
---|
| 1053 | ZMSALD= 0.144_JPRB*ZMULTL / 1.66_JPRB |
---|
| 1054 | |
---|
| 1055 | ELSE IF (NLIQOPT.EQ.1) THEN |
---|
| 1056 | ! water cloud spectral emissivity a la Savijarvi (1997) |
---|
| 1057 | ZMSALD= RHSAVI(JRTM,1) + ZRADLP(JL)& |
---|
| 1058 | &*(RHSAVI(JRTM,2) + ZRADLP(JL)*RHSAVI(JRTM,3)) |
---|
| 1059 | |
---|
| 1060 | ELSE IF (NLIQOPT.EQ.2) THEN |
---|
| 1061 | ! water cloud spectral emissivity a la Lindner and Li (2000) |
---|
| 1062 | Z1RADL = _ONE_ / ZRADLP(JL) |
---|
| 1063 | ! ZMSALD = RLINLI(JRTM,1) + Z1RADL*(RLINLI(JRTM,2) + Z1RADL*& |
---|
| 1064 | ! & (RLINLI(JRTM,3) + Z1RADL*(RLINLI(JRTM,4) + Z1RADL*& |
---|
| 1065 | ! & RLINLI(JRTM,5) ))) |
---|
| 1066 | |
---|
| 1067 | ZMSALD = RLINLI(JRTM,1)+ZRADLP(JL)*RLINLI(JRTM,2)+ Z1RADL*& |
---|
| 1068 | & (RLINLI(JRTM,3) + Z1RADL*(RLINLI(JRTM,4) + Z1RADL*& |
---|
| 1069 | & RLINLI(JRTM,5) )) |
---|
| 1070 | |
---|
| 1071 | END IF |
---|
| 1072 | |
---|
| 1073 | IF (NICEOPT.EQ.0) THEN |
---|
| 1074 | ! ice cloud emissivity a la Smith & Shi (1992) |
---|
| 1075 | ZMULTI=1.2_JPRB-0.006_JPRB*ZRADIP(JL) |
---|
| 1076 | ZMSAID= 0.108_JPRB*ZMULTI / 1.66_JPRB |
---|
| 1077 | |
---|
| 1078 | ELSE IF (NICEOPT.EQ.1) THEN |
---|
| 1079 | ! ice cloud spectral emissivity a la Ebert-Curry (1992) |
---|
| 1080 | ZMSAID= REBCUH(JRTM)+REBCUG(JRTM)/ZRADIP(JL) |
---|
| 1081 | |
---|
| 1082 | ELSE IF (NICEOPT.EQ.2) THEN |
---|
| 1083 | ! ice cloud spectral emissivity a la Fu & Liou (1993) |
---|
| 1084 | ZRATIO= 0.5 / ZRADIP(JL) |
---|
| 1085 | ZMSAID = RFULIO(JRTM,1) + ZRATIO& |
---|
| 1086 | &*(RFULIO(JRTM,2) + ZRATIO*RFULIO(JRTM,3)) |
---|
| 1087 | |
---|
| 1088 | ELSE IF (NICEOPT.EQ.3) THEN |
---|
| 1089 | ! ice cloud spectral emissivity a la Fu et al (1998) |
---|
| 1090 | Z1RADI = _ONE_ / ZDESR(JL) |
---|
| 1091 | ZMSAID = RFUETA(JRTM,1) + Z1RADI& |
---|
| 1092 | &*(RFUETA(JRTM,2) + Z1RADI*RFUETA(JRTM,3)) |
---|
| 1093 | |
---|
| 1094 | END IF |
---|
| 1095 | |
---|
| 1096 | IF (.NOT.LINHOM .OR. (LINHOM .AND. NHOWINH.EQ.1) ) THEN |
---|
| 1097 | ZVL=ZLWFUDG |
---|
| 1098 | ZVI=ZLWFUDG |
---|
| 1099 | ELSE IF (LINHOM .AND. NHOWINH.EQ.2) THEN |
---|
| 1100 | ZVL=PSQLW(JL,IKL) |
---|
| 1101 | ZVI=PSQIW(JL,IKL) |
---|
| 1102 | ELSE IF (LINHOM .AND. NHOWINH.EQ.3) THEN |
---|
| 1103 | ZVL=_ONE_/(_ONE_+PRLVRL(JL,IKL)) |
---|
| 1104 | ZVI=_ONE_/(_ONE_+PRLVRI(JL,IKL)) |
---|
| 1105 | END IF |
---|
| 1106 | |
---|
| 1107 | ZTAUD = ZVL*ZMSALD*ZFLWP(JL)+ZVI*ZMSAID*ZFIWP(JL) |
---|
| 1108 | |
---|
| 1109 | ! #DB write(30,333) ZTAUD,ZVL,ZMSALD,ZFLWP(JL),ZVI,ZMSAID,ZFIWP(JL),PQIWP(JL,IKL),PQLWP(JL,IKL) |
---|
| 1110 | ! #DB 333 format(9e14.6) |
---|
| 1111 | |
---|
| 1112 | ! Diffusivity correction within clouds a la Savijarvi |
---|
| 1113 | ! ZDIFFD=MIN(MAX(1.517_JPRB-0.156_JPRB*LOG(ZTAUD) , _ONE_) , _TWO_) |
---|
| 1114 | |
---|
| 1115 | ZDIFFD=1.66_JPRB |
---|
| 1116 | ZTAUCLD(JL,JK,JRTM) = max(_ZERO_,ZTAUD*ZDIFFD) |
---|
| 1117 | ENDIF |
---|
| 1118 | |
---|
| 1119 | ! #DB IF (ZTAUCLD(JL,JK,JRTM).LT.00..OR.ZTAUCLD(JL,JK,JRTM).GT.75. .OR. & |
---|
| 1120 | ! #DB & (k2iii(JL) .EQ.kio.AND.k2jjj(JL) .EQ.kjo) ) THEN |
---|
| 1121 | ! #DB IF (mod(jkjllw,20).EQ.0) & |
---|
| 1122 | ! #DB & write(6,600) JRTM,NLIQOPT,NICEOPT |
---|
| 1123 | ! #DB 600 format('IN RADLSW: CLOUD LONGWAVE OPTICAL PROPERTIES FOR RRTM, JRTM =',I3 & |
---|
| 1124 | ! #DB & ,' NLIQOPT =',I3,' NICEOPT =',I3,/ & |
---|
| 1125 | ! #DB & ,' i j JL JK',7x,'ZTAU' ,6x,'ZFLWP' ,6x,'ZFIWP' & |
---|
| 1126 | ! #DB & , 5x,'ZRADLP',5x,'ZRADIP',6x,'PQIWP',6x,'PQLWP') |
---|
| 1127 | ! #DB jkjllw=jkjllw+1 |
---|
| 1128 | ! #DB write(6,601) k2iii(JL),k2jjj(JL),JL,IKL,ZTAUCLD(JL,JK,JRTM), ZFLWP(JL) , ZFIWP(JL) & |
---|
| 1129 | ! #DB & ,ZRADLP(JL) ,ZRADIP(JL) & |
---|
| 1130 | ! #DB & ,PQIWP(JL,IKL), PQLWP(JL,IKL) |
---|
| 1131 | ! #DB 601 format(4i5,10e11.3) |
---|
| 1132 | ! #DB ENDIF |
---|
| 1133 | |
---|
| 1134 | ENDDO |
---|
| 1135 | ENDDO |
---|
| 1136 | ! print *,'Radlsw after LW1 cloud optical properties for level JK=',JK |
---|
| 1137 | |
---|
| 1138 | ENDIF |
---|
| 1139 | |
---|
| 1140 | ENDDO |
---|
| 1141 | |
---|
| 1142 | NUAER = NUA |
---|
| 1143 | NTRAER = NTRA |
---|
| 1144 | |
---|
| 1145 | ! ------------------------------------------------------------------ |
---|
| 1146 | |
---|
| 1147 | !* 2.6 DIFFUSIVITY FACTOR OR SATELLITE VIEWING ANGLE |
---|
| 1148 | ! --------------------------------------------- |
---|
| 1149 | |
---|
| 1150 | |
---|
| 1151 | DO JL = KIDIA,KFDIA |
---|
| 1152 | ZVIEW(JL) = DIFF |
---|
| 1153 | ZEMIT(JL) = _ZERO_ |
---|
| 1154 | ENDDO |
---|
| 1155 | |
---|
| 1156 | ! ------------------------------------------------------------------ |
---|
| 1157 | |
---|
| 1158 | !* 3. CALL LONGWAVE RADIATION CODE |
---|
| 1159 | ! ---------------------------- |
---|
| 1160 | |
---|
| 1161 | |
---|
| 1162 | !* 3.1 FULL LONGWAVE RADIATION COMPUTATIONS |
---|
| 1163 | ! ------------------------------------ |
---|
| 1164 | |
---|
| 1165 | !print *,'Just before calling the radiation schemes' |
---|
| 1166 | !JL=KIDIA |
---|
| 1167 | !DO JK=1,KLEV |
---|
| 1168 | ! IKL=KLEV+1-JK |
---|
| 1169 | ! PRINT 9311,JK,PCLFR(JL,IKL),ZCLDLD(JL,JK),ZTAUCLD(JL,JK,1) & |
---|
| 1170 | ! & ,(ZTAU(JL,JSW,JK),ZOMEGA(JL,JSW,JK),ZCG(JL,JSW,JK),JSW=1,NSW) & |
---|
| 1171 | ! & ,(PAER(JL,JAE,JK),JAE=1,6) |
---|
| 1172 | 9311 format(1x,I2,2F8.5,26E12.5) |
---|
| 1173 | !END DO |
---|
| 1174 | !print *,'KLWRAD=',KLWRAD,' LPHYLIN: ',LPHYLIN,' LRRTM: ',LRRTM |
---|
| 1175 | |
---|
| 1176 | IF (.NOT.LPHYLIN) THEN |
---|
| 1177 | IF ( .NOT. LRRTM) THEN |
---|
| 1178 | |
---|
| 1179 | |
---|
| 1180 | IF (KLWRAD .EQ. 2) THEN |
---|
| 1181 | CALL OLW & |
---|
| 1182 | & ( KIDIA, KFDIA , KLON , KLEV & |
---|
| 1183 | & , PCCO2, ZCLDLD, ZCLDLU & |
---|
| 1184 | & , PDP , ZDT0 , ZEMIS & |
---|
| 1185 | & , PAPH , POZON , PTH & |
---|
| 1186 | & , PAER , PT , ZVIEW , PQ & |
---|
| 1187 | & , ZCOOLR,ZCOOLC, ZFLUX, ZFLUC & |
---|
| 1188 | & ) |
---|
| 1189 | |
---|
| 1190 | ELSE IF (KLWRAD .EQ. 0) THEN |
---|
| 1191 | |
---|
| 1192 | CALL LW & |
---|
| 1193 | &( KIDIA , KFDIA , KLON , KLEV , KMODE & |
---|
| 1194 | &, PCCO2 , ZCLDLD, ZCLDLU & |
---|
| 1195 | &, PDP , ZDT0 , ZEMIS , ZEMIW & |
---|
| 1196 | &, ZPMB , POZON , ZTL & |
---|
| 1197 | &, PAER , ZTAVE , ZVIEW , PQ & |
---|
| 1198 | &, ZCOOLR, ZCOOLC, ZEMIT , ZFLUX, ZFLUC & |
---|
| 1199 | &) |
---|
| 1200 | |
---|
| 1201 | END IF |
---|
| 1202 | |
---|
| 1203 | ELSE |
---|
| 1204 | |
---|
| 1205 | |
---|
| 1206 | !* 3.2 FULL LONGWAVE RADIATION COMPUTATIONS - RRTM |
---|
| 1207 | ! ------------------------------------ ---- |
---|
| 1208 | |
---|
| 1209 | ! i) pass POZN (ozone mmr concentration) to RRTM; remove pressure |
---|
| 1210 | ! weighting applied to POZON in driverMC (below) |
---|
| 1211 | ! ii) pass ZEMIS and ZEMIW to RRTM; return ZEMIT from RRTM |
---|
| 1212 | ! iii)pass ZTAUCLD, cloud optical depths (water+ice) to RRTM, |
---|
| 1213 | ! computed from equations above |
---|
| 1214 | ! iv) pass ECRT arrays to RRTM arrays in interface routine ECRTATM |
---|
| 1215 | ! in module rrtm_ecrt.f |
---|
| 1216 | |
---|
| 1217 | DO JL = KIDIA,KFDIA |
---|
| 1218 | DO JK = 1, KLEV |
---|
| 1219 | ZOZN(JL,JK) = POZON(JL,JK)/PDP(JL,JK) |
---|
| 1220 | ENDDO |
---|
| 1221 | ENDDO |
---|
| 1222 | |
---|
| 1223 | ! #DB jkjllw = 0 |
---|
| 1224 | ! #DB DO JL = KIDIA,KFDIA |
---|
| 1225 | ! #DB DO JK = 1, KLEV |
---|
| 1226 | ! #DB IKL = KLEV + 1 - JK |
---|
| 1227 | ! #DB JAERmin=1 |
---|
| 1228 | ! #DB JAERmax=6 |
---|
| 1229 | ! #DB PAERmin=1000. |
---|
| 1230 | ! #DB PAERmax=0. |
---|
| 1231 | ! #DB jTAUCLDmin=1 |
---|
| 1232 | ! #DB jTAUCLDmax=16 |
---|
| 1233 | ! #DB TAUCLDmin=1000. |
---|
| 1234 | ! #DB TAUCLDmax=0. |
---|
| 1235 | ! #DB DO JRTM=1,16 |
---|
| 1236 | ! #DB IF (ZTAUCLD(JL,JK,JRTM).LT.TAUCLDmin) THEN |
---|
| 1237 | ! #DB jTAUCLDmin=JRTM |
---|
| 1238 | ! #DB TAUCLDmin=ZTAUCLD(JL,JK,JRTM) |
---|
| 1239 | ! #DB END IF |
---|
| 1240 | ! #DB IF (ZTAUCLD(JL,JK,JRTM).GT.TAUCLDmax) THEN |
---|
| 1241 | ! #DB jTAUCLDmax=JRTM |
---|
| 1242 | ! #DB TAUCLDmax=ZTAUCLD(JL,JK,JRTM) |
---|
| 1243 | ! #DB END IF |
---|
| 1244 | ! #DB ENDDO |
---|
| 1245 | ! #DB DO JAE =1,6 |
---|
| 1246 | ! #DB IF (PAER(JL,JAE,JK).LT.PAERmin) THEN |
---|
| 1247 | ! #DB JAERmin=JAE |
---|
| 1248 | ! #DB PAERmin=PAER(JL,JAE,JK) |
---|
| 1249 | ! #DB END IF |
---|
| 1250 | ! #DB IF (PAER(JL,JAE,JK).GT.PAERmax) THEN |
---|
| 1251 | ! #DB JAERmax=JAE |
---|
| 1252 | ! #DB PAERmax=PAER(JL,JAE,JK) |
---|
| 1253 | ! #DB END IF |
---|
| 1254 | ! #DB ENDDO |
---|
| 1255 | ! #DB IF (TAUCLDmin.LT.0..OR.TAUCLDmax.GT.75.) THEN |
---|
| 1256 | ! #DB IF (mod(jkjllw,20).EQ.0) & |
---|
| 1257 | ! #DB & write(6,515) |
---|
| 1258 | ! #DB 515 format('IN RADLSW: BEFORE RRTM_RRTM_140GP CALL',/ & |
---|
| 1259 | ! #DB & ,' i j JL JK',7x,'ZOZN',5x,'ZCLDSW' & |
---|
| 1260 | ! #DB & ,4x,'ZTAUCLDmin',4x,'ZTAUCLDmax' & |
---|
| 1261 | ! #DB & ,4x,'PAERmin',4x,'PAERmax',6x,'PQIWP',6x,'PQLWP',9x,'PQ') |
---|
| 1262 | ! #DB jkjllw = jkjllw + 1 |
---|
| 1263 | ! #DB write(6,602) k2iii(JL),k2jjj(JL),JL,JK,ZOZN(JL,JK),ZCLDSW(JL,JK) & |
---|
| 1264 | ! #DB & ,jTAUCLDmin,ZTAUCLD(JL,JK,jTAUCLDmin) & |
---|
| 1265 | ! #DB & ,jTAUCLDmax,ZTAUCLD(JL,JK,jTAUCLDmax) & |
---|
| 1266 | ! #DB & ,PAER(JL,JAERmin,JK),PAER(JL,JAERmax,JK) & |
---|
| 1267 | ! #DB & ,PQIWP(JL,IKL),PQLWP(JL,IKL),PQ(JL,IKL) |
---|
| 1268 | ! #DB 602 format(4i5,2e11.3,2(i3,e11.3),8e11.3) |
---|
| 1269 | ! #DB ENDIF |
---|
| 1270 | ! #DB ENDDO |
---|
| 1271 | ! #DB ENDDO |
---|
| 1272 | |
---|
| 1273 | ! print *,'Just before calling RRTM' |
---|
| 1274 | |
---|
| 1275 | CALL RRTM_RRTM_140GP & |
---|
| 1276 | &( KIDIA , KFDIA , KLON , KLEV & |
---|
| 1277 | &, PAER , PAPH , PAP & |
---|
| 1278 | &, PTS , PTH , PT & |
---|
| 1279 | &, ZEMIS , ZEMIW & |
---|
| 1280 | &, PQ , PCCO2 , ZOZN , ZCLDSW , ZTAUCLD & |
---|
| 1281 | &, ZEMIT , ZFLUX , ZFLUC , ZTCLEAR & |
---|
| 1282 | &) |
---|
| 1283 | |
---|
| 1284 | ! print *,'just after RRTM' |
---|
| 1285 | |
---|
| 1286 | ENDIF |
---|
| 1287 | ELSE |
---|
| 1288 | ZCOOLR(:,:) = _ZERO_ |
---|
| 1289 | ZCOOLC(:,:) = _ZERO_ |
---|
| 1290 | ZEMIT (:) = _ZERO_ |
---|
| 1291 | ZFLUX(:,:,:)= _ZERO_ |
---|
| 1292 | ZFLUC(:,:,:)= _ZERO_ |
---|
| 1293 | ENDIF |
---|
| 1294 | |
---|
| 1295 | ! ------------------------------------------------------------------ |
---|
| 1296 | |
---|
| 1297 | !* 4. CALL SHORTWAVE RADIATION CODE |
---|
| 1298 | ! ----------------------------- |
---|
| 1299 | |
---|
| 1300 | |
---|
| 1301 | ZRMUZ=_ZERO_ |
---|
| 1302 | DO JL = KIDIA,KFDIA |
---|
| 1303 | ZRMUZ = MAX (ZRMUZ, ZMU0(JL)) |
---|
| 1304 | ENDDO |
---|
| 1305 | |
---|
| 1306 | IF (ZRMUZ > _ZERO_) THEN |
---|
| 1307 | !print *,'CALL SW' |
---|
| 1308 | |
---|
| 1309 | CALL SW & |
---|
| 1310 | &( KIDIA , KFDIA , KLON , KLEV , KAER & |
---|
| 1311 | &, PRII0 , PCCO2 , ZPSOL , ZALBD , ZALBP , PQ , PQS & |
---|
| 1312 | &, ZMU0 , ZCG , ZCLDSW, PDP , ZOMEGA, ZOZ , ZPMB & |
---|
| 1313 | &, ZTAU , ZTAVE , PAER & |
---|
| 1314 | &, ZHEATR, ZFSDWN, ZFSUP , ZHEATC, ZFCDWN, ZFCUP & |
---|
| 1315 | &, ZFSDNN, ZFSDNV, ZFSUPN, ZFSUPV & |
---|
| 1316 | &, ZFCDNN, ZFCDNV, ZFCUPN, ZFCUPV & |
---|
| 1317 | &, ZSUDU , ZUVDF , ZPARF & |
---|
| 1318 | &) |
---|
| 1319 | |
---|
| 1320 | ! print *,'just after SW' |
---|
| 1321 | ! JL=KIDIA |
---|
| 1322 | ! print *,'just after SW UV & PAR ',ZUVDF(JL),ZPARF(JL) |
---|
| 1323 | |
---|
| 1324 | ENDIF |
---|
| 1325 | |
---|
| 1326 | ! #DB jkjlsw = 0 |
---|
| 1327 | ! #DB DO JL = KIDIA,KFDIA |
---|
| 1328 | ! #DB DO JK = 1,KLEV |
---|
| 1329 | ! #DB IF (k2iii(JL).EQ.kio.AND.k2jjj(JL).EQ.kjo) THEN |
---|
| 1330 | ! #DB IF (mod(jkjlsw,20).EQ.0) & |
---|
| 1331 | ! #DB write(6,525) |
---|
| 1332 | ! #DB 525 format('IN RADLSW: AFTER SW CALL',/ & |
---|
| 1333 | ! #DB & ,' i j JL JK' & |
---|
| 1334 | ! #DB & ,4x,'ZFCDWN',5x,'ZFCUP' ,4x,'ZFSDNN',4x,'ZFCDNN' & |
---|
| 1335 | ! #DB & ,4x,'ZFSDNV',4x,'ZFSUPN',4x,'ZFSUPV',4x,'ZFCDNN' & |
---|
| 1336 | ! #DB & ,4x,'ZFCDNV',4x,'ZFCUPN',4x,'ZFCUPV') |
---|
| 1337 | ! #DB jkjlsw = jkjlsw + 1 |
---|
| 1338 | ! #DB write(6,605) k2iii(JL),k2jjj(JL),JL,JK,ZFCDWN(JL,JK),ZFCUP(JL,JK) & |
---|
| 1339 | ! #DB & ,ZFSDNN(JL),ZFCDNN(JL),ZFSDNV(JL),ZFSUPN(JL),ZFSUPV(JL) & |
---|
| 1340 | ! #DB & ,ZFCDNN(JL),ZFCDNV(JL),ZFCUPN(JL),ZFCUPV(JL) |
---|
| 1341 | ! #DB 605 format(4i5,11e10.3) |
---|
| 1342 | ! #DB ENDIF |
---|
| 1343 | ! #DB ENDDO |
---|
| 1344 | ! #DB ENDDO |
---|
| 1345 | |
---|
| 1346 | ! ------------------------------------------------------------------ |
---|
| 1347 | |
---|
| 1348 | !* 5. FILL UP THE MODEL NET LW AND SW RADIATIVE FLUXES |
---|
| 1349 | ! ------------------------------------------------ |
---|
| 1350 | |
---|
| 1351 | |
---|
| 1352 | DO JKL = 1 , KLEV+1 |
---|
| 1353 | JK = KLEV+1 + 1 - JKL |
---|
| 1354 | DO JL = KIDIA,KFDIA |
---|
| 1355 | ! print 9506,JK,ZFSDWN(JL,JK),ZFSUP(JL,JK),ZFLUX(JL,1,JK),ZFLUX(JL,2,JK) & |
---|
| 1356 | ! & , ZFCDWN(JL,JK),ZFCUP(JL,JK),ZFLUC(JL,1,JK),ZFLUC(JL,2,JK) |
---|
| 1357 | 9506 format(1x,I3,8f10.3) |
---|
| 1358 | |
---|
| 1359 | CPFLS(JL,JKL) =CPFLS(JL,JKL) +ZWGHT*(ZFSDWN(JL,JK) - ZFSUP(JL,JK)) |
---|
| 1360 | CPFLT(JL,JKL) =CPFLT(JL,JKL) +ZWGHT*(- ZFLUX(JL,1,JK) - ZFLUX(JL,2,JK)) |
---|
| 1361 | CPFCS(JL,JKL) =CPFCS(JL,JKL) +ZWGHT*(ZFCDWN(JL,JK) - ZFCUP(JL,JK)) |
---|
| 1362 | CPFCT(JL,JKL) =CPFCT(JL,JKL) +ZWGHT*(- ZFLUC(JL,1,JK) - ZFLUC(JL,2,JK)) |
---|
| 1363 | CPFDCT(JL,JKL)=CPFDCT(JL,JKL)+ZWGHT*ZFLUC(JL,2,JK) |
---|
| 1364 | CPFUCT(JL,JKL)=CPFUCT(JL,JKL)+ZWGHT*ZFLUC(JL,1,JK) |
---|
| 1365 | CPFDLT(JL,JKL)=CPFDLT(JL,JKL)+ZWGHT*ZFLUX(JL,2,JK) |
---|
| 1366 | CPFULT(JL,JKL)=CPFULT(JL,JKL)+ZWGHT*ZFLUX(JL,1,JK) |
---|
| 1367 | CPFDCS(JL,JKL)=CPFDCS(JL,JKL)+ZWGHT*ZFCDWN(JL,JK) |
---|
| 1368 | CPFUCS(JL,JKL)=CPFUCS(JL,JKL)+ZWGHT*ZFCUP(JL,JK) |
---|
| 1369 | CPFDLS(JL,JKL)=CPFDLS(JL,JKL)+ZWGHT*ZFSDWN(JL,JK) |
---|
| 1370 | CPFULS(JL,JKL)=CPFULS(JL,JKL)+ZWGHT*ZFSUP(JL,JK) |
---|
| 1371 | ENDDO |
---|
| 1372 | ENDDO |
---|
| 1373 | |
---|
| 1374 | DO JL = KIDIA,KFDIA |
---|
| 1375 | ! print 9507,ZFSDWN(JL,1),ZSUDU(JL),ZUVDF(JL),ZPARF(JL) |
---|
| 1376 | 9507 format(1x,'SW Global Normal UV & PAR:',5f10.3) |
---|
| 1377 | |
---|
| 1378 | CPFRSOD(JL) = CPFRSOD(JL) + ZWGHT*ZFSDWN(JL,1) |
---|
| 1379 | CPEMIT (JL) = CPEMIT (JL) + ZWGHT*ZEMIT (JL) |
---|
| 1380 | CPSUDU (JL) = CPSUDU (JL) + ZWGHT*ZSUDU (JL) |
---|
| 1381 | CPUVDF (JL) = CPUVDF (JL) + ZWGHT*ZUVDF (JL) |
---|
| 1382 | CPPARF (JL) = CPPARF (JL) + ZWGHT*ZPARF (JL) |
---|
| 1383 | |
---|
| 1384 | ASWBOX(JL,ICBOX) = -ZFSDWN(JL,KLEV+1) + ZFSUP(JL,KLEV+1) |
---|
| 1385 | OLRBOX(JL,ICBOX) = -ZFLUX(JL,1,KLEV+1) |
---|
| 1386 | SLWBOX(JL,ICBOX) = -ZFLUX(JL,2,1) |
---|
| 1387 | SSWBOX(JL,ICBOX) = -ZFSDWN(JL,1) |
---|
| 1388 | TAUBOX(JL,ICBOX) = ZTAUINT(JL) |
---|
| 1389 | ZTCA(JL) = ZTCA(JL) + ZWGHT*ZCOL(JL) |
---|
| 1390 | ! print 9508,ICBOX,ASWBOX(JL,ICBOX),OLRBOX(JL,ICBOX),SLWBOX(JL,ICBOX) & |
---|
| 1391 | ! & ,SSWBOX(JL,ICBOX),TAUBOX(JL,ICBOX),ZCOL(JL),ZTCA(JL),ZTCC(JL) |
---|
| 1392 | 9508 format(1x,'radlsw',I3,5F10.3,1x,3F7.4) |
---|
| 1393 | ENDDO |
---|
| 1394 | |
---|
| 1395 | |
---|
| 1396 | ENDDO |
---|
| 1397 | ! |
---|
| 1398 | !-- end of box-type calculations |
---|
| 1399 | ! |
---|
| 1400 | |
---|
| 1401 | DO JK = 1 , KLEV+1 |
---|
| 1402 | DO JL = KIDIA,KFDIA |
---|
| 1403 | PFLS(JL,JK) = CPFLS(JL,JK) |
---|
| 1404 | PFLT(JL,JK) = CPFLT(JL,JK) |
---|
| 1405 | PFCS(JL,JK) = CPFCS(JL,JK) |
---|
| 1406 | PFCT(JL,JK) = CPFCT(JL,JK) |
---|
| 1407 | PFDCT(JL,JK) = CPFDCT(JL,JK) |
---|
| 1408 | PFUCT(JL,JK) = CPFUCT(JL,JK) |
---|
| 1409 | PFDLT(JL,JK) = CPFDLT(JL,JK) |
---|
| 1410 | PFULT(JL,JK) = CPFULT(JL,JK) |
---|
| 1411 | PFDCS(JL,JK) = CPFDCS(JL,JK) |
---|
| 1412 | PFUCS(JL,JK) = CPFUCS(JL,JK) |
---|
| 1413 | PFDLS(JL,JK) = CPFDLS(JL,JK) |
---|
| 1414 | PFULS(JL,JK) = CPFULS(JL,JK) |
---|
| 1415 | ENDDO |
---|
| 1416 | ENDDO |
---|
| 1417 | |
---|
| 1418 | DO JL = KIDIA,KFDIA |
---|
| 1419 | PFRSOD(JL) = CPFRSOD(JL) |
---|
| 1420 | PEMIT (JL) = CPEMIT (JL) |
---|
| 1421 | PSUDU (JL) = CPSUDU (JL) |
---|
| 1422 | PUVDF (JL) = CPUVDF (JL) |
---|
| 1423 | PPARF (JL) = CPPARF (JL) |
---|
| 1424 | ENDDO |
---|
| 1425 | |
---|
| 1426 | !-- re-organize the box-tyoe output arrays in decreasing order of TAU |
---|
| 1427 | DO JL=KIDIA,KFDIA |
---|
| 1428 | DO ICBOX=2,NBOX |
---|
| 1429 | ZTOI=TAUBOX(JL,ICBOX) |
---|
| 1430 | DO IMOV=ICBOX-1,1,-1 |
---|
| 1431 | IF(TAUBOX(JL,IMOV).LE.ZTOI) GO TO 8001 |
---|
| 1432 | TAUBOX(JL,IMOV+1)=TAUBOX(JL,IMOV) |
---|
| 1433 | END DO |
---|
| 1434 | IMOV=0 |
---|
| 1435 | 8001 CONTINUE |
---|
| 1436 | TAUBOX(JL,IMOV+1)=ZTOI |
---|
| 1437 | END DO |
---|
| 1438 | END DO |
---|
| 1439 | |
---|
| 1440 | !-- re-organize the box-type output arrays in decreasing order of ASW |
---|
| 1441 | DO JL=KIDIA,KFDIA |
---|
| 1442 | DO ICBOX=2,NBOX |
---|
| 1443 | ZASW=ASWBOX(JL,ICBOX) |
---|
| 1444 | DO IMOV=ICBOX-1,1,-1 |
---|
| 1445 | IF(ASWBOX(JL,IMOV).LE.ZASW) GO TO 8002 |
---|
| 1446 | ASWBOX(JL,IMOV+1)=ASWBOX(JL,IMOV) |
---|
| 1447 | END DO |
---|
| 1448 | IMOV=0 |
---|
| 1449 | 8002 CONTINUE |
---|
| 1450 | ASWBOX(JL,IMOV+1)=ZASW |
---|
| 1451 | END DO |
---|
| 1452 | END DO |
---|
| 1453 | |
---|
| 1454 | !-- re-organize the box-tyoe output arrays in decreasing order of -OLR |
---|
| 1455 | DO JL=KIDIA,KFDIA |
---|
| 1456 | DO ICBOX=2,NBOX |
---|
| 1457 | ZOLR=OLRBOX(JL,ICBOX) |
---|
| 1458 | DO IMOV=ICBOX-1,1,-1 |
---|
| 1459 | IF(OLRBOX(JL,IMOV).LE.ZOLR) GO TO 8003 |
---|
| 1460 | OLRBOX(JL,IMOV+1)=OLRBOX(JL,IMOV) |
---|
| 1461 | END DO |
---|
| 1462 | IMOV=0 |
---|
| 1463 | 8003 CONTINUE |
---|
| 1464 | OLRBOX(JL,IMOV+1)=ZOLR |
---|
| 1465 | END DO |
---|
| 1466 | END DO |
---|
| 1467 | |
---|
| 1468 | !-- re-organize the box-tyoe output arrays in decreasing order of SLW |
---|
| 1469 | DO JL=KIDIA,KFDIA |
---|
| 1470 | DO ICBOX=2,NBOX |
---|
| 1471 | ZSLW=SLWBOX(JL,ICBOX) |
---|
| 1472 | DO IMOV=ICBOX-1,1,-1 |
---|
| 1473 | IF(SLWBOX(JL,IMOV).LE.ZSLW) GO TO 8004 |
---|
| 1474 | SLWBOX(JL,IMOV+1)=SLWBOX(JL,IMOV) |
---|
| 1475 | END DO |
---|
| 1476 | IMOV=0 |
---|
| 1477 | 8004 CONTINUE |
---|
| 1478 | SLWBOX(JL,IMOV+1)=ZSLW |
---|
| 1479 | END DO |
---|
| 1480 | END DO |
---|
| 1481 | |
---|
| 1482 | !-- re-organize the box-type output arrays in decreasing order of -SSW |
---|
| 1483 | DO JL=KIDIA,KFDIA |
---|
| 1484 | DO ICBOX=2,NBOX |
---|
| 1485 | ZSSW=SSWBOX(JL,ICBOX) |
---|
| 1486 | DO IMOV=ICBOX-1,1,-1 |
---|
| 1487 | IF(SSWBOX(JL,IMOV).LE.ZSSW) GO TO 8005 |
---|
| 1488 | SSWBOX(JL,IMOV+1)=SSWBOX(JL,IMOV) |
---|
| 1489 | END DO |
---|
| 1490 | IMOV=0 |
---|
| 1491 | 8005 CONTINUE |
---|
| 1492 | SSWBOX(JL,IMOV+1)=ZSSW |
---|
| 1493 | END DO |
---|
| 1494 | END DO |
---|
| 1495 | |
---|
| 1496 | !-- put all arrays as positive numbers for plotting |
---|
| 1497 | DO JL=KIDIA,KFDIA |
---|
| 1498 | DO ICBOX=1,NBOX |
---|
| 1499 | ASWBOX(JL,ICBOX)=-ASWBOX(JL,ICBOX) |
---|
| 1500 | OLRBOX(JL,ICBOX)=-OLRBOX(JL,ICBOX) |
---|
| 1501 | SSWBOX(JL,ICBOX)=-SSWBOX(JL,ICBOX) |
---|
| 1502 | END DO |
---|
| 1503 | END DO |
---|
| 1504 | |
---|
| 1505 | ! -------------------------------------------------------------- |
---|
| 1506 | |
---|
| 1507 | RETURN |
---|
| 1508 | END SUBROUTINE RADLSW |
---|