24# if defined PIO_LIB && defined DISTRIBUTE
30# if defined PIO_LIB && defined DISTRIBUTE
38# if defined PIO_LIB && defined DISTRIBUTE
83# if defined PIO_LIB && defined DISTRIBUTE
94 & LBij, UBij, LBk, UBk, Nrec, &
97 & MinValue, MaxValue)
RESULT(status)
104 integer,
intent(in) :: ng, model, ncid, ncvarid, tindex, gtype
105 integer,
intent(in) :: lbij, ubij, lbk, ubk, nrec
107 integer,
intent(in),
optional :: extractfield
109 real(dp),
intent(in) :: ascl
111 character (len=*),
intent(in) :: ncname
112 character (len=*),
intent(in) :: ncvname
115 real(r8),
intent(in) :: abry(lbij:,lbk:,:,:)
117 real(r8),
intent(in) :: abry(lbij:ubij,lbk:ubk,4,nrec)
119 real(r8),
intent(out),
optional :: minvalue
120 real(r8),
intent(out),
optional :: maxvalue
124 integer :: iorj, ijklen, klen, npts, i, tile
125 integer :: extract_flag
128 integer,
dimension(5) :: start, total
130 real(r8),
parameter :: aspv = 0.0_r8
132 real(r8),
dimension((UBij-LBij+1)*(UBk-LBk+1)*4*Nrec) :: awrk
159 IF (
PRESENT(extractfield))
THEN
160 extract_flag=extractfield
175 & gtype, ncvname, tindex, &
177 & lbij, ubij, lbk, ubk, nrec, &
179 & start, total, npts, awrk)
185 IF (
PRESENT(minvalue))
THEN
190 IF (abs(awrk(i)).lt.
spval)
THEN
191 minvalue=min(minvalue,awrk(i))
192 maxvalue=max(maxvalue,awrk(i))
204 status=nf90_put_var(ncid, ncvarid, awrk, start, total)
219# if defined PIO_LIB && defined DISTRIBUTE
225 & LBij, UBij, LBk, UBk, Nrec, &
227 & MinValue, MaxValue)
RESULT(status)
234 integer,
intent(in) :: ng, model, tindex
235 integer,
intent(in) :: lbij, ubij, lbk, ubk, nrec
237 real(dp),
intent(in) :: ascl
239 character (len=*),
intent(in) :: ncname
240 character (len=*),
intent(in) :: ncvname
243 real(r8),
intent(in) :: abry(lbij:,lbk:,:,:)
245 real(r8),
intent(in) :: abry(lbij:ubij,lbk:ubk,4,nrec)
247 real(r8),
intent(out),
optional :: minvalue
248 real(r8),
intent(out),
optional :: maxvalue
250 TYPE (file_desc_t),
intent(inout) :: piofile
251 TYPE (io_desc_t),
intent(inout) :: piodesc
252 TYPE (my_vardesc),
intent(inout) :: piovar
256 logical,
dimension(4) :: bounded
258 integer :: bc, i, ib, ic, ir, j, k, kc, rc
259 integer :: dkind, gtype, tile
260 integer :: iorj, ijklen, imin, imax, jmin, jmax, klen, npts
261 integer :: istr, iend, jstr, jend
263 integer,
dimension(5) :: start, total
267 real(r8),
parameter :: aspv = 0.0_r8
269 real(r8),
dimension((UBij-LBij+1)*(UBk-LBk+1)*4*Nrec) :: awrk
285 imin=
bounds(ng)%Istr (tile)
286 imax=
bounds(ng)%Iend (tile)
287 jmin=
bounds(ng)%Jstr (tile)
288 jmax=
bounds(ng)%Jend (tile)
290 imin=
bounds(ng)%IstrR(tile)
291 imax=
bounds(ng)%IendR(tile)
292 jmin=
bounds(ng)%JstrR(tile)
293 jmax=
bounds(ng)%JendR(tile)
295 imin=
bounds(ng)%Istr (tile)
296 imax=
bounds(ng)%IendR(tile)
297 jmin=
bounds(ng)%JstrR(tile)
298 jmax=
bounds(ng)%JendR(tile)
300 imin=
bounds(ng)%IstrR(tile)
301 imax=
bounds(ng)%IendR(tile)
302 jmin=
bounds(ng)%Jstr (tile)
303 jmax=
bounds(ng)%JendR(tile)
305 imin=
bounds(ng)%IstrR(tile)
306 imax=
bounds(ng)%IendR(tile)
307 jmin=
bounds(ng)%JstrR(tile)
308 jmax=
bounds(ng)%JendR(tile)
318 istr=
bounds(ng)%Istr(tile)
319 iend=
bounds(ng)%Iend(tile)
320 jstr=
bounds(ng)%Jstr(tile)
321 jend=
bounds(ng)%Jend(tile)
352 IF (bounded(ib))
THEN
359 awrk(ic)=abry(j,k,ib,ir)*ascl
361 IF (abs(awrk(ic)).eq.0.0_r8)
THEN
372 awrk(ic)=abry(i,k,ib,ir)*ascl
374 IF (abs(awrk(ic)).eq.0.0_r8)
THEN
393 IF (
PRESENT(minvalue))
THEN
397 IF (abs(awrk(i)).lt.
spval)
THEN
398 minvalue=min(minvalue,awrk(i))
399 maxvalue=max(maxvalue,awrk(i))
408 status=pio_put_var(piofile, piovar%vd, start, total, awrk)
type(t_bounds), dimension(:), allocatable bounds
integer, parameter r3dvar
type(t_iobounds), dimension(:), allocatable iobounds
integer, parameter u3dvar
type(t_domain), dimension(:), allocatable domain
integer, parameter u2dvar
integer, parameter p2dvar
integer, parameter r2dvar
integer, parameter v2dvar
integer, parameter p3dvar
integer, parameter v3dvar
real(dp), parameter spval
integer, parameter isouth
integer, parameter inorth
integer function pio_fwrite3d_bry(ng, model, ncname, piofile, ncvname, piovar, tindex, piodesc, lbij, ubij, lbk, ubk, nrec, ascl, abry, minvalue, maxvalue)
integer function nf90_fwrite3d_bry(ng, model, ncname, ncid, ncvname, ncvarid, tindex, gtype, lbij, ubij, lbk, ubk, nrec, ascl, abry, extractfield, minvalue, maxvalue)
subroutine, public pack_boundary3d(ng, model, tile, gtype, ncvname, tindex, extract_flag, lbij, ubij, lbk, ubk, nrec, bscl, bdat, start, total, npts, bwrk)