82 & t2dgrd, u2dgrd, v2dgrd)
89 logical,
intent(in) :: ldef, varout(
nv,
ngrids)
91 integer,
intent(in) :: ng, model
92 integer,
intent(in),
optional :: t2dgrd(:), u2dgrd(:), v2dgrd(:)
98 logical :: got_var(
nv)
100 integer,
parameter :: natt = 25
102 integer :: i, j, nvd3, nvd4, status
107 character (len=21) :: prefix
109 character (len=13) :: prefix
111 character (len=120) :: vinfo(natt)
112 character (len=256) :: ncname
114 character (len=*),
parameter :: myfile = &
115 & __FILE__//
", bbl_def_nf90"
126 define :
IF (ldef)
THEN
130# if defined WRITE_WATER && defined MASKING
159# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
164 IF (varout(
idworb,ng))
THEN
166 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
167 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idworb))
174# if defined WRITE_WATER && defined MASKING
178 vinfo(22)=
'coordinates'
181 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
190 IF (varout(
idubrs,ng))
THEN
192 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
193 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubrs))
200# if defined WRITE_WATER && defined MASKING
204 vinfo(22)=
'coordinates'
207 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
213 IF (varout(
idvbrs,ng))
THEN
215 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
216 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbrs))
223# if defined WRITE_WATER && defined MASKING
227 vinfo(22)=
'coordinates'
230 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
236 IF (varout(
idubws,ng))
THEN
238 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
239 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubws))
246# if defined WRITE_WATER && defined MASKING
250 vinfo(22)=
'coordinates'
253 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
259 IF (varout(
idvbws,ng))
THEN
261 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
262 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbws))
269# if defined WRITE_WATER && defined MASKING
273 vinfo(22)=
'coordinates'
276 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
282 IF (varout(
idubcs,ng))
THEN
284 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
285 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubcs))
292# if defined WRITE_WATER && defined MASKING
296 vinfo(22)=
'coordinates'
299 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
305 IF (varout(
idvbcs,ng))
THEN
307 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
308 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbcs))
315# if defined WRITE_WATER && defined MASKING
319 vinfo(22)=
'coordinates'
322 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
328 IF (varout(
iduvwc,ng))
THEN
330 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
331 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduvwc))
338# if defined WRITE_WATER && defined MASKING
342 vinfo(22)=
'coordinates'
345 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
351 IF (varout(
idubot,ng))
THEN
353 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
354 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubot))
361# if defined WRITE_WATER && defined MASKING
365 vinfo(22)=
'coordinates'
368 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
374 IF (varout(
idvbot,ng))
THEN
376 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
377 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbot))
384# if defined WRITE_WATER && defined MASKING
388 vinfo(22)=
'coordinates'
391 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
397 IF (varout(
idubur,ng))
THEN
399 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
400 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubur))
407# if defined WRITE_WATER && defined MASKING
411 vinfo(22)=
'coordinates'
414 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
420 IF (varout(
idvbvr,ng))
THEN
422 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
423 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbvr))
430# if defined WRITE_WATER && defined MASKING
434 vinfo(22)=
'coordinates'
437 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
442# if defined UV_KIRBY && defined AVERAGES
446 IF (varout(
iduwav,ng))
THEN
448 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduwav))
452# if defined WRITE_WATER && defined MASKING
456 vinfo(22)=
'coordinates'
459 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
465 IF (varout(
idvwav,ng))
THEN
467 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvwav))
471# if defined WRITE_WATER && defined MASKING
475 vinfo(22)=
'coordinates'
478 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
487 IF (varout(
idwamp,ng))
THEN
489 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
490 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwamp))
497# if defined WRITE_WATER && defined MASKING
501 vinfo(22)=
'coordinates'
504 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
512 IF (varout(
idwam2,ng))
THEN
514 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
515 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwam2))
522# if defined WRITE_WATER && defined MASKING
526 vinfo(22)=
'coordinates'
529 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
539 IF (varout(
idwlen,ng))
THEN
541 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
542 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwlen))
549# if defined WRITE_WATER && defined MASKING
553 vinfo(22)=
'coordinates'
556 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
565 IF (varout(
idwlep,ng))
THEN
567 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
568 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwlep))
575# if defined WRITE_WATER && defined MASKING
579 vinfo(22)=
'coordinates'
582 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
591 IF (varout(
idwdir,ng))
THEN
593 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
594 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwdir))
601# if defined WRITE_WATER && defined MASKING
605 vinfo(22)=
'coordinates'
608 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
617 IF (varout(
idwdip,ng))
THEN
619 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
620 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwdip))
627# if defined WRITE_WATER && defined MASKING
631 vinfo(22)=
'coordinates'
634 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
639# ifdef WAVES_TOP_PERIOD
643 IF (varout(
idwptp,ng))
THEN
645 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
646 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwptp))
653# if defined WRITE_WATER && defined MASKING
657 vinfo(22)=
'coordinates'
660 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
665# ifdef WAVES_BOT_PERIOD
669 IF (varout(
idwpbt,ng))
THEN
671 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
672 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwpbt))
679# if defined WRITE_WATER && defined MASKING
683 vinfo(22)=
'coordinates'
686 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
696 IF (varout(
idwvds,ng))
THEN
698 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
699 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvds))
706# if defined WRITE_WATER && defined MASKING
710 vinfo(22)=
'coordinates'
713 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
719 IF (varout(
idwvqp,ng))
THEN
721 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
722 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvqp))
729# if defined WRITE_WATER && defined MASKING
733 vinfo(22)=
'coordinates'
736 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
748 query :
IF (.not.ldef)
THEN
763# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
804# if defined UV_KIRBY && defined AVERAGES
842# ifdef WAVES_TOP_PERIOD
847# ifdef WAVES_BOT_PERIOD
865 IF (.not.got_var(
idtime))
THEN
871# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
948# if defined UV_KIRBY && defined AVERAGES
1010# ifdef WAVES_TOP_PERIOD
1018# ifdef WAVES_BOT_PERIOD
1042 10
FORMAT (/,
' BBL_DEF_NF90 - unable to find variable: ',a,2x, &
1043 &
' in output NetCDF file: ',a)
1059 logical,
intent(in) :: ldef, varout(
nv,
ngrids)
1061 integer,
intent(in) :: ng, model
1062 integer,
intent(in),
optional :: pgrd(:), rgrd(:)
1068 logical :: got_var(
nv)
1070 integer,
parameter :: natt = 25
1072 integer :: i, j, status
1076 character (len=120) :: vinfo(natt)
1077 character (len=256) :: ncname
1079 character (len=*),
parameter :: myfile = &
1080 & __FILE__//
", bbl_def_station_nf90"
1091 define :
IF (ldef)
THEN
1096 DO j=1,len(vinfo(1))
1108 IF (varout(
idworb,ng))
THEN
1115 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1116 & setfillval = .true., &
1117 & setparaccess = .true.)
1126 IF (varout(
idubrs,ng))
THEN
1133 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1134 & setfillval = .true., &
1135 & setparaccess = .true.)
1141 IF (varout(
idvbrs,ng))
THEN
1148 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1149 & setfillval = .true., &
1150 & setparaccess = .true.)
1156 IF (varout(
idubws,ng))
THEN
1163 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1164 & setfillval = .true., &
1165 & setparaccess = .true.)
1171 IF (varout(
idvbws,ng))
THEN
1178 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1179 & setfillval = .true., &
1180 & setparaccess = .true.)
1186 IF (varout(
idubcs,ng))
THEN
1193 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1194 & setfillval = .true., &
1195 & setparaccess = .true.)
1201 IF (varout(
idvbcs,ng))
THEN
1208 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1209 & setfillval = .true., &
1210 & setparaccess = .true.)
1216 IF (varout(
idubot,ng))
THEN
1223 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1224 & setfillval = .true., &
1225 & setparaccess = .true.)
1231 IF (varout(
idvbot,ng))
THEN
1238 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1239 & setfillval = .true., &
1240 & setparaccess = .true.)
1246 IF (varout(
idubur,ng))
THEN
1253 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1254 & setfillval = .true., &
1255 & setparaccess = .true.)
1261 IF (varout(
idvbvr,ng))
THEN
1268 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1269 & setfillval = .true., &
1270 & setparaccess = .true.)
1279 IF (varout(
idwamp,ng))
THEN
1286 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1287 & setfillval = .true., &
1288 & setparaccess = .true.)
1297 IF (varout(
idwlen,ng))
THEN
1304 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1305 & setfillval = .true., &
1306 & setparaccess = .true.)
1311# ifdef WAVES_LENGTHP
1315 IF (varout(
idwlep,ng))
THEN
1322 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1323 & setfillval = .true., &
1324 & setparaccess = .true.)
1333 IF (varout(
idwdir,ng))
THEN
1340 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1341 & setfillval = .true., &
1342 & setparaccess = .true.)
1351 IF (varout(
idwdip,ng))
THEN
1358 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1359 & setfillval = .true., &
1360 & setparaccess = .true.)
1365# ifdef WAVES_TOP_PERIOD
1369 IF (varout(
idwptp,ng))
THEN
1376 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1377 & setfillval = .true., &
1378 & setparaccess = .true.)
1384# ifdef WAVES_BOT_PERIOD
1388 IF (varout(
idwpbt,ng))
THEN
1395 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1396 & setfillval = .true., &
1397 & setparaccess = .true.)
1407 IF (varout(
idwvds,ng))
THEN
1414 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1415 & setfillval = .true., &
1416 & setparaccess = .true.)
1422 IF (varout(
idwvqp,ng))
THEN
1429 &
nf_fout, 2, pgrd, aval, vinfo, ncname, &
1430 & setfillval = .true., &
1431 & setparaccess = .true.)
1443 query :
IF (.not.ldef)
THEN
1505# ifdef WAVES_LENGTHP
1520# ifdef WAVES_TOP_PERIOD
1525# ifdef WAVES_BOT_PERIOD
1543 IF (.not.got_var(
idtime))
THEN
1635# ifdef WAVES_LENGTHP
1659# ifdef WAVES_TOP_PERIOD
1667# ifdef WAVES_BOT_PERIOD
1691 10
FORMAT (/,
' BBL_DEF_STATION_NF90 - unable to find variable:', &
1692 & 1x,a,2x,
' in output NetCDF file: ',a)
1700 & LBi, UBi, LBj, UBj, &
1708 logical,
intent(in) :: varout(
nv,
ngrids)
1710 integer,
intent(in) :: ng, model, tile
1711 integer,
intent(in) :: lbi, ubi, lbj, ubj
1717 logical :: linstataneous
1719 integer :: gfactor, gtype, status
1723 real(r8),
allocatable :: wrk2d(:,:,:)
1725 character (len=*),
parameter :: myfile = &
1726 & __FILE__//
", bbl_wrt_nf90"
1740# if defined WRITE_WATER && defined MASKING
1748 IF ((s(ng)%ncid.eq.s(ng)%ncid).or. &
1749 & (s(ng)%ncid.eq.
qck(ng)%ncid))
THEN
1750 linstataneous=.true.
1752 linstataneous=.false.
1755# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
1756 defined wav_coupling
1760 IF (varout(
idworb,ng))
THEN
1763 IF (linstataneous)
THEN
1766 & s(ng)%Rindex, gtype, &
1767 & lbi, ubi, lbj, ubj, scale, &
1769 &
grid(ng) % rmask, &
1771 &
forces(ng) % Uwave_rms)
1776 & s(ng)%Rindex, gtype, &
1777 & lbi, ubi, lbj, ubj, scale, &
1779 &
grid(ng) % rmask, &
1784 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1799 IF (varout(
idubrs,ng))
THEN
1802 IF (linstataneous)
THEN
1805 & s(ng)%Rindex, gtype, &
1806 & lbi, ubi, lbj, ubj, scale, &
1808 &
grid(ng) % rmask, &
1815 & s(ng)%Rindex, gtype, &
1816 & lbi, ubi, lbj, ubj, scale, &
1818 &
grid(ng) % rmask, &
1823 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1835 IF (varout(
idvbrs,ng))
THEN
1838 IF (linstataneous)
THEN
1841 & s(ng)%Rindex, gtype, &
1842 & lbi, ubi, lbj, ubj, scale, &
1844 &
grid(ng) % rmask, &
1851 & s(ng)%Rindex, gtype, &
1852 & lbi, ubi, lbj, ubj, scale, &
1854 &
grid(ng) % rmask, &
1859 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1871 IF (varout(
idubws,ng))
THEN
1874 IF (linstataneous)
THEN
1877 & s(ng)%Rindex, gtype, &
1878 & lbi, ubi, lbj, ubj, scale, &
1880 &
grid(ng) % rmask, &
1887 & s(ng)%Rindex, gtype, &
1888 & lbi, ubi, lbj, ubj, scale, &
1890 &
grid(ng) % rmask, &
1895 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1907 IF (varout(
idvbws,ng))
THEN
1910 IF (linstataneous)
THEN
1913 & s(ng)%Rindex, gtype, &
1914 & lbi, ubi, lbj, ubj, scale, &
1916 &
grid(ng) % rmask, &
1923 & s(ng)%Rindex, gtype, &
1924 & lbi, ubi, lbj, ubj, scale, &
1926 &
grid(ng) % rmask, &
1931 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1943 IF (varout(
idubcs,ng))
THEN
1946 IF (linstataneous)
THEN
1949 & s(ng)%Rindex, gtype, &
1950 & lbi, ubi, lbj, ubj, scale, &
1952 &
grid(ng) % rmask, &
1954 &
bbl(ng) % bustrcwmax)
1959 & s(ng)%Rindex, gtype, &
1960 & lbi, ubi, lbj, ubj, scale, &
1962 &
grid(ng) % rmask, &
1967 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1979 IF (varout(
idvbcs,ng))
THEN
1982 IF (linstataneous)
THEN
1985 & s(ng)%Rindex, gtype, &
1986 & lbi, ubi, lbj, ubj, scale, &
1988 &
grid(ng) % rmask, &
1990 &
bbl(ng) % bvstrcwmax)
1995 & s(ng)%Rindex, gtype, &
1996 & lbi, ubi, lbj, ubj, scale, &
1998 &
grid(ng) % rmask, &
2003 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2015 IF (varout(
iduvwc,ng))
THEN
2018 IF (linstataneous)
THEN
2019 IF (.not.
allocated(wrk2d))
THEN
2020 allocate ( wrk2d(lbi:ubi, lbj:ubj) )
2021 wrk2d(lbi:ubi,lbj:ubj)=0.0_r8
2023 wrk2d=sqrt(
bbl(ng)%bustrcwmax*
bbl(ng)%bustrcwmax+ &
2024 &
bbl(ng)%bvstrcwmax*
bbl(ng)%bvstrcwmax+1.0e-10_r8)
2028 & s(ng)%Rindex, gtype, &
2029 & lbi, ubi, lbj, ubj, scale, &
2031 &
grid(ng) % rmask, &
2039 & s(ng)%Rindex, gtype, &
2040 & lbi, ubi, lbj, ubj, scale, &
2042 &
grid(ng) % rmask, &
2047 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2059 IF (varout(
idubot,ng))
THEN
2062 IF (linstataneous)
THEN
2065 & s(ng)%Rindex, gtype, &
2066 & lbi, ubi, lbj, ubj, scale, &
2068 &
grid(ng) % rmask, &
2075 & s(ng)%Rindex, gtype, &
2076 & lbi, ubi, lbj, ubj, scale, &
2078 &
grid(ng) % rmask, &
2083 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2095 IF (varout(
idvbot,ng))
THEN
2098 IF (linstataneous)
THEN
2101 & s(ng)%Rindex, gtype, &
2102 & lbi, ubi, lbj, ubj, scale, &
2104 &
grid(ng) % rmask, &
2111 & s(ng)%Rindex, gtype, &
2112 & lbi, ubi, lbj, ubj, scale, &
2114 &
grid(ng) % rmask, &
2119 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2131 IF (varout(
idubur,ng))
THEN
2134 IF (linstataneous)
THEN
2137 & s(ng)%Rindex, gtype, &
2138 & lbi, ubi, lbj, ubj, scale, &
2140 &
grid(ng) % rmask, &
2147 & s(ng)%Rindex, gtype, &
2148 & lbi, ubi, lbj, ubj, scale, &
2150 &
grid(ng) % rmask, &
2155 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2167 IF (varout(
idvbvr,ng))
THEN
2170 IF (linstataneous)
THEN
2173 & s(ng)%Rindex, gtype, &
2174 & lbi, ubi, lbj, ubj, scale, &
2176 &
grid(ng) % rmask, &
2183 & s(ng)%Rindex, gtype, &
2184 & lbi, ubi, lbj, ubj, scale, &
2186 &
grid(ng) % rmask, &
2191 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2202# if defined UV_KIRBY && defined AVERAGES
2206 IF (varout(
iduwav,ng))
THEN
2209 IF (.not.linstataneous)
THEN
2212 & s(ng)%Rindex, gtype, &
2213 & lbi, ubi, lbj, ubj, scale, &
2215 &
grid(ng) % rmask, &
2218 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2231 IF (varout(
idvwav,ng))
THEN
2234 IF (.not.linstataneous)
THEN
2237 & s(ng)%Rindex, gtype, &
2238 & lbi, ubi, lbj, ubj, scale, &
2240 &
grid(ng) % rmask, &
2243 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2259 IF (varout(
idwamp,ng))
THEN
2262 IF (linstataneous)
THEN
2265 & s(ng)%Rindex, gtype, &
2266 & lbi, ubi, lbj, ubj, scale, &
2268 &
grid(ng) % rmask, &
2275 & s(ng)%Rindex, gtype, &
2276 & lbi, ubi, lbj, ubj, scale, &
2278 &
grid(ng) % rmask, &
2283 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2297 IF (varout(
idwam2,ng))
THEN
2300 IF (.not.linstataneous)
THEN
2303 & s(ng)%Rindex, gtype, &
2304 & lbi, ubi, lbj, ubj, scale, &
2306 &
grid(ng) % rmask, &
2309 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2326 IF (varout(
idwlen,ng))
THEN
2329 IF (linstataneous)
THEN
2332 & s(ng)%Rindex, gtype, &
2333 & lbi, ubi, lbj, ubj, scale, &
2335 &
grid(ng) % rmask, &
2342 & s(ng)%Rindex, gtype, &
2343 & lbi, ubi, lbj, ubj, scale, &
2345 &
grid(ng) % rmask, &
2350 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2361# ifdef WAVES_LENGTHP
2365 IF (varout(
idwlep,ng))
THEN
2368 IF (linstataneous)
THEN
2371 & s(ng)%Rindex, gtype, &
2372 & lbi, ubi, lbj, ubj, scale, &
2374 &
grid(ng) % rmask, &
2381 & s(ng)%Rindex, gtype, &
2382 & lbi, ubi, lbj, ubj, scale, &
2384 &
grid(ng) % rmask, &
2389 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2404 IF (varout(
idwdir,ng))
THEN
2407 IF (linstataneous)
THEN
2410 & s(ng)%Rindex, gtype, &
2411 & lbi, ubi, lbj, ubj, scale, &
2413 &
grid(ng) % rmask, &
2420 & s(ng)%Rindex, gtype, &
2421 & lbi, ubi, lbj, ubj, scale, &
2423 &
grid(ng) % rmask, &
2428 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2443 IF (varout(
idwdip,ng))
THEN
2446 IF (linstataneous)
THEN
2449 & s(ng)%Rindex, gtype, &
2450 & lbi, ubi, lbj, ubj, scale, &
2452 &
grid(ng) % rmask, &
2459 & s(ng)%Rindex, gtype, &
2460 & lbi, ubi, lbj, ubj, scale, &
2462 &
grid(ng) % rmask, &
2467 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2478# ifdef WAVES_TOP_PERIOD
2482 IF (varout(
idwptp,ng))
THEN
2485 IF (linstataneous)
THEN
2488 & s(ng)%Rindex, gtype, &
2489 & lbi, ubi, lbj, ubj, scale, &
2491 &
grid(ng) % rmask, &
2493 &
forces(ng) % Pwave_top)
2498 & s(ng)%Rindex, gtype, &
2499 & lbi, ubi, lbj, ubj, scale, &
2501 &
grid(ng) % rmask, &
2506 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2517# ifdef WAVES_BOT_PERIOD
2521 IF (varout(
idwpbt,ng))
THEN
2524 IF (linstataneous)
THEN
2527 & s(ng)%Rindex, gtype, &
2528 & lbi, ubi, lbj, ubj, scale, &
2530 &
grid(ng) % rmask, &
2532 &
forces(ng) % Pwave_bot)
2537 & s(ng)%Rindex, gtype, &
2538 & lbi, ubi, lbj, ubj, scale, &
2540 &
grid(ng) % rmask, &
2545 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2560 IF (varout(
idwvds,ng))
THEN
2561 IF (linstataneous)
THEN
2566 & s(ng)%Rindex, gtype, &
2567 & lbi, ubi, lbj, ubj, scale, &
2569 &
grid(ng) % rmask, &
2572 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2585 IF (varout(
idwvqp,ng))
THEN
2586 IF (linstataneous)
THEN
2591 & s(ng)%Rindex, gtype, &
2592 & lbi, ubi, lbj, ubj, scale, &
2594 &
grid(ng) % rmask, &
2597 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2609 10
FORMAT (/,
" BBL_WRT_NF90 - error while writing variable '", &
2610 & a,
"', time record = ",i0,/,11x,
'into file: ',a)
3046 & t2dgrd, u2dgrd, v2dgrd)
3053 logical,
intent(in) :: ldef, varout(
nv,
ngrids)
3055 integer,
intent(in) :: ng, model
3056 integer,
intent(in),
optional :: t2dgrd(:), u2dgrd(:), v2dgrd(:)
3062 logical :: got_var(
nv)
3064 integer,
parameter :: natt = 25
3066 integer :: i, j, nvd3, nvd4, status
3071 character (len=21) :: prefix
3073 character (len=13) :: prefix
3075 character (len=120) :: vinfo(natt)
3076 character (len=256) :: ncname
3078 character (len=*),
parameter :: myfile = &
3079 & __FILE__//
", bbl_def_pio"
3090 define :
IF (ldef)
THEN
3094# if defined WRITE_WATER && defined MASKING
3115 DO j=1,len(vinfo(1))
3123# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
3124 defined wav_coupling
3128 IF (varout(
idworb,ng))
THEN
3130 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3131 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idworb))
3138# if defined WRITE_WATER && defined MASKING
3139 vinfo(20)=
'mask_rho'
3142 vinfo(22)=
'coordinates'
3147 status=
def_var(ng, model, s(ng)%pioFile, &
3148 & s(ng)%pioVar(
idworb)%vd, &
3149 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3158 IF (varout(
idubrs,ng))
THEN
3160 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3161 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubrs))
3168# if defined WRITE_WATER && defined MASKING
3169 vinfo(20)=
'mask_rho'
3172 vinfo(22)=
'coordinates'
3177 status=
def_var(ng, model, s(ng)%pioFile, &
3178 & s(ng)%pioVar(
idubrs)%vd, &
3179 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3185 IF (varout(
idvbrs,ng))
THEN
3187 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3188 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbrs))
3195# if defined WRITE_WATER && defined MASKING
3196 vinfo(20)=
'mask_rho'
3199 vinfo(22)=
'coordinates'
3204 status=
def_var(ng, model, s(ng)%pioFile, &
3205 & s(ng)%pioVar(
idvbrs)%vd, &
3206 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3212 IF (varout(
idubws,ng))
THEN
3214 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3215 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubws))
3222# if defined WRITE_WATER && defined MASKING
3223 vinfo(20)=
'mask_rho'
3226 vinfo(22)=
'coordinates'
3231 status=
def_var(ng, model, s(ng)%pioFile, &
3232 & s(ng)%pioVar(
idubws)%vd, &
3233 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3239 IF (varout(
idvbws,ng))
THEN
3241 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3242 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbws))
3249# if defined WRITE_WATER && defined MASKING
3250 vinfo(20)=
'mask_rho'
3253 vinfo(22)=
'coordinates'
3258 status=
def_var(ng, model, s(ng)%pioFile, &
3259 & s(ng)%pioVar(
idvbws)%vd, &
3260 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3266 IF (varout(
idubcs,ng))
THEN
3268 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3269 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubcs))
3276# if defined WRITE_WATER && defined MASKING
3277 vinfo(20)=
'mask_rho'
3280 vinfo(22)=
'coordinates'
3285 status=
def_var(ng, model, s(ng)%pioFile, &
3286 & s(ng)%pioVar(
idubcs)%vd, &
3287 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3293 IF (varout(
idvbcs,ng))
THEN
3295 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3296 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbcs))
3303# if defined WRITE_WATER && defined MASKING
3304 vinfo(20)=
'mask_rho'
3307 vinfo(22)=
'coordinates'
3312 status=
def_var(ng, model, s(ng)%pioFile, &
3313 & s(ng)%pioVar(
idvbcs)%vd, &
3314 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3320 IF (varout(
iduvwc,ng))
THEN
3322 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3323 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduvwc))
3330# if defined WRITE_WATER && defined MASKING
3331 vinfo(20)=
'mask_rho'
3334 vinfo(22)=
'coordinates'
3339 status=
def_var(ng, model, s(ng)%pioFile, &
3340 & s(ng)%pioVar(
iduvwc)%vd, &
3341 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3347 IF (varout(
idubot,ng))
THEN
3349 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3350 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubot))
3357# if defined WRITE_WATER && defined MASKING
3358 vinfo(20)=
'mask_rho'
3361 vinfo(22)=
'coordinates'
3366 status=
def_var(ng, model, s(ng)%pioFile, &
3367 & s(ng)%pioVar(
idubot)%vd, &
3368 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3374 IF (varout(
idvbot,ng))
THEN
3376 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3377 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbot))
3384# if defined WRITE_WATER && defined MASKING
3385 vinfo(20)=
'mask_rho'
3388 vinfo(22)=
'coordinates'
3393 status=
def_var(ng, model, s(ng)%pioFile, &
3394 & s(ng)%pioVar(
idvbot)%vd, &
3395 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3401 IF (varout(
idubur,ng))
THEN
3403 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3404 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubur))
3411# if defined WRITE_WATER && defined MASKING
3412 vinfo(20)=
'mask_rho'
3415 vinfo(22)=
'coordinates'
3420 status=
def_var(ng, model, s(ng)%pioFile, &
3421 & s(ng)%pioVar(
idubur)%vd, &
3422 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3428 IF (varout(
idvbvr,ng))
THEN
3430 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3431 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbvr))
3438# if defined WRITE_WATER && defined MASKING
3439 vinfo(20)=
'mask_rho'
3442 vinfo(22)=
'coordinates'
3447 status=
def_var(ng, model, s(ng)%pioFile, &
3448 & s(ng)%pioVar(
idvbvr)%vd, &
3449 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3454# if defined UV_KIRBY && defined AVERAGES
3458 IF (varout(
iduwav,ng))
THEN
3460 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduwav))
3464# if defined WRITE_WATER && defined MASKING
3465 vinfo(20)=
'mask_rho'
3468 vinfo(22)=
'coordinates'
3473 status=
def_var(ng, model, s(ng)%pioFile, &
3474 & s(ng)%pioVar(
iduwav)%vd, &
3475 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3481 IF (varout(
idvwav,ng))
THEN
3483 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvwav))
3487# if defined WRITE_WATER && defined MASKING
3488 vinfo(20)=
'mask_rho'
3491 vinfo(22)=
'coordinates'
3496 status=
def_var(ng, model, s(ng)%pioFile, &
3497 & s(ng)%pioVar(
idvwav)%vd, &
3498 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3507 IF (varout(
idwamp,ng))
THEN
3509 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3510 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwamp))
3517# if defined WRITE_WATER && defined MASKING
3518 vinfo(20)=
'mask_rho'
3521 vinfo(22)=
'coordinates'
3526 status=
def_var(ng, model, s(ng)%pioFile, &
3527 & s(ng)%pioVar(
idwamp)%vd, &
3528 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3536 IF (varout(
idwam2,ng))
THEN
3538 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwam2))
3542# if defined WRITE_WATER && defined MASKING
3543 vinfo(20)=
'mask_rho'
3546 vinfo(22)=
'coordinates'
3551 status=
def_var(ng, model, s(ng)%pioFile, &
3552 & s(ng)%pioVar(
idwam2)%vd, &
3553 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3563 IF (varout(
idwlen,ng))
THEN
3565 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3566 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwlen))
3573# if defined WRITE_WATER && defined MASKING
3574 vinfo(20)=
'mask_rho'
3577 vinfo(22)=
'coordinates'
3582 status=
def_var(ng, model, s(ng)%pioFile, &
3583 & s(ng)%pioVar(
idwlen)%vd, &
3584 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3589# ifdef WAVES_LENGTHP
3593 IF (varout(
idwlep,ng))
THEN
3595 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3596 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwlep))
3603# if defined WRITE_WATER && defined MASKING
3604 vinfo(20)=
'mask_rho'
3607 vinfo(22)=
'coordinates'
3612 status=
def_var(ng, model, s(ng)%pioFile, &
3613 & s(ng)%pioVar(
idwlep)%vd, &
3614 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3623 IF (varout(
idwdir,ng))
THEN
3625 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3626 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwdir))
3633# if defined WRITE_WATER && defined MASKING
3634 vinfo(20)=
'mask_rho'
3637 vinfo(22)=
'coordinates'
3642 status=
def_var(ng, model, s(ng)%pioFile, &
3643 & s(ng)%pioVar(
idwdir)%vd, &
3644 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3653 IF (varout(
idwdip,ng))
THEN
3655 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3656 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwdip))
3663# if defined WRITE_WATER && defined MASKING
3664 vinfo(20)=
'mask_rho'
3667 vinfo(22)=
'coordinates'
3672 status=
def_var(ng, model, s(ng)%pioFile, &
3673 & s(ng)%pioVar(
idwdip)%vd, &
3674 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3679# ifdef WAVES_TOP_PERIOD
3683 IF (varout(
idwptp,ng))
THEN
3685 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3686 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwptp))
3693# if defined WRITE_WATER && defined MASKING
3694 vinfo(20)=
'mask_rho'
3697 vinfo(22)=
'coordinates'
3702 status=
def_var(ng, model, s(ng)%pioFile, &
3703 & s(ng)%pioVar(
idwptp)%vd, &
3704 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3709# ifdef WAVES_BOT_PERIOD
3713 IF (varout(
idwpbt,ng))
THEN
3715 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3716 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwpbt))
3723# if defined WRITE_WATER && defined MASKING
3724 vinfo(20)=
'mask_rho'
3727 vinfo(22)=
'coordinates'
3732 status=
def_var(ng, model, s(ng)%pioFile, &
3733 & s(ng)%pioVar(
idwpbt)%vd, &
3734 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3744 IF (varout(
idwvds,ng))
THEN
3746 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3747 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvds))
3754# if defined WRITE_WATER && defined MASKING
3755 vinfo(20)=
'mask_rho'
3758 vinfo(22)=
'coordinates'
3763 status=
def_var(ng, model, s(ng)%pioFile, &
3764 & s(ng)%pioVar(
idwvds)%vd, &
3765 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3771 IF (varout(
idwvqp,ng))
THEN
3773 IF (s(ng)%ncid.eq.
avg(ng)%ncid)
THEN
3774 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvqp))
3781# if defined WRITE_WATER && defined MASKING
3782 vinfo(20)=
'mask_rho'
3785 vinfo(22)=
'coordinates'
3790 status=
def_var(ng, model, s(ng)%pioFile, &
3791 & s(ng)%pioVar(
idwvqp)%vd, &
3792 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3804 query :
IF (.not.ldef)
THEN
3816 IF (trim(var_name(i)).eq.trim(
vname(1,
idtime)))
THEN
3820 s(ng)%pioVar(
idtime)%gtype=0
3821# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
3822 defined wav_coupling
3823 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idworb)))
THEN
3830 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubrs)))
THEN
3835 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbrs)))
THEN
3840 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubws)))
THEN
3845 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbws)))
THEN
3850 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubcs)))
THEN
3855 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbcs)))
THEN
3860 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvwc)))
THEN
3865 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubot)))
THEN
3870 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbot)))
THEN
3875 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubur)))
THEN
3880 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbvr)))
THEN
3886# if defined UV_KIRBY && defined AVERAGES
3887 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduwav)))
THEN
3892 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvwav)))
THEN
3899 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwamp)))
THEN
3905 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwam2)))
THEN
3913 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwlen)))
THEN
3919# ifdef WAVES_LENGTHP
3920 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwlep)))
THEN
3927 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwdir)))
THEN
3934 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwdip)))
THEN
3940# ifdef WAVES_TOP_PERIOD
3941 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwptp)))
THEN
3947# ifdef WAVES_BOT_PERIOD
3948 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwpbt)))
THEN
3955 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwvds)))
THEN
3960 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwvqp)))
THEN
3970 IF (.not.got_var(
idtime))
THEN
3976# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
3977 defined wav_coupling
4053# if defined UV_KIRBY && defined AVERAGES
4091# ifdef WAVES_LENGTHP
4115# ifdef WAVES_TOP_PERIOD
4123# ifdef WAVES_BOT_PERIOD
4147 10
FORMAT (/,
' BBL_DEF_PIO - unable to find variable: ',a,2x, &
4148 &
' in output NetCDF file: ',a)
4155 & LBi, UBi, LBj, UBj, &
4163 logical,
intent(in) :: varout(
nv,
ngrids)
4165 integer,
intent(in) :: ng, model, tile
4166 integer,
intent(in) :: lbi, ubi, lbj, ubj
4172 logical :: linstataneous
4178 real(r8),
allocatable :: wrk2d(:,:)
4180 character (len=*),
parameter :: myfile = &
4181 & __FILE__//
", bbl_wrt_pio"
4183 TYPE (io_desc_t),
pointer :: iodesc
4195 IF ((s(ng)%ncid.eq.s(ng)%ncid).or. &
4196 & (s(ng)%ncid.eq.
qck(ng)%ncid))
THEN
4197 linstataneous=.true.
4199 linstataneous=.false.
4202# if defined BBL_MODEL || defined SED_BEDLOAD_VANDERA || \
4203 defined wav_coupling
4207 IF (varout(
idworb,ng))
THEN
4209 IF (s(ng)%pioVar(
idworb)%dkind.eq.pio_double)
THEN
4214 IF (linstataneous)
THEN
4216 & s(ng)%pioVar(
idworb), &
4219 & lbi, ubi, lbj, ubj, scale, &
4221 &
grid(ng) % rmask, &
4223 &
forces(ng) % Uwave_rms)
4227 & s(ng)%pioVar(
idworb), &
4230 & lbi, ubi, lbj, ubj, scale, &
4232 &
grid(ng) % rmask, &
4237 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4252 IF (varout(
idubrs,ng))
THEN
4254 IF (s(ng)%pioVar(
idubrs)%dkind.eq.pio_double)
THEN
4259 IF (linstataneous)
THEN
4261 & s(ng)%pioVar(
idubrs), &
4264 & lbi, ubi, lbj, ubj, scale, &
4266 &
grid(ng) % rmask, &
4272 & s(ng)%pioVar(
idubrs), &
4275 & lbi, ubi, lbj, ubj, scale, &
4277 &
grid(ng) % rmask, &
4282 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4294 IF (varout(
idvbrs,ng))
THEN
4296 IF (s(ng)%pioVar(
idvbrs)%dkind.eq.pio_double)
THEN
4301 IF (linstataneous)
THEN
4303 & s(ng)%pioVar(
idvbrs), &
4306 & lbi, ubi, lbj, ubj, scale, &
4308 &
grid(ng) % rmask, &
4314 & s(ng)%pioVar(
idvbrs), &
4317 & lbi, ubi, lbj, ubj, scale, &
4319 &
grid(ng) % rmask, &
4324 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4336 IF (varout(
idubws,ng))
THEN
4338 IF (s(ng)%pioVar(
idubws)%dkind.eq.pio_double)
THEN
4343 IF (linstataneous)
THEN
4345 & s(ng)%pioVar(
idubws), &
4348 & lbi, ubi, lbj, ubj, scale, &
4350 &
grid(ng) % rmask, &
4356 & s(ng)%pioVar(
idubws), &
4359 & lbi, ubi, lbj, ubj, scale, &
4361 &
grid(ng) % rmask, &
4366 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4378 IF (varout(
idvbws,ng))
THEN
4380 IF (s(ng)%pioVar(
idvbws)%dkind.eq.pio_double)
THEN
4385 IF (linstataneous)
THEN
4387 & s(ng)%pioVar(
idvbws), &
4390 & lbi, ubi, lbj, ubj, scale, &
4392 &
grid(ng) % rmask, &
4398 & s(ng)%pioVar(
idvbws), &
4401 & lbi, ubi, lbj, ubj, scale, &
4403 &
grid(ng) % rmask, &
4408 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4420 IF (varout(
idubcs,ng))
THEN
4422 IF (s(ng)%pioVar(
idubcs)%dkind.eq.pio_double)
THEN
4427 IF (linstataneous)
THEN
4429 & s(ng)%pioVar(
idubcs), &
4432 & lbi, ubi, lbj, ubj, scale, &
4434 &
grid(ng) % rmask, &
4436 &
bbl(ng) % bustrcwmax)
4440 & s(ng)%pioVar(
idubcs), &
4443 & lbi, ubi, lbj, ubj, scale, &
4445 &
grid(ng) % rmask, &
4450 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4462 IF (varout(
idvbcs,ng))
THEN
4464 IF (s(ng)%pioVar(
idvbcs)%dkind.eq.pio_double)
THEN
4469 IF (linstataneous)
THEN
4471 & s(ng)%pioVar(
idvbcs), &
4474 & lbi, ubi, lbj, ubj, scale, &
4476 &
grid(ng) % rmask, &
4478 &
bbl(ng) % bvstrcwmax)
4482 & s(ng)%pioVar(
idvbcs), &
4485 & lbi, ubi, lbj, ubj, scale, &
4487 &
grid(ng) % rmask, &
4492 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4504 IF (varout(
iduvwc,ng))
THEN
4506 IF (s(ng)%pioVar(
iduvwc)%dkind.eq.pio_double)
THEN
4511 IF (linstataneous)
THEN
4512 IF (.not.
allocated(wrk2d))
THEN
4513 allocate ( wrk2d(lbi:ubi, lbj:ubj) )
4514 wrk2d(lbi:ubi,lbj:ubj)=0.0_r8
4516 wrk2d=sqrt(
bbl(ng)%bustrcwmax*
bbl(ng)%bustrcwmax+ &
4517 &
bbl(ng)%bvstrcwmax*
bbl(ng)%bvstrcwmax+1.0e-10_r8)
4520 & s(ng)%pioVar(
iduvwc), &
4523 & lbi, ubi, lbj, ubj, scale, &
4525 &
grid(ng) % rmask, &
4532 & s(ng)%pioVar(
iduvwc), &
4535 & lbi, ubi, lbj, ubj, scale, &
4537 &
grid(ng) % rmask, &
4542 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4554 IF (varout(
idubot,ng))
THEN
4556 IF (s(ng)%pioVar(
idubot)%dkind.eq.pio_double)
THEN
4561 IF (linstataneous)
THEN
4563 & s(ng)%pioVar(
idubot), &
4566 & lbi, ubi, lbj, ubj, scale, &
4568 &
grid(ng) % rmask, &
4574 & s(ng)%pioVar(
idubot), &
4577 & lbi, ubi, lbj, ubj, scale, &
4579 &
grid(ng) % rmask, &
4584 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4596 IF (varout(
idvbot,ng))
THEN
4598 IF (s(ng)%pioVar(
idvbot)%dkind.eq.pio_double)
THEN
4603 IF (linstataneous)
THEN
4605 & s(ng)%pioVar(
idvbot), &
4608 & lbi, ubi, lbj, ubj, scale, &
4610 &
grid(ng) % rmask, &
4616 & s(ng)%pioVar(
idvbot), &
4619 & lbi, ubi, lbj, ubj, scale, &
4621 &
grid(ng) % rmask, &
4626 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4638 IF (varout(
idubur,ng))
THEN
4640 IF (s(ng)%pioVar(
idubur)%dkind.eq.pio_double)
THEN
4645 IF (linstataneous)
THEN
4647 & s(ng)%pioVar(
idubur), &
4650 & lbi, ubi, lbj, ubj, scale, &
4652 &
grid(ng) % rmask, &
4658 & s(ng)%pioVar(
idubur), &
4661 & lbi, ubi, lbj, ubj, scale, &
4663 &
grid(ng) % rmask, &
4668 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4680 IF (varout(
idvbvr,ng))
THEN
4682 IF (s(ng)%pioVar(
idvbvr)%dkind.eq.pio_double)
THEN
4687 IF (linstataneous)
THEN
4689 & s(ng)%pioVar(
idvbvr), &
4692 & lbi, ubi, lbj, ubj, scale, &
4694 &
grid(ng) % rmask, &
4700 & s(ng)%pioVar(
idvbvr), &
4703 & lbi, ubi, lbj, ubj, scale, &
4705 &
grid(ng) % rmask, &
4710 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4721# if defined UV_KIRBY && defined AVERAGES
4725 IF (varout(
iduwav,ng))
THEN
4726 IF (.not.linstataneous)
THEN
4728 IF (s(ng)%pioVar(
iduwav)%dkind.eq.pio_double)
THEN
4734 & s(ng)%pioVar(
iduwav), &
4737 & lbi, ubi, lbj, ubj, scale, &
4739 &
grid(ng) % rmask, &
4742 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4755 IF (varout(
idvwav,ng))
THEN
4756 IF (.not.linstataneous)
THEN
4758 IF (s(ng)%pioVar(
idvwav)%dkind.eq.pio_double)
THEN
4764 & s(ng)%pioVar(
idvwav), &
4767 & lbi, ubi, lbj, ubj, scale, &
4769 &
grid(ng) % rmask, &
4772 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4788 IF (varout(
idwamp,ng))
THEN
4790 IF (s(ng)%pioVar(
idwamp)%dkind.eq.pio_double)
THEN
4795 IF (linstataneous)
THEN
4797 & s(ng)%pioVar(
idwamp), &
4800 & lbi, ubi, lbj, ubj, scale, &
4802 &
grid(ng) % rmask, &
4808 & s(ng)%pioVar(
idwamp), &
4811 & lbi, ubi, lbj, ubj, scale, &
4813 &
grid(ng) % rmask, &
4818 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4832 IF (varout(
idwam2,ng))
THEN
4833 IF (.not.linstataneous)
THEN
4835 IF (
avg(ng)%pioVar(
idwam2)%dkind.eq.pio_double)
THEN
4841 & s(ng)%pioVar(
idwam2), &
4844 & lbi, ubi, lbj, ubj, scale, &
4846 &
grid(ng) % rmask, &
4850 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4866 IF (varout(
idwlen,ng))
THEN
4868 IF (s(ng)%pioVar(
idwlen)%dkind.eq.pio_double)
THEN
4873 IF (linstataneous)
THEN
4875 & s(ng)%pioVar(
idwlen), &
4878 & lbi, ubi, lbj, ubj, scale, &
4880 &
grid(ng) % rmask, &
4886 & s(ng)%pioVar(
idwlen), &
4889 & lbi, ubi, lbj, ubj, scale, &
4891 &
grid(ng) % rmask, &
4896 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4907# ifdef WAVES_LENGTHP
4911 IF (varout(
idwlep,ng))
THEN
4913 IF (s(ng)%pioVar(
idwlen)%dkind.eq.pio_double)
THEN
4918 IF (linstataneous)
THEN
4920 & s(ng)%pioVar(
idwlep), &
4923 & lbi, ubi, lbj, ubj, scale, &
4925 &
grid(ng) % rmask, &
4931 & s(ng)%pioVar(
idwlep), &
4934 & lbi, ubi, lbj, ubj, scale, &
4936 &
grid(ng) % rmask, &
4941 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
4956 IF (varout(
idwdir,ng))
THEN
4958 IF (s(ng)%pioVar(
idwdir)%dkind.eq.pio_double)
THEN
4963 IF (linstataneous)
THEN
4965 & s(ng)%pioVar(
idwdir), &
4968 & lbi, ubi, lbj, ubj, scale, &
4970 &
grid(ng) % rmask, &
4976 & s(ng)%pioVar(
idwdir), &
4979 & lbi, ubi, lbj, ubj, scale, &
4981 &
grid(ng) % rmask, &
4986 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5001 IF (varout(
idwdip,ng))
THEN
5003 IF (s(ng)%pioVar(
idwdir)%dkind.eq.pio_double)
THEN
5008 IF (linstataneous)
THEN
5010 & s(ng)%pioVar(
idwdip), &
5013 & lbi, ubi, lbj, ubj, scale, &
5015 &
grid(ng) % rmask, &
5020 & s(ng)%pioVar(
idwdip), &
5023 & lbi, ubi, lbj, ubj, scale, &
5025 &
grid(ng) % rmask, &
5029 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5040# ifdef WAVES_TOP_PERIOD
5044 IF (varout(
idwptp,ng))
THEN
5046 IF (s(ng)%pioVar(
idwptp)%dkind.eq.pio_double)
THEN
5051 IF (linstataneous)
THEN
5053 & s(ng)%pioVar(
idwptp), &
5056 & lbi, ubi, lbj, ubj, scale, &
5058 &
grid(ng) % rmask, &
5060 &
forces(ng) % Pwave_top)
5064 & s(ng)%pioVar(
idwptp), &
5067 & lbi, ubi, lbj, ubj, scale, &
5069 &
grid(ng) % rmask, &
5074 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5085# ifdef WAVES_BOT_PERIOD
5089 IF (varout(
idwpbt,ng))
THEN
5091 IF (s(ng)%pioVar(
idwpbt)%dkind.eq.pio_double)
THEN
5096 IF (linstataneous)
THEN
5098 & s(ng)%pioVar(
idwpbt), &
5101 & lbi, ubi, lbj, ubj, scale, &
5103 &
grid(ng) % rmask, &
5105 &
forces(ng) % Pwave_bot)
5109 & s(ng)%pioVar(
idwpbt), &
5112 & lbi, ubi, lbj, ubj, scale, &
5114 &
grid(ng) % rmask, &
5119 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5121 WRITE (sqtdout,10) trim(
vname(1,
idwpbt)), s(ng)%Rindex
5134 IF (varout(
idwvds,ng))
THEN
5135 IF (linstataneous)
THEN
5137 IF (s(ng)%pioVar(
idwvds)%dkind.eq.pio_double)
THEN
5143 & s(ng)%pioVar(
idwvds), &
5146 & lbi, ubi, lbj, ubj, scale, &
5148 &
grid(ng) % rmask, &
5151 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5153 WRITE (sqtdout,10) trim(
vname(1,
idwvds)), s(ng)%Rindex
5164 IF (varout(
idwvqp,ng))
THEN
5165 IF (linstataneous)
THEN
5167 IF (s(ng)%pioVar(
idwvds)%dkind.eq.pio_double)
THEN
5173 & s(ng)%pioVar(
idwvqp), &
5176 & lbi, ubi, lbj, ubj, scale, &
5178 &
grid(ng) % rmask, &
5181 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
5183 WRITE (sqtdout,10) trim(
vname(1,
idwvqp)), s(ng)%Rindex
5193 10
FORMAT (/,
" BBL_WRT_PIO - error while writing variable '", &
5194 & a,
"', time record = ",i0,/,11x,
'into file: ',a)
5210 logical,
intent(in) :: ldef, varout(
nv,
ngrids)
5212 integer,
intent(in) :: ng, model
5213 integer,
intent(in),
optional :: pgrd(:), rgrd(:)
5219 logical :: got_var(
nv)
5221 integer,
parameter :: natt = 25
5223 integer :: i, j, status
5227 character (len=120) :: vinfo(natt)
5228 character (len=256) :: ncname
5230 character (len=*),
parameter :: myfile = &
5231 & __FILE__//
", bbl_def_station_nf90"
5242 define :
IF (ldef)
THEN
5247 DO j=1,len(vinfo(1))
5259 IF (varout(
idworb,ng))
THEN
5265 s(ng)%pioVar(
idworb)%dkind=pio_fout
5266 s(ng)%pioVar(
idworb)%gtype=0
5268 status=
def_var(ng, model, s(ng)%pioFile, &
5269 & s(ng)%pioVar(
idworb)%vd, &
5270 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5271 & setfillval = .true., &
5272 & setparaccess = .true.)
5281 IF (varout(
idubrs,ng))
THEN
5287 s(ng)%pioVar(
idubrs)%dkind=pio_fout
5288 s(ng)%pioVar(
idubrs)%gtype=0
5290 status=
def_var(ng, model, s(ng)%pioFile, &
5291 & s(ng)%pioVar(
idubrs)%vd, &
5292 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5293 & setfillval = .true., &
5294 & setparaccess = .true.)
5300 IF (varout(
idvbrs,ng))
THEN
5306 s(ng)%pioVar(
idvbrs)%dkind=pio_fout
5307 s(ng)%pioVar(
idvbrs)%gtype=0
5309 status=
def_var(ng, model, s(ng)%pioFile, &
5310 & s(ng)%pioVar(
idvbrs)%vd, &
5311 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5312 & setfillval = .true., &
5313 & setparaccess = .true.)
5319 IF (varout(
idubws,ng))
THEN
5325 s(ng)%pioVar(
idubws)%dkind=pio_fout
5326 s(ng)%pioVar(
idubws)%gtype=0
5328 status=
def_var(ng, model, s(ng)%pioFile, &
5329 & s(ng)%pioVar(
idubws)%vd, &
5330 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5331 & setfillval = .true., &
5332 & setparaccess = .true.)
5338 IF (varout(
idvbws,ng))
THEN
5344 s(ng)%pioVar(
idvbws)%dkind=pio_fout
5345 s(ng)%pioVar(
idvbws)%gtype=0
5347 status=
def_var(ng, model, s(ng)%pioFile, &
5348 & s(ng)%pioVar(
idvbws)%vd, &
5349 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5350 & setfillval = .true., &
5351 & setparaccess = .true.)
5357 IF (varout(
idubcs,ng))
THEN
5363 s(ng)%pioVar(
idubcs)%dkind=pio_fout
5364 s(ng)%pioVar(
idubcs)%gtype=0
5366 status=
def_var(ng, model, s(ng)%pioFile, &
5367 & s(ng)%pioVar(
idubcs)%vd, &
5368 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5369 & setfillval = .true., &
5370 & setparaccess = .true.)
5376 IF (varout(
idvbcs,ng))
THEN
5382 s(ng)%pioVar(
idvbcs)%dkind=pio_fout
5383 s(ng)%pioVar(
idvbcs)%gtype=0
5385 status=
def_var(ng, model, s(ng)%pioFile, &
5386 & s(ng)%pioVar(
idvbcs)%vd, &
5387 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5388 & setfillval = .true., &
5389 & setparaccess = .true.)
5395 IF (varout(
idubot,ng))
THEN
5401 s(ng)%pioVar(
idubot)%dkind=pio_fout
5402 s(ng)%pioVar(
idubot)%gtype=0
5404 status=
def_var(ng, model, s(ng)%pioFile, &
5405 & s(ng)%pioVar(
idubot)%vd, &
5406 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5407 & setfillval = .true., &
5408 & setparaccess = .true.)
5414 IF (varout(
idvbot,ng))
THEN
5420 s(ng)%pioVar(
idvbot)%dkind=pio_fout
5421 s(ng)%pioVar(
idvbot)%gtype=0
5423 status=
def_var(ng, model, s(ng)%pioFile, &
5424 & s(ng)%pioVar(
idvbot)%vd, &
5425 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5426 & setfillval = .true., &
5427 & setparaccess = .true.)
5433 IF (varout(
idubur,ng))
THEN
5439 s(ng)%pioVar(
idubur)%dkind=pio_fout
5440 s(ng)%pioVar(
idubur)%gtype=0
5442 status=
def_var(ng, model, s(ng)%pioFile, &
5443 & s(ng)%pioVar(
idubur)%vd, &
5444 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5445 & setfillval = .true., &
5446 & setparaccess = .true.)
5452 IF (varout(
idvbvr,ng))
THEN
5458 s(ng)%pioVar(
idvbvr)%dkind=pio_fout
5459 s(ng)%pioVar(
idvbvr)%gtype=0
5461 status=
def_var(ng, model, s(ng)%pioFile, &
5462 & s(ng)%pioVar(
idvbvr)%vd, &
5463 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5464 & setfillval = .true., &
5465 & setparaccess = .true.)
5474 IF (varout(
idwamp,ng))
THEN
5480 s(ng)%pioVar(
idwamp)%dkind=pio_fout
5481 s(ng)%pioVar(
idwamp)%gtype=0
5483 status=
def_var(ng, model, s(ng)%pioFile, &
5484 & s(ng)%pioVar(
idwamp)%vd, &
5485 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5486 & setfillval = .true., &
5487 & setparaccess = .true.)
5496 IF (varout(
idwlen,ng))
THEN
5502 s(ng)%pioVar(
idwlen)%dkind=pio_fout
5503 s(ng)%pioVar(
idwlen)%gtype=0
5505 status=
def_var(ng, model, s(ng)%pioFile, &
5506 & s(ng)%pioVar(
idwlen)%vd, &
5507 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5508 & setfillval = .true., &
5509 & setparaccess = .true.)
5514# ifdef WAVES_LENGTHP
5518 IF (varout(
idwlep,ng))
THEN
5524 s(ng)%pioVar(
idwlep)%dkind=pio_fout
5525 s(ng)%pioVar(
idwlep)%gtype=0
5527 status=
def_var(ng, model, s(ng)%pioFile, &
5528 & s(ng)%pioVar(
idwlep)%vd, &
5529 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5530 & setfillval = .true., &
5531 & setparaccess = .true.)
5540 IF (varout(
idwdir,ng))
THEN
5546 s(ng)%pioVar(
idwdir)%dkind=pio_fout
5547 s(ng)%pioVar(
idwdir)%gtype=0
5549 status=
def_var(ng, model, s(ng)%pioFile, &
5550 & s(ng)%pioVar(
idwdir)%vd, &
5551 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5552 & setfillval = .true., &
5553 & setparaccess = .true.)
5562 IF (varout(
idwdip,ng))
THEN
5568 s(ng)%pioVar(
idwdip)%dkind=pio_fout
5569 s(ng)%pioVar(
idwdip)%gtype=0
5571 status=
def_var(ng, model, s(ng)%pioFile, &
5572 & s(ng)%pioVar(
idwdip)%vd, &
5573 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5574 & setfillval = .true., &
5575 & setparaccess = .true.)
5580# ifdef WAVES_TOP_PERIOD
5584 IF (varout(
idwptp,ng))
THEN
5590 s(ng)%pioVar(
idwptp)%dkind=pio_fout
5591 s(ng)%pioVar(
idwptp)%gtype=0
5593 status=
def_var(ng, model, s(ng)%pioFile, &
5594 & s(ng)%pioVar(
idwptp)%vd, &
5595 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5596 & setfillval = .true., &
5597 & setparaccess = .true.)
5602# ifdef WAVES_BOT_PERIOD
5606 IF (varout(
idwpbt,ng))
THEN
5612 s(ng)%pioVar(
idwpbt)%dkind=pio_fout
5613 s(ng)%pioVar(
idwpbt)%gtype=0
5615 status=
def_var(ng, model, s(ng)%pioFile, &
5616 & s(ng)%pioVar(
idwpbt)%vd, &
5617 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5618 & setfillval = .true., &
5619 & setparaccess = .true.)
5628 IF (varout(
idwvds,ng))
THEN
5634 s(ng)%pioVar(
idwvds)%dkind=pio_fout
5635 s(ng)%pioVar(
idwvds)%gtype=0
5637 status=
def_var(ng, model, s(ng)%pioFile, &
5638 & s(ng)%pioVar(
idwvds)%vd, &
5639 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5640 & setfillval = .true., &
5641 & setparaccess = .true.)
5647 IF (varout(
idwvqp,ng))
THEN
5653 s(ng)%pioVar(
idwvqp)%dkind=pio_fout
5654 s(ng)%pioVar(
idwvqp)%gtype=0
5656 status=
def_var(ng, model, s(ng)%pioFile, &
5657 & s(ng)%pioVar(
idwvqp)%vd, &
5658 & pio_fout, 2, pgrd, aval, vinfo, ncname, &
5659 & setfillval = .true., &
5660 & setparaccess = .true.)
5672 query :
IF (.not.ldef)
THEN
5686 s(ng)%pioVar(
idtime)%vd=var_desc(i)
5687 s(ng)%pioVar(
idtime)%dkind=pio_tout
5688 s(ng)%pioVar(
idtime)%gtype=0
5692 s(ng)%pioVar(
idworb)%vd=var_desc(i)
5693 s(ng)%pioVar(
idworb)%dkind=pio_fout
5694 s(ng)%pioVar(
idworb)%gtype=0
5699 s(ng)%pioVar(
idubrs)%vd=var_desc(i)
5700 s(ng)%pioVar(
idubrs)%dkind=pio_fout
5701 s(ng)%pioVar(
idubrs)%gtype=0
5704 s(ng)%pioVar(
idvbrs)%vd=var_desc(i)
5705 s(ng)%pioVar(
idvbrs)%dkind=pio_fout
5706 s(ng)%pioVar(
idvbrs)%gtype=0
5709 s(ng)%pioVar(
idubws)%vd=var_desc(i)
5710 s(ng)%pioVar(
idubws)%dkind=pio_fout
5711 s(ng)%pioVar(
idubws)%gtype=0
5714 s(ng)%pioVar(
idvbws)%vd=var_desc(i)
5715 s(ng)%pioVar(
idvbws)%dkind=pio_fout
5716 s(ng)%pioVar(
idvbws)%gtype=0
5719 s(ng)%pioVar(
idubcs)%vd=var_desc(i)
5720 s(ng)%pioVar(
idubcs)%dkind=pio_fout
5721 s(ng)%pioVar(
idubcs)%gtype=0
5724 s(ng)%pioVar(
idvbcs)%vd=var_desc(i)
5725 s(ng)%pioVar(
idvbcs)%dkind=pio_fout
5726 s(ng)%pioVar(
idvbcs)%gtype=0
5729 s(ng)%pioVar(
idubot)%vd=var_desc(i)
5730 s(ng)%pioVar(
idubot)%dkind=pio_fout
5731 s(ng)%pioVar(
idubot)%gtype=0
5734 s(ng)%pioVar(
idvbot)%vd=var_desc(i)
5735 s(ng)%pioVar(
idvbot)%dkind=pio_fout
5736 s(ng)%pioVar(
idvbot)%gtype=0
5739 s(ng)%pioVar(
idubur)%vd=var_desc(i)
5740 s(ng)%pioVar(
idubur)%dkind=pio_fout
5741 s(ng)%pioVar(
idubur)%gtype=0
5744 s(ng)%pioVar(
idvbvr)%vd=var_desc(i)
5745 s(ng)%pioVar(
idvbvr)%dkind=pio_fout
5746 s(ng)%pioVar(
idvbvr)%gtype=0
5751 s(ng)%pioVar(
idwamp)%vd=var_desc(i)
5752 s(ng)%pioVar(
idwamp)%dkind=pio_fout
5753 s(ng)%pioVar(
idwamp)%gtype=0
5758 s(ng)%pioVar(
idwlen)%vd=var_desc(i)
5759 s(ng)%pioVar(
idwlen)%dkind=pio_fout
5760 s(ng)%pioVar(
idwlen)%gtype=0
5762# ifdef WAVES_LENGTHP
5765 s(ng)%pioVar(
idwlep)%vd=var_desc(i)
5766 s(ng)%pioVar(
idwlep)%dkind=pio_fout
5767 s(ng)%pioVar(
idwlep)%gtype=0
5772 s(ng)%pioVar(
idwdir)%vd=var_desc(i)
5773 s(ng)%pioVar(
idwdir)%dkind=pio_fout
5774 s(ng)%pioVar(
idwdir)%gtype=0
5779 s(ng)%pioVar(
idwdip)%vd=var_desc(i)
5780 s(ng)%pioVar(
idwdip)%dkind=pio_fout
5781 s(ng)%pioVar(
idwdip)%gtype=0
5783# ifdef WAVES_TOP_PERIOD
5786 s(ng)%pioVar(
idwptp)%vd=var_desc(i)
5787 s(ng)%pioVar(
idwptp)%dkind=pio_fout
5788 s(ng)%pioVar(
idwptp)%gtype=0
5790# ifdef WAVES_BOT_PERIOD
5793 s(ng)%pioVar(
idwpbt)%vd=var_desc(i)
5794 s(ng)%pioVar(
idwpbt)%dkind=pio_fout
5795 s(ng)%pioVar(
idwpbt)%gtype=0
5888# ifdef WAVES_LENGTHP
5912# ifdef WAVES_TOP_PERIOD
5920# ifdef WAVES_BOT_PERIOD
5943 10
FORMAT (/,
' BBL_DEF_STATION_PIO - unable to find variable: ', &
5944 & a,2x,
' in stations NetCDF file: ',a)
5951 & LBi, UBi, LBj, UBj, &
5959 logical,
intent(in) :: varout(
nv,
ngrids)
5961 integer,
intent(in) :: ng, model, tile
5962 integer,
intent(in) :: lbi, ubi, lbj, ubj
5970 integer :: nposr, nposw
5971 integer :: i, k, np, status
5975 real(r8),
dimension(Nstation(ng)) :: xpos, ypos, zpos, psta
5977 real(r8),
dimension(Nstation(ng)*(N(ng))) :: xposr, yposr, zposr
5978 real(r8),
dimension(Nstation(ng)*(N(ng)+1)) :: rsta
5981 character (len=*),
parameter :: myfile = &
5982 & __FILE__//
", bbl_wrt_station_pio"
5996# ifdef STATIONS_CGRID
6013 xposr(np)=
scalars(ng)%SposX(i)
6014 yposr(np)=
scalars(ng)%SposY(i)
6015 zposr(np)=real(k,r8)
6024 IF (varout(
idworb,ng))
THEN
6027 & lbi, ubi, lbj, ubj, &
6028 & scale,
forces(ng) % Ub_swan, &
6032 & (/1,s(ng)%Rindex/), &
6034 & piofile = s(ng)%pioFile, &
6035 & piovar = s(ng)%pioVar(
idworb)%vd)
6044 IF (varout(
idubrs,ng))
THEN
6047 & lbi, ubi, lbj, ubj, &
6048 & scale,
bbl(ng)%bustrc, &
6052 & (/1,s(ng)%Rindex/), &
6054 & piofile = s(ng)%pioFile, &
6055 & piovar = s(ng)%pioVar(
idubrs)%vd)
6061 IF (varout(
idvbrs,ng))
THEN
6064 & lbi, ubi, lbj, ubj, &
6065 & scale,
bbl(ng)%bvstrc, &
6069 & (/1,s(ng)%Rindex/), &
6071 & piofile = s(ng)%pioFile, &
6072 & piovar = s(ng)%pioVar(
idvbrs)%vd)
6078 IF (varout(
idubws,ng))
THEN
6081 & lbi, ubi, lbj, ubj, &
6082 & scale,
bbl(ng)%bustrw, &
6086 & (/1,s(ng)%Rindex/), &
6088 & piofile = s(ng)%pioFile, &
6089 & piovar = s(ng)%pioVar(
idubws)%vd)
6095 IF (varout(
idvbws,ng))
THEN
6098 & lbi, ubi, lbj, ubj, &
6099 & scale,
bbl(ng)%bvstrw, &
6103 & (/1,s(ng)%Rindex/), &
6105 & piofile = s(ng)%pioFile, &
6106 & piovar = s(ng)%pioVar(
idvbws)%vd)
6112 IF (varout(
idubcs,ng))
THEN
6115 & lbi, ubi, lbj, ubj, &
6116 & scale,
bbl(ng)%bustrcwmax, &
6120 & (/1,s(ng)%Rindex/), &
6122 & piofile = s(ng)%pioFile, &
6123 & piovar = s(ng)%pioVar(
idubcs)%vd)
6129 IF (varout(
idvbcs,ng))
THEN
6132 & lbi, ubi, lbj, ubj, &
6133 & scale,
bbl(ng)%bvstrcwmax, &
6137 & (/1,s(ng)%Rindex/), &
6139 & piofile = s(ng)%pioFile, &
6140 & piovar = s(ng)%pioVar(
idvbcs)%vd)
6146 IF (varout(
idubot,ng))
THEN
6149 & lbi, ubi, lbj, ubj, &
6150 & scale,
bbl(ng)%Ubot, &
6154 & (/1,s(ng)%Rindex/), &
6156 & piofile = s(ng)%pioFile, &
6157 & piovar = s(ng)%pioVar(
idubot)%vd)
6163 IF (varout(
idvbot,ng))
THEN
6166 & lbi, ubi, lbj, ubj, &
6167 & scale,
bbl(ng)%Vbot, &
6171 & (/1,s(ng)%Rindex/), &
6173 & piofile = s(ng)%pioFile, &
6174 & piovar = s(ng)%pioVar(
idvbot)%vd)
6180 IF (varout(
idubur,ng))
THEN
6183 & lbi, ubi, lbj, ubj, &
6184 & scale,
bbl(ng)%Ur, &
6188 & (/1,s(ng)%Rindex/), &
6190 & piofile = s(ng)%pioFile, &
6191 & piovar = s(ng)%pioVar(
idubur)%vd)
6197 IF (varout(
idvbvr,ng))
THEN
6200 & lbi, ubi, lbj, ubj, &
6201 & scale,
bbl(ng)%Vr, &
6205 & (/1,s(ng)%Rindex/), &
6207 & piofile = s(ng)%pioFile, &
6208 & piovar = s(ng)%pioVar(
idvbvr)%vd)
6217 IF (varout(
idwamp,ng))
THEN
6220 & lbi, ubi, lbj, ubj, &
6221 & scale,
forces(ng) % Hwave, &
6225 & (/1,s(ng)%Rindex/), &
6227 & piofile = s(ng)%pioFile, &
6228 & piovar = s(ng)%pioVar(
idwamp)%vd)
6237 IF (varout(
idwlen,ng))
THEN
6240 & lbi, ubi, lbj, ubj, &
6241 & scale,
forces(ng) % Lwave, &
6245 & (/1,s(ng)%Rindex/), &
6247 & piofile = s(ng)%pioFile, &
6248 & piovar = s(ng)%pioVar(
idwlen)%vd)
6253# ifdef WAVES_LENGTHP
6257 IF (varout(
idwlep,ng))
THEN
6260 & lbi, ubi, lbj, ubj, &
6261 & scale,
forces(ng) % Lwavep, &
6265 & (/1,s(ng)%Rindex/), &
6267 & piofile = s(ng)%pioFile, &
6268 & piovar = s(ng)%pioVar(
idwlep)%vd)
6277 IF (varout(
idwdir,ng))
THEN
6280 & lbi, ubi, lbj, ubj, &
6281 & scale,
forces(ng) % Dwave, &
6285 & (/1,s(ng)%Rindex/), &
6287 & piofile = s(ng)%pioFile, &
6288 & piovar = s(ng)%pioVar(
idwdir)%vd)
6297 IF (varout(
idwdip,ng))
THEN
6300 & lbi, ubi, lbj, ubj, &
6301 & scale,
forces(ng) % Dwavep, &
6305 & (/1,s(ng)%Rindex/), &
6307 & piofile = s(ng)%pioFile, &
6308 & piovar = s(ng)%pioVar(
idwdip)%vd)
6313# ifdef WAVES_TOP_PERIOD
6317 IF (varout(
idwptp,ng))
THEN
6320 & lbi, ubi, lbj, ubj, &
6321 & scale,
forces(ng) % Pwave_top, &
6325 & (/1,s(ng)%Rindex/), &
6327 & piofile = s(ng)%pioFile, &
6328 & piovar = s(ng)%pioVar(
idwptp)%vd)
6333# ifdef WAVES_BOT_PERIOD
6337 IF (varout(
idwpbt,ng))
THEN
6340 & lbi, ubi, lbj, ubj, &
6341 & scale,
forces(ng) % Pwave_bot, &
6345 & (/1,s(ng)%Rindex/), &
6347 & piofile = s(ng)%pioFile, &
6348 & piovar = s(ng)%pioVar(
idwpbt)%vd)
6353# if defined WAVES_DSPR
6357 IF (varout(
idwvds,ng))
THEN
6360 & lbi, ubi, lbj, ubj, &
6361 & scale,
forces(ng) % Wave_ds, &
6365 & (/1,s(ng)%Rindex/), &
6367 & piofile = s(ng)%pioFile, &
6368 & piovar = s(ng)%pioVar(
idwvds)%vd)
6374 IF (varout(
idwvqp,ng))
THEN
6377 & lbi, ubi, lbj, ubj, &
6378 & scale,
forces(ng) % Wave_qp, &
6382 & (/1,s(ng)%Rindex/), &
6384 & piofile = s(ng)%pioFile, &
6385 & piovar = s(ng)%pioVar(
idwvqp)%vd)