132 integer,
intent(in) :: ng, model
134 logical,
intent(in) :: ldef
138 logical :: got_var(
nv)
140 integer,
parameter :: natt = 25
142 integer :: i, ifield, itrc, j, nvd3, nvd4
143# if defined WRITE_WATER && defined MASKING
144 integer :: xy_pdim, xyz_pdim
146 integer :: recdim, status
149 integer :: p2dgrd(3), t2dgrd(3), u2dgrd(3), v2dgrd(3)
155 integer :: p3dgrd(4), t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
161 character (len=21) :: prefix
163 character (len=13) :: prefix
165 character (len=256) :: ncname
166 character (len=MaxLen) :: vinfo(natt)
168 character (len=*),
parameter :: myfile = &
169 & __FILE__//
", def_avg_nf90"
182 WRITE (
stdout,10) ng, trim(ncname)
184 WRITE (
stdout,20) ng, trim(ncname)
192 define :
IF (ldef)
THEN
205 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xi_rho', &
209 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xi_u', &
213 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xi_v', &
217 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xi_psi', &
221 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'eta_rho', &
225 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'eta_u', &
229 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'eta_v', &
233 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'eta_psi', &
237# if defined WRITE_WATER && defined MASKING
238 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xy_rho', &
242 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xy_u', &
246 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xy_v', &
250 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xy_psi', &
256# if defined WRITE_WATER && defined MASKING
257 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xyz_rho', &
261 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xyz_u', &
265 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xyz_v', &
269 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xyz_w', &
270 &
iobounds(ng)%xy_rho*(
n(ng)+1), dimids(23))
273 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xyz_psi', &
278 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
's_rho', &
282 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
's_w', &
283 &
n(ng)+1, dimids(10))
286 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'tracer', &
287 &
nt(ng), dimids(11))
291 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'NST', &
295 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nbed', &
299# if defined WRITE_WATER && defined MASKING
300 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'xybed', &
307 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nbands', &
311 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nphy', &
315 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nbac', &
319 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Ndom', &
323 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nfec', &
329 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'boundary', &
334 status=
def_dim(ng, model,
avg(ng)%ncid, ncname,
'Nstate', &
339 status=
def_dim(ng, model,
avg(ng)%ncid, ncname, &
341 & nf90_unlimited, dimids(12))
348# if defined WRITE_WATER && defined MASKING
358# if defined WRITE_WATER && defined MASKING
379# if defined WRITE_WATER && defined MASKING
400# if defined WRITE_WATER && defined MASKING
421# if defined WRITE_WATER && defined MASKING
443# if defined WRITE_WATER && defined MASKING
456# if defined WRITE_WATER && defined MASKING
497 CALL def_info (ng, model,
avg(ng)%ncid, ncname, dimids)
507 WRITE (vinfo( 2),
'(a,a)')
'averaged ', trim(
vname(2,
idtime))
508 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
509 vinfo( 4)=trim(
rclock%calendar)
513 &
nf_tout, 1, (/recdim/), aval, vinfo, ncname, &
514 & setparaccess = .true.)
521 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idfsur))
525# if !defined WET_DRY && (defined WRITE_WATER && defined MASKING)
529 vinfo(22)=
'coordinates'
532 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
536# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
542 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idfsud))
546# if defined WRITE_WATER && defined MASKING
550 vinfo(22)=
'coordinates'
553 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
562 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubar))
566# if defined WRITE_WATER && defined MASKING
570 vinfo(22)=
'coordinates'
573 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
577# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
583 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu2dd))
587# if defined WRITE_WATER && defined MASKING
591 vinfo(22)=
'coordinates'
594 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
603 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbar))
607# if defined WRITE_WATER && defined MASKING
611 vinfo(22)=
'coordinates'
614 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
618# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
624 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv2dd))
628# if defined WRITE_WATER && defined MASKING
632 vinfo(22)=
'coordinates'
635 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
644 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu2de))
648# if defined WRITE_WATER && defined MASKING
652 vinfo(22)=
'coordinates'
655 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
663 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv2dn))
667# if defined WRITE_WATER && defined MASKING
671 vinfo(22)=
'coordinates'
674 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
689# if defined WRITE_WATER && defined MASKING
693 vinfo(22)=
'coordinates'
696 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
706# if defined WRITE_WATER && defined MASKING
710 vinfo(22)=
'coordinates'
713 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
723# if defined WRITE_WATER && defined MASKING
727 vinfo(22)=
'coordinates'
730 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
740# if defined WRITE_WATER && defined MASKING
744 vinfo(22)=
'coordinates'
747 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
756 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduvel))
760# if defined WRITE_WATER && defined MASKING
764 vinfo(22)=
'coordinates'
767 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
771# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
777 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu3dd))
781# if defined WRITE_WATER && defined MASKING
785 vinfo(22)=
'coordinates'
788 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
797 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvvel))
801# if defined WRITE_WATER && defined MASKING
805 vinfo(22)=
'coordinates'
808 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
812# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
818 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv3dd))
822# if defined WRITE_WATER && defined MASKING
826 vinfo(22)=
'coordinates'
829 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
838 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu3de))
842# if defined WRITE_WATER && defined MASKING
846 vinfo(22)=
'coordinates'
849 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
857 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv3dn))
861# if defined WRITE_WATER && defined MASKING
865 vinfo(22)=
'coordinates'
868 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
876 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idovel))
880# if defined WRITE_WATER && defined MASKING
884 vinfo(22)=
'coordinates'
887 &
nf_fout, nvd4, w3dgrd, aval, vinfo, ncname)
895 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvel))
899# if defined WRITE_WATER && defined MASKING
903 vinfo(22)=
'coordinates'
906 &
nf_fout, nvd4, w3dgrd, aval, vinfo, ncname)
915 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
922 IF (itrc.eq.
idsed(i))
THEN
923 WRITE (vinfo(19),40) 1000.0_r8*
sd50(i,ng)
927# if defined WRITE_WATER && defined MASKING
931 vinfo(22)=
'coordinates'
934 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
939# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
946 vinfo( 1)=
vname(1,ifield)
947 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,ifield))
948 vinfo( 3)=
vname(3,ifield)
949 vinfo(14)=
vname(4,ifield)
951# if defined WRITE_WATER && defined MASKING
954 vinfo(21)=
vname(6,ifield)
955 vinfo(22)=
'coordinates'
959 & nvd4, t3dgrd, aval, vinfo, ncname)
969 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iddano))
973# if defined WRITE_WATER && defined MASKING
977 vinfo(22)=
'coordinates'
980 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
990 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idhsbl))
994# if defined WRITE_WATER && defined MASKING
998 vinfo(22)=
'coordinates'
1001 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1011 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idhbbl))
1015# if defined WRITE_WATER && defined MASKING
1016 vinfo(20)=
'mask_rho'
1019 vinfo(22)=
'coordinates'
1022 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1032 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id2dpv))
1036# if defined WRITE_WATER && defined MASKING
1037 vinfo(20)=
'mask_psi'
1040 vinfo(22)=
'coordinates'
1043 &
nf_fout, nvd3, p2dgrd, aval, vinfo, ncname)
1051 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id2drv))
1055# if defined WRITE_WATER && defined MASKING
1056 vinfo(20)=
'mask_psi'
1059 vinfo(22)=
'coordinates'
1062 &
nf_fout, nvd3, p2dgrd, aval, vinfo, ncname)
1072 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id3dpv))
1076# if defined WRITE_WATER && defined MASKING
1077 vinfo(20)=
'mask_psi'
1080 vinfo(22)=
'coordinates'
1083 &
nf_fout, nvd4, p3dgrd, aval, vinfo, ncname)
1091 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id3drv))
1095# if defined WRITE_WATER && defined MASKING
1096 vinfo(20)=
'mask_psi'
1099 vinfo(22)=
'coordinates'
1102 &
nf_fout, nvd4, p3dgrd, aval, vinfo, ncname)
1115# if defined WRITE_WATER && defined MASKING
1116 vinfo(20)=
'mask_rho'
1119 vinfo(22)=
'coordinates'
1122 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1134# if defined WRITE_WATER && defined MASKING
1138 vinfo(22)=
'coordinates'
1141 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1153# if defined WRITE_WATER && defined MASKING
1157 vinfo(22)=
'coordinates'
1160 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1174# if defined WRITE_WATER && defined MASKING
1178 vinfo(22)=
'coordinates'
1181 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
1193# if defined WRITE_WATER && defined MASKING
1197 vinfo(22)=
'coordinates'
1200 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
1212# if defined WRITE_WATER && defined MASKING
1216 vinfo(22)=
'coordinates'
1219 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
1231# if defined WRITE_WATER && defined MASKING
1232 vinfo(20)=
'mask_rho'
1235 vinfo(22)=
'coordinates'
1238 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
1250# if defined WRITE_WATER && defined MASKING
1254 vinfo(22)=
'coordinates'
1257 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
1270# if defined WRITE_WATER && defined MASKING
1271 vinfo(20)=
'mask_rho'
1274 vinfo(22)=
'coordinates'
1278 & nvd4, t3dgrd, aval, vinfo, ncname)
1292# if defined WRITE_WATER && defined MASKING
1296 vinfo(22)=
'coordinates'
1300 & nvd4, u3dgrd, aval, vinfo, ncname)
1310# if defined WRITE_WATER && defined MASKING
1314 vinfo(22)=
'coordinates'
1318 & nvd4, v3dgrd, aval, vinfo, ncname)
1332# if defined WRITE_WATER && defined MASKING
1336 vinfo(22)=
'coordinates'
1340 & nvd4, u3dgrd, aval, vinfo, ncname)
1350# if defined WRITE_WATER && defined MASKING
1354 vinfo(22)=
'coordinates'
1358 & nvd4, v3dgrd, aval, vinfo, ncname)
1363# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
1369 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvvis))
1374 vinfo(22)=
'coordinates'
1377 &
nf_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
1378 & setfillval = .false.)
1386 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idtdif))
1391 vinfo(22)=
'coordinates'
1394 &
nf_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
1395 & setfillval = .false.)
1405 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idsdif))
1410 vinfo(22)=
'coordinates'
1413 &
nf_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
1414 & setfillval = .false.)
1419# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
1425 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idpair))
1429# if defined WRITE_WATER && defined MASKING
1430 vinfo(20)=
'mask_rho'
1433 vinfo(22)=
'coordinates'
1436 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1440# if defined BULK_FLUXES
1446 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idtair))
1450# if defined WRITE_WATER && defined MASKING
1451 vinfo(20)=
'mask_rho'
1454 vinfo(22)=
'coordinates'
1457 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1461# if defined BULK_FLUXES || defined ECOSIM
1467 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduair))
1471# if defined WRITE_WATER && defined MASKING
1472 vinfo(20)=
'mask_rho'
1475 vinfo(22)=
'coordinates'
1478 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1484 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvair))
1488# if defined WRITE_WATER && defined MASKING
1489 vinfo(20)=
'mask_rho'
1492 vinfo(22)=
'coordinates'
1495 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1503 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduaie))
1507# if defined WRITE_WATER && defined MASKING
1508 vinfo(20)=
'mask_rho'
1511 vinfo(22)=
'coordinates'
1514 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1520 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvain))
1524# if defined WRITE_WATER && defined MASKING
1525 vinfo(20)=
'mask_rho'
1528 vinfo(22)=
'coordinates'
1531 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1540 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
1543 vinfo(11)=
'upward flux, cooling'
1544 vinfo(12)=
'downward flux, heating'
1547# if defined WRITE_WATER && defined MASKING
1548 vinfo(20)=
'mask_rho'
1551 vinfo(22)=
'coordinates'
1555 & nvd3, t2dgrd, aval, vinfo, ncname)
1565 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
1568 vinfo(11)=
'upward flux, freshening (net precipitation)'
1569 vinfo(12)=
'downward flux, salting (net evaporation)'
1572# if defined WRITE_WATER && defined MASKING
1573 vinfo(20)=
'mask_rho'
1576 vinfo(22)=
'coordinates'
1580 & nvd3, t2dgrd, aval, vinfo, ncname)
1585# if defined BULK_FLUXES || defined FRC_COUPLING
1591 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idlhea))
1593 vinfo(11)=
'upward flux, cooling'
1594 vinfo(12)=
'downward flux, heating'
1597# if defined WRITE_WATER && defined MASKING
1598 vinfo(20)=
'mask_rho'
1601 vinfo(22)=
'coordinates'
1604 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1612 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idshea))
1614 vinfo(11)=
'upward flux, cooling'
1615 vinfo(12)=
'downward flux, heating'
1618# if defined WRITE_WATER && defined MASKING
1619 vinfo(20)=
'mask_rho'
1622 vinfo(22)=
'coordinates'
1625 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1633 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idlrad))
1635 vinfo(11)=
'upward flux, cooling'
1636 vinfo(12)=
'downward flux, heating'
1639# if defined WRITE_WATER && defined MASKING
1640 vinfo(20)=
'mask_rho'
1643 vinfo(22)=
'coordinates'
1646 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1658 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idevap))
1660 vinfo(11)=
'downward flux, freshening (condensation)'
1661 vinfo(12)=
'upward flux, salting (evaporation)'
1664# if defined WRITE_WATER && defined MASKING
1665 vinfo(20)=
'mask_rho'
1668 vinfo(22)=
'coordinates'
1671 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1679 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idrain))
1681 vinfo(12)=
'downward flux, freshening (precipitation)'
1684# if defined WRITE_WATER && defined MASKING
1685 vinfo(20)=
'mask_rho'
1688 vinfo(22)=
'coordinates'
1691 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1702 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idsrad))
1704 vinfo(11)=
'upward flux, cooling'
1705 vinfo(12)=
'downward flux, heating'
1708# if defined WRITE_WATER && defined MASKING
1709 vinfo(20)=
'mask_rho'
1712 vinfo(22)=
'coordinates'
1715 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1725 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idusms))
1729# if defined WRITE_WATER && defined MASKING
1733 vinfo(22)=
'coordinates'
1736 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1744 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvsms))
1748# if defined WRITE_WATER && defined MASKING
1752 vinfo(22)=
'coordinates'
1755 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1763 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubms))
1767# if defined WRITE_WATER && defined MASKING
1771 vinfo(22)=
'coordinates'
1774 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1782 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbms))
1786# if defined WRITE_WATER && defined MASKING
1790 vinfo(22)=
'coordinates'
1793 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1797# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
1804 & t2dgrd, u2dgrd, v2dgrd)
1808# if defined ICE_MODEL && defined SOLVE3D
1814 CALL ice_def_nf90 (ng, model, ldef,
aout,
avg, &
1815 & t2dgrd, u2dgrd, v2dgrd)
1819# if defined SEDIMENT && defined SOLVE3D
1826 & t2dgrd, u2dgrd, v2dgrd, &
1831# if defined WEC_VF && defined SOLVE3D
1837 CALL wec_def_nf90 (ng, model, ldef,
aout,
avg, &
1838 & t2dgrd, u2dgrd, v2dgrd, &
1839 & t3dgrd, u3dgrd, v3dgrd, w3dgrd)
1863 query :
IF (.not.ldef)
THEN
1870 WRITE (
stdout,50) trim(ncname)
1877 & ncid =
avg(ng)%ncid)
1883 & ncid =
avg(ng)%ncid)
1913# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
1931# ifdef FORWARD_WRITE
1951# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
2024# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
2037# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
2042# if defined BULK_FLUXES || defined ECOSIM
2066# if defined BULK_FLUXES || defined FRC_COUPLING
2145 got_var(
idtvar(itrc))=.true.
2151 got_var(
ihutav(itrc))=.true.
2155 got_var(
ihvtav(itrc))=.true.
2159 got_var(
idutav(itrc))=.true.
2163 got_var(
idvtav(itrc))=.true.
2167 got_var(
idttav(itrc))=.true.
2171# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
2174 got_var(
idtrcd(itrc))=.true.
2184 IF (.not.got_var(
idtime))
THEN
2208# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
2241# ifdef FORWARD_WRITE
2279# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
2415# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
2437# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
2445# if defined BULK_FLUXES || defined ECOSIM
2485# if defined BULK_FLUXES || defined FRC_COUPLING
2601# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
2613# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
2623# if defined ICE_MODEL && defined SOLVE3D
2628 CALL ice_def_nf90 (ng, model, ldef,
aout,
avg)
2631# if defined SEDIMENT && defined SOLVE3D
2640# if defined WEC_VF && defined SOLVE3D
2645 CALL wec_def_nf90 (ng, model, ldef,
aout,
avg)
2674 IF (
ntsavg(ng).eq.1)
THEN
2678 & 0.5_r8*real(
navg(ng),r8)*
dt(ng)
2682 10
FORMAT (2x,
'DEF_AVG_NF90 - creating average file,',t56, &
2683 &
'Grid ',i2.2,
': ',a)
2684 20
FORMAT (2x,
'DEF_AVG_NF90 - inquiring average file,',t56, &
2685 &
'Grid ',i2.2,
': ',a)
2686 30
FORMAT (/,
' DEF_AVG_NF90 - unable to create averages NetCDF', &
2688 40
FORMAT (1pe11.4,1x,
'millimeter')
2689 50
FORMAT (/,
' DEF_AVG_NF90 - unable to open averages NetCDF', &
2691 60
FORMAT (/,
' DEF_AVG_NF90 - unable to find variable: ',a,2x, &
2692 &
' in averages NetCDF file: ',a)
2707 integer,
intent(in) :: ng, model
2709 logical,
intent(in) :: ldef
2713 logical :: got_var(
nv)
2715 integer,
parameter :: natt = 25
2717 integer :: i, ifield, itrc, j, nvd3, nvd4
2718# if defined WRITE_WATER && defined MASKING
2719 integer :: xy_pdim, xyz_pdim
2721 integer :: recdim, status
2723 integer :: dimids(
ndimid)
2724 integer :: p2dgrd(3), t2dgrd(3), u2dgrd(3), v2dgrd(3)
2728 integer :: b3dgrd(4)
2730 integer :: p3dgrd(4), t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
2736 character (len=21) :: prefix
2738 character (len=13) :: prefix
2740 character (len=256) :: ncname
2741 character (len=MaxLen) :: vinfo(natt)
2743 character (len=*),
parameter :: myfile = &
2744 & __FILE__//
", def_avg_pio"
2757 WRITE (
stdout,10) ng, trim(ncname)
2759 WRITE (
stdout,20) ng, trim(ncname)
2767 define :
IF (ldef)
THEN
2781 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xi_rho', &
2785 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xi_u', &
2789 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xi_v', &
2793 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xi_psi', &
2797 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'eta_rho', &
2798 &
iobounds(ng)%eta_rho, dimids( 5))
2801 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'eta_u', &
2805 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'eta_v', &
2809 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'eta_psi', &
2810 &
iobounds(ng)%eta_psi, dimids( 8))
2813# if defined WRITE_WATER && defined MASKING
2814 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xy_rho', &
2818 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xy_u', &
2822 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xy_v', &
2826 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xy_psi', &
2832# if defined WRITE_WATER && defined MASKING
2833 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xyz_rho', &
2834 &
iobounds(ng)%xy_rho*
n(ng), dimids(20))
2837 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xyz_u', &
2841 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xyz_v', &
2845 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xyz_w', &
2846 &
iobounds(ng)%xy_rho*(
n(ng)+1), dimids(23))
2849 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xyz_psi', &
2854 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
's_rho', &
2855 &
n(ng), dimids( 9))
2858 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
's_w', &
2859 &
n(ng)+1, dimids(10))
2862 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'tracer', &
2863 &
nt(ng), dimids(11))
2867 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'NST', &
2871 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nbed', &
2875# if defined WRITE_WATER && defined MASKING
2876 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'xybed', &
2883 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nbands', &
2887 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nphy', &
2891 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nbac', &
2895 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Ndom', &
2899 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nfec', &
2905 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'boundary', &
2910 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname,
'Nstate', &
2915 status=
def_dim(ng, model,
avg(ng)%pioFile, ncname, &
2917 & pio_unlimited, dimids(12))
2924# if defined WRITE_WATER && defined MASKING
2934# if defined WRITE_WATER && defined MASKING
2935 t2dgrd(1)=dimids(17)
2936 t2dgrd(2)=dimids(12)
2938 t3dgrd(1)=dimids(20)
2939 t3dgrd(2)=dimids(12)
2942 t2dgrd(1)=dimids( 1)
2943 t2dgrd(2)=dimids( 5)
2944 t2dgrd(3)=dimids(12)
2946 t3dgrd(1)=dimids( 1)
2947 t3dgrd(2)=dimids( 5)
2948 t3dgrd(3)=dimids( 9)
2949 t3dgrd(4)=dimids(12)
2955# if defined WRITE_WATER && defined MASKING
2956 u2dgrd(1)=dimids(18)
2957 u2dgrd(2)=dimids(12)
2959 u3dgrd(1)=dimids(21)
2960 u3dgrd(2)=dimids(12)
2963 u2dgrd(1)=dimids( 2)
2964 u2dgrd(2)=dimids( 6)
2965 u2dgrd(3)=dimids(12)
2967 u3dgrd(1)=dimids( 2)
2968 u3dgrd(2)=dimids( 6)
2969 u3dgrd(3)=dimids( 9)
2970 u3dgrd(4)=dimids(12)
2976# if defined WRITE_WATER && defined MASKING
2977 v2dgrd(1)=dimids(19)
2978 v2dgrd(2)=dimids(12)
2980 v3dgrd(1)=dimids(22)
2981 v3dgrd(2)=dimids(12)
2984 v2dgrd(1)=dimids( 3)
2985 v2dgrd(2)=dimids( 7)
2986 v2dgrd(3)=dimids(12)
2988 v3dgrd(1)=dimids( 3)
2989 v3dgrd(2)=dimids( 7)
2990 v3dgrd(3)=dimids( 9)
2991 v3dgrd(4)=dimids(12)
2997# if defined WRITE_WATER && defined MASKING
2999 p2dgrd(2)=dimids(12)
3002 p3dgrd(2)=dimids(12)
3005 p2dgrd(1)=dimids( 4)
3006 p2dgrd(2)=dimids( 8)
3007 p2dgrd(3)=dimids(12)
3009 p3dgrd(1)=dimids( 4)
3010 p3dgrd(2)=dimids( 8)
3011 p3dgrd(3)=dimids( 9)
3012 p3dgrd(4)=dimids(12)
3019# if defined WRITE_WATER && defined MASKING
3020 w3dgrd(1)=dimids(23)
3021 w3dgrd(2)=dimids(12)
3023 w3dgrd(1)=dimids( 1)
3024 w3dgrd(2)=dimids( 5)
3025 w3dgrd(3)=dimids(10)
3026 w3dgrd(4)=dimids(12)
3032# if defined WRITE_WATER && defined MASKING
3033 b3dgrd(1)=dimids(24)
3034 b3dgrd(2)=dimids(12)
3036 b3dgrd(1)=dimids( 1)
3037 b3dgrd(2)=dimids( 5)
3038 b3dgrd(3)=dimids(16)
3039 b3dgrd(4)=dimids(12)
3051 DO j=1,len(vinfo(1))
3073 CALL def_info (ng, model,
avg(ng)%pioFile, ncname, dimids)
3083 WRITE (vinfo( 2),
'(a,a)')
'averaged ', trim(
vname(2,
idtime))
3084 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
3085 vinfo( 4)=trim(
rclock%calendar)
3093 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
3094 & setparaccess = .true.)
3101 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idfsur))
3105# if !defined WET_DRY && (defined WRITE_WATER && defined MASKING)
3106 vinfo(20)=
'mask_rho'
3109 vinfo(22)=
'coordinates'
3116 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3120# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3126 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idfsud))
3130# if defined WRITE_WATER && defined MASKING
3131 vinfo(20)=
'mask_rho'
3134 vinfo(22)=
'coordinates'
3141 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3150 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubar))
3154# if defined WRITE_WATER && defined MASKING
3158 vinfo(22)=
'coordinates'
3165 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3169# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3175 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu2dd))
3179# if defined WRITE_WATER && defined MASKING
3183 vinfo(22)=
'coordinates'
3190 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3199 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbar))
3203# if defined WRITE_WATER && defined MASKING
3207 vinfo(22)=
'coordinates'
3214 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3218# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3224 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv2dd))
3228# if defined WRITE_WATER && defined MASKING
3232 vinfo(22)=
'coordinates'
3239 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3248 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu2de))
3252# if defined WRITE_WATER && defined MASKING
3253 vinfo(20)=
'mask_rho'
3256 vinfo(22)=
'coordinates'
3263 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3271 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv2dn))
3275# if defined WRITE_WATER && defined MASKING
3276 vinfo(20)=
'mask_rho'
3279 vinfo(22)=
'coordinates'
3286 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3291# ifdef FORWARD_WRITE
3301# if defined WRITE_WATER && defined MASKING
3305 vinfo(22)=
'coordinates'
3312 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3322# if defined WRITE_WATER && defined MASKING
3326 vinfo(22)=
'coordinates'
3333 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3343# if defined WRITE_WATER && defined MASKING
3347 vinfo(22)=
'coordinates'
3354 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3364# if defined WRITE_WATER && defined MASKING
3368 vinfo(22)=
'coordinates'
3375 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3384 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduvel))
3388# if defined WRITE_WATER && defined MASKING
3392 vinfo(22)=
'coordinates'
3399 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3403# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3409 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu3dd))
3413# if defined WRITE_WATER && defined MASKING
3417 vinfo(22)=
'coordinates'
3424 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3433 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvvel))
3437# if defined WRITE_WATER && defined MASKING
3441 vinfo(22)=
'coordinates'
3448 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3452# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3458 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv3dd))
3462# if defined WRITE_WATER && defined MASKING
3466 vinfo(22)=
'coordinates'
3473 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3482 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idu3de))
3486# if defined WRITE_WATER && defined MASKING
3487 vinfo(20)=
'mask_rho'
3490 vinfo(22)=
'coordinates'
3497 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3505 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idv3dn))
3509# if defined WRITE_WATER && defined MASKING
3510 vinfo(20)=
'mask_rho'
3513 vinfo(22)=
'coordinates'
3520 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3528 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idovel))
3532# if defined WRITE_WATER && defined MASKING
3533 vinfo(20)=
'mask_rho'
3536 vinfo(22)=
'coordinates'
3543 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3551 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idwvel))
3555# if defined WRITE_WATER && defined MASKING
3556 vinfo(20)=
'mask_rho'
3559 vinfo(22)=
'coordinates'
3566 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3575 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
3582 IF (itrc.eq.
idsed(i))
THEN
3583 WRITE (vinfo(19),40) 1000.0_r8*
sd50(i,ng)
3587# if defined WRITE_WATER && defined MASKING
3588 vinfo(20)=
'mask_rho'
3591 vinfo(22)=
'coordinates'
3597 &
avg(ng)%pioTrc(itrc)%vd, &
3598 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3603# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3610 vinfo( 1)=
vname(1,ifield)
3611 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,ifield))
3612 vinfo( 3)=
vname(3,ifield)
3613 vinfo(14)=
vname(4,ifield)
3615# if defined WRITE_WATER && defined MASKING
3616 vinfo(20)=
'mask_rho'
3618 vinfo(21)=
vname(6,ifield)
3619 vinfo(22)=
'coordinates'
3625 &
avg(ng)%pioVar(ifield)%vd, &
3626 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3636 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iddano))
3640# if defined WRITE_WATER && defined MASKING
3641 vinfo(20)=
'mask_rho'
3644 vinfo(22)=
'coordinates'
3651 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3661 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idhsbl))
3665# if defined WRITE_WATER && defined MASKING
3666 vinfo(20)=
'mask_rho'
3669 vinfo(22)=
'coordinates'
3676 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3686 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idhbbl))
3690# if defined WRITE_WATER && defined MASKING
3691 vinfo(20)=
'mask_rho'
3694 vinfo(22)=
'coordinates'
3701 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3711 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id2dpv))
3715# if defined WRITE_WATER && defined MASKING
3716 vinfo(20)=
'mask_psi'
3719 vinfo(22)=
'coordinates'
3726 &
pio_fout, nvd3, p2dgrd, aval, vinfo, ncname)
3734 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id2drv))
3738# if defined WRITE_WATER && defined MASKING
3739 vinfo(20)=
'mask_psi'
3742 vinfo(22)=
'coordinates'
3749 &
pio_fout, nvd3, p2dgrd, aval, vinfo, ncname)
3759 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id3dpv))
3763# if defined WRITE_WATER && defined MASKING
3764 vinfo(20)=
'mask_psi'
3767 vinfo(22)=
'coordinates'
3774 &
pio_fout, nvd4, p3dgrd, aval, vinfo, ncname)
3782 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
id3drv))
3786# if defined WRITE_WATER && defined MASKING
3787 vinfo(20)=
'mask_psi'
3790 vinfo(22)=
'coordinates'
3797 &
pio_fout, nvd4, p3dgrd, aval, vinfo, ncname)
3810# if defined WRITE_WATER && defined MASKING
3811 vinfo(20)=
'mask_rho'
3814 vinfo(22)=
'coordinates'
3821 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3833# if defined WRITE_WATER && defined MASKING
3837 vinfo(22)=
'coordinates'
3844 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3856# if defined WRITE_WATER && defined MASKING
3860 vinfo(22)=
'coordinates'
3867 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3881# if defined WRITE_WATER && defined MASKING
3885 vinfo(22)=
'coordinates'
3892 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3904# if defined WRITE_WATER && defined MASKING
3908 vinfo(22)=
'coordinates'
3915 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3927# if defined WRITE_WATER && defined MASKING
3931 vinfo(22)=
'coordinates'
3938 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3950# if defined WRITE_WATER && defined MASKING
3951 vinfo(20)=
'mask_rho'
3954 vinfo(22)=
'coordinates'
3961 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3973# if defined WRITE_WATER && defined MASKING
3977 vinfo(22)=
'coordinates'
3984 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3997# if defined WRITE_WATER && defined MASKING
3998 vinfo(20)=
'mask_rho'
4001 vinfo(22)=
'coordinates'
4008 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
4022# if defined WRITE_WATER && defined MASKING
4026 vinfo(22)=
'coordinates'
4033 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
4043# if defined WRITE_WATER && defined MASKING
4047 vinfo(22)=
'coordinates'
4054 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
4068# if defined WRITE_WATER && defined MASKING
4072 vinfo(22)=
'coordinates'
4079 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
4089# if defined WRITE_WATER && defined MASKING
4093 vinfo(22)=
'coordinates'
4100 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
4105# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
4111 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvvis))
4116 vinfo(22)=
'coordinates'
4123 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4124 & setfillval = .false.)
4132 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idtdif))
4137 vinfo(22)=
'coordinates'
4144 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4145 & setfillval = .false.)
4155 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idsdif))
4160 vinfo(22)=
'coordinates'
4167 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4168 & setfillval = .false.)
4173# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4179 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idpair))
4183# if defined WRITE_WATER && defined MASKING
4184 vinfo(20)=
'mask_rho'
4187 vinfo(22)=
'coordinates'
4194 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4198# if defined BULK_FLUXES
4204 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idtair))
4208# if defined WRITE_WATER && defined MASKING
4209 vinfo(20)=
'mask_rho'
4212 vinfo(22)=
'coordinates'
4219 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4223# if defined BULK_FLUXES || defined ECOSIM
4229 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduair))
4233# if defined WRITE_WATER && defined MASKING
4234 vinfo(20)=
'mask_rho'
4237 vinfo(22)=
'coordinates'
4244 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4250 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvair))
4254# if defined WRITE_WATER && defined MASKING
4255 vinfo(20)=
'mask_rho'
4258 vinfo(22)=
'coordinates'
4265 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4273 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
iduaie))
4277# if defined WRITE_WATER && defined MASKING
4278 vinfo(20)=
'mask_rho'
4281 vinfo(22)=
'coordinates'
4288 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4294 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvain))
4298# if defined WRITE_WATER && defined MASKING
4299 vinfo(20)=
'mask_rho'
4302 vinfo(22)=
'coordinates'
4309 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4318 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
4321 vinfo(11)=
'upward flux, cooling'
4322 vinfo(12)=
'downward flux, heating'
4325# if defined WRITE_WATER && defined MASKING
4326 vinfo(20)=
'mask_rho'
4329 vinfo(22)=
'coordinates'
4336 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4346 WRITE (vinfo( 2),
'(a,1x,a)') prefix, &
4349 vinfo(11)=
'upward flux, freshening (net precipitation)'
4350 vinfo(12)=
'downward flux, salting (net evaporation)'
4353# if defined WRITE_WATER && defined MASKING
4354 vinfo(20)=
'mask_rho'
4357 vinfo(22)=
'coordinates'
4364 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4369# if defined BULK_FLUXES || defined FRC_COUPLING
4375 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idlhea))
4377 vinfo(11)=
'upward flux, cooling'
4378 vinfo(12)=
'downward flux, heating'
4381# if defined WRITE_WATER && defined MASKING
4382 vinfo(20)=
'mask_rho'
4385 vinfo(22)=
'coordinates'
4392 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4400 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idshea))
4402 vinfo(11)=
'upward flux, cooling'
4403 vinfo(12)=
'downward flux, heating'
4406# if defined WRITE_WATER && defined MASKING
4407 vinfo(20)=
'mask_rho'
4410 vinfo(22)=
'coordinates'
4417 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4425 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idlrad))
4427 vinfo(11)=
'upward flux, cooling'
4428 vinfo(12)=
'downward flux, heating'
4431# if defined WRITE_WATER && defined MASKING
4432 vinfo(20)=
'mask_rho'
4435 vinfo(22)=
'coordinates'
4442 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4454 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idevap))
4456 vinfo(11)=
'downward flux, freshening (condensation)'
4457 vinfo(12)=
'upward flux, salting (evaporation)'
4460# if defined WRITE_WATER && defined MASKING
4461 vinfo(20)=
'mask_rho'
4464 vinfo(22)=
'coordinates'
4471 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4479 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idrain))
4481 vinfo(12)=
'downward flux, freshening (precipitation)'
4484# if defined WRITE_WATER && defined MASKING
4485 vinfo(20)=
'mask_rho'
4488 vinfo(22)=
'coordinates'
4495 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4506 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idsrad))
4508 vinfo(11)=
'upward flux, cooling'
4509 vinfo(12)=
'downward flux, heating'
4512# if defined WRITE_WATER && defined MASKING
4513 vinfo(20)=
'mask_rho'
4516 vinfo(22)=
'coordinates'
4523 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4533 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idusms))
4537# if defined WRITE_WATER && defined MASKING
4541 vinfo(22)=
'coordinates'
4548 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
4556 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvsms))
4560# if defined WRITE_WATER && defined MASKING
4564 vinfo(22)=
'coordinates'
4571 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
4579 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idubms))
4583# if defined WRITE_WATER && defined MASKING
4587 vinfo(22)=
'coordinates'
4594 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
4602 WRITE (vinfo( 2),
'(a,1x,a)') prefix, trim(
vname(2,
idvbms))
4606# if defined WRITE_WATER && defined MASKING
4610 vinfo(22)=
'coordinates'
4617 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
4621# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
4628 & t2dgrd, u2dgrd, v2dgrd)
4632# if defined ICE_MODEL && defined SOLVE3D
4638 CALL ice_def_pio (ng, model, ldef,
aout,
avg, &
4639 & t2dgrd, u2dgrd, v2dgrd)
4643# if defined SEDIMENT && defined SOLVE3D
4650 & t2dgrd, u2dgrd, v2dgrd)
4654# if defined WEC_VF && defined SOLVE3D
4660 CALL wec_def_pio (ng, model, ldef,
aout,
avg, &
4661 & t2dgrd, u2dgrd, v2dgrd, &
4662 & t3dgrd, u3dgrd, v3dgrd, w3dgrd)
4677 CALL wrt_info (ng, model,
avg(ng)%pioFile, ncname)
4686 query :
IF (.not.ldef)
THEN
4693 WRITE (
stdout,50) trim(ncname)
4700 & piofile =
avg(ng)%pioFile)
4706 & piofile =
avg(ng)%pioFile)
4719 IF (trim(var_name(i)).eq.trim(
vname(1,
idtime)))
THEN
4725 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idrwet)))
THEN
4731 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idfsur)))
THEN
4736 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubar)))
THEN
4741 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbar)))
THEN
4746# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
4747 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idfsud)))
THEN
4752 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idu2dd)))
THEN
4757 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idv2dd)))
THEN
4763 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idu2de)))
THEN
4768 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idv2dn)))
THEN
4774# ifdef FORWARD_WRITE
4775 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idufx1)))
THEN
4780 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idufx2)))
THEN
4785 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvfx1)))
THEN
4790 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvfx2)))
THEN
4796 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvel)))
THEN
4801 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvvel)))
THEN
4806# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
4807 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idu3dd)))
THEN
4812 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idv3dd)))
THEN
4818 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idu3de)))
THEN
4823 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idv3dn)))
THEN
4828 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idovel)))
THEN
4833 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idwvel)))
THEN
4838 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iddano)))
THEN
4844 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idhsbl)))
THEN
4851 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idhbbl)))
THEN
4858 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
id2dpv)))
THEN
4863 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
id2drv)))
THEN
4869 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
id3dpv)))
THEN
4874 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
id3drv)))
THEN
4880 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idzzav)))
THEN
4885 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idu2av)))
THEN
4890 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idv2av)))
THEN
4896 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idhuav)))
THEN
4901 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idhvav)))
THEN
4906 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduuav)))
THEN
4911 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvav)))
THEN
4916 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvvav)))
THEN
4921# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
4922 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvvis)))
THEN
4927 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idtdif)))
THEN
4932 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idsdif)))
THEN
4938# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4939 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idpair)))
THEN
4945# if defined BULK_FLUXES || defined ECOSIM
4946 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduair)))
THEN
4951 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvair)))
THEN
4956 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduaie)))
THEN
4961 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvain)))
THEN
4967 ELSE IF (trim(var_name(i)).eq. &
4974 ELSE IF (trim(var_name(i)).eq. &
4981# if defined BULK_FLUXES || defined FRC_COUPLING
4982 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idlhea)))
THEN
4987 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idshea)))
THEN
4992 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idlrad)))
THEN
4999 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idtair)))
THEN
5005 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idevap)))
THEN
5010 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idrain)))
THEN
5018 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idsrad)))
THEN
5025 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idusms)))
THEN
5030 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvsms)))
THEN
5035 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubms)))
THEN
5040 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbms)))
THEN
5045 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubrs)))
THEN
5050 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbrs)))
THEN
5055 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubws)))
THEN
5060 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbws)))
THEN
5065 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubcs)))
THEN
5070 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbcs)))
THEN
5075 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvwc)))
THEN
5080 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubot)))
THEN
5085 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbot)))
THEN
5090 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubur)))
THEN
5095 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbvr)))
THEN
5103 IF (trim(var_name(i)).eq.trim(
vname(1,
idtvar(itrc))))
THEN
5104 got_var(
idtvar(itrc))=.true.
5111 IF (trim(var_name(i)).eq.trim(
vname(1,
ihutav(itrc))))
THEN
5112 got_var(
ihutav(itrc))=.true.
5116 ELSE IF (trim(var_name(i)).eq. &
5118 got_var(
ihvtav(itrc))=.true.
5122 ELSE IF (trim(var_name(i)).eq. &
5124 got_var(
idutav(itrc))=.true.
5128 ELSE IF (trim(var_name(i)).eq. &
5130 got_var(
idvtav(itrc))=.true.
5134 ELSE IF (trim(var_name(i)).eq. &
5136 got_var(
idttav(itrc))=.true.
5142# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5144 IF (trim(var_name(i)).eq.trim(
vname(1,
idtrcd(itrc))))
THEN
5145 got_var(
idtrcd(itrc))=.true.
5157 IF (.not.got_var(
idtime))
THEN
5181# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5214# ifdef FORWARD_WRITE
5252# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5388# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
5410# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
5418# if defined BULK_FLUXES || defined ECOSIM
5458# if defined BULK_FLUXES || defined FRC_COUPLING
5574# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5586# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
5596# if defined ICE_MODEL && defined SOLVE3D
5601 CALL ice_def_pio (ng, model, ldef,
aout,
avg)
5604# if defined SEDIMENT && defined SOLVE3D
5613# if defined WEC_VF && defined SOLVE3D
5618 CALL wec_def_pio (ng, model, ldef,
aout,
avg)
5633 avg(ng)%Rindex=rec_size
5647 IF (
ntsavg(ng).eq.1)
THEN
5651 & 0.5_r8*real(
navg(ng),r8)*
dt(ng)
5655 10
FORMAT (2x,
'DEF_AVG_PIO - creating average file,',t56, &
5656 &
'Grid ',i2.2,
': ',a)
5657 20
FORMAT (2x,
'DEF_AVG_PIO - inquiring average file',t56, &
5658 &
'Grid ',i2.2,
': ',a)
5659 30
FORMAT (/,
' DEF_AVG_PIO - unable to create averages NetCDF', &
5661 40
FORMAT (1pe11.4,1x,
'millimeter')
5662 50
FORMAT (/,
' DEF_AVG_PIO - unable to open averages NetCDF' &
5664 60
FORMAT (/,
' DEF_AVG_PIO - unable to find variable: ',a,2x, &
5665 &
' in averages NetCDF file: ',a)