Changeset 5589 for LMDZ6/branches/contrails/libf/phylmd/rrtm
- Timestamp:
- Mar 26, 2025, 6:05:40 PM (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails/libf/phylmd/rrtm/recmwf_aero.F90
r5294 r5589 40 40 !..end 41 41 & ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat,& 42 & flag_aer_feedback) 42 & flag_aer_feedback, & 43 !--AB contrails radiative effect 44 & ok_rad_contrail, PCLFR_NOCONT, PQIWP_NOCONT, PREF_ICE_NOCONT, & 45 & PTOPSWNOCONT, PSOLSWNOCONT, PTOPLWNOCONT, PSOLLWNOCONT) 43 46 !--fin 44 47 … … 266 269 REAL(KIND=JPRB) ,INTENT(OUT) :: volmip_solsw(KPROMA) ! SW clear sky in the case of VOLMIP 267 270 INTEGER, INTENT(IN) :: flag_volc_surfstrat !--VOlMIP Modif 271 !--AB contrails radiative effect 272 LOGICAL ,INTENT(IN) :: ok_rad_contrail 273 REAL(KIND=JPRB) ,INTENT(IN) :: PCLFR_NOCONT(KPROMA,KLEV) 274 REAL(KIND=JPRB) ,INTENT(IN) :: PQIWP_NOCONT(KPROMA,KLEV) 275 REAL(KIND=JPRB) ,INTENT(IN) :: PREF_ICE_NOCONT(KPROMA,KLEV) 276 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPSWNOCONT(KPROMA), PSOLSWNOCONT(KPROMA) ! No contrails experiment forcing at TOA and surface (SW) 277 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPLWNOCONT(KPROMA), PSOLLWNOCONT(KPROMA) ! No contrails experiment forcing at TOA and surface (LW) 268 278 269 279 ! ==== COMPUTED IN RADITE === … … 346 356 REAL(KIND=JPRB) :: LWUP0_AERO(KPROMA,KLEV+1,5) 347 357 REAL(KIND=JPRB) :: LWDN0_AERO(KPROMA,KLEV+1,5) 358 !--AB contrails radiative effect 359 REAL(KIND=JPRB) :: ZRCLC_NOCONT(KPROMA,KLEV), ZQIWP_NOCONT(KPROMA,KLEV) 360 REAL(KIND=JPRB) :: PREF_LIQ_NOCONT(KPROMA,KLEV) 361 REAL(KIND=JPRB) :: PPIZA_NOCONT(KPROMA,KLEV,NSW) 362 REAL(KIND=JPRB) :: PCGA_NOCONT(KPROMA,KLEV,NSW) 363 REAL(KIND=JPRB) :: PTAU_NOCONT(KPROMA,KLEV,NSW) 364 REAL(KIND=JPRB) :: PTAU_LW_NOCONT(KPROMA,KLEV,NLW) 348 365 349 366 #include "radlsw.intfb.h" … … 673 690 ENDIF ! .not. AEROSOLFEEDBACK_ACTIVE 674 691 692 693 !--Double call to radiative routine for contrails 694 !--The calculation are done again WITHOUT contrails 695 IF (ok_rad_contrail) THEN 696 697 !--The same base case is used 698 !--NB. here we could use pointers... 699 IF ( flag_aerosol .EQ. 0 ) THEN 700 PREF_LIQ_NOCONT(:,:) = PREF_LIQ_PI(:,:) 701 PPIZA_NOCONT(:,:,:) = PPIZA_ZERO(:,:,:) 702 PCGA_NOCONT(:,:,:) = PCGA_ZERO(:,:,:) 703 PTAU_NOCONT(:,:,:) = PTAU_ZERO(:,:,:) 704 PTAU_LW_NOCONT(:,:,:) = PTAU_LW_ZERO(:,:,:) 705 ELSEIF ( .not. ok_ade .AND. .not. ok_aie ) THEN 706 PREF_LIQ_NOCONT(:,:) = PREF_LIQ_PI(:,:) 707 PPIZA_NOCONT(:,:,:) = PPIZA_NAT(:,:,:) 708 PCGA_NOCONT(:,:,:) = PCGA_NAT(:,:,:) 709 PTAU_NOCONT(:,:,:) = PTAU_NAT(:,:,:) 710 PTAU_LW_NOCONT(:,:,:) = PTAU_LW_NAT(:,:,:) 711 ELSEIF ( .not. ok_ade .AND. ok_aie ) THEN 712 PREF_LIQ_NOCONT(:,:) = PREF_LIQ(:,:) 713 PPIZA_NOCONT(:,:,:) = PPIZA_NAT(:,:,:) 714 PCGA_NOCONT(:,:,:) = PCGA_NAT(:,:,:) 715 PTAU_NOCONT(:,:,:) = PTAU_NAT(:,:,:) 716 PTAU_LW_NOCONT(:,:,:) = PTAU_LW_NAT(:,:,:) 717 ELSEIF ( ok_ade .AND. .not. ok_aie ) THEN 718 PREF_LIQ_NOCONT(:,:) = PREF_LIQ_PI(:,:) 719 PPIZA_NOCONT(:,:,:) = PPIZA_TOT(:,:,:) 720 PCGA_NOCONT(:,:,:) = PCGA_TOT(:,:,:) 721 PTAU_NOCONT(:,:,:) = PTAU_TOT(:,:,:) 722 PTAU_LW_NOCONT(:,:,:) = PTAU_LW_TOT(:,:,:) 723 ELSEIF ( ok_ade .AND. ok_aie ) THEN 724 PREF_LIQ_NOCONT(:,:) = PREF_LIQ(:,:) 725 PPIZA_NOCONT(:,:,:) = PPIZA_TOT(:,:,:) 726 PCGA_NOCONT(:,:,:) = PCGA_TOT(:,:,:) 727 PTAU_NOCONT(:,:,:) = PTAU_TOT(:,:,:) 728 PTAU_LW_NOCONT(:,:,:) = PTAU_LW_TOT(:,:,:) 729 ENDIF 730 731 DO JK=1,KLEV 732 DO JL=IBEG,IEND 733 ZRCLC_NOCONT(JL,JK)=MAX( 0.0_JPRB ,MIN( 1.0_JPRB ,PCLFR_NOCONT(JL,JK))) 734 IF (ZRCLC_NOCONT(JL,JK) > REPCLC) THEN 735 ZQIWP_NOCONT(JL,JK)=PQIWP_NOCONT(JL,JK) 736 ELSE 737 ZQIWP_NOCONT(JL,JK)=REPH2O*ZRCLC_NOCONT(JL,JK) 738 ENDIF 739 ENDDO 740 ENDDO 741 742 CALL RADLSW (& 743 & IBEG , IEND , KPROMA , KLEV , KMODE , NAER,& 744 & ZRII0 ,& 745 & ZRAER , PALBD , PALBP , PAPRS , ZRPR ,& 746 & ZCCNL , ZCCNO ,& 747 & PCCO2 , ZRCLC_NOCONT , PDP , PEMIS , ZEMIW ,PSLM , ZRMU0 , ZPQO3,& 748 & ZQ , ZQIWP_NOCONT , ZQLWP , ZQS , ZQRAIN,ZQRAINT ,& 749 & PTH , ZRTI , PTS , ZNBAS , ZNTOP ,& 750 & PREF_LIQ_NOCONT, PREF_ICE_NOCONT,& 751 & ZEMIT , ZFCT , ZFLT , ZFCS , ZFLS ,& 752 & ZFRSOD, ZSUDU , ZUVDF , ZPARF , ZPARCF, ZTINCF, PSFSWDIR,& 753 & PSFSWDIF,PFSDNN, PFSDNV ,& 754 & LRDUST,PPIZA_NOCONT,PCGA_NOCONT,PTAU_NOCONT,PTAU_LW_NOCONT,PFLUX,PFLUC,& 755 & PFSDN , PFSUP , PFSCDN , PFSCUP ) 756 757 ! save budgets LW and SW at TOA and surface 758 PTOPSWNOCONT(:) = PFSDN(:,KLEV+1) - PFSUP(:,KLEV+1) 759 PSOLSWNOCONT(:) = PFSDN(:,1) - PFSUP(:,1) 760 PTOPLWNOCONT(:) = PFLUX(:,1,KLEV+1) + PFLUX(:,2,KLEV+1) 761 PSOLLWNOCONT(:) = - PFLUX(:,1,1) - PFLUX(:,2,1) 762 763 ENDIF 764 675 765 !* 4.2 TRANSFORM FLUXES TO MODEL HISTORICAL VARIABLES 676 766
Note: See TracChangeset
for help on using the changeset viewer.