114# if defined DIAGNOSTICS_BIO && defined ECOSIM
120 integer,
intent(in) :: ng, lbi, ubi, lbj, ubj
134 size2d=real((ubi-lbi+1)*(ubj-lbj+1),
r8)
138 allocate (
diags(ng) % avgzeta(lbi:ubi,lbj:ubj) )
141# ifdef DIAGNOSTICS_BIO
142# if defined BIO_FENNEL
144 allocate (
diags(ng) % DiaBio2d(lbi:ubi,lbj:ubj,
ndbio2d) )
148 allocate (
diags(ng) % DiaBio3d(lbi:ubi,lbj:ubj,
n(ng),
ndbio3d) )
153 allocate (
diags(ng) % DiaBio3d(lbi:ubi,lbj:ubj, &
158 allocate (
diags(ng) % DiaBio4d(lbi:ubi,lbj:ubj,
n(ng), &
165# ifdef DIAGNOSTICS_TS
166 allocate (
diags(ng) % DiaTrc(lbi:ubi,lbj:ubj,
n(ng),
nt(ng),
ndt) )
169 allocate (
diags(ng) % DiaTwrk(lbi:ubi,lbj:ubj,
n(ng),
nt(ng),
ndt) )
173# ifdef DIAGNOSTICS_UV
174 allocate (
diags(ng) % DiaU2d(lbi:ubi,lbj:ubj,
ndm2d) )
177 allocate (
diags(ng) % DiaV2d(lbi:ubi,lbj:ubj,
ndm2d) )
180 allocate (
diags(ng) % DiaU2wrk(lbi:ubi,lbj:ubj,
ndm2d) )
183 allocate (
diags(ng) % DiaV2wrk(lbi:ubi,lbj:ubj,
ndm2d) )
186 allocate (
diags(ng) % DiaRUbar(lbi:ubi,lbj:ubj,2,
ndm2d-1) )
189 allocate (
diags(ng) % DiaRVbar(lbi:ubi,lbj:ubj,2,
ndm2d-1) )
193 allocate (
diags(ng) % DiaU2int(lbi:ubi,lbj:ubj,
ndm2d) )
196 allocate (
diags(ng) % DiaV2int(lbi:ubi,lbj:ubj,
ndm2d) )
199 allocate (
diags(ng) % DiaRUfrc(lbi:ubi,lbj:ubj,3,
ndm2d-1) )
202 allocate (
diags(ng) % DiaRVfrc(lbi:ubi,lbj:ubj,3,
ndm2d-1) )
205 allocate (
diags(ng) % DiaU3d(lbi:ubi,lbj:ubj,
n(ng),
ndm3d) )
208 allocate (
diags(ng) % DiaV3d(lbi:ubi,lbj:ubj,
n(ng),
ndm3d) )
211 allocate (
diags(ng) % DiaU3wrk(lbi:ubi,lbj:ubj,
n(ng),
ndm3d) )
214 allocate (
diags(ng) % DiaV3wrk(lbi:ubi,lbj:ubj,
n(ng),
ndm3d) )
217 allocate (
diags(ng) % DiaRU(lbi:ubi,lbj:ubj,
n(ng),2,
ndrhs) )
220 allocate (
diags(ng) % DiaRV(lbi:ubi,lbj:ubj,
n(ng),2,
ndrhs) )
376# if defined DIAGNOSTICS_BIO && defined ECOSIM
382 integer,
intent(in) :: ng, tile
386 integer :: imin, imax, jmin, jmax
387 integer :: i, idiag, j
389 integer :: itrc, iband, k
392 real(
r8),
parameter :: inival = 0.0_r8
394# include "set_bounds.h"
404 IF (
domain(ng)%Western_Edge(tile))
THEN
409 IF (
domain(ng)%Eastern_Edge(tile))
THEN
414 IF (
domain(ng)%Southern_Edge(tile))
THEN
419 IF (
domain(ng)%Northern_Edge(tile))
THEN
432 diags(ng) % avgzeta(i,j) = inival
435# ifdef DIAGNOSTICS_BIO
436# if defined BIO_FENNEL
440 diags(ng) % DiaBio2d(i,j,idiag) = inival
448 diags(ng) % DiaBio3d(i,j,k,idiag) = inival
458 diags(ng) % DiaBio3d(i,j,k,idiag) = inival
468 diags(ng) % DiaBio4d(i,j,k,iband,idiag) = inival
476# ifdef DIAGNOSTICS_TS
481 diags(ng) % DiaTrc(i,j,k,itrc,idiag) = inival
482 diags(ng) % DiaTwrk(i,j,k,itrc,idiag) = inival
488# ifdef DIAGNOSTICS_UV
491 diags(ng) % DiaU2d(i,j,idiag) = inival
492 diags(ng) % DiaV2d(i,j,idiag) = inival
493 diags(ng) % DiaU2wrk(i,j,idiag) = inival
494 diags(ng) % DiaV2wrk(i,j,idiag) = inival
496 diags(ng) % DiaU2int(i,j,idiag) = inival
497 diags(ng) % DiaV2int(i,j,idiag) = inival
503 diags(ng) % DiaRUbar(i,j,1,idiag) = inival
504 diags(ng) % DiaRUbar(i,j,2,idiag) = inival
505 diags(ng) % DiaRVbar(i,j,1,idiag) = inival
506 diags(ng) % DiaRVbar(i,j,2,idiag) = inival
508 diags(ng) % DiaRUfrc(i,j,1,idiag) = inival
509 diags(ng) % DiaRUfrc(i,j,2,idiag) = inival
510 diags(ng) % DiaRUfrc(i,j,3,idiag) = inival
511 diags(ng) % DiaRVfrc(i,j,1,idiag) = inival
512 diags(ng) % DiaRVfrc(i,j,2,idiag) = inival
513 diags(ng) % DiaRVfrc(i,j,3,idiag) = inival
521 diags(ng) % DiaU3d(i,j,k,idiag) = inival
522 diags(ng) % DiaV3d(i,j,k,idiag) = inival
523 diags(ng) % DiaU3wrk(i,j,k,idiag) = inival
524 diags(ng) % DiaV3wrk(i,j,k,idiag) = inival
531 diags(ng) % DiaRU(i,j,k,1,idiag) = inival
532 diags(ng) % DiaRU(i,j,k,2,idiag) = inival
533 diags(ng) % DiaRV(i,j,k,1,idiag) = inival
534 diags(ng) % DiaRV(i,j,k,2,idiag) = inival