96 integer,
intent(in) :: ng, model, ifile
100 logical :: ldefine, got_var(
nv)
102 integer,
parameter :: natt = 25
104 integer :: i, j, nvd3, nvd4
105 integer :: recdim, status, varid
106# ifdef ADJUST_BOUNDARY
107 integer :: iorjdim, ifield
110 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
111# ifdef ADJUST_BOUNDARY
117 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4)
118# ifdef ADJUST_BOUNDARY
125 character (len=60 ) :: text
126 character (len=256) :: ncname
127 character (len=MaxLen) :: vinfo(natt)
129 character (len=*),
parameter :: myfile = &
130 & __FILE__//
", def_norm_nf90"
139 ncname=
nrm(ifile,ng)%name
141 define :
IF (
ldefnrm(ifile,ng))
THEN
186# ifdef ADJUST_BOUNDARY
194# if defined WRITE_WATER && defined MASKING
209# if defined WRITE_WATER && defined MASKING
223 &
iobounds(ng)%xy_rho*(
n(ng)+1), dimids(23))
232 &
n(ng)+1, dimids(10))
236 &
nt(ng), dimids(11))
248# if defined WRITE_WATER && defined MASKING
290 & nf90_unlimited, dimids(12))
297# if defined WRITE_WATER && defined MASKING
307# if defined WRITE_WATER && defined MASKING
325# ifdef ADJUST_BOUNDARY
341# if defined WRITE_WATER && defined MASKING
362# if defined WRITE_WATER && defined MASKING
383 nrm(ifile,ng)%Rindex=0
411 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
412 vinfo( 4)=trim(
rclock%calendar)
417 &
nf_tout, 1, (/recdim/), aval, vinfo, ncname, &
418 & setparaccess = .true.)
425 IF ((ifile.eq.1).or.(ifile.eq.2))
THEN
427 text=
'initial conditions error covariance normalization'
428 ELSE IF (ifile.eq.2)
THEN
429 text=
'model error covariance normalization'
435 WRITE (vinfo( 2),20) trim(
vname(2,
idfsur)), trim(text)
436 vinfo( 3)=
'nondimensional'
439# if defined WRITE_WATER && defined MASKING
443 vinfo(22)=
'coordinates'
447 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
453 WRITE (vinfo( 2),20) trim(
vname(2,
idubar)), trim(text)
454 vinfo( 3)=
'nondimensional'
457# if defined WRITE_WATER && defined MASKING
461 vinfo(22)=
'coordinates'
465 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
471 WRITE (vinfo( 2),20) trim(
vname(2,
idvbar)), trim(text)
472 vinfo( 3)=
'nondimensional'
475# if defined WRITE_WATER && defined MASKING
479 vinfo(22)=
'coordinates'
483 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
491 WRITE (vinfo( 2),20) trim(
vname(2,
iduvel)), trim(text)
492 vinfo( 3)=
'nondimensional'
495# if defined WRITE_WATER && defined MASKING
499 vinfo(22)=
'coordinates'
503 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
509 WRITE (vinfo( 2),20) trim(
vname(2,
idvvel)), trim(text)
510 vinfo( 3)=
'nondimensional'
513# if defined WRITE_WATER && defined MASKING
517 vinfo(22)=
'coordinates'
521 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
528 WRITE (vinfo( 2),20) trim(
vname(2,
idtvar(itrc))), trim(text)
529 vinfo( 3)=
'nondimensional'
534 IF (itrc.eq.
idsed(i))
THEN
535 WRITE (vinfo(19),30) 1000.0_r8*
sd50(i,ng)
539# if defined WRITE_WATER && defined MASKING
543 vinfo(22)=
'coordinates'
547 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
552# ifdef ADJUST_BOUNDARY
558 ELSE IF (ifile.eq.3)
THEN
559 text=
'error covariance normalization'
565 vinfo( 1)=
vname(1,ifield)
566 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
567 vinfo( 3)=
vname(3,ifield)
568 vinfo(14)=
vname(4,ifield)
570 vinfo(21)=
vname(6,ifield)
571 aval(5)=real(
iinfo(1,ifield,ng),r8)
573 &
nrm(ifile,ng)%Vid(ifield), &
574 &
nf_fout, 3, t2dobc, aval, vinfo, ncname, &
575 & setfillval = .false.)
583 vinfo( 1)=
vname(1,ifield)
584 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
585 vinfo( 3)=
vname(3,ifield)
586 vinfo(14)=
vname(4,ifield)
588 vinfo(21)=
vname(6,ifield)
589 aval(5)=real(
iinfo(1,ifield,ng),r8)
591 &
nrm(ifile,ng)%Vid(ifield), &
592 &
nf_fout, 3, t2dobc, aval, vinfo, ncname, &
593 & setfillval = .false.)
601 vinfo( 1)=
vname(1,ifield)
602 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
603 vinfo( 3)=
vname(3,ifield)
604 vinfo(14)=
vname(4,ifield)
606 vinfo(21)=
vname(6,ifield)
607 aval(5)=real(
iinfo(1,ifield,ng),r8)
609 &
nrm(ifile,ng)%Vid(ifield), &
610 &
nf_fout, 3, t2dobc, aval, vinfo, ncname, &
611 & setfillval = .false.)
621 vinfo( 1)=
vname(1,ifield)
622 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
623 vinfo( 3)=
vname(3,ifield)
624 vinfo(14)=
vname(4,ifield)
626 vinfo(21)=
vname(6,ifield)
627 aval(5)=real(
iinfo(1,ifield,ng),r8)
629 &
nrm(ifile,ng)%Vid(ifield), &
630 &
nf_fout, 4, t3dobc, aval, vinfo, ncname, &
631 & setfillval = .false.)
639 vinfo( 1)=
vname(1,ifield)
640 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
641 vinfo( 3)=
vname(3,ifield)
642 vinfo(14)=
vname(4,ifield)
644 vinfo(21)=
vname(6,ifield)
645 aval(5)=real(
iinfo(1,ifield,ng),r8)
647 &
nrm(ifile,ng)%Vid(ifield), &
648 &
nf_fout, 4, t3dobc, aval, vinfo, ncname, &
649 & setfillval = .false.)
658 vinfo( 1)=
vname(1,ifield)
659 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
660 vinfo( 3)=
vname(3,ifield)
661 vinfo(14)=
vname(4,ifield)
665 IF (itrc.eq.
idsed(i))
THEN
666 WRITE (vinfo(19),30) 1000.0_r8*
sd50(i,ng)
670 vinfo(21)=
vname(6,ifield)
671 aval(5)=real(
iinfo(1,ifield,ng),r8)
673 &
nrm(ifile,ng)%Vid(ifield), &
674 &
nf_fout, 4, t3dobc, aval, vinfo, ncname, &
675 & setfillval = .false.)
677 & __line__, myfile))
RETURN
683# if defined ADJUST_WSTRESS || defined ADJUST_STFLUX
689 ELSE IF (ifile.eq.4)
THEN
690 text=
'error covariance normalization'
692# ifdef ADJUST_WSTRESS
697 WRITE (vinfo( 2),20) trim(
vname(2,
idusms)), trim(text)
698 vinfo( 3)=
'nondimensional'
701# if defined WRITE_WATER && defined MASKING
705 vinfo(22)=
'coordinates'
709 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
715 WRITE (vinfo( 2),20) trim(
vname(2,
idvsms)), trim(text)
717 vinfo( 3)=
'nondimensional'
720# if defined WRITE_WATER && defined MASKING
724 vinfo(22)=
'coordinates'
728 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
732# if defined ADJUST_STFLUX && defined SOLVE3D
739 WRITE (vinfo( 2),20) trim(
vname(2,
idtsur(itrc))), &
741 vinfo( 3)=
'nondimensional'
744# if defined WRITE_WATER && defined MASKING
748 vinfo(22)=
'coordinates'
752 & nvd3, t2dgrd, aval, vinfo, ncname)
754 & __line__, myfile))
RETURN
773 CALL wrt_info (ng, model,
nrm(ifile,ng)%ncid, ncname)
783 query :
IF (.not.
ldefnrm(ifile,ng))
THEN
784 ncname=
nrm(ifile,ng)%name
790 WRITE (
stdout,40) trim(ncname)
797 & ncid =
nrm(ifile,ng)%ncid)
803 & ncid =
nrm(ifile,ng)%ncid)
828# ifdef ADJUST_BOUNDARY
849# ifdef ADJUST_BOUNDARY
860# ifdef ADJUST_WSTRESS
872 got_var(
idtvar(itrc))=.true.
874# ifdef ADJUST_BOUNDARY
883 got_var(
idtsur(itrc))=.true.
894 IF (.not.got_var(
idtime))
THEN
900 IF (.not.got_var(
idfsur).and.(ifile.le.2))
THEN
906 IF (.not.got_var(
idubar).and.(ifile.le.2))
THEN
912 IF (.not.got_var(
idvbar).and.(ifile.le.2))
THEN
918# ifdef ADJUST_BOUNDARY
939 IF (.not.got_var(
iduvel).and.(ifile.le.2))
THEN
945 IF (.not.got_var(
idvvel).and.(ifile.le.2))
THEN
951# ifdef ADJUST_BOUNDARY
966# ifdef ADJUST_WSTRESS
967 IF (.not.got_var(
idusms).and.(ifile.eq.4))
THEN
973 IF (.not.got_var(
idvsms).and.(ifile.eq.4))
THEN
982 IF (.not.got_var(
idtvar(itrc)).and.(ifile.le.2))
THEN
988# ifdef ADJUST_BOUNDARY
989 IF (.not.got_var(
idsbry(
istvar(itrc))).and.(ifile.eq.3))
THEN
998 IF (.not.got_var(
idtsur(itrc)).and.(ifile.eq.4).and. &
1012 nrm(ifile,ng)%Rindex=0
1015 10
FORMAT (/,
' DEF_NORM_NF90 - unable to create norm NetCDF', &
1017 20
FORMAT (a,
', ',a)
1018 30
FORMAT (1pe11.4,1x,
'millimeter')
1019 40
FORMAT (/,
' DEF_NORM_NF90 - unable to open norm NetCDF file: ',a)
1020 50
FORMAT (/,
' DEF_NORM_NF90 - unable to find variable: ',a,2x, &
1021 &
' in norm NetCDF file: ',a)
1036 integer,
intent(in) :: ng, model, ifile
1040 logical :: ldefine, got_var(
nv)
1042 integer,
parameter :: natt = 25
1044 integer :: i, j, nvd3, nvd4
1045 integer :: recdim, status
1046# ifdef ADJUST_BOUNDARY
1047 integer :: iorjdim, ifield
1049 integer :: dimids(
ndimid)
1050 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
1051# ifdef ADJUST_BOUNDARY
1052 integer :: t2dobc(3)
1057 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4)
1058# ifdef ADJUST_BOUNDARY
1059 integer :: t3dobc(4)
1065 character (len=60 ) :: text
1066 character (len=256) :: ncname
1067 character (len=MaxLen) :: vinfo(natt)
1069 character (len=*),
parameter :: myfile = &
1070 & __FILE__//
", def_norm_pio"
1079 ncname=
nrm(ifile,ng)%name
1081 define :
IF (
ldefnrm(ifile,ng))
THEN
1083 &
nrm(ifile,ng)%pioFile)
1096 &
'xi_rho',
iobounds(ng)%xi_rho, dimids( 1))
1100 &
'xi_u',
iobounds(ng)%xi_u, dimids( 2))
1104 &
'xi_v',
iobounds(ng)%xi_v, dimids( 3))
1108 &
'xi_psi',
iobounds(ng)%xi_psi, dimids( 4))
1112 &
'eta_rho',
iobounds(ng)%eta_rho, dimids( 5))
1116 &
'eta_u',
iobounds(ng)%eta_u, dimids( 6))
1120 &
'eta_v',
iobounds(ng)%eta_v, dimids( 7))
1124 &
'eta_psi',
iobounds(ng)%eta_psi, dimids( 8))
1127# ifdef ADJUST_BOUNDARY
1128 IF (ifile.eq.3)
THEN
1130 &
'IorJ',
iobounds(ng)%IorJ, iorjdim)
1135# if defined WRITE_WATER && defined MASKING
1137 &
'xy_rho',
iobounds(ng)%xy_rho, dimids(17))
1141 &
'xy_u',
iobounds(ng)%xy_u, dimids(18))
1145 &
'xy_v',
iobounds(ng)%xy_v, dimids(19))
1150# if defined WRITE_WATER && defined MASKING
1152 &
'xyz_rho',
iobounds(ng)%xy_rho*
n(ng), dimids(20))
1156 &
'xyz_u',
iobounds(ng)%xy_u*
n(ng), dimids(21))
1160 &
'xyz_v',
iobounds(ng)%xy_v*
n(ng), dimids(22))
1164 &
'xyz_w',
iobounds(ng)%xy_rho*(
n(ng)+1), &
1170 &
's_rho',
n(ng), dimids( 9))
1174 &
's_w',
n(ng)+1, dimids(10))
1178 &
'tracer',
nt(ng), dimids(11))
1183 &
'NST',
nst, dimids(32))
1187 &
'Nbed',
nbed, dimids(16))
1190# if defined WRITE_WATER && defined MASKING
1199 &
'Nbands',
nbands, dimids(33))
1203 &
'Nphy',
nphy, dimids(25))
1207 &
'Nbac',
nbac, dimids(26))
1211 &
'Ndom',
ndom, dimids(27))
1215 &
'Nfec',
nfec, dimids(28))
1221 &
'boundary', 4, dimids(14))
1232 & pio_unlimited, dimids(12))
1239# if defined WRITE_WATER && defined MASKING
1249# if defined WRITE_WATER && defined MASKING
1250 t2dgrd(1)=dimids(17)
1251 t2dgrd(2)=dimids(12)
1253 t3dgrd(1)=dimids(20)
1254 t3dgrd(2)=dimids(12)
1257 t2dgrd(1)=dimids( 1)
1258 t2dgrd(2)=dimids( 5)
1259 t2dgrd(3)=dimids(12)
1261 t3dgrd(1)=dimids( 1)
1262 t3dgrd(2)=dimids( 5)
1263 t3dgrd(3)=dimids( 9)
1264 t3dgrd(4)=dimids(12)
1267# ifdef ADJUST_BOUNDARY
1268 IF (ifile.eq.3)
THEN
1270 t2dobc(2)=dimids(14)
1271 t2dobc(3)=dimids(12)
1274 t3dobc(2)=dimids( 9)
1275 t3dobc(3)=dimids(14)
1276 t3dobc(4)=dimids(12)
1283# if defined WRITE_WATER && defined MASKING
1284 u2dgrd(1)=dimids(18)
1285 u2dgrd(2)=dimids(12)
1287 u3dgrd(1)=dimids(21)
1288 u3dgrd(2)=dimids(12)
1291 u2dgrd(1)=dimids( 2)
1292 u2dgrd(2)=dimids( 6)
1293 u2dgrd(3)=dimids(12)
1295 u3dgrd(1)=dimids( 2)
1296 u3dgrd(2)=dimids( 6)
1297 u3dgrd(3)=dimids( 9)
1298 u3dgrd(4)=dimids(12)
1304# if defined WRITE_WATER && defined MASKING
1305 v2dgrd(1)=dimids(19)
1306 v2dgrd(2)=dimids(12)
1308 v3dgrd(1)=dimids(22)
1309 v3dgrd(2)=dimids(12)
1312 v2dgrd(1)=dimids( 3)
1313 v2dgrd(2)=dimids( 7)
1314 v2dgrd(3)=dimids(12)
1316 v3dgrd(1)=dimids( 3)
1317 v3dgrd(2)=dimids( 7)
1318 v3dgrd(3)=dimids( 9)
1319 v3dgrd(4)=dimids(12)
1325 nrm(ifile,ng)%Rindex=0
1330 DO j=1,len(vinfo(1))
1353 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
1354 vinfo( 4)=trim(
rclock%calendar)
1362 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
1363 & setparaccess = .true.)
1370 IF ((ifile.eq.1).or.(ifile.eq.2))
THEN
1371 IF (ifile.eq.1)
THEN
1372 text=
'initial conditions error covariance normalization'
1373 ELSE IF (ifile.eq.2)
THEN
1374 text=
'model error covariance normalization'
1380 WRITE (vinfo( 2),20) trim(
vname(2,
idfsur)), trim(text)
1381 vinfo( 3)=
'nondimensional'
1384# if defined WRITE_WATER && defined MASKING
1385 vinfo(20)=
'mask_rho'
1388 vinfo(22)=
'coordinates'
1395 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1401 WRITE (vinfo( 2),20) trim(
vname(2,
idubar)), trim(text)
1402 vinfo( 3)=
'nondimensional'
1405# if defined WRITE_WATER && defined MASKING
1409 vinfo(22)=
'coordinates'
1416 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1422 WRITE (vinfo( 2),20) trim(
vname(2,
idvbar)), trim(text)
1423 vinfo( 3)=
'nondimensional'
1426# if defined WRITE_WATER && defined MASKING
1430 vinfo(22)=
'coordinates'
1437 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1445 WRITE (vinfo( 2),20) trim(
vname(2,
iduvel)), trim(text)
1446 vinfo( 3)=
'nondimensional'
1449# if defined WRITE_WATER && defined MASKING
1453 vinfo(22)=
'coordinates'
1460 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
1466 WRITE (vinfo( 2),20) trim(
vname(2,
idvvel)), trim(text)
1467 vinfo( 3)=
'nondimensional'
1470# if defined WRITE_WATER && defined MASKING
1474 vinfo(22)=
'coordinates'
1481 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
1488 WRITE (vinfo( 2),20) trim(
vname(2,
idtvar(itrc))), trim(text)
1489 vinfo( 3)=
'nondimensional'
1494 IF (itrc.eq.
idsed(i))
THEN
1495 WRITE (vinfo(19),30) 1000.0_r8*
sd50(i,ng)
1499# if defined WRITE_WATER && defined MASKING
1500 vinfo(20)=
'mask_rho'
1503 vinfo(22)=
'coordinates'
1509 &
nrm(ifile,ng)%pioTrc(itrc)%vd, &
1510 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
1515# ifdef ADJUST_BOUNDARY
1521 ELSE IF (ifile.eq.3)
THEN
1522 text=
'error covariance normalization'
1528 vinfo( 1)=
vname(1,ifield)
1529 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1530 vinfo( 3)=
vname(3,ifield)
1531 vinfo(14)=
vname(4,ifield)
1533 vinfo(21)=
vname(6,ifield)
1534 aval(5)=real(
iinfo(1,ifield,ng),r8)
1536 nrm(ifile,ng)%pioVar(ifield)%gtype=
r2dobc
1539 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1540 &
pio_fout, 3, t2dobc, aval, vinfo, ncname, &
1541 & setfillval = .false.)
1549 vinfo( 1)=
vname(1,ifield)
1550 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1551 vinfo( 3)=
vname(3,ifield)
1552 vinfo(14)=
vname(4,ifield)
1554 vinfo(21)=
vname(6,ifield)
1555 aval(5)=real(
iinfo(1,ifield,ng),r8)
1557 nrm(ifile,ng)%pioVar(ifield)%gtype=
u2dobc
1560 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1561 &
pio_fout, 3, t2dobc, aval, vinfo, ncname, &
1562 & setfillval = .false.)
1570 vinfo( 1)=
vname(1,ifield)
1571 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1572 vinfo( 3)=
vname(3,ifield)
1573 vinfo(14)=
vname(4,ifield)
1575 vinfo(21)=
vname(6,ifield)
1576 aval(5)=real(
iinfo(1,ifield,ng),r8)
1578 nrm(ifile,ng)%pioVar(ifield)%gtype=
v2dobc
1581 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1582 &
pio_fout, 3, t2dobc, aval, vinfo, ncname, &
1583 & setfillval = .false.)
1593 vinfo( 1)=
vname(1,ifield)
1594 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1595 vinfo( 3)=
vname(3,ifield)
1596 vinfo(14)=
vname(4,ifield)
1598 vinfo(21)=
vname(6,ifield)
1599 aval(5)=real(
iinfo(1,ifield,ng),r8)
1601 nrm(ifile,ng)%pioVar(ifield)%gtype=
u3dobc
1604 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1605 &
pio_fout, 4, t3dobc, aval, vinfo, ncname, &
1606 & setfillval = .false.)
1614 vinfo( 1)=
vname(1,ifield)
1615 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1616 vinfo( 3)=
vname(3,ifield)
1617 vinfo(14)=
vname(4,ifield)
1619 vinfo(21)=
vname(6,ifield)
1620 aval(5)=real(
iinfo(1,ifield,ng),r8)
1622 nrm(ifile,ng)%pioVar(ifield)%gtype=
v3dobc
1625 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1626 &
pio_fout, 4, t3dobc, aval, vinfo, ncname, &
1627 & setfillval = .false.)
1636 vinfo( 1)=
vname(1,ifield)
1637 WRITE (vinfo( 2),20) trim(
vname(2,ifield)), trim(text)
1638 vinfo( 3)=
vname(3,ifield)
1639 vinfo(14)=
vname(4,ifield)
1643 IF (itrc.eq.
idsed(i))
THEN
1644 WRITE (vinfo(19),30) 1000.0_r8*
sd50(i,ng)
1648 vinfo(21)=
vname(6,ifield)
1649 aval(5)=real(
iinfo(1,ifield,ng),r8)
1651 nrm(ifile,ng)%pioVar(ifield)%gtype=
r3dobc
1654 &
nrm(ifile,ng)%pioVar(ifield)%vd, &
1655 &
pio_fout, 4, t3dobc, aval, vinfo, ncname, &
1656 & setfillval = .false.)
1658 & __line__, myfile))
RETURN
1664# if defined ADJUST_WSTRESS || defined ADJUST_STFLUX
1670 ELSE IF (ifile.eq.4)
THEN
1671 text=
'error covariance normalization'
1673# ifdef ADJUST_WSTRESS
1678 WRITE (vinfo( 2),20) trim(
vname(2,
idusms)), trim(text)
1679 vinfo( 3)=
'nondimensional'
1682# if defined WRITE_WATER && defined MASKING
1686 vinfo(22)=
'coordinates'
1693 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1699 WRITE (vinfo( 2),20) trim(
vname(2,
idvsms)), trim(text)
1701 vinfo( 3)=
'nondimensional'
1704# if defined WRITE_WATER && defined MASKING
1708 vinfo(22)=
'coordinates'
1715 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1719# if defined ADJUST_STFLUX && defined SOLVE3D
1726 WRITE (vinfo( 2),20) trim(
vname(2,
idtsur(itrc))), &
1728 vinfo( 3)=
'nondimensional'
1731# if defined WRITE_WATER && defined MASKING
1732 vinfo(20)=
'mask_rho'
1735 vinfo(22)=
'coordinates'
1741 &
nrm(ifile,ng)%pioVar(
idtsur(itrc))%vd, &
1742 &
pio_fout, nvd3, t2dgrd, aval, vinfo, &
1745 & __line__, myfile))
RETURN
1757 &
nrm(ifile,ng)%pioFile)
1765 CALL wrt_info (ng, model,
nrm(ifile,ng)%pioFile, ncname)
1775 query :
IF (.not.
ldefnrm(ifile,ng))
THEN
1776 ncname=
nrm(ifile,ng)%name
1781 &
nrm(ifile,ng)%pioFile)
1783 WRITE (
stdout,40) trim(ncname)
1790 & piofile =
nrm(ifile,ng)%pioFile)
1796 & piofile =
nrm(ifile,ng)%pioFile)
1809 IF (trim(var_name(i)).eq.trim(
vname(1,
idtime)))
THEN
1814 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idfsur)))
THEN
1819 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubar)))
THEN
1824 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbar)))
THEN
1829# ifdef ADJUST_BOUNDARY
1830 ELSE IF (trim(var_name(i)).eq. &
1833 got_var(ifield)=.true.
1836 nrm(ifile,ng)%pioVar(ifield)%gtype=
r2dobc
1837 ELSE IF (trim(var_name(i)).eq. &
1840 got_var(ifield)=.true.
1843 nrm(ifile,ng)%pioVar(ifield)%gtype=
u2dobc
1844 ELSE IF (trim(var_name(i)).eq. &
1847 got_var(ifield)=.true.
1850 nrm(ifile,ng)%pioVar(ifield)%gtype=
v2dobc
1853 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvel)))
THEN
1858 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvvel)))
THEN
1863# ifdef ADJUST_BOUNDARY
1864 ELSE IF (trim(var_name(i)).eq. &
1867 got_var(ifield)=.true.
1870 nrm(ifile,ng)%pioVar(ifield)%gtype=
u3dobc
1871 ELSE IF (trim(var_name(i)).eq. &
1874 got_var(ifield)=.true.
1877 nrm(ifile,ng)%pioVar(ifield)%gtype=
v3dobc
1880# ifdef ADJUST_WSTRESS
1881 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idusms)))
THEN
1886 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvsms)))
THEN
1895 IF (trim(var_name(i)).eq.trim(
vname(1,
idtvar(itrc))))
THEN
1896 got_var(
idtvar(itrc))=.true.
1900# ifdef ADJUST_BOUNDARY
1901 ELSE IF (trim(var_name(i)).eq. &
1904 got_var(ifield)=.true.
1907 nrm(ifile,ng)%pioVar(ifield)%gtype=
r3dobc
1909# ifdef ADJUST_STFLUX
1910 ELSE IF (trim(var_name(i)).eq. &
1912 got_var(
idtsur(itrc))=.true.
1925 IF (.not.got_var(
idtime))
THEN
1931 IF (.not.got_var(
idfsur).and.(ifile.le.2))
THEN
1937 IF (.not.got_var(
idubar).and.(ifile.le.2))
THEN
1943 IF (.not.got_var(
idvbar).and.(ifile.le.2))
THEN
1949# ifdef ADJUST_BOUNDARY
1950 IF (.not.got_var(
idsbry(
isfsur)).and.(ifile.eq.3))
THEN
1956 IF (.not.got_var(
idsbry(
isubar)).and.(ifile.eq.3))
THEN
1962 IF (.not.got_var(
idsbry(
isvbar)).and.(ifile.eq.3))
THEN
1970 IF (.not.got_var(
iduvel).and.(ifile.le.2))
THEN
1976 IF (.not.got_var(
idvvel).and.(ifile.le.2))
THEN
1982# ifdef ADJUST_BOUNDARY
1983 IF (.not.got_var(
idsbry(
isuvel)).and.(ifile.eq.3))
THEN
1989 IF (.not.got_var(
idsbry(
isvvel)).and.(ifile.eq.3))
THEN
1997# ifdef ADJUST_WSTRESS
1998 IF (.not.got_var(
idusms).and.(ifile.eq.4))
THEN
2004 IF (.not.got_var(
idvsms).and.(ifile.eq.4))
THEN
2013 IF (.not.got_var(
idtvar(itrc)).and.(ifile.le.2))
THEN
2019# ifdef ADJUST_BOUNDARY
2020 IF (.not.got_var(
idsbry(
istvar(itrc))).and.(ifile.eq.3))
THEN
2028# ifdef ADJUST_STFLUX
2029 IF (.not.got_var(
idtsur(itrc)).and.(ifile.eq.4).and. &
2043 nrm(ifile,ng)%Rindex=0
2046 10
FORMAT (/,
' DEF_NORM_PIO - unable to create norm NetCDF', &
2048 20
FORMAT (a,
', ',a)
2049 30
FORMAT (1pe11.4,1x,
'millimeter')
2050 40
FORMAT (/,
' DEF_NORM_PIO - unable to open norm NetCDF file: ',a)
2051 50
FORMAT (/,
' DEF_NORM_PIO - unable to find variable: ',a,2x, &
2052 &
' in norm NetCDF file: ',a)