- Timestamp:
- Nov 21, 2017, 5:18:23 PM (7 years ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/DefLists/field_def_lmdz.xml
r3078 r3082 91 91 <field id="SWupTOA" long_name="SWup at TOA" unit="W/m2" /> 92 92 <field id="SWupTOAclr" long_name="SWup clear sky at TOA" unit="W/m2" /> 93 <field id="SWupTOAcleanclr" long_name="SWup clean (no aerosol) clear sky at TOA" unit="W/m2" /> 93 94 <field id="SWdnTOA" long_name="SWdn at TOA" unit="W/m2" /> 94 95 <field id="SWdnTOAclr" long_name="SWdn clear sky at TOA" unit="W/m2" /> … … 109 110 <field id="SWupSFC" long_name="SWup at surface" unit="W/m2" /> 110 111 <field id="SWupSFCclr" long_name="SWup clear sky at surface" unit="W/m2" /> 112 <field id="SWupSFCcleanclr" long_name="SWup clean (no aerosol) clear sky at surface" unit="W/m2" /> 111 113 <field id="SWdnSFC" long_name="SWdn at surface" unit="W/m2" /> 112 114 <field id="SWdnSFCclr" long_name="SWdn clear sky at surface" unit="W/m2" /> 115 <field id="SWdnSFCcleanclr" long_name="SWdn clean (no aerosol) clear sky at surface" unit="W/m2" /> 113 116 <field id="LWupSFC" long_name="Upwd. IR rad. at surface" unit="W/m2" /> 114 117 <field id="LWupSFCclr" long_name="CS Upwd. IR rad. at surface" unit="W/m2" /> … … 646 649 <field id="rlu" long_name="LW upward radiation" unit="W m-2" /> 647 650 <field id="rld" long_name="LW downward radiation" unit="W m-2" /> 651 <field id="rsucsaf" long_name="SW clean (no aerosol) CS upward radiation" unit="W m-2" /> 652 <field id="rsdcsaf" long_name="SW clean (no aerosol) CS downward radiation" unit="W m-2" /> 648 653 <field id="rsucs" long_name="SW CS upward radiation" unit="W m-2" /> 649 654 <field id="rsdcs" long_name="SW CS downward radiation" unit="W m-2" /> -
LMDZ6/trunk/libf/phylmd/iophy.F90
r3003 r3082 583 583 USE phys_output_var_mod, ONLY: ctrl_out, type_ecri_files, zoutm, zdtime_moy, & 584 584 clef_stations, phys_out_filenames, lev_files, & 585 nid_files, nhorim, swaero _diag, dryaod_diag,&585 nid_files, nhorim, swaerofree_diag, swaero_diag, dryaod_diag,& 586 586 ok_4xCO2atm 587 587 USE print_control_mod, ONLY: prt_level,lunout … … 662 662 var%name=='toplwai' .OR. var%name=='sollwai' ) ) ) THEN 663 663 IF ( var%flag(iff)<=lev_files(iff) ) swaero_diag=.TRUE. 664 ENDIF 665 666 ! Set swaerofree_diag=true if at least one of the concerned variables are defined 667 IF (var%name=='SWupTOAcleanclr' .OR. var%name=='SWupSFCcleanclr' .OR. var%name=='SWdnSFCcleanclr' ) THEN 668 IF ( var%flag(iff)<=lev_files(iff) ) swaerofree_diag=.TRUE. 664 669 ENDIF 665 670 … … 692 697 USE phys_output_var_mod, ONLY: ctrl_out, type_ecri_files, zoutm, zdtime_moy, & 693 698 clef_stations, phys_out_filenames, lev_files, & 694 nid_files, nhorim, swaero _diag, dryaod_diag, levmin, &699 nid_files, nhorim, swaerofree_diag, swaero_diag, dryaod_diag, levmin, & 695 700 levmax, nvertm 696 701 USE print_control_mod, ONLY: prt_level,lunout … … 764 769 #endif 765 770 ENDIF 771 772 ! Set swaerofree_diag=true if at least one of the concerned variables are defined 773 IF (var%name=='rsucsaf' .OR. var%name=='rsdcsaf') THEN 774 IF ( var%flag(iff)<=lev_files(iff) ) swaerofree_diag=.TRUE. 775 ENDIF 776 766 777 END SUBROUTINE histdef3d 767 778 -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r3059 r3082 387 387 TYPE(ctrl_out), SAVE :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 388 388 'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /)) 389 TYPE(ctrl_out), SAVE :: o_SWupTOAcleanclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 390 'SWupTOAcleanclr', 'SWup clear sky clean (no aerosol) at TOA', 'W/m2', (/ ('', i=1, 10) /)) 389 391 TYPE(ctrl_out), SAVE :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), & 390 392 'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i=1, 10) /)) … … 433 435 TYPE(ctrl_out), SAVE :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 434 436 'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i=1, 10) /)) 437 TYPE(ctrl_out), SAVE :: o_SWupSFCcleanclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 438 'SWupSFCcleanclr', 'SWup clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /)) 435 439 TYPE(ctrl_out), SAVE :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), & 436 440 'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i=1, 10) /)) 437 441 TYPE(ctrl_out), SAVE :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 438 442 'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i=1, 10) /)) 443 TYPE(ctrl_out), SAVE :: o_SWdnSFCcleanclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 444 'SWdnSFCcleanclr', 'SWdn clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /)) 439 445 TYPE(ctrl_out), SAVE :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), & 440 446 'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /)) … … 1723 1729 TYPE(ctrl_out), SAVE :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1724 1730 'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1731 TYPE(ctrl_out), SAVE :: o_rsucsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1732 'rsucsaf', 'SW CS clean (no aerosol) upward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1725 1733 TYPE(ctrl_out), SAVE :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1726 1734 'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1735 TYPE(ctrl_out), SAVE :: o_rsdcsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1736 'rsdcsaf', 'SW CS clean (no aerosol) downward radiation', 'W m-2', (/ ('', i=1, 10) /)) 1727 1737 TYPE(ctrl_out), SAVE :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1728 1738 'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
r3048 r3082 585 585 586 586 IF (prt_level >= 10) THEN 587 WRITE(lunout,*)'swaerofree_diag=',swaerofree_diag 587 588 WRITE(lunout,*)'swaero_diag=',swaero_diag 588 589 WRITE(lunout,*)'dryaod_diag=',dryaod_diag -
LMDZ6/trunk/libf/phylmd/phys_output_var_mod.F90
r2989 r3082 86 86 87 87 ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics 88 ! swaerofree_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics 88 89 ! dryaod_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics 89 90 !--OB: this needs to be set to TRUE by default and changed back to FALSE after first radiation call 90 91 !-- and corrected back to TRUE based on output requests 92 LOGICAL, SAVE :: swaerofree_diag=.TRUE. 91 93 LOGICAL, SAVE :: swaero_diag=.TRUE. 92 94 LOGICAL, SAVE :: dryaod_diag=.TRUE. 93 !$OMP THREADPRIVATE(swaero _diag, dryaod_diag)95 !$OMP THREADPRIVATE(swaerofree_diag, swaero_diag, dryaod_diag) 94 96 ! ok_4xCO2atm : flag indicates if it is necessary to do a second call of 95 97 ! radiation code with a 4xCO2 or another different GES to assess SW/LW -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r3080 r3082 43 43 o_snow, o_msnow, o_fsnow, o_evap, o_ep,o_epmax_diag, & ! epmax_cape 44 44 o_tops, o_tops0, o_topl, o_topl0, & 45 o_SWupTOA, o_SWupTOAclr, o_SW dnTOA, &45 o_SWupTOA, o_SWupTOAclr, o_SWupTOAcleanclr, o_SWdnTOA, & 46 46 o_SWdnTOAclr, o_nettop, o_SWup200, & 47 47 o_SWup200clr, o_SWdn200, o_SWdn200clr, & … … 49 49 o_LWdn200clr, o_sols, o_sols0, & 50 50 o_soll, o_radsol, o_soll0, o_SWupSFC, & 51 o_SWupSFCclr, o_SW dnSFC, o_SWdnSFCclr, &51 o_SWupSFCclr, o_SWupSFCcleanclr, o_SWdnSFC, o_SWdnSFCclr, o_SWdnSFCcleanclr, & 52 52 o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, & 53 53 o_LWdnSFCclr, o_bils, o_bils_diss, & … … 154 154 o_du_gwd_front, o_dv_gwd_front, & 155 155 o_east_gwstress, o_west_gwstress, & 156 o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, &156 o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, o_rsucsaf, o_rsdcsaf, & 157 157 o_rlucs, o_rldcs, o_tnt, o_tntr, & 158 158 o_tntscpbl, o_tnhus, o_tnhusscpbl, & … … 210 210 nday_rain, rain_con, snow_con, & 211 211 topsw, toplw, toplw0, swup, swdn, & 212 topsw0, swup 0, swdn0, SWup200, SWup200clr, &212 topsw0, swupc0, swdnc0, swup0, swdn0, SWup200, SWup200clr, & 213 213 SWdn200, SWdn200clr, LWup200, LWup200clr, & 214 214 LWdn200, LWdn200clr, solsw, solsw0, sollw, & … … 225 225 ratqs, entr_therm, zqasc, detr_therm, f0, & 226 226 lwup, lwdn, lwup0, coefm, & 227 swupp, lwupp, swup 0p, lwup0p, swdnp, lwdnp, &228 swdn 0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &227 swupp, lwupp, swupc0p, swup0p, lwup0p, swdnp, lwdnp, & 228 swdnc0p, swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, & 229 229 vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, & 230 230 vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, & … … 708 708 709 709 IF (vars_defined) THEN 710 zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:) 711 ENDIF 712 CALL histwrite_phy(o_SWupTOAcleanclr, zx_tmp_fi2d) 713 714 IF (vars_defined) THEN 710 715 zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:) 711 716 ENDIF … … 746 751 747 752 IF (vars_defined) THEN 753 zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:) 754 ENDIF 755 CALL histwrite_phy(o_SWupSFCcleanclr, zx_tmp_fi2d) 756 757 IF (vars_defined) THEN 748 758 zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:) 749 759 ENDIF … … 754 764 ENDIF 755 765 CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d) 766 767 IF (vars_defined) THEN 768 zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:) 769 ENDIF 770 CALL histwrite_phy(o_SWdnSFCcleanclr, zx_tmp_fi2d) 756 771 757 772 IF (vars_defined) THEN … … 1738 1753 CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1) 1739 1754 DO k=1, klevp1 1755 zx_tmp_fi3d1(:,k)=swupc0(:,k)*swradcorr(:) 1756 ENDDO 1757 CALL histwrite_phy(o_rsucsaf, zx_tmp_fi3d1) 1758 DO k=1, klevp1 1740 1759 zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:) 1741 1760 ENDDO 1742 1761 CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1) 1762 DO k=1, klevp1 1763 zx_tmp_fi3d1(:,k)=swdnc0(:,k)*swradcorr(:) 1764 ENDDO 1765 CALL histwrite_phy(o_rsdcsaf, zx_tmp_fi3d1) 1743 1766 1744 1767 CALL histwrite_phy(o_rlu, lwup) -
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r3080 r3082 111 111 !$OMP THREADPRIVATE(clwcon0th,rnebcon0th) 112 112 ! radiation outputs 113 REAL,ALLOCATABLE,SAVE :: swdn 0(:,:), swdn(:,:)114 !$OMP THREADPRIVATE(swdn 0,swdn)115 REAL,ALLOCATABLE,SAVE :: swup 0(:,:), swup(:,:)116 !$OMP THREADPRIVATE(swup 0,swup)113 REAL,ALLOCATABLE,SAVE :: swdnc0(:,:), swdn0(:,:), swdn(:,:) 114 !$OMP THREADPRIVATE(swdnc0,swdn0,swdn) 115 REAL,ALLOCATABLE,SAVE :: swupc0(:,:), swup0(:,:), swup(:,:) 116 !$OMP THREADPRIVATE(swupc0, swup0,swup) 117 117 REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:) 118 118 !$OMP THREADPRIVATE(SWdn200clr,SWdn200) … … 355 355 REAL,ALLOCATABLE,SAVE :: lwup0p(:,:), lwupp(:,:) 356 356 !$OMP THREADPRIVATE(lwdn0p, lwdnp, lwup0p, lwupp) 357 REAL,ALLOCATABLE,SAVE :: swdn 0p(:,:), swdnp(:,:)358 REAL,ALLOCATABLE,SAVE :: swup 0p(:,:), swupp(:,:)359 !$OMP THREADPRIVATE(swdn 0p, swdnp, swup0p, swupp)357 REAL,ALLOCATABLE,SAVE :: swdnc0p(:,:), swdn0p(:,:), swdnp(:,:) 358 REAL,ALLOCATABLE,SAVE :: swupc0p(:,:), swup0p(:,:), swupp(:,:) 359 !$OMP THREADPRIVATE(swdnc0p, swdn0p, swdnp, swupc0p, swup0p, swupp) 360 360 361 361 ! pbase : cloud base pressure … … 478 478 ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev)) 479 479 ! radiation outputs 480 ALLOCATE(swdn 0(klon,klevp1), swdn(klon,klevp1))481 ALLOCATE(swup 0(klon,klevp1), swup(klon,klevp1))480 ALLOCATE(swdnc0(klon,klevp1), swdn0(klon,klevp1), swdn(klon,klevp1)) 481 ALLOCATE(swupc0(klon,klevp1), swup0(klon,klevp1), swup(klon,klevp1)) 482 482 ALLOCATE(lwdn0(klon,klevp1), lwdn(klon,klevp1)) 483 483 ALLOCATE(lwup0(klon,klevp1), lwup(klon,klevp1)) … … 578 578 ALLOCATE(lwdn0p(klon,klevp1), lwdnp(klon,klevp1)) 579 579 ALLOCATE(lwup0p(klon,klevp1), lwupp(klon,klevp1)) 580 ALLOCATE(swdn 0p(klon,klevp1), swdnp(klon,klevp1))581 ALLOCATE(swup 0p(klon,klevp1), swupp(klon,klevp1))580 ALLOCATE(swdnc0p(klon,klevp1), swdn0p(klon,klevp1), swdnp(klon,klevp1)) 581 ALLOCATE(swupc0p(klon,klevp1), swup0p(klon,klevp1), swupp(klon,klevp1)) 582 582 583 583 ALLOCATE(cape(klon)) … … 636 636 deallocate(clwcon0th, rnebcon0th) 637 637 ! radiation outputs 638 deallocate(swdn 0, swdn)639 deallocate(swup 0, swup)638 deallocate(swdnc0, swdn0, swdn) 639 deallocate(swupc0, swup0, swup) 640 640 deallocate(lwdn0, lwdn) 641 641 deallocate(lwup0, lwup) … … 713 713 deallocate(lwdn0p, lwdnp) 714 714 deallocate(lwup0p, lwupp) 715 deallocate(swdn 0p, swdnp)716 deallocate(swup 0p, swupp)715 deallocate(swdnc0p, swdn0p, swdnp) 716 deallocate(swupc0p, swup0p, swupp) 717 717 deallocate(cape) 718 718 deallocate(pbase,bbase) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3080 r3082 1623 1623 !!! xios_field_is_active("toplwai").OR.xios_field_is_active("sollwai") !))) & 1624 1624 swaero_diag=.TRUE. 1625 1626 !--setting up swaerofree_diag to TRUE in XIOS case 1627 IF (xios_field_is_active("SWdnSFCcleanclr").OR.xios_field_is_active("SWupSFCcleanclr").OR. & 1628 xios_field_is_active("SWupTOAcleanclr").OR.xios_field_is_active("rsucsaf").OR. & 1629 xios_field_is_active("rsdcsaf")) & 1630 swaerofree_diag=.TRUE. 1625 1631 1626 1632 !--setting up dryaod_diag to TRUE in XIOS case … … 3766 3772 topsw0,toplw0,solsw0,sollw0, & 3767 3773 lwdn0, lwdn, lwup0, lwup, & 3768 swdn 0, swdn, swup0, swup, &3774 swdnc0, swdn0, swdn, swupc0, swup0, swup, & 3769 3775 topswad_aero, solswad_aero, & 3770 3776 topswai_aero, solswai_aero, & … … 3797 3803 !--this is necessary to get the right swaero at first step 3798 3804 !--but only in the case of no XIOS as XIOS is covered elsewhere 3805 IF (debut) swaerofree_diag = .FALSE. 3799 3806 IF (debut) swaero_diag = .FALSE. 3800 3807 IF (debut) dryaod_diag = .FALSE. … … 3849 3856 topsw0p,toplw0p,solsw0p,sollw0p, & 3850 3857 lwdn0p, lwdnp, lwup0p, lwupp, & 3851 swdn 0p, swdnp, swup0p, swupp, &3858 swdnc0p, swdn0p, swdnp, swupc0p, swup0p, swupp, & 3852 3859 topswad_aerop, solswad_aerop, & 3853 3860 topswai_aerop, solswai_aerop, & -
LMDZ6/trunk/libf/phylmd/radlwsw_m.F90
r2611 r3082 29 29 topsw0,toplw0,solsw0,sollw0,& 30 30 lwdn0, lwdn, lwup0, lwup,& 31 swdn 0, swdn, swup0, swup,&31 swdnc0, swdn0, swdn, swupc0, swup0, swup,& 32 32 topswad_aero, solswad_aero,& 33 33 topswai_aero, solswai_aero, & … … 148 148 ! ZFSDWN(klon,KLEV+1) ; TOTAL SW DWN FLUXES ! added by MPL 080411 149 149 ! ZFCDWN(klon,KLEV+1) ; CLEAR SKY SW DWN FLUXES ! added by MPL 080411 150 ! ZFCCDWN(klon,KLEV+1) ; CLEAR SKY CLEAN (NO AEROSOL) SW DWN FLUXES ! added by OB 211117 150 151 ! ZFSUP (klon,KLEV+1) ; TOTAL SW UP FLUXES ! added by MPL 080411 151 152 ! ZFCUP (klon,KLEV+1) ; CLEAR SKY SW UP FLUXES ! added by MPL 080411 153 ! ZFCCUP (klon,KLEV+1) ; CLEAR SKY CLEAN (NO AEROSOL) SW UP FLUXES ! added by OB 211117 152 154 153 155 !====================================================================== … … 226 228 REAL, INTENT(out) :: topsw0(KLON), toplw0(KLON), solsw0(KLON), sollw0(KLON) 227 229 REAL, INTENT(out) :: sollwdown(KLON) 228 REAL, INTENT(out) :: swdn(KLON,kflev+1),swdn0(KLON,kflev+1) 229 REAL, INTENT(out) :: swup(KLON,kflev+1),swup0(KLON,kflev+1) 230 REAL, INTENT(out) :: swdn(KLON,kflev+1),swdn0(KLON,kflev+1), swdnc0(KLON,kflev+1) 231 REAL, INTENT(out) :: swup(KLON,kflev+1),swup0(KLON,kflev+1), swupc0(KLON,kflev+1) 230 232 REAL, INTENT(out) :: lwdn(KLON,kflev+1),lwdn0(KLON,kflev+1) 231 233 REAL, INTENT(out) :: lwup(KLON,kflev+1),lwup0(KLON,kflev+1) … … 252 254 REAL(KIND=8) ZFSUP0(KDLON,KFLEV+1) 253 255 REAL(KIND=8) ZFSDN0(KDLON,KFLEV+1) 256 REAL(KIND=8) ZFSUPC0(KDLON,KFLEV+1) 257 REAL(KIND=8) ZFSDNC0(KDLON,KFLEV+1) 254 258 REAL(KIND=8) ZFLUP(KDLON,KFLEV+1) 255 259 REAL(KIND=8) ZFLDN(KDLON,KFLEV+1) … … 364 368 REAL(KIND=8) ZFSDWN_i (klon,klev+1) 365 369 REAL(KIND=8) ZFCDWN_i (klon,klev+1) 370 REAL(KIND=8) ZFCCDWN_i (klon,klev+1) 366 371 REAL(KIND=8) ZFSUP_i (klon,klev+1) 367 372 REAL(KIND=8) ZFCUP_i (klon,klev+1) 373 REAL(KIND=8) ZFCCUP_i (klon,klev+1) 368 374 ! 3 lignes suivantes a activer pour CCMVAL (MPL 20100412) 369 375 ! REAL(KIND=8) RSUN(3,2) … … 575 581 ZFSUP0(i,k)=0. 576 582 ZFSDN0(i,k)=0. 583 ZFSUPC0(i,k)=0. 584 ZFSDNC0(i,k)=0. 577 585 ZSWFT0_i(i,k)=0. 578 586 ZFCUP_i(i,k)=0. 579 587 ZFCDWN_i(i,k)=0. 588 ZFCCUP_i(i,k)=0. 589 ZFCCDWN_i(i,k)=0. 580 590 ENDDO 581 591 ENDDO … … 676 686 ZFSDWN_i(i,k)=0. 677 687 ZFCDWN_i(i,k)=0. 688 ZFCCDWN_i(i,k)=0. 678 689 ZFSUP_i(i,k)=0. 679 690 ZFCUP_i(i,k)=0. 691 ZFCCUP_i(i,k)=0. 680 692 ENDDO 681 693 ENDDO … … 823 835 PTAU_LW_TOT, PTAU_LW_NAT, & ! rajoute par C. Kleinschmitt 824 836 ZFLUX_i , ZFLUC_i ,& 825 ZFSDWN_i , ZFSUP_i , ZFCDWN_i, ZFCUP_i, &837 ZFSDWN_i , ZFSUP_i , ZFCDWN_i, ZFCUP_i, ZFCCDWN_i, ZFCCUP_i, & 826 838 ZTOPSWADAERO,ZSOLSWADAERO,& ! rajoute par OB pour diagnostics 827 839 ZTOPSWAD0AERO,ZSOLSWAD0AERO,& … … 904 916 ZFSDN(i,k+1) = ZFSDWN_i(i,k+1)*fract(i) 905 917 ZFSDN0(i,k+1) = ZFCDWN_i(i,k+1)*fract(i) 918 ZFSDNC0(i,k+1)= ZFCCDWN_i(i,k+1)*fract(i) 906 919 ZFSUP (i,k+1) = ZFSUP_i(i,k+1)*fract(i) 907 920 ZFSUP0(i,k+1) = ZFCUP_i(i,k+1)*fract(i) 921 ZFSUPC0(i,k+1)= ZFCCUP_i(i,k+1)*fract(i) 908 922 ! Nouveau calcul car visiblement ZSWFT et ZSWFC sont nuls dans RRTM cy32 909 923 ! en sortie de radlsw.F90 - MPL 7.01.09 … … 1017 1031 1018 1032 DO k = 1, kflev+1 1033 swdnc0( iof+i,k) = ZFSDNC0( i,k) 1019 1034 swdn0 ( iof+i,k) = ZFSDN0 ( i,k) 1020 1035 swdn ( iof+i,k) = ZFSDN ( i,k) 1036 swupc0( iof+i,k) = ZFSUPC0( i,k) 1021 1037 swup0 ( iof+i,k) = ZFSUP0 ( i,k) 1022 1038 swup ( iof+i,k) = ZFSUP ( i,k) -
LMDZ6/trunk/libf/phylmd/rrtm/recmwf_aero.F90
r2529 r3082 24 24 !--end 25 25 & PFLUX,PFLUC,& 26 & PFSDN ,PFSUP , PFSCDN , PFSCUP, &26 & PFSDN ,PFSUP , PFSCDN , PFSCUP, PFSCCDN, PFSCCUP, & 27 27 !--OB diagnostics 28 28 & PTOPSWADAERO,PSOLSWADAERO,& … … 110 110 ! PFSCDN(KPROMA,KLEV+1) ; SW clear sky flux down 111 111 ! PFSCUP(KPROMA,KLEV+1) ; SW clear sky flux up 112 ! PFSCCDN(KPROMA,KLEV+1) ; SW clear sky clean (no aerosol) flux down 113 ! PFSCCUP(KPROMA,KLEV+1) ; SW clear sky clean (no aerosol) flux up 112 114 113 115 … … 152 154 USE YOERDI , ONLY : RRAE ,REPCLC ,REPH2O 153 155 USE YOMARPHY , ONLY : LRDUST 154 USE phys_output_mod, ONLY : swaero _diag156 USE phys_output_mod, ONLY : swaerofree_diag, swaero_diag 155 157 156 158 !----------------------------------------------------------------------- … … 241 243 REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCDN(KPROMA,KLEV+1) ! SW clear sky flux down 242 244 REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCUP(KPROMA,KLEV+1) ! SW clear sky flux up 245 REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCCDN(KPROMA,KLEV+1) ! SW clear sky clean (no aerosol) flux down 246 REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCCUP(KPROMA,KLEV+1) ! SW clear sky clean (no aerosol) flux up 243 247 244 248 ! ==== COMPUTED IN RADITE === … … 607 611 608 612 ! case with no aerosols at all is also computed IF ACTIVEFEEDBACK_ACTIVE is false 609 !IF (swaero_diag .OR. .not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 ) THEN 610 IF (.not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 ) THEN 613 IF (.not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 .OR. swaerofree_diag) THEN 611 614 612 615 ! ZERO aerosol effect … … 757 760 ENDIF 758 761 762 ! copy clear-sky clean (no aerosol) case 763 PFSCCUP(:,:) = ZFSUP0_AERO(:,:,5) 764 PFSCCDN(:,:) = ZFSDN0_AERO(:,:,5) 765 759 766 ! The following allows to compute the forcing diagostics without 760 767 ! letting the aerosol forcing act on the meteorology
Note: See TracChangeset
for help on using the changeset viewer.