54 |
C Radiation constants |
C Radiation constants |
55 |
#include "com_radcon.h" |
#include "com_radcon.h" |
56 |
|
|
|
c #include "com_sflcon.h" |
|
|
|
|
57 |
C Logical flags |
C Logical flags |
58 |
c_FM include "com_lflags.h" |
c_FM include "com_lflags.h" |
59 |
|
|
67 |
C kGrd :: Ground level index (2-dim) |
C kGrd :: Ground level index (2-dim) |
68 |
C dpFac :: cell delta_P fraction (3-dim) |
C dpFac :: cell delta_P fraction (3-dim) |
69 |
C dTskin :: temp. correction for daily-cycle heating [K] |
C dTskin :: temp. correction for daily-cycle heating [K] |
70 |
C CDENVV :: sensible heat flux coefficient (1:land, 2:sea, 3:sea-ice) |
C T1s :: near-surface air temperature (from Pot.Temp) |
71 |
|
C DENVV :: surface flux (sens,lat.) coeff. (=Rho*|V|) [kg/m2/s] |
72 |
|
C Shf0 :: sensible heat flux over freezing surf. |
73 |
|
C dShf :: sensible heat flux derivative relative to surf. temp |
74 |
C Evp0 :: evaporation computed over freezing surface (Ts=0.oC) |
C Evp0 :: evaporation computed over freezing surface (Ts=0.oC) |
75 |
C dEvp :: evaporation derivative relative to surf. temp |
C dEvp :: evaporation derivative relative to surf. temp |
76 |
C Slr0 :: upward long wave radiation over freezing surf. |
C Slr0 :: upward long wave radiation over freezing surf. |
84 |
c_FM REAL RPS(NGP), ST4S(NGP) |
c_FM REAL RPS(NGP), ST4S(NGP) |
85 |
_RL ST4S(NGP) |
_RL ST4S(NGP) |
86 |
_RL PSG_1(NGP), RPS_1 |
_RL PSG_1(NGP), RPS_1 |
87 |
_RL dTskin(NGP), CDENVV(NGP,3) |
_RL dTskin(NGP), T1s(NGP), DENVV(NGP) |
88 |
_RL Evp0(NGP), dEvp(NGP), Slr0(NGP), dSlr(NGP), sFlx(NGP,0:2) |
_RL Shf0(NGP), dShf(NGP), Evp0(NGP), dEvp(NGP) |
89 |
|
_RL Slr0(NGP), dSlr(NGP), sFlx(NGP,0:2) |
90 |
|
|
91 |
INTEGER J, K |
INTEGER J, K |
92 |
|
|
93 |
|
#ifdef ALLOW_CLR_SKY_DIAG |
94 |
|
_RL dummyR(NGP) |
95 |
|
INTEGER dummyI(NGP) |
96 |
|
#endif |
97 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
98 |
|
|
99 |
C-- 1. Compute grid-point fields |
C-- 1. Compute grid-point fields |
198 |
|
|
199 |
c_FM CALL RADSW (PSG,QG1,RH,ALB1, |
c_FM CALL RADSW (PSG,QG1,RH,ALB1, |
200 |
c_FM & ICLTOP,CLOUDC,TSR,SSR,TT_RSW) |
c_FM & ICLTOP,CLOUDC,TSR,SSR,TT_RSW) |
201 |
|
ICLTOP(1) = 1 |
202 |
CALL RADSW (PSG,dpFac,QG1,RH(1,1,myThid),ALB1(1,0,myThid), |
CALL RADSW (PSG,dpFac,QG1,RH(1,1,myThid),ALB1(1,0,myThid), |
203 |
I FSOL, OZONE, OZUPP, ZENIT, STRATZ, |
I FSOL, OZONE, OZUPP, ZENIT, STRATZ, |
204 |
O TAU2, STRATC, |
O TAU2, STRATC, |
239 |
I WVSurf(1,myThid),csLat(1,myThid),fOrogr(1,myThid), |
I WVSurf(1,myThid),csLat(1,myThid),fOrogr(1,myThid), |
240 |
I FMASK1(1,1,myThid),STL1(1,myThid),SST1(1,myThid), |
I FMASK1(1,1,myThid),STL1(1,myThid),SST1(1,myThid), |
241 |
I sti1(1,myThid), SSR(1,0,myThid), |
I sti1(1,myThid), SSR(1,0,myThid), |
242 |
O SPEED0(1,myThid),DRAG(1,0,myThid),CDENVV, |
O SPEED0(1,myThid),DRAG(1,0,myThid),DENVV, |
243 |
O dTskin,T0(1,myThid),Q0(1,myThid), |
O dTskin,T1s,T0(1,myThid),Q0(1,myThid), |
244 |
I kGround,bi,bj,myThid) |
I kGround,bi,bj,myThid) |
245 |
|
|
246 |
CALL SUFLUX_LAND ( |
CALL SUFLUX_LAND ( |
247 |
I PSG, FMASK1(1,1,myThid), EMISFC, |
I PSG, FMASK1(1,1,myThid), EMISFC, |
248 |
I STL1(1,myThid), dTskin, |
I STL1(1,myThid), dTskin, |
249 |
I SOILW1(1,myThid), SSR(1,1,myThid), SLR(1,0,myThid), |
I SOILW1(1,myThid), SSR(1,1,myThid), SLR(1,0,myThid), |
250 |
I T0(1,myThid), Q0(1,myThid), CDENVV(1,1), |
I T1s, T0(1,myThid), Q0(1,myThid), DENVV, |
251 |
O SHF(1,1,myThid), EVAP(1,1,myThid), SLR(1,1,myThid), |
O SHF(1,1,myThid), EVAP(1,1,myThid), SLR(1,1,myThid), |
252 |
O Evp0, dEvp, Slr0, dSlr, sFlx, |
O Shf0, dShf, Evp0, dEvp, Slr0, dSlr, sFlx, |
253 |
O TS(1,myThid), TSKIN(1,myThid), |
O TS(1,myThid), TSKIN(1,myThid), |
254 |
I bi,bj,myThid) |
I bi,bj,myThid) |
255 |
#ifdef ALLOW_LAND |
#ifdef ALLOW_LAND |
256 |
CALL AIM_LAND_IMPL( |
CALL AIM_LAND_IMPL( |
257 |
I FMASK1(1,1,myThid), dTskin, |
I FMASK1(1,1,myThid), dTskin, |
258 |
I Evp0, dEvp, Slr0, dSlr, |
I Shf0, dShf, Evp0, dEvp, Slr0, dSlr, |
259 |
U sFlx, |
U sFlx, STL1(1,myThid), |
260 |
U STL1(1,myThid), EVAP(1,1,myThid), SLR(1,1,myThid), |
U SHF(1,1,myThid), EVAP(1,1,myThid), SLR(1,1,myThid), |
261 |
|
O dTsurf(1,1,myThid), |
262 |
I bi, bj, myTime, myIter, myThid) |
I bi, bj, myTime, myIter, myThid) |
263 |
#endif /* ALLOW_LAND */ |
#endif /* ALLOW_LAND */ |
264 |
|
|
266 |
I PSG, FMASK1(1,2,myThid), |
I PSG, FMASK1(1,2,myThid), |
267 |
I SST1(1,myThid), |
I SST1(1,myThid), |
268 |
I SSR(1,2,myThid), SLR(1,0,myThid), |
I SSR(1,2,myThid), SLR(1,0,myThid), |
269 |
O T0(1,myThid), Q0(1,myThid), CDENVV(1,2), |
O T1s, T0(1,myThid), Q0(1,myThid), DENVV, |
270 |
O SHF(1,2,myThid), EVAP(1,2,myThid), SLR(1,2,myThid), |
O SHF(1,2,myThid), EVAP(1,2,myThid), SLR(1,2,myThid), |
271 |
I bi,bj,myThid) |
I bi,bj,myThid) |
272 |
|
|
275 |
I PSG, FMASK1(1,3,myThid), EMISFC, |
I PSG, FMASK1(1,3,myThid), EMISFC, |
276 |
I STI1(1,myThid), dTskin, |
I STI1(1,myThid), dTskin, |
277 |
I SSR(1,3,myThid), SLR(1,0,myThid), |
I SSR(1,3,myThid), SLR(1,0,myThid), |
278 |
I T0(1,myThid), Q0(1,myThid), CDENVV(1,3), |
I T1s, T0(1,myThid), Q0(1,myThid), DENVV, |
279 |
O SHF(1,3,myThid), EVAP(1,3,myThid), SLR(1,3,myThid), |
O SHF(1,3,myThid), EVAP(1,3,myThid), SLR(1,3,myThid), |
280 |
O Evp0, dEvp, Slr0, dSlr, sFlx, |
O Shf0, dShf, Evp0, dEvp, Slr0, dSlr, sFlx, |
281 |
O TS(1,myThid), TSKIN(1,myThid), |
O TS(1,myThid), TSKIN(1,myThid), |
282 |
I bi,bj,myThid) |
I bi,bj,myThid) |
283 |
#ifdef ALLOW_THSICE |
#ifdef ALLOW_THSICE |
284 |
CALL AIM_SICE_IMPL( |
CALL AIM_SICE_IMPL( |
285 |
I FMASK1(1,3,myThid), SSR(1,3,myThid), sFlx, |
I FMASK1(1,3,myThid), SSR(1,3,myThid), sFlx, |
286 |
I Evp0, dEvp, Slr0, dSlr, |
I Shf0, dShf, Evp0, dEvp, Slr0, dSlr, |
287 |
U STI1(1,myThid), EVAP(1,3,myThid), SLR(1,3,myThid), |
U STI1(1,myThid), |
288 |
|
U SHF(1,3,myThid), EVAP(1,3,myThid), SLR(1,3,myThid), |
289 |
|
O dTsurf(1,3,myThid), |
290 |
I bi, bj, myTime, myIter, myThid) |
I bi, bj, myTime, myIter, myThid) |
291 |
#endif /* ALLOW_THSICE */ |
#endif /* ALLOW_THSICE */ |
292 |
ELSE |
ELSE |
293 |
DO J=1,NGP |
DO J=1,NGP |
294 |
|
SHF (J,3,myThid) = 0. _d 0 |
295 |
EVAP(J,3,myThid) = 0. _d 0 |
EVAP(J,3,myThid) = 0. _d 0 |
296 |
SLR (J,3,myThid) = 0. _d 0 |
SLR (J,3,myThid) = 0. _d 0 |
297 |
ENDDO |
ENDDO |
301 |
I FMASK1(1,1,myThid), EMISFC, |
I FMASK1(1,1,myThid), EMISFC, |
302 |
I STL1(1,myThid), SST1(1,myThid), sti1(1,myThid), |
I STL1(1,myThid), SST1(1,myThid), sti1(1,myThid), |
303 |
I dTskin, SLR(1,0,myThid), |
I dTskin, SLR(1,0,myThid), |
304 |
I T0(1,myThid), Q0(1,myThid), CDENVV, |
I T0(1,myThid), Q0(1,myThid), DENVV, |
305 |
U DRAG(1,0,myThid), SHF(1,0,myThid), |
U DRAG(1,0,myThid), SHF(1,0,myThid), |
306 |
U EVAP(1,0,myThid), SLR(1,1,myThid), |
U EVAP(1,0,myThid), SLR(1,1,myThid), |
307 |
O ST4S, TS(1,myThid), TSKIN(1,myThid), |
O ST4S, TS(1,myThid), TSKIN(1,myThid), |
325 |
ENDDO |
ENDDO |
326 |
ENDDO |
ENDDO |
327 |
|
|
328 |
|
#ifdef ALLOW_CLR_SKY_DIAG |
329 |
|
C 3.5 Compute clear-sky radiation (for diagnostics only) |
330 |
|
IF ( aim_clrSkyDiag ) THEN |
331 |
|
|
332 |
|
C 3.5.1 Compute shortwave tendencies |
333 |
|
dummyI(1) = -1 |
334 |
|
CALL RADSW (PSG,dpFac,QG1,RH(1,1,myThid),ALB1(1,0,myThid), |
335 |
|
I FSOL, OZONE, OZUPP, ZENIT, STRATZ, |
336 |
|
O TAU2, STRATC, |
337 |
|
O dummyI, dummyR, |
338 |
|
O TSWclr(1,myThid), SSWclr(1,myThid), TT_SWclr(1,1,myThid), |
339 |
|
I kGround,bi,bj,myThid) |
340 |
|
|
341 |
|
C 3.5.2 Compute downward longwave fluxes |
342 |
|
|
343 |
|
CALL RADLW (-1,TG1,TS(1,myThid),ST4S, |
344 |
|
& OZUPP, STRATC, TAU2, FLUX, ST4A, |
345 |
|
O OLWclr(1,myThid), SLWclr(1,myThid), TT_LWclr(1,1,myThid), |
346 |
|
I kGround,bi,bj,myThid) |
347 |
|
|
348 |
|
C 3.5.3 Compute upward longwave fluxes, convert them to tendencies |
349 |
|
|
350 |
|
CALL RADLW (1,TG1,TS(1,myThid),ST4S, |
351 |
|
& OZUPP, STRATC, TAU2, FLUX, ST4A, |
352 |
|
O OLWclr(1,myThid), SLWclr(1,myThid), TT_LWclr(1,1,myThid), |
353 |
|
I kGround,bi,bj,myThid) |
354 |
|
|
355 |
|
DO K=1,NLEV |
356 |
|
DO J=1,NGP |
357 |
|
TT_SWclr(J,K,myThid)=TT_SWclr(J,K,myThid)*RPS_1*GRDSCP(K) |
358 |
|
TT_LWclr(J,K,myThid)=TT_LWclr(J,K,myThid)*RPS_1*GRDSCP(K) |
359 |
|
ENDDO |
360 |
|
ENDDO |
361 |
|
|
362 |
|
ENDIF |
363 |
|
#endif /* ALLOW_CLR_SKY_DIAG */ |
364 |
|
|
365 |
C-- 4. PBL interactions with lower troposphere |
C-- 4. PBL interactions with lower troposphere |
366 |
|
|
367 |
C 4.1 Vertical diffusion and shallow convection |
C 4.1 Vertical diffusion and shallow convection |