103 |
INTEGER:: itapsw = 0 |
INTEGER:: itapsw = 0 |
104 |
LOGICAL:: appel1er = .TRUE. |
LOGICAL:: appel1er = .TRUE. |
105 |
!jq-Introduced for aerosol forcings |
!jq-Introduced for aerosol forcings |
|
logical, save:: flag_aer |
|
106 |
|
|
107 |
!jq - Fluxes including aerosol effects |
!jq - Fluxes including aerosol effects |
108 |
DOUBLE PRECISION, save:: ZFSUPAD(KDLON, KFLEV+1) |
DOUBLE PRECISION, save:: ZFSUPAD(KDLON, KFLEV+1) |
116 |
!------------------------------------------------------------------- |
!------------------------------------------------------------------- |
117 |
|
|
118 |
if(.not.initialized) then |
if(.not.initialized) then |
|
flag_aer=.false. |
|
119 |
initialized=.TRUE. |
initialized=.TRUE. |
120 |
ZFSUPAD = 0. |
ZFSUPAD = 0. |
121 |
ZFSDNAD = 0. |
ZFSDNAD = 0. |
143 |
PRMU0, PFRAC, PTAVE, PWV, & |
PRMU0, PFRAC, PTAVE, PWV, & |
144 |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
145 |
INU = 1 |
INU = 1 |
146 |
CALL SW1S(INU, flag_aer, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
CALL SW1S(INU, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, POMEGA, ZOZ, & |
147 |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
148 |
INU = 2 |
INU = 2 |
149 |
CALL SW2S(INU, flag_aer, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
CALL SW2S(INU, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, POMEGA, & |
150 |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, ZFUP) |
ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, ZFUP) |
151 |
DO JK = 1 , KFLEV+1 |
DO JK = 1 , KFLEV+1 |
152 |
DO JL = 1, KDLON |
DO JL = 1, KDLON |
153 |
ZFSUP0(JL, JK) = (ZFUP(JL, JK) + ZFU(JL, JK)) * ZFACT(JL) |
ZFSUP0(JL, JK) = (ZFUP(JL, JK) + ZFU(JL, JK)) * ZFACT(JL) |
155 |
ENDDO |
ENDDO |
156 |
ENDDO |
ENDDO |
157 |
|
|
|
flag_aer= .false. |
|
158 |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, & |
159 |
PRMU0, PFRAC, PTAVE, PWV, & |
PRMU0, PFRAC, PTAVE, PWV, & |
160 |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
ZAKI, ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
161 |
INU = 1 |
INU = 1 |
162 |
CALL SW1S(INU, .false., PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
CALL SW1S(INU, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, POMEGA, ZOZ, & |
163 |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
164 |
INU = 2 |
INU = 2 |
165 |
CALL SW2S(INU, .false., ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
CALL SW2S(INU, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, POMEGA, & |
166 |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, ZFUP) |
ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, ZFUP) |
167 |
|
|
168 |
! cloudy-sky: |
! cloudy-sky: |
169 |
|
|
176 |
|
|
177 |
IF (ok_ade) THEN |
IF (ok_ade) THEN |
178 |
! cloudy-sky + aerosol dir OB |
! cloudy-sky + aerosol dir OB |
|
flag_aer= .true. |
|
179 |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, PRMU0, PFRAC, PTAVE, PWV, ZAKI, & |
CALL SWU(PSCT, PCLDSW, PPMB, PPSOL, PRMU0, PFRAC, PTAVE, PWV, ZAKI, & |
180 |
ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
ZCLD, ZCLEAR, ZDSIG, ZFACT, ZRMU, ZSEC, ZUD) |
181 |
INU = 1 |
INU = 1 |
182 |
CALL SW1S(INU, .true., PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
CALL SW1S(INU, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, POMEGA, ZOZ, & |
183 |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
ZRMU, ZSEC, PTAU, ZUD, ZFD, ZFU) |
184 |
INU = 2 |
INU = 2 |
185 |
CALL SW2S(INU, .true., ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, & |
CALL SW2S(INU, ZAKI, PALBD, PALBP, PCG, ZCLD, ZCLEAR, ZDSIG, & |
186 |
ZDSIG, POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, & |
POMEGA, ZOZ, ZRMU, ZSEC, PTAU, ZUD, PWV, PQS, ZFDOWN, ZFUP) |
|
ZFUP) |
|
187 |
DO JK = 1 , KFLEV+1 |
DO JK = 1 , KFLEV+1 |
188 |
DO JL = 1, KDLON |
DO JL = 1, KDLON |
189 |
ZFSUPAD(JL, JK) = ZFSUP(JL, JK) |
ZFSUPAD(JL, JK) = ZFSUP(JL, JK) |