Changeset 517 for LMDZ.3.3/branches/rel-LF/libf/phylmd/radlwsw.F
- Timestamp:
- Apr 16, 2004, 5:43:38 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/radlwsw.F
r503 r517 1 cIM SUBROUTINE radlwsw(dist, rmu0, fract, co2_ppm, solaire,2 1 SUBROUTINE radlwsw(dist, rmu0, fract, 3 2 . paprs, pplay,tsol,albedo, alblw, t,q,wo, 4 . cldfra, cldemi, cldtau ,3 . cldfra, cldemi, cldtaupd, 5 4 . heat,heat0,cool,cool0,radsol,albpla, 6 5 . topsw,toplw,solsw,sollw, 7 6 . sollwdown, 8 cIM . sollwdown, sollwdownclr,9 cIM . toplwdown, toplwdownclr,10 7 . topsw0,toplw0,solsw0,sollw0, 11 cIM BEG12 8 . lwdn0, lwdn, lwup0, lwup, 13 cIM END 14 . swdn0, swdn, swup0, swup ) 9 . swdn0, swdn, swup0, swup, 10 . ok_ade, ok_aie, 11 . tau_ae, piz_ae, cg_ae, 12 . topswad, solswad, 13 . cldtaupi, topswai, solswai) 14 c 15 15 IMPLICIT none 16 16 c====================================================================== … … 31 31 c wo-------input-R- contenu en ozone (en cm.atm) 32 32 c cldfra---input-R- fraction nuageuse (entre 0 et 1) 33 c cldtau ---input-R- epaisseur optique des nuages dans le visible33 c cldtaupd---input-R- epaisseur optique des nuages dans le visible (present-day value) 34 34 c cldemi---input-R- emissivite des nuages dans l'IR (entre 0 et 1) 35 c ok_ade---input-L- apply the Aerosol Direct Effect or not? 36 c ok_aie---input-L- apply the Aerosol Indirect Effect or not? 37 c tau_ae, piz_ae, cg_ae-input-R- aerosol optical properties (calculated in aeropt.F) 38 c cldtaupi-input-R- epaisseur optique des nuages dans le visible 39 c calculated for pre-industrial (pi) aerosol concentrations, i.e. with smaller 40 c droplet concentration, thus larger droplets, thus generally cdltaupi cldtaupd 41 c it is needed for the diagnostics of the aerosol indirect radiative forcing 35 42 c 36 43 c heat-----output-R- echauffement atmospherique (visible) (K/jour) … … 42 49 c solsw----output-R- flux solaire net a la surface 43 50 c sollw----output-R- ray. IR montant a la surface 51 c solswad---output-R- ray. solaire net absorbe a la surface (aerosol dir) 52 c topswad---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol dir) 53 c solswai---output-R- ray. solaire net absorbe a la surface (aerosol ind) 54 c topswai---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol ind) 55 c 56 c ATTENTION: swai and swad have to be interpreted in the following manner: 57 c --------- 58 c ok_ade=F & ok_aie=F -both are zero 59 c ok_ade=T & ok_aie=F -aerosol direct forcing is F_{AD} = topsw-topswad 60 c indirect is zero 61 c ok_ade=F & ok_aie=T -aerosol indirect forcing is F_{AI} = topsw-topswai 62 c direct is zero 63 c ok_ade=T & ok_aie=T -aerosol indirect forcing is F_{AI} = topsw-topswai 64 c aerosol direct forcing is F_{AD} = topswai-topswad 65 c 66 44 67 c====================================================================== 45 68 #include "dimensions.h" … … 56 79 real albedo(klon), alblw(klon), tsol(klon) 57 80 real t(klon,klev), q(klon,klev), wo(klon,klev) 58 real cldfra(klon,klev), cldemi(klon,klev), cldtau (klon,klev)81 real cldfra(klon,klev), cldemi(klon,klev), cldtaupd(klon,klev) 59 82 real heat(klon,klev), cool(klon,klev) 60 83 real heat0(klon,klev), cool0(klon,klev) … … 123 146 REAL lwup(klon,kflev+1),lwup0(klon,kflev+1) 124 147 cIM END 125 c--------------------------------------------------------------- 148 c-OB 149 cjq the following quantities are needed for the aerosol radiative forcings 150 151 real topswad(klon), solswad(klon) ! output: aerosol direct forcing at TOA and surface 152 real topswai(klon), solswai(klon) ! output: aerosol indirect forcing atTOA and surface 153 real tau_ae(klon,klev,2), piz_ae(klon,klev,2), cg_ae(klon,klev,2) ! aerosol optical properties (see aeropt.F) 154 real cldtaupi(klon,klev) ! cloud optical thickness for pre-industrial aerosol concentrations 155 ! (i.e., with a smaller droplet concentrationand thus larger droplet radii) 156 logical ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 157 real*8 tauae(kdlon,kflev,2) ! aer opt properties 158 real*8 pizae(kdlon,kflev,2) 159 real*8 cgae(kdlon,kflev,2) 160 REAL*8 PTAUA(kdlon,2,kflev) ! present-day value of cloud opt thickness (PTAU is pre-industrial value), local use 161 REAL*8 POMEGAA(kdlon,2,kflev) ! dito for single scatt albedo 162 REAL*8 ztopswad(kdlon), zsolswad(kdlon) ! Aerosol direct forcing at TOAand surface 163 REAL*8 ztopswai(kdlon), zsolswai(kdlon) ! dito, indirect 164 cjq-end 165 166 c 167 c------------------------------------------- 126 168 nb_gr = klon / kdlon 127 169 IF (nb_gr*kdlon .NE. klon) THEN … … 202 244 PCLDLU(i,k) = cldfra(iof+i,k)*cldemi(iof+i,k) 203 245 PCLDSW(i,k) = cldfra(iof+i,k) 204 PTAU(i,1,k) = MAX(cldtau (iof+i,k), 1.0e-05)! 1e-12 serait instable205 PTAU(i,2,k) = MAX(cldtau (iof+i,k), 1.0e-05)! pour 32-bit machines246 PTAU(i,1,k) = MAX(cldtaupi(iof+i,k), 1.0e-05)! 1e-12 serait instable 247 PTAU(i,2,k) = MAX(cldtaupi(iof+i,k), 1.0e-05)! pour 32-bit machines 206 248 POMEGA(i,1,k) = 0.9999 - 5.0e-04 * EXP(-0.5 * PTAU(i,1,k)) 207 249 POMEGA(i,2,k) = 0.9988 - 2.5e-03 * EXP(-0.05 * PTAU(i,2,k)) 208 250 PCG(i,1,k) = 0.865 209 251 PCG(i,2,k) = 0.910 252 c-OB 253 cjq Introduced for aerosol indirect forcings. 254 cjq The following values use the cloud optical thickness calculated from 255 cjq present-day aerosol concentrations whereas the quantities without the 256 cjq "A" at the end are for pre-industial (natural-only) aerosol concentrations 257 cjq 258 PTAUA(i,1,k) = MAX(cldtaupd(iof+i,k), 1.0e-05)! 1e-12 serait instable 259 PTAUA(i,2,k) = MAX(cldtaupd(iof+i,k), 1.0e-05)! pour 32-bit machines 260 POMEGAA(i,1,k) = 0.9999 - 5.0e-04 * EXP(-0.5 * PTAUA(i,1,k)) 261 POMEGAA(i,2,k) = 0.9988 - 2.5e-03 * EXP(-0.05 * PTAUA(i,2,k)) 262 cjq-end 210 263 ENDDO 211 264 ENDDO … … 222 275 PAER(i,k,kk) = 1.0E-15 223 276 ENDDO 277 ENDDO 278 ENDDO 279 c-OB 280 DO k = 1, kflev 281 DO i = 1, kdlon 282 tauae(i,k,1)=tau_ae(iof+i,k,1) 283 pizae(i,k,1)=piz_ae(iof+i,k,1) 284 cgae(i,k,1) =cg_ae(iof+i,k,1) 285 tauae(i,k,2)=tau_ae(iof+i,k,2) 286 pizae(i,k,2)=piz_ae(iof+i,k,2) 287 cgae(i,k,2) =cg_ae(iof+i,k,2) 224 288 ENDDO 225 289 ENDDO … … 247 311 S zheat, zheat0, 248 312 S zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0, 249 S ZFSUP,ZFSDN,ZFSUP0,ZFSDN0) 313 S ZFSUP,ZFSDN,ZFSUP0,ZFSDN0, 314 S tauae, pizae, cgae, ! aerosol optical properties 315 s PTAUA, POMEGAA, 316 s ztopswad,zsolswad,ztopswai,zsolswai, ! diagnosed aerosol forcing 317 J ok_ade, ok_aie) ! apply aerosol effects or not? 318 250 319 c====================================================================== 251 320 DO i = 1, kdlon … … 292 361 c swup ( iof+i,2) = ZFSUP ( i,kflev + 1 ) 293 362 ENDDO 363 cjq-transform the aerosol forcings, if they have 364 cjq to be calculated 365 IF (ok_ade) THEN 366 DO i = 1, kdlon 367 topswad(iof+i) = ztopswad(i) 368 solswad(iof+i) = zsolswad(i) 369 ENDDO 370 ELSE 371 DO i = 1, kdlon 372 topswad(iof+i) = 0.0 373 solswad(iof+i) = 0.0 374 ENDDO 375 ENDIF 376 IF (ok_aie) THEN 377 DO i = 1, kdlon 378 topswai(iof+i) = ztopswai(i) 379 solswai(iof+i) = zsolswai(i) 380 ENDDO 381 ELSE 382 DO i = 1, kdlon 383 topswai(iof+i) = 0.0 384 solswai(iof+i) = 0.0 385 ENDDO 386 ENDIF 387 cjq-end 294 388 DO k = 1, kflev 295 389 c DO i = 1, kdlon … … 321 415 S PHEAT, PHEAT0, 322 416 S PALBPLA,PTOPSW,PSOLSW,PTOPSW0,PSOLSW0, 323 S ZFSUP,ZFSDN,ZFSUP0,ZFSDN0) 417 S ZFSUP,ZFSDN,ZFSUP0,ZFSDN0, 418 S tauae, pizae, cgae, 419 s PTAUA, POMEGAA, 420 S PTOPSWAD,PSOLSWAD,PTOPSWAI,PSOLSWAI, 421 J ok_ade, ok_aie ) 422 324 423 IMPLICIT none 325 424 … … 358 457 C ORIGINAL : 89-07-14 359 458 C 95-01-01 J.-J. MORCRETTE Direct/Diffuse Albedo 459 c 03-11-27 J. QUAAS Introduce aerosol forcings (based on BOUCHER) 360 460 C ------------------------------------------------------------------ 361 461 C … … 426 526 DATA itapsw /0/ 427 527 DATA appel1er /.TRUE./ 528 cjq-Introduced for aerosol forcings 529 real*8 flag_aer 530 logical ok_ade, ok_aie ! use aerosol forcings or not? 531 real*8 tauae(kdlon,kflev,2) ! aerosol optical properties 532 real*8 pizae(kdlon,kflev,2) ! (see aeropt.F) 533 real*8 cgae(kdlon,kflev,2) ! -"- 534 REAL*8 PTAUA(KDLON,2,KFLEV) ! CLOUD OPTICAL THICKNESS (pre-industrial value) 535 REAL*8 POMEGAA(KDLON,2,KFLEV) ! SINGLE SCATTERING ALBEDO 536 REAL*8 PTOPSWAD(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL DIR) 537 REAL*8 PSOLSWAD(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL DIR) 538 REAL*8 PTOPSWAI(KDLON) ! SHORTWAVE FLUX AT T.O.A.(+AEROSOL IND) 539 REAL*8 PSOLSWAI(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND) 540 cjq - Fluxes including aerosol effects 541 REAL*8 ZFSUPAD(KDLON,KFLEV+1) 542 REAL*8 ZFSDNAD(KDLON,KFLEV+1) 543 REAL*8 ZFSUPAI(KDLON,KFLEV+1) 544 REAL*8 ZFSDNAI(KDLON,KFLEV+1) 545 SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes 546 cjq-end 547 428 548 c 429 549 IF (appel1er) THEN … … 451 571 INU = 1 452 572 CALL SW1S(INU, 453 S PAER, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZCLDSW0, 573 S PAER, flag_aer, tauae, pizae, cgae, 574 S PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZCLDSW0, 454 575 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 455 576 S ZFD, ZFU) 456 577 INU = 2 457 578 CALL SW2S(INU, 458 S PAER, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZCLDSW0, 579 S PAER, flag_aer, tauae, pizae, cgae, 580 S ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZCLDSW0, 459 581 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 460 582 S PWV, PQS, … … 466 588 ENDDO 467 589 ENDDO 468 c cloudy-sky: 469 cIM ctes ds clesphys.h CALL SWU(PSCT,RCO2,PCLDSW,PPMB,PPSOL, 590 591 flag_aer=0.0 470 592 CALL SWU(PSCT,PCLDSW,PPMB,PPSOL, 471 593 S PRMU0,PFRAC,PTAVE,PWV, … … 473 595 INU = 1 474 596 CALL SW1S(INU, 475 S PAER, PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 597 S PAER, flag_aer, tauae, pizae, cgae, 598 S PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 476 599 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 477 600 S ZFD, ZFU) 478 601 INU = 2 479 602 CALL SW2S(INU, 480 S PAER, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 603 S PAER, flag_aer, tauae, pizae, cgae, 604 S ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 481 605 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 482 606 S PWV, PQS, 483 607 S ZFDOWN, ZFUP) 608 609 c cloudy-sky: 610 484 611 DO JK = 1 , KFLEV+1 485 612 DO JL = 1, KDLON … … 488 615 ENDDO 489 616 ENDDO 617 618 c 619 IF (ok_ade) THEN 490 620 c 621 c cloudy-sky + aerosol dir OB 622 flag_aer=1.0 623 CALL SWU(PSCT,PCLDSW,PPMB,PPSOL, 624 S PRMU0,PFRAC,PTAVE,PWV, 625 S ZAKI,ZCLD,ZCLEAR,ZDSIG,ZFACT,ZRMU,ZSEC,ZUD) 626 INU = 1 627 CALL SW1S(INU, 628 S PAER, flag_aer, tauae, pizae, cgae, 629 S PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 630 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 631 S ZFD, ZFU) 632 INU = 2 633 CALL SW2S(INU, 634 S PAER, flag_aer, tauae, pizae, cgae, 635 S ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 636 S ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, 637 S PWV, PQS, 638 S ZFDOWN, ZFUP) 639 DO JK = 1 , KFLEV+1 640 DO JL = 1, KDLON 641 ZFSUPAD(JL,JK) = ZFSUP(JL,JK) 642 ZFSDNAD(JL,JK) = ZFSDN(JL,JK) 643 ZFSUP(JL,JK) = (ZFUP(JL,JK) + ZFU(JL,JK)) * ZFACT(JL) 644 ZFSDN(JL,JK) = (ZFDOWN(JL,JK) + ZFD(JL,JK)) * ZFACT(JL) 645 ENDDO 646 ENDDO 647 648 ENDIF ! ok_ade 649 650 IF (ok_aie) THEN 651 652 cjq cloudy-sky + aerosol direct + aerosol indirect 653 flag_aer=1.0 654 CALL SWU(PSCT,PCLDSW,PPMB,PPSOL, 655 S PRMU0,PFRAC,PTAVE,PWV, 656 S ZAKI,ZCLD,ZCLEAR,ZDSIG,ZFACT,ZRMU,ZSEC,ZUD) 657 INU = 1 658 CALL SW1S(INU, 659 S PAER, flag_aer, tauae, pizae, cgae, 660 S PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 661 S ZDSIG, POMEGAA, ZOZ, ZRMU, ZSEC, PTAUA, ZUD, 662 S ZFD, ZFU) 663 INU = 2 664 CALL SW2S(INU, 665 S PAER, flag_aer, tauae, pizae, cgae, 666 S ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, PCLDSW, 667 S ZDSIG, POMEGAA, ZOZ, ZRMU, ZSEC, PTAUA, ZUD, 668 S PWV, PQS, 669 S ZFDOWN, ZFUP) 670 DO JK = 1 , KFLEV+1 671 DO JL = 1, KDLON 672 ZFSUPAI(JL,JK) = ZFSUP(JL,JK) 673 ZFSDNAI(JL,JK) = ZFSDN(JL,JK) 674 ZFSUP(JL,JK) = (ZFUP(JL,JK) + ZFU(JL,JK)) * ZFACT(JL) 675 ZFSDN(JL,JK) = (ZFDOWN(JL,JK) + ZFD(JL,JK)) * ZFACT(JL) 676 ENDDO 677 ENDDO 678 ENDIF ! ok_aie 679 cjq -end 680 491 681 itapsw = 0 492 682 ENDIF … … 512 702 PSOLSW0(i) = ZFSDN0(i,1) - ZFSUP0(i,1) 513 703 PTOPSW0(i) = ZFSDN0(i,KFLEV+1) - ZFSUP0(i,KFLEV+1) 704 c-OB 705 PSOLSWAD(i) = ZFSDNAD(i,1) - ZFSUPAD(i,1) 706 PTOPSWAD(i) = ZFSDNAD(i,KFLEV+1) - ZFSUPAD(i,KFLEV+1) 707 c 708 PSOLSWAI(i) = ZFSDNAI(i,1) - ZFSUPAI(i,1) 709 PTOPSWAI(i) = ZFSDNAI(i,KFLEV+1) - ZFSUPAI(i,KFLEV+1) 710 c-fin 514 711 ENDDO 515 712 C … … 707 904 END 708 905 SUBROUTINE SW1S ( KNU 709 S , PAER , PALBD , PALBP, PCG , PCLD , PCLEAR, PCLDSW 906 S , PAER , flag_aer, tauae, pizae, cgae 907 S , PALBD , PALBP, PCG , PCLD , PCLEAR, PCLDSW 710 908 S , PDSIG , POMEGA, POZ , PRMU , PSEC , PTAU , PUD 711 909 S , PFD , PFU) … … 748 946 C 749 947 INTEGER KNU 948 c-OB 949 real*8 flag_aer 950 real*8 tauae(kdlon,kflev,2) 951 real*8 pizae(kdlon,kflev,2) 952 real*8 cgae(kdlon,kflev,2) 750 953 REAL*8 PAER(KDLON,KFLEV,5) 751 954 REAL*8 PALBD(KDLON,2) … … 839 1042 C 840 1043 CALL SWCLR ( KNU 841 S , PAER , PALBP , PDSIG , ZRAYL, PSEC 1044 S , PAER , flag_aer, tauae, pizae, cgae 1045 S , PALBP , PDSIG , ZRAYL, PSEC 842 1046 S , ZCGAZ , ZPIZAZ, ZRAY1 , ZRAY2, ZREFZ, ZRJ0 843 1047 S , ZRK0 , ZRMU0 , ZTAUAZ, ZTRA1, ZTRA2) … … 939 1143 END 940 1144 SUBROUTINE SW2S ( KNU 941 S , PAER ,PAKI, PALBD, PALBP, PCG , PCLD, PCLEAR, PCLDSW 1145 S , PAER , flag_aer, tauae, pizae, cgae 1146 S , PAKI, PALBD, PALBP, PCG , PCLD, PCLEAR, PCLDSW 942 1147 S , PDSIG ,POMEGA,POZ , PRMU , PSEC , PTAU 943 1148 S , PUD ,PWV , PQS … … 986 1191 C 987 1192 INTEGER KNU 1193 c-OB 1194 real*8 flag_aer 1195 real*8 tauae(kdlon,kflev,2) 1196 real*8 pizae(kdlon,kflev,2) 1197 real*8 cgae(kdlon,kflev,2) 988 1198 REAL*8 PAER(KDLON,KFLEV,5) 989 1199 REAL*8 PAKI(KDLON,2) … … 1107 1317 C 1108 1318 CALL SWCLR ( KNU 1109 S , PAER , PALBP , PDSIG , ZRAYL, PSEC 1319 S , PAER , flag_aer, tauae, pizae, cgae 1320 S , PALBP , PDSIG , ZRAYL, PSEC 1110 1321 S , ZCGAZ , ZPIZAZ, ZRAY1 , ZRAY2, ZREFZ, ZRJ0 1111 1322 S , ZRK0 , ZRMU0 , ZTAUAZ, ZTRA1, ZTRA2) … … 1479 1690 END 1480 1691 SUBROUTINE SWCLR ( KNU 1481 S , PAER , PALBP , PDSIG , PRAYL , PSEC 1692 S , PAER , flag_aer, tauae, pizae, cgae 1693 S , PALBP , PDSIG , PRAYL , PSEC 1482 1694 S , PCGAZ , PPIZAZ, PRAY1 , PRAY2 , PREFZ , PRJ 1483 1695 S , PRK , PRMU0 , PTAUAZ, PTRA1 , PTRA2 ) … … 1512 1724 C 1513 1725 INTEGER KNU 1726 c-OB 1727 real*8 flag_aer 1728 real*8 tauae(kdlon,kflev,2) 1729 real*8 pizae(kdlon,kflev,2) 1730 real*8 cgae(kdlon,kflev,2) 1514 1731 REAL*8 PAER(KDLON,KFLEV,5) 1515 1732 REAL*8 PALBP(KDLON,2) … … 1576 1793 C 1577 1794 DO 108 JK = 1 , KFLEV 1578 DO 104 JL = 1, KDLON 1579 PCGAZ(JL,JK) = 0. 1580 PPIZAZ(JL,JK) = 0. 1581 PTAUAZ(JL,JK) = 0. 1582 104 CONTINUE 1583 DO 106 JAE=1,5 1795 c-OB 1796 c DO 104 JL = 1, KDLON 1797 c PCGAZ(JL,JK) = 0. 1798 c PPIZAZ(JL,JK) = 0. 1799 c PTAUAZ(JL,JK) = 0. 1800 c 104 CONTINUE 1801 c-OB 1802 c DO 106 JAE=1,5 1803 c DO 105 JL = 1, KDLON 1804 c PTAUAZ(JL,JK)=PTAUAZ(JL,JK) 1805 c S +PAER(JL,JK,JAE)*TAUA(KNU,JAE) 1806 c PPIZAZ(JL,JK)=PPIZAZ(JL,JK)+PAER(JL,JK,JAE) 1807 c S * TAUA(KNU,JAE)*RPIZA(KNU,JAE) 1808 c PCGAZ(JL,JK) = PCGAZ(JL,JK) +PAER(JL,JK,JAE) 1809 c S * TAUA(KNU,JAE)*RPIZA(KNU,JAE)*RCGA(KNU,JAE) 1810 c 105 CONTINUE 1811 c 106 CONTINUE 1812 c-OB 1584 1813 DO 105 JL = 1, KDLON 1585 PTAUAZ(JL,JK)=PTAUAZ(JL,JK) 1586 S +PAER(JL,JK,JAE)*TAUA(KNU,JAE) 1587 PPIZAZ(JL,JK)=PPIZAZ(JL,JK)+PAER(JL,JK,JAE) 1588 S * TAUA(KNU,JAE)*RPIZA(KNU,JAE) 1589 PCGAZ(JL,JK) = PCGAZ(JL,JK) +PAER(JL,JK,JAE) 1590 S * TAUA(KNU,JAE)*RPIZA(KNU,JAE)*RCGA(KNU,JAE) 1814 PTAUAZ(JL,JK)=flag_aer * tauae(JL,JK,KNU) 1815 PPIZAZ(JL,JK)=flag_aer * pizae(JL,JK,KNU) 1816 PCGAZ (JL,JK)=flag_aer * cgae(JL,JK,KNU) 1591 1817 105 CONTINUE 1592 106 CONTINUE 1593 C 1818 C 1819 IF (flag_aer.GT.0) THEN 1820 c-OB 1594 1821 DO 107 JL = 1, KDLON 1595 IF (KAER.NE.0) THEN 1596 PCGAZ(JL,JK)=PCGAZ(JL,JK)/PPIZAZ(JL,JK) 1597 PPIZAZ(JL,JK)=PPIZAZ(JL,JK)/PTAUAZ(JL,JK) 1822 c PCGAZ(JL,JK)=PCGAZ(JL,JK)/PPIZAZ(JL,JK) 1823 c PPIZAZ(JL,JK)=PPIZAZ(JL,JK)/PTAUAZ(JL,JK) 1598 1824 ZTRAY = PRAYL(JL) * PDSIG(JL,JK) 1599 1825 ZRATIO = ZTRAY / (ZTRAY + PTAUAZ(JL,JK)) … … 1604 1830 PPIZAZ(JL,JK) =ZRATIO+(1.-ZRATIO)*PPIZAZ(JL,JK)*(1.-ZFF) 1605 1831 S / (1. - PPIZAZ(JL,JK) * ZFF) 1832 107 CONTINUE 1606 1833 ELSE 1834 DO JL = 1, KDLON 1607 1835 ZTRAY = PRAYL(JL) * PDSIG(JL,JK) 1608 1836 PTAUAZ(JL,JK) = ZTRAY 1609 1837 PCGAZ(JL,JK) = 0. 1610 1838 PPIZAZ(JL,JK) = 1.-REPSCT 1611 END IF 1612 107 CONTINUE 1839 END DO 1840 END IF ! check flag_aer 1841 c 107 CONTINUE 1613 1842 c PRINT 9107,JK,((PAER(JL,JK,JAE),JAE=1,5) 1614 1843 c $ ,PTAUAZ(JL,JK),PPIZAZ(JL,JK),PCGAZ(JL,JK),JL=1,KDLON)
Note: See TracChangeset
for help on using the changeset viewer.