3#if (defined TANGENT || defined TL_IOMS) && defined FOUR_DVAR
35# if defined PIO_LIB && defined DISTRIBUTE
47 integer,
intent(in) :: ng
51 character (len=*),
parameter :: myfile = &
58 SELECT CASE (
itl(ng)%IOtype)
62# if defined PIO_LIB && defined DISTRIBUTE
72 10
FORMAT (
' TL_DEF_INI - Illegal output file type, io_type = ',i0, &
73 & /,14x,
'Check KeyWord ''OUT_LIB'' in ''roms.in''.')
86 integer,
intent(in) :: ng
90 logical :: got_var(
nv)
92 integer,
parameter :: natt = 25
94 integer :: i, j, ifield, itrc, nvd3, nvd4
95 integer :: recdim, status, varid
97# ifdef ADJUST_BOUNDARY
98 integer :: iorjdim, brecdim
100# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
104 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
105# ifdef ADJUST_BOUNDARY
110 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
111# ifdef ADJUST_BOUNDARY
118# ifdef ADJUST_WSTRESS
119 integer :: u3dfrc(4), v3dfrc(4)
124 character (len=256) :: ncname
125 character (len=MaxLen) :: vinfo(natt)
127 character (len=*),
parameter :: myfile = &
128 & __FILE__//
", tl_def_ini_nf90"
141 WRITE (
stdout,10) ng, trim(ncname)
143 WRITE (
stdout,20) ng, trim(ncname)
196# ifdef ADJUST_BOUNDARY
202# if defined WRITE_WATER && defined MASKING
217# if defined WRITE_WATER && defined MASKING
231 &
iobounds(ng)%xy_rho*(
n(ng)+1), dimids(23))
244 &
n(ng)+1, dimids(10))
248 &
nt(ng), dimids(11))
260# if defined WRITE_WATER && defined MASKING
278# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
280 &
nfrec(ng), dimids(30))
284# ifdef ADJUST_BOUNDARY
286 &
nbrec(ng), dimids(31))
292 & nf90_unlimited, dimids(12))
296# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
299# ifdef ADJUST_BOUNDARY
305# if defined WRITE_WATER && defined MASKING
315# if defined WRITE_WATER && defined MASKING
339# ifdef ADJUST_BOUNDARY
355# if defined WRITE_WATER && defined MASKING
372# ifdef ADJUST_WSTRESS
382# if defined WRITE_WATER && defined MASKING
399# ifdef ADJUST_WSTRESS
410# if defined WRITE_WATER && defined MASKING
447 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
448 vinfo( 4)=trim(
rclock%calendar)
452 &
nf_tout, 1, (/recdim/), aval, vinfo, ncname, &
453 & setparaccess = .false.)
463# if defined WRITE_WATER && defined MASKING
467 vinfo(22)=
'coordinates'
471 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname, &
472 & setfillval = .false.)
474 &
nf_fout, nvd3, t2dgrd, aval, vinfo, ncname)
478# ifdef ADJUST_BOUNDARY
484 vinfo( 1)=
vname(1,ifield)
485 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
486 vinfo( 3)=
vname(3,ifield)
487 vinfo(14)=
vname(4,ifield)
489 vinfo(21)=
vname(6,ifield)
490 aval(5)=real(
iinfo(1,ifield,ng),r8)
492 &
nf_fout, 4, t2dobc, aval, vinfo, ncname, &
493 & setfillval = .false.)
505# if defined WRITE_WATER && defined MASKING
509 vinfo(22)=
'coordinates'
512 &
nf_fout, nvd3, u2dgrd, aval, vinfo, ncname)
515# ifdef ADJUST_BOUNDARY
521 vinfo( 1)=
vname(1,ifield)
522 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
523 vinfo( 3)=
vname(3,ifield)
524 vinfo(14)=
vname(4,ifield)
526 vinfo(21)=
vname(6,ifield)
527 aval(5)=real(
iinfo(1,ifield,ng),r8)
529 &
nf_fout, 4, t2dobc, aval, vinfo, ncname, &
530 & setfillval = .false.)
542# if defined WRITE_WATER && defined MASKING
546 vinfo(22)=
'coordinates'
549 &
nf_fout, nvd3, v2dgrd, aval, vinfo, ncname)
552# ifdef ADJUST_BOUNDARY
558 vinfo( 1)=
vname(1,ifield)
559 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
560 vinfo( 3)=
vname(3,ifield)
561 vinfo(14)=
vname(4,ifield)
563 vinfo(21)=
vname(6,ifield)
564 aval(5)=real(
iinfo(1,ifield,ng),r8)
566 &
nf_fout, 4, t2dobc, aval, vinfo, ncname, &
567 & setfillval = .false.)
571# ifdef ADJUST_WSTRESS
580# if defined WRITE_WATER && defined MASKING
584 vinfo(22)=
'coordinates'
587 &
nf_fout, nvd4, u3dfrc, aval, vinfo, ncname)
598# if defined WRITE_WATER && defined MASKING
602 vinfo(22)=
'coordinates'
605 &
nf_fout, nvd4, v3dfrc, aval, vinfo, ncname)
617# if defined WRITE_WATER && defined MASKING
621 vinfo(22)=
'coordinates'
624 &
nf_fout, nvd4, u3dgrd, aval, vinfo, ncname)
627# ifdef ADJUST_BOUNDARY
633 vinfo( 1)=
vname(1,ifield)
634 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
635 vinfo( 3)=
vname(3,ifield)
636 vinfo(14)=
vname(4,ifield)
638 vinfo(21)=
vname(6,ifield)
639 aval(5)=real(
iinfo(1,ifield,ng),r8)
641 &
nf_fout, 5, t3dobc, aval, vinfo, ncname, &
642 & setfillval = .false.)
654# if defined WRITE_WATER && defined MASKING
658 vinfo(22)=
'coordinates'
661 &
nf_fout, nvd4, v3dgrd, aval, vinfo, ncname)
664# ifdef ADJUST_BOUNDARY
670 vinfo( 1)=
vname(1,ifield)
671 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
672 vinfo( 3)=
vname(3,ifield)
673 vinfo(14)=
vname(4,ifield)
675 vinfo(21)=
vname(6,ifield)
676 aval(5)=real(
iinfo(1,ifield,ng),r8)
678 &
nf_fout, 5, t3dobc, aval, vinfo, ncname, &
679 & setfillval = .false.)
694 IF (itrc.eq.idsed(i))
THEN
695 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
699# if defined WRITE_WATER && defined MASKING
703 vinfo(22)=
'coordinates'
706 &
nf_fout, nvd4, t3dgrd, aval, vinfo, ncname)
710# ifdef ADJUST_BOUNDARY
717 vinfo( 1)=
vname(1,ifield)
718 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
719 vinfo( 3)=
vname(3,ifield)
720 vinfo(14)=
vname(4,ifield)
724 IF (itrc.eq.idsed(i))
THEN
725 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
729 vinfo(21)=
vname(6,ifield)
730 aval(5)=real(
iinfo(1,ifield,ng),r8)
732 &
nf_fout, 5, t3dobc, aval, vinfo, ncname, &
733 setfillval = .false.)
747 IF (itrc.eq.
itemp)
THEN
748 vinfo(11)=
'upward flux, cooling'
749 vinfo(12)=
'downward flux, heating'
750 ELSE IF (itrc.eq.
isalt)
THEN
751 vinfo(11)=
'upward flux, freshening (net precipitation)'
752 vinfo(12)=
'downward flux, salting (net evaporation)'
756# if defined WRITE_WATER && defined MASKING
760 vinfo(22)=
'coordinates'
764 & nvd4, t3dfrc, aval, vinfo, ncname)
791 query :
IF (.not.
ldefitl(ng))
THEN
798 WRITE (
stdout,60) trim(ncname)
805 & ncid =
itl(ng)%ncid)
811 & ncid =
itl(ng)%ncid)
836# ifdef ADJUST_BOUNDARY
850# ifdef ADJUST_WSTRESS
865# ifdef ADJUST_BOUNDARY
880 got_var(
idtvar(itrc))=.true.
882# ifdef ADJUST_BOUNDARY
891 got_var(
idtsur(itrc))=.true.
902 IF (.not.got_var(
idtime))
THEN
908 IF (.not.got_var(
idfsur))
THEN
914 IF (.not.got_var(
idubar))
THEN
920 IF (.not.got_var(
idvbar))
THEN
926# ifdef ADJUST_BOUNDARY
949# ifdef ADJUST_WSTRESS
950 IF (.not.got_var(
idusms))
THEN
956 IF (.not.got_var(
idvsms))
THEN
964 IF (.not.got_var(
iduvel))
THEN
970 IF (.not.got_var(
idvvel))
THEN
976# ifdef ADJUST_BOUNDARY
995 IF (.not.got_var(
idtvar(itrc)))
THEN
1001# ifdef ADJUST_BOUNDARY
1011# ifdef ADJUST_STFLUX
1025 fcount=
itl(ng)%Fcount
1029 10
FORMAT (2x,
'TL_DEF_INI_NF90 - creating initial file,',t56, &
1030 &
'Grid ',i2.2,
': ',a)
1031 20
FORMAT (2x,
'TL_DEF_INI_NF90 - inquiring initial file,',t56, &
1032 &
'Grid ',i2.2,
': ',a)
1033 30
FORMAT (/,
' TL_DEF_INI_NF90 - unable to create initial NetCDF', &
1035 40
FORMAT (
'tangent linear',1x,a)
1036 50
FORMAT (1pe11.4,1x,
'millimeter')
1037 60
FORMAT (/,
' TL_DEF_INI_NF90 - unable to open initial NetCDF', &
1039 70
FORMAT (/,
' TL_DEF_INI_NF90 - unable to find variable: ',a,2x, &
1045# if defined PIO_LIB && defined DISTRIBUTE
1055 integer,
intent(in) :: ng
1059 logical :: got_var(
nv)
1061 integer,
parameter :: natt = 25
1063 integer :: i, j, ifield, itrc, nvd3, nvd4
1064 integer :: recdim, status
1066# ifdef ADJUST_BOUNDARY
1067 integer :: iorjdim, brecdim
1069# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1072 integer :: dimids(
ndimid)
1073 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
1074# ifdef ADJUST_BOUNDARY
1075 integer :: t2dobc(4)
1079 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
1080# ifdef ADJUST_BOUNDARY
1081 integer :: t3dobc(5)
1083# ifdef ADJUST_STFLUX
1084 integer :: t3dfrc(4)
1087# ifdef ADJUST_WSTRESS
1088 integer :: u3dfrc(4), v3dfrc(4)
1093 character (len=256) :: ncname
1094 character (len=MaxLen) :: vinfo(natt)
1096 character (len=*),
parameter :: myfile = &
1097 & __FILE__//
", tl_def_ini_pio"
1110 WRITE (
stdout,10) ng, trim(ncname)
1112 WRITE (
stdout,20) ng, trim(ncname)
1120 define :
IF (
ldefitl(ng))
THEN
1150 &
iobounds(ng)%eta_rho, dimids( 5))
1162 &
iobounds(ng)%eta_psi, dimids( 8))
1165# ifdef ADJUST_BOUNDARY
1171# if defined WRITE_WATER && defined MASKING
1186# if defined WRITE_WATER && defined MASKING
1188 &
iobounds(ng)%xy_rho*
n(ng), dimids(20))
1200 &
iobounds(ng)%xy_rho*(
n(ng)+1), dimids(23))
1205 &
n(ng), dimids( 9))
1209 &
n(ng), dimids( 9))
1213 &
n(ng)+1, dimids(10))
1217 &
nt(ng), dimids(11))
1229# if defined WRITE_WATER && defined MASKING
1247# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1248 status=
def_dim(ng,
itlm,
itl(ng)%pioFile, ncname,
'frc_adjust', &
1249 &
nfrec(ng), dimids(30))
1253# ifdef ADJUST_BOUNDARY
1254 status=
def_dim(ng,
itlm,
itl(ng)%pioFile, ncname,
'obc_adjust', &
1255 &
nbrec(ng), dimids(31))
1261 & pio_unlimited, dimids(12))
1265# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1268# ifdef ADJUST_BOUNDARY
1274# if defined WRITE_WATER && defined MASKING
1284# if defined WRITE_WATER && defined MASKING
1285 t2dgrd(1)=dimids(17)
1286 t2dgrd(2)=dimids(12)
1288 t3dgrd(1)=dimids(20)
1289 t3dgrd(2)=dimids(12)
1292 t2dgrd(1)=dimids( 1)
1293 t2dgrd(2)=dimids( 5)
1294 t2dgrd(3)=dimids(12)
1296 t3dgrd(1)=dimids( 1)
1297 t3dgrd(2)=dimids( 5)
1298 t3dgrd(3)=dimids( 9)
1299 t3dgrd(4)=dimids(12)
1301# ifdef ADJUST_STFLUX
1302 t3dfrc(1)=dimids( 1)
1303 t3dfrc(2)=dimids( 5)
1305 t3dfrc(4)=dimids(12)
1308# ifdef ADJUST_BOUNDARY
1310 t2dobc(2)=dimids(14)
1312 t2dobc(4)=dimids(12)
1315 t3dobc(2)=dimids( 9)
1316 t3dobc(3)=dimids(14)
1318 t3dobc(5)=dimids(12)
1324# if defined WRITE_WATER && defined MASKING
1325 u2dgrd(1)=dimids(18)
1326 u2dgrd(2)=dimids(12)
1328 u3dgrd(1)=dimids(21)
1329 u3dgrd(2)=dimids(12)
1332 u2dgrd(1)=dimids( 2)
1333 u2dgrd(2)=dimids( 6)
1334 u2dgrd(3)=dimids(12)
1336 u3dgrd(1)=dimids( 2)
1337 u3dgrd(2)=dimids( 6)
1338 u3dgrd(3)=dimids( 9)
1339 u3dgrd(4)=dimids(12)
1341# ifdef ADJUST_WSTRESS
1342 u3dfrc(1)=dimids( 2)
1343 u3dfrc(2)=dimids( 6)
1345 u3dfrc(4)=dimids(12)
1351# if defined WRITE_WATER && defined MASKING
1352 v2dgrd(1)=dimids(19)
1353 v2dgrd(2)=dimids(12)
1355 v3dgrd(1)=dimids(22)
1356 v3dgrd(2)=dimids(12)
1359 v2dgrd(1)=dimids( 3)
1360 v2dgrd(2)=dimids( 7)
1361 v2dgrd(3)=dimids(12)
1363 v3dgrd(1)=dimids( 3)
1364 v3dgrd(2)=dimids( 7)
1365 v3dgrd(3)=dimids( 9)
1366 v3dgrd(4)=dimids(12)
1368# ifdef ADJUST_WSTRESS
1369 v3dfrc(1)=dimids( 3)
1370 v3dfrc(2)=dimids( 7)
1372 v3dfrc(4)=dimids(12)
1379# if defined WRITE_WATER && defined MASKING
1380 w3dgrd(1)=dimids(23)
1381 w3dgrd(2)=dimids(12)
1383 w3dgrd(1)=dimids( 1)
1384 w3dgrd(2)=dimids( 5)
1385 w3dgrd(3)=dimids(10)
1386 w3dgrd(4)=dimids(12)
1393 DO j=1,len(vinfo(1))
1416 WRITE (vinfo( 3),
'(a,a)')
'seconds since ', trim(
rclock%string)
1417 vinfo( 4)=trim(
rclock%calendar)
1425 & 1, (/recdim/), aval, vinfo, ncname, &
1426 & setparaccess = .false.)
1436# if defined WRITE_WATER && defined MASKING
1437 vinfo(20)=
'mask_rho'
1440 vinfo(22)=
'coordinates'
1448 & nvd3, t2dgrd, aval, vinfo, ncname, &
1449 & setfillval = .false.)
1451 & nvd3, t2dgrd, aval, vinfo, ncname)
1455# ifdef ADJUST_BOUNDARY
1461 vinfo( 1)=
vname(1,ifield)
1462 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1463 vinfo( 3)=
vname(3,ifield)
1464 vinfo(14)=
vname(4,ifield)
1466 vinfo(21)=
vname(6,ifield)
1467 aval(5)=real(
iinfo(1,ifield,ng),r8)
1473 & 4, t2dobc, aval, vinfo, ncname, &
1474 & setfillval = .false.)
1486# if defined WRITE_WATER && defined MASKING
1490 vinfo(22)=
'coordinates'
1497 & nvd3, u2dgrd, aval, vinfo, ncname)
1500# ifdef ADJUST_BOUNDARY
1506 vinfo( 1)=
vname(1,ifield)
1507 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1508 vinfo( 3)=
vname(3,ifield)
1509 vinfo(14)=
vname(4,ifield)
1511 vinfo(21)=
vname(6,ifield)
1512 aval(5)=real(
iinfo(1,ifield,ng),r8)
1518 & 4, t2dobc, aval, vinfo, ncname, &
1519 & setfillval = .false.)
1531# if defined WRITE_WATER && defined MASKING
1535 vinfo(22)=
'coordinates'
1542 & nvd3, v2dgrd, aval, vinfo, ncname)
1545# ifdef ADJUST_BOUNDARY
1551 vinfo( 1)=
vname(1,ifield)
1552 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1553 vinfo( 3)=
vname(3,ifield)
1554 vinfo(14)=
vname(4,ifield)
1556 vinfo(21)=
vname(6,ifield)
1557 aval(5)=real(
iinfo(1,ifield,ng),r8)
1563 & 4, t2dobc, aval, vinfo, ncname, &
1564 & setfillval = .false.)
1568# ifdef ADJUST_WSTRESS
1577# if defined WRITE_WATER && defined MASKING
1581 vinfo(22)=
'coordinates'
1588 & nvd4, u3dfrc, aval, vinfo, ncname)
1599# if defined WRITE_WATER && defined MASKING
1603 vinfo(22)=
'coordinates'
1610 & nvd4, v3dfrc, aval, vinfo, ncname)
1622# if defined WRITE_WATER && defined MASKING
1626 vinfo(22)=
'coordinates'
1633 & nvd4, u3dgrd, aval, vinfo, ncname)
1636# ifdef ADJUST_BOUNDARY
1642 vinfo( 1)=
vname(1,ifield)
1643 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1644 vinfo( 3)=
vname(3,ifield)
1645 vinfo(14)=
vname(4,ifield)
1647 vinfo(21)=
vname(6,ifield)
1648 aval(5)=real(
iinfo(1,ifield,ng),r8)
1654 & 5, t3dobc, aval, vinfo, ncname, &
1655 & setfillval = .false.)
1667# if defined WRITE_WATER && defined MASKING
1671 vinfo(22)=
'coordinates'
1678 & nvd4, v3dgrd, aval, vinfo, ncname)
1681# ifdef ADJUST_BOUNDARY
1687 vinfo( 1)=
vname(1,ifield)
1688 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1689 vinfo( 3)=
vname(3,ifield)
1690 vinfo(14)=
vname(4,ifield)
1692 vinfo(21)=
vname(6,ifield)
1693 aval(5)=real(
iinfo(1,ifield,ng),r8)
1699 & 5, t3dobc, aval, vinfo, ncname, &
1700 & setfillval = .false.)
1715 IF (itrc.eq.idsed(i))
THEN
1716 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
1720# if defined WRITE_WATER && defined MASKING
1721 vinfo(20)=
'mask_rho'
1724 vinfo(22)=
'coordinates'
1731 & nvd4, t3dgrd, aval, vinfo, ncname)
1735# ifdef ADJUST_BOUNDARY
1742 vinfo( 1)=
vname(1,ifield)
1743 WRITE (vinfo( 2),40) trim(
vname(2,ifield))
1744 vinfo( 3)=
vname(3,ifield)
1745 vinfo(14)=
vname(4,ifield)
1749 IF (itrc.eq.idsed(i))
THEN
1750 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
1754 vinfo(21)=
vname(6,ifield)
1755 aval(5)=real(
iinfo(1,ifield,ng),r8)
1761 & 5, t3dobc, aval, vinfo, ncname, &
1762 setfillval = .false.)
1767# ifdef ADJUST_STFLUX
1776 IF (itrc.eq.
itemp)
THEN
1777 vinfo(11)=
'upward flux, cooling'
1778 vinfo(12)=
'downward flux, heating'
1779 ELSE IF (itrc.eq.
isalt)
THEN
1780 vinfo(11)=
'upward flux, freshening (net precipitation)'
1781 vinfo(12)=
'downward flux, salting (net evaporation)'
1785# if defined WRITE_WATER && defined MASKING
1786 vinfo(20)=
'mask_rho'
1789 vinfo(22)=
'coordinates'
1796 & nvd4, t3dfrc, aval, vinfo, ncname)
1823 query :
IF (.not.
ldefitl(ng))
THEN
1830 WRITE (
stdout,60) trim(ncname)
1837 & piofile =
itl(ng)%pioFile)
1843 & piofile =
itl(ng)%pioFile)
1856 IF (trim(var_name(i)).eq.trim(
vname(1,
idtime)))
THEN
1861 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idfsur)))
THEN
1866 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idubar)))
THEN
1871 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvbar)))
THEN
1876# ifdef ADJUST_BOUNDARY
1877 ELSE IF (trim(var_name(i)).eq. &
1883 ELSE IF (trim(var_name(i)).eq. &
1889 ELSE IF (trim(var_name(i)).eq. &
1896# ifdef ADJUST_WSTRESS
1897 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idusms)))
THEN
1902 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvsms)))
THEN
1909 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
iduvel)))
THEN
1914 ELSE IF (trim(var_name(i)).eq.trim(
vname(1,
idvvel)))
THEN
1919# ifdef ADJUST_BOUNDARY
1920 ELSE IF (trim(var_name(i)).eq. &
1926 ELSE IF (trim(var_name(i)).eq. &
1937 IF (trim(var_name(i)).eq.trim(
vname(1,
idtvar(itrc))))
THEN
1938 got_var(
idtvar(itrc))=.true.
1942# ifdef ADJUST_BOUNDARY
1943 ELSE IF (trim(var_name(i)).eq. &
1950# ifdef ADJUST_STFLUX
1951 ELSE IF (trim(var_name(i)).eq. &
1953 got_var(
idtsur(itrc))=.true.
1966 IF (.not.got_var(
idtime))
THEN
1972 IF (.not.got_var(
idfsur))
THEN
1978 IF (.not.got_var(
idubar))
THEN
1984 IF (.not.got_var(
idvbar))
THEN
1990# ifdef ADJUST_BOUNDARY
2013# ifdef ADJUST_WSTRESS
2014 IF (.not.got_var(
idusms))
THEN
2020 IF (.not.got_var(
idvsms))
THEN
2028 IF (.not.got_var(
iduvel))
THEN
2034 IF (.not.got_var(
idvvel))
THEN
2040# ifdef ADJUST_BOUNDARY
2059 IF (.not.got_var(
idtvar(itrc)))
THEN
2065# ifdef ADJUST_BOUNDARY
2075# ifdef ADJUST_STFLUX
2088 itl(ng)%Rindex=rec_size
2089 fcount=
itl(ng)%Fcount
2090 itl(ng)%Nrec(fcount)=rec_size
2093 10
FORMAT (2x,
'TL_DEF_INI_PIO - creating initial file,',t56, &
2094 &
'Grid ',i2.2,
': ',a)
2095 20
FORMAT (2x,
'TL_DEF_INI_PIO - inquiring initial file,',t56, &
2096 &
'Grid ',i2.2,
': ',a)
2097 30
FORMAT (/,
' TL_DEF_INI_PIO - unable to create initial NetCDF', &
2099 40
FORMAT (
'tangent linear',1x,a)
2100 50
FORMAT (1pe11.4,1x,
'millimeter')
2101 60
FORMAT (/,
' TL_DEF_INI_PIO - unable to open initial NetCDF', &
2103 70
FORMAT (/,
' TL_DEF_INI_PIO - unable to find variable: ',a,2x, &
integer, dimension(:), allocatable nstatevar
type(t_io), dimension(:), allocatable itl
character(len=256) sourcefile
integer, parameter io_nf90
integer, dimension(:), allocatable idsbry
integer, parameter io_pio
integer, dimension(:), allocatable idtsur
integer, dimension(:), allocatable idtvar
integer, dimension(:), allocatable istvar
character(len=maxlen), dimension(6, 0:nv) vname
integer, dimension(:,:,:), allocatable iinfo
integer, parameter ndimid
integer, parameter nf_tout
subroutine, public netcdf_check_dim(ng, model, ncname, ncid)
subroutine, public netcdf_open(ng, model, ncname, omode, ncid)
integer, parameter nf_fout
subroutine, public netcdf_enddef(ng, model, ncname, ncid)
character(len=100), dimension(mvars) var_name
integer, dimension(mvars) var_id
subroutine, public netcdf_create(ng, model, ncname, ncid)
subroutine, public netcdf_inq_var(ng, model, ncname, ncid, myvarname, searchvar, varid, nvardim, nvaratt)
integer, parameter u2dobc
integer, parameter v3dobc
integer, parameter r2dobc
integer, dimension(:), allocatable n
integer, parameter r3dvar
integer, parameter r3dobc
integer, parameter v2dobc
type(t_iobounds), dimension(:), allocatable iobounds
integer, parameter u3dobc
integer, parameter u3dvar
integer, parameter u2dvar
integer, dimension(:), allocatable nt
integer, parameter r2dvar
integer, parameter v2dvar
integer, parameter v3dvar
integer, parameter pio_fout
type(var_desc_t), dimension(:), pointer var_desc
subroutine, public pio_netcdf_create(ng, model, ncname, piofile)
subroutine, public pio_netcdf_inq_var(ng, model, ncname, piofile, myvarname, searchvar, piovar, nvardim, nvaratt)
subroutine, public pio_netcdf_open(ng, model, ncname, omode, piofile)
subroutine, public pio_netcdf_check_dim(ng, model, ncname, piofile)
integer, parameter pio_tout
subroutine, public pio_netcdf_enddef(ng, model, ncname, piofile)
logical, dimension(:), allocatable ldefitl
logical, dimension(:,:,:), allocatable lobc
logical, dimension(:,:), allocatable lstflux
integer, dimension(:), allocatable nfrec
integer, dimension(:), allocatable nbrec
logical function, public founderror(flag, noerr, line, routine)
subroutine, private tl_def_ini_nf90(ng)
subroutine, public tl_def_ini(ng)
subroutine, private tl_def_ini_pio(ng)