37# if defined PIO_LIB && defined DISTRIBUTE
49 integer,
intent(in) :: ng, tile, model, inirec
53 integer :: lbi, ubi, lbj, ubj
55 character (len=*),
parameter :: myfile = &
67 SELECT CASE (
ini(ng)%IOtype)
72# if defined PIO_LIB && defined DISTRIBUTE
83 10
FORMAT (
' GET_WETDRY - Illegal input file type, io_type = ',i0, &
84 & /,14x,
'Check KeyWord ''INP_LIB'' in ''roms.in''.')
98 integer,
intent(in) :: ng, tile, model, inirec
99 integer,
intent(in) :: lbi, ubi, lbj, ubj
103 integer :: gtype, i, status, vindex
106 real(dp),
parameter :: fscl = 1.0_r8
108 real(r8) :: fmax, fmin
110 character (len=256) :: ncname
112 character (len=*),
parameter :: myfile = &
113 & __FILE__//
", get_wetdry_nf90"
127 IF (
ini(ng)%ncid.eq.-1)
THEN
130 WRITE (
stdout,10) trim(ncname)
138 & ncid =
ini(ng)%ncid)
144 & ncid =
ini(ng)%ncid)
203 & inirec, gtype, vsize, &
204 & lbi, ubi, lbj, ubj, &
205 & fscl, fmin, fmax, &
206 &
grid(ng) % pmask, &
207 &
grid(ng) % pmask_wet)
208 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
226 & inirec, gtype, vsize, &
227 & lbi, ubi, lbj, ubj, &
228 & fscl, fmin, fmax, &
229 &
grid(ng) % rmask, &
230 &
grid(ng) % rmask_wet)
231 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
249 & inirec, gtype, vsize, &
250 & lbi, ubi, lbj, ubj, &
251 & fscl, fmin, fmax, &
252 &
grid(ng) % umask, &
253 &
grid(ng) % umask_wet)
254 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
272 & inirec, gtype, vsize, &
273 & lbi, ubi, lbj, ubj, &
274 & fscl, fmin, fmax, &
275 &
grid(ng) % vmask, &
276 &
grid(ng) % vmask_wet)
277 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
294 & lbi, ubi, lbj, ubj, &
295 &
grid(ng) % pmask_wet)
297 & lbi, ubi, lbj, ubj, &
298 &
grid(ng) % rmask_wet)
300 & lbi, ubi, lbj, ubj, &
301 &
grid(ng) % umask_wet)
303 & lbi, ubi, lbj, ubj, &
304 &
grid(ng) % vmask_wet)
310 & lbi, ubi, lbj, ubj, &
313 &
grid(ng) % pmask_wet, &
314 &
grid(ng) % rmask_wet, &
315 &
grid(ng) % umask_wet, &
316 &
grid(ng) % vmask_wet)
319 10
FORMAT (/,
' GET_WETDRY_NF90 - unable to open grid NetCDF', &
321 20
FORMAT (/,
' GET_WETDRY_NF90 - unable to find grid variable: ',a, &
322 & /,19x,
'in NetCDF file: ',a)
323 30
FORMAT (/,
' GET_WETDRY_NF90 - error while reading variable: ',a, &
324 & /,19x,
'in NetCDF file: ',a)
325 40
FORMAT (2x,
'GET_WETDRY_NF90 - ',a,/,23x, &
326 &
'(Grid = ',i2.2,
', File: ',a,
')',/,23x, &
327 &
'(Min = ', 1p,e15.8,0p,
' Max = ',1p,e15.8,0p,
')')
332# if defined PIO_LIB && defined DISTRIBUTE
336 & LBi, UBi, LBj, UBj)
343 integer,
intent(in) :: ng, tile, model, inirec
344 integer,
intent(in) :: lbi, ubi, lbj, ubj
349 integer :: index_pmask, index_rmask, index_umask, index_vmask
352 real(dp),
parameter :: fscl = 1.0_r8
354 real(r8) :: fmax, fmin
356 character (len=256) :: ncname
358 character (len=*),
parameter :: myfile = &
359 & __FILE__//
", get_wetdry_pio"
361 TYPE (io_desc_t),
pointer :: iodesc
376 IF (
ini(ng)%pioFile%fh.eq.-1)
THEN
379 WRITE (
stdout,10) trim(ncname)
387 & piofile =
ini(ng)%pioFile)
392 CALL netcdf_inq_var (ng, model, ncname, &
393 & piofile =
ini(ng)%pioFile)
446 IF (kind(
grid(ng)%pmask_wet).eq.8)
THEN
447 piovar%dkind=pio_double
450 piovar%dkind=pio_real
457 & inirec, iodesc, vsize, &
458 & lbi, ubi, lbj, ubj, &
459 & fscl, fmin, fmax, &
460 &
grid(ng) % pmask, &
461 &
grid(ng) % pmask_wet)
462 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
478 IF (kind(
grid(ng)%rmask_wet).eq.8)
THEN
479 piovar%dkind=pio_double
482 piovar%dkind=pio_real
489 & inirec, iodesc, vsize, &
490 & lbi, ubi, lbj, ubj, &
491 & fscl, fmin, fmax, &
492 &
grid(ng) % rmask, &
493 &
grid(ng) % rmask_wet)
494 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
510 IF (kind(
grid(ng)%umask_wet).eq.8)
THEN
511 piovar%dkind=pio_double
514 piovar%dkind=pio_real
521 & inirec, iodesc, vsize, &
522 & lbi, ubi, lbj, ubj, &
523 & fscl, fmin, fmax, &
524 &
grid(ng) % umask, &
525 &
grid(ng) % umask_wet)
526 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
542 IF (kind(
grid(ng)%vmask_wet).eq.8)
THEN
543 piovar%dkind=pio_double
546 piovar%dkind=pio_real
553 & inirec, iodesc, vsize, &
554 & lbi, ubi, lbj, ubj, &
555 & fscl, fmin, fmax, &
556 &
grid(ng) % vmask, &
557 &
grid(ng) % vmask_wet)
558 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
575 & lbi, ubi, lbj, ubj, &
576 &
grid(ng) % pmask_wet)
578 & lbi, ubi, lbj, ubj, &
579 &
grid(ng) % rmask_wet)
581 & lbi, ubi, lbj, ubj, &
582 &
grid(ng) % umask_wet)
584 & lbi, ubi, lbj, ubj, &
585 &
grid(ng) % vmask_wet)
589 & lbi, ubi, lbj, ubj, &
592 &
grid(ng) % pmask_wet, &
593 &
grid(ng) % rmask_wet, &
594 &
grid(ng) % umask_wet, &
595 &
grid(ng) % vmask_wet)
597 10
FORMAT (/,
' GET_WETDRY_PIO - unable to open grid NetCDF', &
599 20
FORMAT (/,
' GET_WETDRY_PIO - unable to find grid variable: ',a, &
600 & /,18x,
'in NetCDF file: ',a)
601 30
FORMAT (/,
' GET_WETDRY_PIO - error while reading variable: ',a, &
602 & /,18x,
'in NetCDF file: ',a)
603 40
FORMAT (2x,
'GET_WETDRY_PIO - ',a,/,23x, &
604 &
'(Grid = ',i2.2,
', File: ',a,
')',/,23x, &
605 &
'(Min = ', 1p,e15.8,0p,
' Max = ',1p,e15.8,0p,
')')
subroutine exchange_r2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_u2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_p2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_v2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine, private get_wetdry_nf90(ng, tile, model, inirec, lbi, ubi, lbj, ubj)
subroutine, private get_wetdry_pio(ng, tile, model, inirec, lbi, ubi, lbj, ubj)
subroutine, public get_wetdry(ng, tile, model, inirec)
type(t_grid), dimension(:), allocatable grid
type(t_io), dimension(:), allocatable ini
character(len=256) sourcefile
integer, parameter io_nf90
integer, parameter io_pio
character(len=maxlen), dimension(6, 0:nv) vname
subroutine, public netcdf_check_dim(ng, model, ncname, ncid)
subroutine, public netcdf_open(ng, model, ncname, omode, ncid)
character(len=100), dimension(mvars) var_name
subroutine, public netcdf_inq_var(ng, model, ncname, ncid, myvarname, searchvar, varid, nvardim, nvaratt)
type(t_bounds), dimension(:), allocatable bounds
integer, parameter u2dvar
integer, parameter p2dvar
integer, parameter r2dvar
integer, parameter v2dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_u2dvar
type(var_desc_t), dimension(:), pointer var_desc
type(io_desc_t), dimension(:), pointer iodesc_sp_r2dvar
subroutine, public pio_netcdf_open(ng, model, ncname, omode, piofile)
type(io_desc_t), dimension(:), pointer iodesc_dp_u2dvar
type(io_desc_t), dimension(:), pointer iodesc_dp_p2dvar
subroutine, public pio_netcdf_check_dim(ng, model, ncname, piofile)
type(io_desc_t), dimension(:), pointer iodesc_dp_v2dvar
type(io_desc_t), dimension(:), pointer iodesc_dp_r2dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_p2dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_v2dvar
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)
logical function, public find_string(a, asize, string, aindex)
logical function, public founderror(flag, noerr, line, routine)