12 |
|
|
13 |
integer myid,im1,im2,jm1,jm2,Nrphys,Nbi,Nbj,bi,bj,ntracer |
integer myid,im1,im2,jm1,jm2,Nrphys,Nbi,Nbj,bi,bj,ntracer |
14 |
_RL p(im2,jm2,Nbi,Nbj) |
_RL p(im2,jm2,Nbi,Nbj) |
15 |
_RL uphy(im2,jm2,Nrphys,Nbi,Nbj) |
_RL uphy(im2,jm2,Nrphys) |
16 |
_RL vphy(im2,jm2,Nrphys,Nbi,Nbj) |
_RL vphy(im2,jm2,Nrphys) |
17 |
_RL thphy(im2,jm2,Nrphys,Nbi,Nbj) |
_RL thphy(im2,jm2,Nrphys) |
18 |
_RL sphy(im2,jm2,Nrphys,Nbi,Nbj) |
_RL sphy(im2,jm2,Nrphys) |
19 |
_RL qq(im2,jm2,Nrphys,Nbi,Nbj),pk(im2,jm2,Nrphys,Nbi,Nbj) |
_RL qq(im2,jm2,Nrphys,Nbi,Nbj),pk(im2,jm2,Nrphys,Nbi,Nbj) |
20 |
_RL dp(im2,jm2,Nrphys,Nbi,Nbj) |
_RL dp(im2,jm2,Nrphys,Nbi,Nbj) |
21 |
_RL radswt(im2,jm2,Nbi,Nbj),radswg(im2,jm2,Nbi,Nbj) |
_RL radswt(im2,jm2,Nbi,Nbj),radswg(im2,jm2,Nbi,Nbj) |
39 |
_RL dlwdtg(im2,jm2,Nrphys,Nbi,Nbj) |
_RL dlwdtg(im2,jm2,Nrphys,Nbi,Nbj) |
40 |
|
|
41 |
integer i,j,L |
integer i,j,L |
42 |
|
_RL getcon, gravity |
43 |
_RL pinv(im2,jm2), qbar(im2,jm2),tmpdiag(im2,jm2) |
_RL pinv(im2,jm2), qbar(im2,jm2),tmpdiag(im2,jm2) |
44 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
45 |
logical diagnostics_is_on |
logical diagnostics_is_on |
111 |
call diagnostics_fill(tmpdiag,'OSRCLR ',0,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'OSRCLR ',0,1,3,bi,bj,myid) |
112 |
endif |
endif |
113 |
|
|
114 |
|
c Planetary Albedo |
115 |
|
c ---------------- |
116 |
|
if(diagnostics_is_on('PLALBEDO',myid) ) then |
117 |
|
do j=jm1,jm2 |
118 |
|
do i=im1,im2 |
119 |
|
if(radswt(i,j,bi,bj).ne.0.) then |
120 |
|
tmpdiag(i,j) = osr(i,j,bi,bj) |
121 |
|
else |
122 |
|
tmpdiag(i,j) = 0. |
123 |
|
endif |
124 |
|
enddo |
125 |
|
enddo |
126 |
|
call diagnostics_fill(tmpdiag,'PLALBEDO',0,1,3,bi,bj,myid) |
127 |
|
endif |
128 |
|
|
129 |
c Upward Longwave Flux at the Ground (W/m**2) |
c Upward Longwave Flux at the Ground (W/m**2) |
130 |
c ------------------------------------------- |
c ------------------------------------------- |
131 |
if(diagnostics_is_on('LWGUP ',myid) ) then |
if(diagnostics_is_on('LWGUP ',myid) ) then |
275 |
if(diagnostics_is_on('UWND ',myid) ) then |
if(diagnostics_is_on('UWND ',myid) ) then |
276 |
do j=jm1,jm2 |
do j=jm1,jm2 |
277 |
do i=im1,im2 |
do i=im1,im2 |
278 |
tmpdiag(i,j) = uphy(i,j,L,bi,bj) |
tmpdiag(i,j) = uphy(i,j,L) |
279 |
enddo |
enddo |
280 |
enddo |
enddo |
281 |
call diagnostics_fill(tmpdiag,'UWND ',L,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'UWND ',L,1,3,bi,bj,myid) |
286 |
if(diagnostics_is_on('VWND ',myid) ) then |
if(diagnostics_is_on('VWND ',myid) ) then |
287 |
do j=jm1,jm2 |
do j=jm1,jm2 |
288 |
do i=im1,im2 |
do i=im1,im2 |
289 |
tmpdiag(i,j) = vphy(i,j,L,bi,bj) |
tmpdiag(i,j) = vphy(i,j,L) |
290 |
enddo |
enddo |
291 |
enddo |
enddo |
292 |
call diagnostics_fill(tmpdiag,'VWND ',L,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'VWND ',L,1,3,bi,bj,myid) |
297 |
if(diagnostics_is_on('TMPU ',myid) ) then |
if(diagnostics_is_on('TMPU ',myid) ) then |
298 |
do j=jm1,jm2 |
do j=jm1,jm2 |
299 |
do i=im1,im2 |
do i=im1,im2 |
300 |
tmpdiag(i,j) = thphy(i,j,L,bi,bj)*pk(i,j,L,bi,bj) |
tmpdiag(i,j) = thphy(i,j,L)*pk(i,j,L,bi,bj) |
301 |
enddo |
enddo |
302 |
enddo |
enddo |
303 |
call diagnostics_fill(tmpdiag,'TMPU ',L,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'TMPU ',L,1,3,bi,bj,myid) |
319 |
if(diagnostics_is_on('SPHU ',myid) ) then |
if(diagnostics_is_on('SPHU ',myid) ) then |
320 |
do j=jm1,jm2 |
do j=jm1,jm2 |
321 |
do i=im1,im2 |
do i=im1,im2 |
322 |
tmpdiag(i,j) = sphy(i,j,L,bi,bj) * 1000. |
tmpdiag(i,j) = sphy(i,j,L) * 1000. |
323 |
enddo |
enddo |
324 |
enddo |
enddo |
325 |
call diagnostics_fill(tmpdiag,'SPHU ',L,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'SPHU ',L,1,3,bi,bj,myid) |
427 |
call diagnostics_fill(tmpdiag,'VDTRADSW',0,1,3,bi,bj,myid) |
call diagnostics_fill(tmpdiag,'VDTRADSW',0,1,3,bi,bj,myid) |
428 |
endif |
endif |
429 |
|
|
430 |
|
c Total Precipitable Water (g/cm^2) |
431 |
|
c --------------------------------------------- |
432 |
|
if(diagnostics_is_on('TPW ',myid) ) then |
433 |
|
gravity = getcon('GRAVITY') |
434 |
|
do j=jm1,jm2 |
435 |
|
do i=im1,im2 |
436 |
|
qbar(i,j) = 0.0 |
437 |
|
enddo |
438 |
|
enddo |
439 |
|
do L=1,Nrphys |
440 |
|
do j=jm1,jm2 |
441 |
|
do i=im1,im2 |
442 |
|
qbar(i,j) = qbar(i,j) + |
443 |
|
. sphy(i,j,L)*dp(i,j,L,bi,bj) |
444 |
|
enddo |
445 |
|
enddo |
446 |
|
enddo |
447 |
|
do j=jm1,jm2 |
448 |
|
do i=im1,im2 |
449 |
|
tmpdiag(i,j) = qbar(i,j)*10. _d 0 /gravity |
450 |
|
enddo |
451 |
|
enddo |
452 |
|
call diagnostics_fill(tmpdiag,'TPW ',0,1,3,bi,bj,myid) |
453 |
|
endif |
454 |
#endif |
#endif |
455 |
return |
return |
456 |
end |
end |