Changeset 2160 for LMDZ5/branches/testing/libf/phylmd/rrtm/recmwf_aero.F90
- Timestamp:
- Nov 28, 2014, 4:36:29 PM (10 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2072,2075-2115,2117-2126,2128-2158
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/rrtm/recmwf_aero.F90
r2056 r2160 20 20 & PPIZA_NAT,PCGA_NAT,PTAU_NAT, & 21 21 !--fin OB 22 !--C.Kleinschmitt 23 & PTAU_LW_TOT, PTAU_LW_NAT, & 24 !--end 22 25 & PFLUX,PFLUC,& 23 26 & PFSDN ,PFSUP , PFSCDN , PFSCUP,& … … 27 30 & PTOPSWAIAERO,PSOLSWAIAERO,& 28 31 & PTOPSWCFAERO,PSOLSWCFAERO,& 32 !--LW diagnostics CK 33 & PTOPLWADAERO,PSOLLWADAERO,& 34 & PTOPLWAD0AERO,PSOLLWAD0AERO,& 35 & PTOPLWAIAERO,PSOLLWAIAERO,& 36 !..end 29 37 & ok_ade, ok_aie, flag_aerosol,flag_aerosol_strat) 30 38 !--fin … … 79 87 ! PCGA_NAT : (KPROMA,KLEV,NSW); Assymetry factor for natural aerosol 80 88 ! PTAU_NAT: (KPROMA,KLEV,NSW) ; Optical depth of natural aerosol 89 ! PTAU_LW_TOT (KPROMA,KLEV,NLW); LW Optical depth of total aerosols 90 ! PTAU_LW_NAT (KPROMA,KLEV,NLW); LW Optical depth of natural aerosols 81 91 !--fin OB 82 92 … … 136 146 USE YOMCST , ONLY : RMD ,RMO3 137 147 USE YOMPHY3 , ONLY : RII0 148 USE YOERAD , ONLY : NLW, NAER, RCCNLND ,RCCNSEA 138 149 USE YOERAD , ONLY : NAER, RCCNLND ,RCCNSEA 139 150 USE YOERDU , ONLY : REPSCQ … … 150 161 IMPLICIT NONE 151 162 INCLUDE "clesphys.h" 163 152 164 153 165 INTEGER(KIND=JPIM),INTENT(IN) :: KPROMA … … 186 198 REAL(KIND=JPRB) :: PTAU_ZERO(KPROMA,KLEV,NSW) 187 199 !--fin 200 !--C.Kleinschmitt 201 REAL(KIND=JPRB) :: PTAU_LW_ZERO(KPROMA,KLEV,NLW) 202 REAL(KIND=JPRB) ,INTENT(IN) :: PTAU_LW_TOT(KPROMA,KLEV,NLW) 203 REAL(KIND=JPRB) ,INTENT(IN) :: PTAU_LW_NAT(KPROMA,KLEV,NLW) 204 !--end 188 205 REAL(KIND=JPRB) ,INTENT(IN) :: PREF_LIQ(KPROMA,KLEV) 189 206 REAL(KIND=JPRB) ,INTENT(IN) :: PREF_ICE(KPROMA,KLEV) … … 199 216 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPSWCFAERO(KPROMA,3), PSOLSWCFAERO(KPROMA,3) !--do we keep this ? 200 217 !--fin 218 !--CK 219 REAL(KIND=JPRB) ,INTENT(out) :: PTOPLWADAERO(KPROMA), PSOLLWADAERO(KPROMA) ! LW Aerosol direct forcing at TOA + surface 220 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPLWAD0AERO(KPROMA), PSOLLWAD0AERO(KPROMA) ! LW Aerosol direct forcing at TOA + surface 221 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPLWAIAERO(KPROMA), PSOLLWAIAERO(KPROMA) ! LW Aer. indirect forcing at TOA + surface 222 !--end 201 223 REAL(KIND=JPRB) ,INTENT(OUT) :: PEMTD(KPROMA,KLEV+1) 202 224 REAL(KIND=JPRB) ,INTENT(OUT) :: PEMTU(KPROMA,KLEV+1) … … 295 317 REAL(KIND=JPRB) :: ZFSUP0_AERO(KPROMA,KLEV+1,5) 296 318 REAL(KIND=JPRB) :: ZFSDN0_AERO(KPROMA,KLEV+1,5) 319 !--LW (CK): 320 REAL(KIND=JPRB) :: LWUP_AERO(KPROMA,KLEV+1,5) 321 REAL(KIND=JPRB) :: LWDN_AERO(KPROMA,KLEV+1,5) 322 REAL(KIND=JPRB) :: LWUP0_AERO(KPROMA,KLEV+1,5) 323 REAL(KIND=JPRB) :: LWDN0_AERO(KPROMA,KLEV+1,5) 297 324 298 325 #include "radlsw.intfb.h" … … 313 340 ZFSDN0_AERO(:,:,:)=0. 314 341 342 LWUP_AERO (:,:,:)=0. 343 LWDN_AERO (:,:,:)=0. 344 LWUP0_AERO(:,:,:)=0. 345 LWDN0_AERO(:,:,:)=0. 346 315 347 PTAU_ZERO(:,:,:) =1.e-15 316 348 PPIZA_ZERO(:,:,:)=1.0 317 349 PCGA_ZERO(:,:,:) =0.0 350 351 PTAU_LW_ZERO(:,:,:) =1.e-15 318 352 319 353 … … 431 465 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 432 466 & PSFSWDIF,PFSDNN, PFSDNV ,& 433 & LRDUST,PPIZA_NAT,PCGA_NAT,PTAU_NAT,P FLUX,PFLUC,&467 & LRDUST,PPIZA_NAT,PCGA_NAT,PTAU_NAT,PTAU_LW_NAT,PFLUX,PFLUC,& 434 468 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 435 469 … … 440 474 ZFSUP_AERO(:,:,1) = PFSUP(:,:) 441 475 ZFSDN_AERO(:,:,1) = PFSDN(:,:) 476 477 LWUP0_AERO(:,:,1) = PFLUC(:,1,:) 478 LWDN0_AERO(:,:,1) = PFLUC(:,2,:) 479 480 LWUP_AERO(:,:,1) = PFLUX(:,1,:) 481 LWDN_AERO(:,:,1) = PFLUX(:,2,:) 442 482 443 483 ENDIF … … 463 503 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 464 504 & PSFSWDIF,PFSDNN, PFSDNV ,& 465 & LRDUST,PPIZA_NAT,PCGA_NAT,PTAU_NAT,P FLUX,PFLUC,&505 & LRDUST,PPIZA_NAT,PCGA_NAT,PTAU_NAT,PTAU_LW_NAT,PFLUX,PFLUC,& 466 506 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 467 507 … … 472 512 ZFSUP_AERO(:,:,2) = PFSUP(:,:) 473 513 ZFSDN_AERO(:,:,2) = PFSDN(:,:) 514 515 LWUP0_AERO(:,:,2) = PFLUC(:,1,:) 516 LWDN0_AERO(:,:,2) = PFLUC(:,2,:) 517 518 LWUP_AERO(:,:,2) = PFLUX(:,1,:) 519 LWDN_AERO(:,:,2) = PFLUX(:,2,:) 474 520 475 521 ENDIF ! ok_aie … … 495 541 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 496 542 & PSFSWDIF,PFSDNN, PFSDNV ,& 497 & LRDUST,PPIZA_TOT,PCGA_TOT,PTAU_TOT,P FLUX,PFLUC,&543 & LRDUST,PPIZA_TOT,PCGA_TOT,PTAU_TOT,PTAU_LW_TOT,PFLUX,PFLUC,& 498 544 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 499 545 … … 504 550 ZFSUP_AERO(:,:,3) = PFSUP(:,:) 505 551 ZFSDN_AERO(:,:,3) = PFSDN(:,:) 552 553 LWUP0_AERO(:,:,3) = PFLUC(:,1,:) 554 LWDN0_AERO(:,:,3) = PFLUC(:,2,:) 555 556 LWUP_AERO(:,:,3) = PFLUX(:,1,:) 557 LWDN_AERO(:,:,3) = PFLUX(:,2,:) 506 558 507 559 ENDIF !-end ok_ade … … 527 579 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 528 580 & PSFSWDIF,PFSDNN, PFSDNV ,& 529 & LRDUST,PPIZA_TOT,PCGA_TOT,PTAU_TOT,P FLUX,PFLUC,&581 & LRDUST,PPIZA_TOT,PCGA_TOT,PTAU_TOT,PTAU_LW_TOT,PFLUX,PFLUC,& 530 582 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 531 583 … … 536 588 ZFSUP_AERO(:,:,4) = PFSUP(:,:) 537 589 ZFSDN_AERO(:,:,4) = PFSDN(:,:) 590 591 LWUP0_AERO(:,:,4) = PFLUC(:,1,:) 592 LWDN0_AERO(:,:,4) = PFLUC(:,2,:) 593 594 LWUP_AERO(:,:,4) = PFLUX(:,1,:) 595 LWDN_AERO(:,:,4) = PFLUX(:,2,:) 538 596 539 597 ENDIF ! ok_ade .and. ok_aie … … 563 621 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 564 622 & PSFSWDIF,PFSDNN, PFSDNV ,& 565 & LRDUST,PPIZA_ZERO,PCGA_ZERO,PTAU_ZERO, PFLUX,PFLUC,&623 & LRDUST,PPIZA_ZERO,PCGA_ZERO,PTAU_ZERO, PTAU_LW_ZERO,PFLUX,PFLUC,& 566 624 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 567 625 … … 572 630 ZFSUP_AERO(:,:,5) = PFSUP(:,:) 573 631 ZFSDN_AERO(:,:,5) = PFSDN(:,:) 632 633 LWUP0_AERO(:,:,5) = PFLUC(:,1,:) 634 LWDN0_AERO(:,:,5) = PFLUC(:,2,:) 635 636 LWUP_AERO(:,:,5) = PFLUX(:,1,:) 637 LWDN_AERO(:,:,5) = PFLUX(:,2,:) 574 638 575 639 ENDIF ! .not. AEROSOLFEEDBACK_ACTIVE … … 643 707 PFSCUP(:,:) = ZFSUP0_AERO(:,:,4) 644 708 PFSCDN(:,:) = ZFSDN0_AERO(:,:,4) 709 710 PFLUX(:,1,:) = LWUP_AERO(:,:,4) 711 PFLUX(:,2,:) = LWDN_AERO(:,:,4) 712 PFLUC(:,1,:) = LWUP0_AERO(:,:,4) 713 PFLUC(:,2,:) = LWDN0_AERO(:,:,4) 645 714 ENDIF 646 715 … … 650 719 PFSCUP(:,:) = ZFSUP0_AERO(:,:,3) 651 720 PFSCDN(:,:) = ZFSDN0_AERO(:,:,3) 721 722 PFLUX(:,1,:) = LWUP_AERO(:,:,3) 723 PFLUX(:,2,:) = LWDN_AERO(:,:,3) 724 PFLUC(:,1,:) = LWUP0_AERO(:,:,3) 725 PFLUC(:,2,:) = LWDN0_AERO(:,:,3) 652 726 ENDIF 653 727 … … 657 731 PFSCUP(:,:) = ZFSUP0_AERO(:,:,2) 658 732 PFSCDN(:,:) = ZFSDN0_AERO(:,:,2) 733 734 PFLUX(:,1,:) = LWUP_AERO(:,:,2) 735 PFLUX(:,2,:) = LWDN_AERO(:,:,2) 736 PFLUC(:,1,:) = LWUP0_AERO(:,:,2) 737 PFLUC(:,2,:) = LWDN0_AERO(:,:,2) 659 738 ENDiF 660 739 … … 664 743 PFSCUP(:,:) = ZFSUP0_AERO(:,:,1) 665 744 PFSCDN(:,:) = ZFSDN0_AERO(:,:,1) 745 746 PFLUX(:,1,:) = LWUP_AERO(:,:,1) 747 PFLUX(:,2,:) = LWDN_AERO(:,:,1) 748 PFLUC(:,1,:) = LWUP0_AERO(:,:,1) 749 PFLUC(:,2,:) = LWDN0_AERO(:,:,1) 666 750 ENDIF 667 751 … … 677 761 PFSCDN(:,:) = ZFSDN0_AERO(:,:,5) 678 762 763 PFLUX(:,1,:) = LWUP_AERO(:,:,5) 764 PFLUX(:,2,:) = LWDN_AERO(:,:,5) 765 PFLUC(:,1,:) = LWUP0_AERO(:,:,5) 766 PFLUC(:,2,:) = LWDN0_AERO(:,:,5) 767 679 768 ENDIF 680 769 … … 683 772 ! requires a natural aerosol field read and used 684 773 ! Difference of net fluxes from double call to radiation 685 ! Will need to be extended to LW radiation 774 ! Will need to be extended to LW radiation -> done by CK (2014-05-23) 686 775 687 776 IF (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) THEN … … 709 798 PTOPSWCFAERO(:,3) = 0.0 710 799 800 ! LW direct anthropogenic forcing 801 PSOLLWADAERO(:) = (-LWDN_AERO(:,1,4) -LWUP_AERO(:,1,4)) -(-LWDN_AERO(:,1,2) -LWUP_AERO(:,1,2)) 802 PTOPLWADAERO(:) = (-LWDN_AERO(:,KLEV+1,4) -LWUP_AERO(:,KLEV+1,4)) -(-LWDN_AERO(:,KLEV+1,2) -LWUP_AERO(:,KLEV+1,2)) 803 PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,4) -LWUP0_AERO(:,1,4)) -(-LWDN0_AERO(:,1,2) -LWUP0_AERO(:,1,2)) 804 PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,4)-LWUP0_AERO(:,KLEV+1,4))-(-LWDN0_AERO(:,KLEV+1,2)-LWUP0_AERO(:,KLEV+1,2)) 805 806 ! LW indirect anthropogenic forcing 807 PSOLLWAIAERO(:) = (-LWDN_AERO(:,1,4) -LWUP_AERO(:,1,4)) -(-LWDN_AERO(:,1,3) -LWUP_AERO(:,1,3)) 808 PTOPLWAIAERO(:) = (-LWDN_AERO(:,KLEV+1,4)-LWUP_AERO(:,KLEV+1,4))-(-LWDN_AERO(:,KLEV+1,3)-LWUP_AERO(:,KLEV+1,3)) 809 711 810 ENDIF 712 811 … … 733 832 PTOPSWCFAERO(:,3) = 0.0 734 833 834 ! LW direct anthropogenic forcing 835 PSOLLWADAERO(:) = (-LWDN_AERO(:,1,3) -LWUP_AERO(:,1,3)) -(-LWDN_AERO(:,1,1) -LWUP_AERO(:,1,1)) 836 PTOPLWADAERO(:) = (-LWDN_AERO(:,KLEV+1,3) -LWUP_AERO(:,KLEV+1,3)) -(-LWDN_AERO(:,KLEV+1,1) -LWUP_AERO(:,KLEV+1,1)) 837 PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,3) -LWUP0_AERO(:,1,3)) -(-LWDN0_AERO(:,1,1) -LWUP0_AERO(:,1,1)) 838 PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,3)-LWUP0_AERO(:,KLEV+1,3))-(-LWDN0_AERO(:,KLEV+1,1)-LWUP0_AERO(:,KLEV+1,1)) 839 840 ! LW indirect anthropogenic forcing 841 PSOLLWAIAERO(:) = 0.0 842 PTOPLWAIAERO(:) = 0.0 843 735 844 ENDIF 736 845 … … 757 866 PTOPSWCFAERO(:,3) = 0.0 758 867 868 ! LW direct anthropogenic forcing 869 PSOLLWADAERO(:) = 0.0 870 PTOPLWADAERO(:) = 0.0 871 PSOLLWAD0AERO(:) = 0.0 872 PTOPLWAD0AERO(:) = 0.0 873 874 ! LW indirect anthropogenic forcing 875 PSOLLWAIAERO(:) = (-LWDN_AERO(:,1,2) -LWUP_AERO(:,1,2)) -(-LWDN_AERO(:,1,1) -LWUP_AERO(:,1,1)) 876 PTOPLWAIAERO(:) = (-LWDN_AERO(:,KLEV+1,2)-LWUP_AERO(:,KLEV+1,2))-(-LWDN_AERO(:,KLEV+1,1)-LWUP_AERO(:,KLEV+1,1)) 877 759 878 ENDIF 760 879 … … 781 900 PTOPSWCFAERO(:,3) = 0.0 782 901 902 ! LW direct anthropogenic forcing 903 PSOLLWADAERO(:) = 0.0 904 PTOPLWADAERO(:) = 0.0 905 PSOLLWAD0AERO(:) = 0.0 906 PTOPLWAD0AERO(:) = 0.0 907 908 ! LW indirect anthropogenic forcing 909 PSOLLWAIAERO(:) = 0.0 910 PTOPLWAIAERO(:) = 0.0 911 783 912 ENDIF 784 913 … … 790 919 PSOLSWCFAERO(:,3) = (ZFSDN_AERO(:,1,5) -ZFSUP_AERO(:,1,5)) -(ZFSDN0_AERO(:,1,5) -ZFSUP0_AERO(:,1,5)) 791 920 PTOPSWCFAERO(:,3) = (ZFSDN_AERO(:,KLEV+1,5)-ZFSUP_AERO(:,KLEV+1,5))-(ZFSDN0_AERO(:,KLEV+1,5)-ZFSUP0_AERO(:,KLEV+1,5)) 921 792 922 ENDIF 793 923
Note: See TracChangeset
for help on using the changeset viewer.