20 |
! 3. COMPUTES FLUXES IN 2ND SPECTRAL INTERVAL (SW2S) |
! 3. COMPUTES FLUXES IN 2ND SPECTRAL INTERVAL (SW2S) |
21 |
|
|
22 |
! REFERENCE. |
! REFERENCE. |
23 |
! SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT |
! SEE RADIATION PART OF THE ECMWF RESEARCH DEPARTMENT |
24 |
! DOCUMENTATION, AND FOUQUART AND BONNEL (1980) |
! DOCUMENTATION, AND FOUQUART AND BONNEL (1980) |
25 |
|
|
26 |
! AUTHOR. |
! AUTHOR. |
32 |
! 03-11-27 J. QUAAS Introduce aerosol forcings (based on BOUCHER) |
! 03-11-27 J. QUAAS Introduce aerosol forcings (based on BOUCHER) |
33 |
|
|
34 |
USE clesphys, ONLY: bug_ozone |
USE clesphys, ONLY: bug_ozone |
35 |
USE suphec_m, ONLY: rcpd, rday, rg, rmd, rmo3 |
USE suphec_m, ONLY: rcpd, rday, rg, md, rmo3 |
36 |
USE raddim, ONLY: kdlon, kflev |
USE raddim, ONLY: kdlon, kflev |
37 |
|
|
38 |
! ARGUMENTS: |
! ARGUMENTS: |
101 |
DATA appel1er /.TRUE./ |
DATA appel1er /.TRUE./ |
102 |
!jq-Introduced for aerosol forcings |
!jq-Introduced for aerosol forcings |
103 |
double precision flag_aer |
double precision flag_aer |
104 |
logical ok_ade, ok_aie ! use aerosol forcings or not? |
logical, intent(in):: ok_ade, ok_aie ! use aerosol forcings or not? |
105 |
double precision tauae(kdlon, kflev, 2) ! aerosol optical properties |
double precision tauae(kdlon, kflev, 2) ! aerosol optical properties |
106 |
double precision pizae(kdlon, kflev, 2) |
double precision pizae(kdlon, kflev, 2) |
107 |
! aerosol optical properties(see aeropt.F) |
! aerosol optical properties(see aeropt.F) |
157 |
*PDP(JL, JK)*(101325.0/PPSOL(JL)) |
*PDP(JL, JK)*(101325.0/PPSOL(JL)) |
158 |
ELSE |
ELSE |
159 |
! Correction MPL 100505 |
! Correction MPL 100505 |
160 |
ZOZ(JL, JK) = POZON(JL, JK)*RMD/RMO3*46.6968/RG*PDP(JL, JK) |
ZOZ(JL, JK) = POZON(JL, JK)*MD/RMO3*46.6968/RG*PDP(JL, JK) |
161 |
ENDIF |
ENDIF |
162 |
ENDDO |
ENDDO |
163 |
ENDDO |
ENDDO |
186 |
ENDDO |
ENDDO |
187 |
ENDDO |
ENDDO |
188 |
|
|
189 |
flag_aer=0.0 |
flag_aer=0. |
190 |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
191 |
PRMU0, PFRAC, PTAVE, PWV, & |
PRMU0, PFRAC, PTAVE, PWV, & |
192 |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
215 |
|
|
216 |
IF (ok_ade) THEN |
IF (ok_ade) THEN |
217 |
! cloudy-sky + aerosol dir OB |
! cloudy-sky + aerosol dir OB |
218 |
flag_aer=1.0 |
flag_aer=1. |
219 |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
220 |
PRMU0, PFRAC, PTAVE, PWV, & |
PRMU0, PFRAC, PTAVE, PWV, & |
221 |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |