1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
#include "CPP_OPTIONS.h" |
#include "FIZHI_OPTIONS.h" |
5 |
subroutine fizhi_step_diag(myThid,p,uphy,vphy,thphy,sphy,qq,pk,dp, |
subroutine fizhi_step_diag(myThid,p,uphy,vphy,thphy,sphy,qq,pk,dp, |
6 |
. radswt,radswg,swgclr,osr,osrclr,st4,dst4,tgz,tg0,radlwg,lwgclr, |
. radswt,radswg,swgclr,osr,osrclr,st4,dst4,tgz,tg0,radlwg,lwgclr, |
7 |
. turbu,turbv,turbt,turbq,moistu,moistv,moistt,moistq, |
. turbu,turbv,turbt,turbq,moistu,moistv,moistt,moistq, |
8 |
. lwdt,swdt,lwdtclr,swdtclr,im1,im2,jm1,jm2,Nrphys,Nsx,Nsy,bi,bj) |
. lwdt,swdt,lwdtclr,swdtclr,dlwdtg, |
9 |
|
. im1,im2,jm1,jm2,Nrphys,Nbi,Nbj,bi,bj,ntracer) |
10 |
C*********************************************************************** |
C*********************************************************************** |
11 |
implicit none |
implicit none |
12 |
|
|
13 |
|
#ifdef ALLOW_DIAGNOSTICS |
14 |
|
#include "SIZE.h" |
15 |
|
#include "diagnostics_SIZE.h" |
16 |
#include "diagnostics.h" |
#include "diagnostics.h" |
17 |
|
#endif |
18 |
|
|
19 |
integer myThid,im1,im2,jm1,jm2,Nrphys,Nsx,Nsy,bi,bj |
integer myThid,im1,im2,jm1,jm2,Nrphys,Nbi,Nbj,bi,bj,ntracer |
20 |
real p(im2,jm2,Nsx,Nsy) |
_RL p(im2,jm2,Nbi,Nbj) |
21 |
real uphy(im2,jm2,Nrphys,Nsx,Nsy),vphy(im2,jm2,Nrphys,Nsx,Nsy) |
_RL uphy(im2,jm2,Nrphys,Nbi,Nbj),vphy(im2,jm2,Nrphys,Nbi,Nbj) |
22 |
real thphy(im2,jm2,Nrphys,Nsx,Nsy),sphy(im2,jm2,Nrphys,Nsx,Nsy) |
_RL thphy(im2,jm2,Nrphys,Nbi,Nbj),sphy(im2,jm2,Nrphys,Nbi,Nbj) |
23 |
real qq(im2,jm2,Nrphys),pk(im2,jm2,Nrphys,Nsx,Nsy) |
_RL qq(im2,jm2,Nrphys),pk(im2,jm2,Nrphys,Nbi,Nbj) |
24 |
real dp(im2,jm2,Nrphys,Nsx,Nsy) |
_RL dp(im2,jm2,Nrphys,Nbi,Nbj) |
25 |
real radswt(im2,jm2,Nsx,Nsy),radswg(im2,jm2,Nsx,Nsy) |
_RL radswt(im2,jm2,Nbi,Nbj),radswg(im2,jm2,Nbi,Nbj) |
26 |
real swgclr(im2,jm2,Nsx,Nsy),osr(im2,jm2,Nsx,Nsy) |
_RL swgclr(im2,jm2,Nbi,Nbj),osr(im2,jm2,Nbi,Nbj) |
27 |
real osrclr(im2,jm2,Nsx,Nsy),st4(im2,jm2,Nsx,Nsy) |
_RL osrclr(im2,jm2,Nbi,Nbj),st4(im2,jm2,Nbi,Nbj) |
28 |
real dst4(im2,jm2,Nsx,Nsy),tgz(im2,jm2,Nsx,Nsy) |
_RL dst4(im2,jm2,Nbi,Nbj),tgz(im2,jm2,Nbi,Nbj) |
29 |
real tg0(im2,jm2,Nsx,Nsy),radlwg(im2,jm2,Nsx,Nsy) |
_RL tg0(im2,jm2,Nbi,Nbj),radlwg(im2,jm2,Nbi,Nbj) |
30 |
real lwgclr(im2,jm2,Nsx,Nsy) |
_RL lwgclr(im2,jm2,Nbi,Nbj) |
31 |
real turbu(im2,jm2,Nrphys,Nsx,Nsy),turbv(im2,jm2,Nrphys,Nsx,Nsy) |
_RL turbu(im2,jm2,Nrphys,Nbi,Nbj),turbv(im2,jm2,Nrphys,Nbi,Nbj) |
32 |
real turbt(im2,jm2,Nrphys,Nsx,Nsy),turbq(im2,jm2,Nrphys,Nsx,Nsy) |
_RL turbt(im2,jm2,Nrphys,Nbi,Nbj) |
33 |
real moistu(im2,jm2,Nrphys,Nsx,Nsy),moistv(im2,jm2,Nrphys,Nsx,Nsy) |
_RL turbq(im2,jm2,Nrphys,ntracer,Nbi,Nbj) |
34 |
real moistt(im2,jm2,Nrphys,Nsx,Nsy),moistq(im2,jm2,Nrphys,Nsx,Nsy) |
_RL moistu(im2,jm2,Nrphys,Nbi,Nbj),moistv(im2,jm2,Nrphys,Nbi,Nbj) |
35 |
real lwdt(im2,jm2,Nrphys,Nsx,Nsy),swdt(im2,jm2,Nrphys,Nsx,Nsy) |
_RL moistt(im2,jm2,Nrphys,Nbi,Nbj) |
36 |
real lwdtclr(im2,jm2,Nrphys,Nsx,Nsy) |
_RL moistq(im2,jm2,Nrphys,ntracer,Nbi,Nbj) |
37 |
real swdtclr(im2,jm2,Nrphys,Nsx,Nsy) |
_RL lwdt(im2,jm2,Nrphys,Nbi,Nbj),swdt(im2,jm2,Nrphys,Nbi,Nbj) |
38 |
|
_RL lwdtclr(im2,jm2,Nrphys,Nbi,Nbj) |
39 |
|
_RL swdtclr(im2,jm2,Nrphys,Nbi,Nbj) |
40 |
|
_RL dlwdtg(im2,jm2,Nrphys,Nbi,Nbj) |
41 |
|
|
42 |
integer i,j,L |
integer i,j,L |
43 |
real pinv(im2,jm2), qbar(im2,jm2) |
_RL pinv(im2,jm2), qbar(im2,jm2) |
44 |
|
|
45 |
C ********************************************************************** |
C ********************************************************************** |
46 |
|
|
246 |
do i=im1,im2 |
do i=im1,im2 |
247 |
qdiag(i,j,iswclr+l-1,bi,bj) = qdiag(i,j,iswclr+l-1,bi,bj) + |
qdiag(i,j,iswclr+l-1,bi,bj) = qdiag(i,j,iswclr+l-1,bi,bj) + |
248 |
. swdtclr(i,j,l,bi,bj)*radswt(i,j,bi,bj)* |
. swdtclr(i,j,l,bi,bj)*radswt(i,j,bi,bj)* |
249 |
. pk(i,j,l,bi,bj)*pinv(i,j,bi,bj)*86400 |
. pk(i,j,l,bi,bj)*pinv(i,j)*86400 |
250 |
enddo |
enddo |
251 |
enddo |
enddo |
252 |
endif |
endif |
342 |
do j=jm1,jm2 |
do j=jm1,jm2 |
343 |
do i=im1,im2 |
do i=im1,im2 |
344 |
qdiag(i,j,ivdtmoist,bi,bj) = qdiag(i,j,ivdtmoist,bi,bj) + |
qdiag(i,j,ivdtmoist,bi,bj) = qdiag(i,j,ivdtmoist,bi,bj) + |
345 |
. qbar(i,j)*pinv(i,j,bi,bj)*pinv(i,j,bi,bj)*86400 |
. qbar(i,j)*pinv(i,j)*pinv(i,j)*86400 |
346 |
enddo |
enddo |
347 |
enddo |
enddo |
348 |
endif |
endif |
366 |
do j=jm1,jm2 |
do j=jm1,jm2 |
367 |
do i=im1,im2 |
do i=im1,im2 |
368 |
qdiag(i,j,ivdtturb,bi,bj) = qdiag(i,j,ivdtturb,bi,bj) + |
qdiag(i,j,ivdtturb,bi,bj) = qdiag(i,j,ivdtturb,bi,bj) + |
369 |
. qbar(i,j)*pinv(i,j,bi,bj)*pinv(i,j,bi,bj)*86400 |
. qbar(i,j)*pinv(i,j)*pinv(i,j)*86400 |
370 |
enddo |
enddo |
371 |
enddo |
enddo |
372 |
endif |
endif |
391 |
do j=jm1,jm2 |
do j=jm1,jm2 |
392 |
do i=im1,im2 |
do i=im1,im2 |
393 |
qdiag(i,j,ivdtradlw,bi,bj) = qdiag(i,j,ivdtradlw,bi,bj) + |
qdiag(i,j,ivdtradlw,bi,bj) = qdiag(i,j,ivdtradlw,bi,bj) + |
394 |
. qbar(i,j)*pinv(i,j,bi,bj)*pinv(i,j,bi,bj)*86400 |
. qbar(i,j)*pinv(i,j)*pinv(i,j)*86400 |
395 |
enddo |
enddo |
396 |
enddo |
enddo |
397 |
endif |
endif |
415 |
do j=jm1,jm2 |
do j=jm1,jm2 |
416 |
do i=im1,im2 |
do i=im1,im2 |
417 |
qdiag(i,j,ivdtradsw,bi,bj) = qdiag(i,j,ivdtradsw,bi,bj) + |
qdiag(i,j,ivdtradsw,bi,bj) = qdiag(i,j,ivdtradsw,bi,bj) + |
418 |
. qbar(i,j)*radswt(i,j,bi,bj)*pinv(i,j,bi,bj)*pinv(i,j,bi,bj)*86400 |
. qbar(i,j)*radswt(i,j,bi,bj)*pinv(i,j)*pinv(i,j)*86400 |
419 |
enddo |
enddo |
420 |
enddo |
enddo |
421 |
endif |
endif |