1143
1144
1146
1147
1148
1149 integer, intent(in) :: ng
1150
1151
1152
1153 logical :: got_var(NV)
1154
1155 integer, parameter :: Natt = 25
1156
1157 integer :: i, j, ifield, itrc, nrec, nvd, nvd3, nvd4
1158 integer :: recdim, status
1159# ifdef ADJUST_BOUNDARY
1160 integer :: IorJdim, brecdim
1161# endif
1162# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1163 integer :: frecdim
1164# endif
1165# if defined POSTERIOR_EOFS && defined WEAK_CONSTRAINT
1166 integer :: NpostDim
1167# endif
1168 integer :: DimIDs(nDimID)
1169 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
1170# ifdef ADJUST_BOUNDARY
1171 integer :: t2dobc(4)
1172# endif
1173# ifdef EVOLVED_LCZ
1174 integer :: MinnerDim, NinnerDim, NouterDim
1175 integer :: vardim(2)
1176# endif
1177
1178# ifdef SOLVE3D
1179 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
1180# ifdef ADJUST_BOUNDARY
1181 integer :: t3dobc(5)
1182# endif
1183# ifdef ADJUST_STFLUX
1184 integer :: t3dfrc(4)
1185# endif
1186# endif
1187# ifdef ADJUST_WSTRESS
1188 integer :: u3dfrc(4), v3dfrc(4)
1189# endif
1190
1191 real(r8) :: Aval(6)
1192
1193 character (len=256) :: ncname
1194 character (len=MaxLen) :: Vinfo(Natt)
1195
1196 character (len=*), parameter :: MyFile = &
1197 & __FILE__//", def_hessian_pio"
1198
1199 TYPE (Var_desc_t) :: varDesc
1200
1201 sourcefile=myfile
1202
1203
1204
1205
1206
1207 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1208 ncname=hss(ng)%name
1209
1210 IF (master) THEN
1211 IF (ldefhss(ng)) THEN
1212 WRITE (stdout,10) ng, trim(ncname)
1213 ELSE
1214 WRITE (stdout,20) ng, trim(ncname)
1215 END IF
1216 END IF
1217
1218
1219
1220
1221
1222 define : IF (ldefhss(ng)) THEN
1224 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
1225 IF (master) WRITE (stdout,30) trim(ncname)
1226 RETURN
1227 END IF
1228
1229
1230
1231
1232
1233 dimids=0
1234
1235 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xi_rho', &
1236 & iobounds(ng)%xi_rho, dimids( 1))
1237 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1238
1239 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xi_u', &
1240 & iobounds(ng)%xi_u, dimids( 2))
1241 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1242
1243 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xi_v', &
1244 & iobounds(ng)%xi_v, dimids( 3))
1245 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1246
1247 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xi_psi', &
1248 & iobounds(ng)%xi_psi, dimids( 4))
1249 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1250
1251 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'eta_rho', &
1252 & iobounds(ng)%eta_rho, dimids( 5))
1253 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1254
1255 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'eta_u', &
1256 & iobounds(ng)%eta_u, dimids( 6))
1257 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1258
1259 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'eta_v', &
1260 & iobounds(ng)%eta_v, dimids( 7))
1261 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1262
1263 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'eta_psi', &
1264 & iobounds(ng)%eta_psi, dimids( 8))
1265 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1266
1267# ifdef ADJUST_BOUNDARY
1268 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'IorJ', &
1269 & iobounds(ng)%IorJ, iorjdim)
1270 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1271# endif
1272
1273# if defined WRITE_WATER && defined MASKING
1274 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xy_rho', &
1275 & iobounds(ng)%xy_rho, dimids(17))
1276 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1277
1278 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xy_u', &
1279 & iobounds(ng)%xy_u, dimids(18))
1280 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1281
1282 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xy_v', &
1283 & iobounds(ng)%xy_v, dimids(19))
1284 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1285# endif
1286
1287# ifdef EVOLVED_LCZ
1288
1289 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Ninner', &
1290 & ninner, ninnerdim)
1291 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1292
1293 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Minner', &
1294 & ninner+1, minnerdim)
1295 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1296
1297 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nouter', &
1298 & nouter, nouterdim)
1299 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1300
1301# endif
1302
1303# ifdef SOLVE3D
1304# if defined WRITE_WATER && defined MASKING
1305 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xyz_rho', &
1306 & iobounds(ng)%xy_rho*n(ng), dimids(20))
1307 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1308
1309 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xyz_u', &
1310 & iobounds(ng)%xy_u*n(ng), dimids(21))
1311 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1312
1313 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xyz_v', &
1314 & iobounds(ng)%xy_v*n(ng), dimids(22))
1315 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1316
1317 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xyz_w', &
1318 & iobounds(ng)%xy_rho*(n(ng)+1), dimids(23))
1319 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1320# endif
1321
1322 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'N', &
1323 & n(ng), dimids( 9))
1324 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1325
1326 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 's_rho', &
1327 & n(ng), dimids( 9))
1328 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1329
1330 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 's_w', &
1331 & n(ng)+1, dimids(10))
1332 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1333
1334 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'tracer', &
1335 & nt(ng), dimids(11))
1336 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1337
1338# ifdef SEDIMENT
1339 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'NST', &
1340 & nst, dimids(32))
1341 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1342
1343 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nbed', &
1344 & nbed, dimids(16))
1345 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1346
1347# if defined WRITE_WATER && defined MASKING
1348 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'xybed', &
1349 & iobounds(ng)%xy_rho*nbed, dimids(24))
1350 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1351# endif
1352# endif
1353
1354# ifdef ECOSIM
1355 status=def_dim(ng, inlm, hss(ng)%pioFile, ncname, 'Nbands', &
1356 & nbands, dimids(33))
1357 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1358
1359 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nphy', &
1360 & nphy, dimids(25))
1361 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1362
1363 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nbac', &
1364 & nbac, dimids(26))
1365 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1366
1367 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Ndom', &
1368 & ndom, dimids(27))
1369 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1370
1371 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nfec', &
1372 & nfec, dimids(28))
1373 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1374# endif
1375# endif
1376
1377 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'boundary', &
1378 & 4, dimids(14))
1379 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1380
1381# ifdef FOUR_DVAR
1382 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nstate', &
1383 & nstatevar(ng), dimids(29))
1384 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1385# endif
1386
1387# if defined POSTERIOR_EOFS && defined WEAK_CONSTRAINT
1388 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'Nposterior', &
1389 & nposti+1, npostdim)
1390 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1391# endif
1392
1393# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1394 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'frc_adjust', &
1395 & nfrec(ng), dimids(30))
1396 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1397# endif
1398
1399# ifdef ADJUST_BOUNDARY
1400 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, 'obc_adjust', &
1401 & nbrec(ng), dimids(31))
1402 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1403# endif
1404
1405 status=def_dim(ng, iadm, hss(ng)%pioFile, ncname, &
1406 & trim(adjustl(vname(5,idtime))), &
1407 & pio_unlimited, dimids(12))
1408 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1409
1410 recdim=dimids(12)
1411# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
1412 frecdim=dimids(30)
1413# endif
1414# ifdef ADJUST_BOUNDARY
1415 brecdim=dimids(31)
1416# endif
1417
1418
1419
1420# if defined WRITE_WATER && defined MASKING
1421 nvd3=2
1422 nvd4=2
1423# else
1424 nvd3=3
1425 nvd4=4
1426# endif
1427
1428
1429
1430# if defined WRITE_WATER && defined MASKING
1431 t2dgrd(1)=dimids(17)
1432 t2dgrd(2)=dimids(12)
1433# ifdef SOLVE3D
1434 t3dgrd(1)=dimids(20)
1435 t3dgrd(2)=dimids(12)
1436# endif
1437# else
1438 t2dgrd(1)=dimids( 1)
1439 t2dgrd(2)=dimids( 5)
1440 t2dgrd(3)=dimids(12)
1441# ifdef SOLVE3D
1442 t3dgrd(1)=dimids( 1)
1443 t3dgrd(2)=dimids( 5)
1444 t3dgrd(3)=dimids( 9)
1445 t3dgrd(4)=dimids(12)
1446# endif
1447# ifdef ADJUST_STFLUX
1448 t3dfrc(1)=dimids( 1)
1449 t3dfrc(2)=dimids( 5)
1450 t3dfrc(3)=frecdim
1451 t3dfrc(4)=dimids(12)
1452# endif
1453# endif
1454# ifdef ADJUST_BOUNDARY
1455 t2dobc(1)=iorjdim
1456 t2dobc(2)=dimids(14)
1457 t2dobc(3)=brecdim
1458 t2dobc(4)=dimids(12)
1459# ifdef SOLVE3D
1460 t3dobc(1)=iorjdim
1461 t3dobc(2)=dimids( 9)
1462 t3dobc(3)=dimids(14)
1463 t3dobc(4)=brecdim
1464 t3dobc(5)=dimids(12)
1465# endif
1466# endif
1467
1468
1469
1470# if defined WRITE_WATER && defined MASKING
1471 u2dgrd(1)=dimids(18)
1472 u2dgrd(2)=dimids(12)
1473# ifdef SOLVE3D
1474 u3dgrd(1)=dimids(21)
1475 u3dgrd(2)=dimids(12)
1476# endif
1477# else
1478 u2dgrd(1)=dimids( 2)
1479 u2dgrd(2)=dimids( 6)
1480 u2dgrd(3)=dimids(12)
1481# ifdef SOLVE3D
1482 u3dgrd(1)=dimids( 2)
1483 u3dgrd(2)=dimids( 6)
1484 u3dgrd(3)=dimids( 9)
1485 u3dgrd(4)=dimids(12)
1486# endif
1487# ifdef ADJUST_WSTRESS
1488 u3dfrc(1)=dimids( 2)
1489 u3dfrc(2)=dimids( 6)
1490 u3dfrc(3)=frecdim
1491 u3dfrc(4)=dimids(12)
1492# endif
1493# endif
1494
1495
1496
1497# if defined WRITE_WATER && defined MASKING
1498 v2dgrd(1)=dimids(19)
1499 v2dgrd(2)=dimids(12)
1500# ifdef SOLVE3D
1501 v3dgrd(1)=dimids(22)
1502 v3dgrd(2)=dimids(12)
1503# endif
1504# else
1505 v2dgrd(1)=dimids( 3)
1506 v2dgrd(2)=dimids( 7)
1507 v2dgrd(3)=dimids(12)
1508# ifdef SOLVE3D
1509 v3dgrd(1)=dimids( 3)
1510 v3dgrd(2)=dimids( 7)
1511 v3dgrd(3)=dimids( 9)
1512 v3dgrd(4)=dimids(12)
1513# endif
1514# ifdef ADJUST_WSTRESS
1515 v3dfrc(1)=dimids( 3)
1516 v3dfrc(2)=dimids( 7)
1517 v3dfrc(3)=frecdim
1518 v3dfrc(4)=dimids(12)
1519# endif
1520# endif
1521# ifdef SOLVE3D
1522
1523
1524
1525# if defined WRITE_WATER && defined MASKING
1526 w3dgrd(1)=dimids(23)
1527 w3dgrd(2)=dimids(12)
1528# else
1529 w3dgrd(1)=dimids( 1)
1530 w3dgrd(2)=dimids( 5)
1531 w3dgrd(3)=dimids(10)
1532 w3dgrd(4)=dimids(12)
1533# endif
1534# endif
1535
1536
1537
1538 hss(ng)%Rindex=0
1539
1540
1541
1542 DO i=1,natt
1543 DO j=1,len(vinfo(1))
1544 vinfo(i)(j:j)=' '
1545 END DO
1546 END DO
1547 DO i=1,6
1548 aval(i)=0.0_r8
1549 END DO
1550
1551
1552
1553
1554
1555 CALL def_info (ng, iadm, hss(ng)%pioFile, ncname, dimids)
1556 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1557
1558
1559
1560
1561
1562
1563
1564 vinfo( 1)='nConvRitz'
1565 vinfo( 2)='number of converged Ritz eigenvalues'
1566 status=def_var(ng, iadm, hss(ng)%pioFile, vardesc, pio_int, &
1567 & 1, (/0/), aval, vinfo, ncname, &
1568 & setparaccess = .false.)
1569 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1570
1571
1572
1573 vinfo( 1)='Ritz'
1574 vinfo( 2)='Ritz eigenvalues'
1575 status=def_var(ng, iadm, hss(ng)%pioFile, vardesc,
pio_type, &
1576 & 1, (/recdim/), aval, vinfo, ncname, &
1577 & setparaccess = .true.)
1578 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1579
1580
1581
1582 vinfo( 1)='Ritz_error'
1583 vinfo( 2)='accuracy of Ritz eigenvalues'
1584 status=def_var(ng, iadm, hss(ng)%pioFile, vardesc,
pio_type, &
1585 & 1, (/recdim/), aval, vinfo, ncname, &
1586 & setparaccess = .true.)
1587 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1588
1589# ifdef POSTERIOR_EOFS
1590
1591
1592
1593 vinfo( 1)='ae_trace'
1594 vinfo( 2)='posterior analysis error covariance matrix trace'
1595 status=def_var(ng, iadm, hss(ng)%pioFile, vardesc,
pio_type, &
1596 & 1, (/npostdim/), aval, vinfo, ncname, &
1597 & setparaccess = .false.)
1598 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1599# endif
1600
1601
1602
1603 vinfo( 1)=vname(1,idtime)
1604 vinfo( 2)=vname(2,idtime)
1605 WRITE (vinfo( 3),'(a,a)') 'seconds since ', trim(rclock%string)
1606 vinfo( 4)=trim(rclock%calendar)
1607 vinfo(14)=vname(4,idtime)
1608 vinfo(21)=vname(6,idtime)
1609 hss(ng)%pioVar(idtime)%dkind=
pio_tout
1610 hss(ng)%pioVar(idtime)%gtype=0
1611
1612 status=def_var(ng, iadm, hss(ng)%pioFile, &
1613 & hss(ng)%pioVar(idtime)%vd, &
1614 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
1615 & setparaccess = .true.)
1616 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1617
1618
1619
1620 vinfo( 1)=vname(1,idfsur)
1621 WRITE (vinfo( 2),40) trim(vname(2,idfsur))
1622 vinfo( 3)='nondimensional'
1623 vinfo(14)=vname(4,idfsur)
1624 vinfo(16)=vname(1,idtime)
1625# if defined WRITE_WATER && defined MASKING
1626 vinfo(20)='mask_rho'
1627# endif
1628 vinfo(21)=vname(6,idfsur)
1629 vinfo(22)='coordinates'
1630 aval(5)=real(iinfo(1,idfsur,ng),r8)
1631 hss(ng)%pioVar(idfsur)%dkind=
pio_fout
1632 hss(ng)%pioVar(idfsur)%gtype=r2dvar
1633
1634 status=def_var(ng, iadm, hss(ng)%pioFile, &
1635 & hss(ng)%pioVar(idfsur)%vd, &
1636 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1637 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1638
1639# ifdef ADJUST_BOUNDARY
1640
1641
1642
1643 IF (any(lobc(:,isfsur,ng))) THEN
1644 ifield=idsbry(isfsur)
1645 vinfo( 1)=vname(1,ifield)
1646 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1647 vinfo( 3)='nondimensional'
1648 vinfo(14)=vname(4,ifield)
1649 vinfo(16)=vname(1,idtime)
1650 vinfo(21)=vname(6,ifield)
1651 aval(5)=real(iinfo(1,ifield,ng),r8)
1652 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1653 hss(ng)%pioVar(ifield)%gtype=r2dobc
1654
1655 status=def_var(ng, iadm, hss(ng)%pioFile, &
1656 & hss(ng)%pioVar(ifield)%vd, &
1657 &
pio_fout, 4, t2dobc, aval, vinfo, ncname, &
1658 & setfillval = .false.)
1659 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1660 END IF
1661# endif
1662
1663
1664
1665 vinfo( 1)=vname(1,idubar)
1666 WRITE (vinfo( 2),40) trim(vname(2,idubar))
1667 vinfo( 3)='nondimensional'
1668 vinfo(14)=vname(4,idubar)
1669 vinfo(16)=vname(1,idtime)
1670# if defined WRITE_WATER && defined MASKING
1671 vinfo(20)='mask_u'
1672# endif
1673 vinfo(21)=vname(6,idubar)
1674 vinfo(22)='coordinates'
1675 aval(5)=real(iinfo(1,idubar,ng),r8)
1676 hss(ng)%pioVar(idubar)%dkind=
pio_fout
1677 hss(ng)%pioVar(idubar)%gtype=u2dvar
1678
1679 status=def_var(ng, iadm, hss(ng)%pioFile, &
1680 & hss(ng)%pioVar(idubar)%vd, &
1681 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1682 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1683
1684# ifdef ADJUST_BOUNDARY
1685
1686
1687
1688 IF (any(lobc(:,isubar,ng))) THEN
1689 ifield=idsbry(isubar)
1690 vinfo( 1)=vname(1,ifield)
1691 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1692 vinfo( 3)='nondimensional'
1693 vinfo(14)=vname(4,ifield)
1694 vinfo(16)=vname(1,idtime)
1695 vinfo(21)=vname(6,ifield)
1696 aval(5)=real(iinfo(1,ifield,ng),r8)
1697 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1698 hss(ng)%pioVar(ifield)%gtype=u2dobc
1699
1700 status=def_var(ng, iadm, hss(ng)%pioFile, &
1701 & hss(ng)%pioVar(ifield)%vd, &
1702 &
pio_fout, 4, t2dobc, aval, vinfo, ncname, &
1703 & setfillval = .false.)
1704 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1705 END IF
1706# endif
1707
1708
1709
1710 vinfo( 1)=vname(1,idvbar)
1711 WRITE (vinfo( 2),40) trim(vname(2,idvbar))
1712 vinfo( 3)='nondimensional'
1713 vinfo(14)=vname(4,idvbar)
1714 vinfo(16)=vname(1,idtime)
1715# if defined WRITE_WATER && defined MASKING
1716 vinfo(20)='mask_v'
1717# endif
1718 vinfo(21)=vname(6,idvbar)
1719 vinfo(22)='coordinates'
1720 aval(5)=real(iinfo(1,idvbar,ng),r8)
1721 hss(ng)%pioVar(idvbar)%dkind=
pio_fout
1722 hss(ng)%pioVar(idvbar)%gtype=v2dvar
1723
1724 status=def_var(ng, iadm, hss(ng)%pioFile, &
1725 & hss(ng)%pioVar(idvbar)%vd, &
1726 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1727 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1728
1729# ifdef ADJUST_BOUNDARY
1730
1731
1732
1733 IF (any(lobc(:,isvbar,ng))) THEN
1734 ifield=idsbry(isvbar)
1735 vinfo( 1)=vname(1,ifield)
1736 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1737 vinfo( 3)='nondimensional'
1738 vinfo(14)=vname(4,ifield)
1739 vinfo(16)=vname(1,idtime)
1740 vinfo(21)=vname(6,ifield)
1741 aval(5)=real(iinfo(1,ifield,ng),r8)
1742 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1743 hss(ng)%pioVar(ifield)%gtype=v2dobc
1744
1745 status=def_var(ng, iadm, hss(ng)%pioFile, &
1746 & hss(ng)%pioVar(ifield)%vd, &
1747 &
pio_fout, 4, t2dobc, aval, vinfo, ncname, &
1748 & setfillval = .false.)
1749 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1750 END IF
1751# endif
1752# ifdef SOLVE3D
1753
1754
1755
1756 vinfo( 1)=vname(1,iduvel)
1757 WRITE (vinfo( 2),40) trim(vname(2,iduvel))
1758 vinfo( 3)='nondimensional'
1759 vinfo(14)=vname(4,iduvel)
1760 vinfo(16)=vname(1,idtime)
1761# if defined WRITE_WATER && defined MASKING
1762 vinfo(20)='mask_u'
1763# endif
1764 vinfo(21)=vname(6,iduvel)
1765 vinfo(22)='coordinates'
1766 aval(5)=real(iinfo(1,iduvel,ng),r8)
1767 hss(ng)%pioVar(iduvel)%dkind=
pio_fout
1768 hss(ng)%pioVar(iduvel)%gtype=u3dvar
1769
1770 status=def_var(ng, iadm, hss(ng)%pioFile, &
1771 & hss(ng)%pioVar(iduvel)%vd, &
1772 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
1773 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1774
1775# ifdef ADJUST_BOUNDARY
1776
1777
1778
1779 IF (any(lobc(:,isuvel,ng))) THEN
1780 ifield=idsbry(isuvel)
1781 vinfo( 1)=vname(1,ifield)
1782 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1783 vinfo( 3)='nondimensional'
1784 vinfo(14)=vname(4,ifield)
1785 vinfo(16)=vname(1,idtime)
1786 vinfo(21)=vname(6,ifield)
1787 aval(5)=real(iinfo(1,ifield,ng),r8)
1788 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1789 hss(ng)%pioVar(ifield)%gtype=u3dobc
1790
1791 status=def_var(ng, iadm, hss(ng)%pioFile, &
1792 & hss(ng)%pioVar(ifield)%vd, &
1793 &
pio_fout, 5, t3dobc, aval, vinfo, ncname, &
1794 & setfillval = .false.)
1795 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1796 END IF
1797# endif
1798
1799
1800
1801 vinfo( 1)=vname(1,idvvel)
1802 WRITE (vinfo( 2),40) trim(vname(2,idvvel))
1803 vinfo( 3)='nondimensional'
1804 vinfo(14)=vname(4,idvvel)
1805 vinfo(16)=vname(1,idtime)
1806# if defined WRITE_WATER && defined MASKING
1807 vinfo(20)='mask_v'
1808# endif
1809 vinfo(21)=vname(6,idvvel)
1810 vinfo(22)='coordinates'
1811 aval(5)=real(iinfo(1,idvvel,ng),r8)
1812 hss(ng)%pioVar(idvvel)%dkind=
pio_fout
1813 hss(ng)%pioVar(idvvel)%gtype=v3dvar
1814
1815 status=def_var(ng, iadm, hss(ng)%pioFile, &
1816 & hss(ng)%pioVar(idvvel)%vd, &
1817 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
1818 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1819
1820# ifdef ADJUST_BOUNDARY
1821
1822
1823
1824 IF (any(lobc(:,isvvel,ng))) THEN
1825 ifield=idsbry(isvvel)
1826 vinfo( 1)=vname(1,ifield)
1827 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1828 vinfo( 3)='nondimensional'
1829 vinfo(14)=vname(4,ifield)
1830 vinfo(16)=vname(1,idtime)
1831 vinfo(21)=vname(6,ifield)
1832 aval(5)=real(iinfo(1,ifield,ng),r8)
1833 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1834 hss(ng)%pioVar(ifield)%gtype=v3dobc
1835
1836 status=def_var(ng, iadm, hss(ng)%pioFile, &
1837 & hss(ng)%pioVar(ifield)%vd, &
1838 &
pio_fout, 5, t3dobc, aval, vinfo, ncname, &
1839 & setfillval = .false.)
1840 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1841 END IF
1842# endif
1843
1844
1845
1846 DO itrc=1,nt(ng)
1847 vinfo( 1)=vname(1,idtvar(itrc))
1848 WRITE (vinfo( 2),40) trim(vname(2,idtvar(itrc)))
1849 vinfo( 3)='nondimensional'
1850 vinfo(14)=vname(4,idtvar(itrc))
1851 vinfo(16)=vname(1,idtime)
1852# ifdef SEDIMENT
1853 DO i=1,nst
1854 IF (itrc.eq.idsed(i)) THEN
1855 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
1856 END IF
1857 END DO
1858# endif
1859# if defined WRITE_WATER && defined MASKING
1860 vinfo(20)='mask_rho'
1861# endif
1862 vinfo(21)=vname(6,idtvar(itrc))
1863 vinfo(22)='coordinates'
1864 aval(5)=real(r3dvar,r8)
1865 hss(ng)%pioTrc(itrc)%dkind=
pio_fout
1866 hss(ng)%pioTrc(itrc)%gtype=r3dvar
1867
1868 status=def_var(ng, iadm, hss(ng)%pioFile, &
1869 & hss(ng)%pioTrc(itrc)%vd, &
1870 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
1871 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1872 END DO
1873
1874# ifdef ADJUST_BOUNDARY
1875
1876
1877
1878 DO itrc=1,nt(ng)
1879 IF (any(lobc(:,istvar(itrc),ng))) THEN
1880 ifield=idsbry(istvar(itrc))
1881 vinfo( 1)=vname(1,ifield)
1882 WRITE (vinfo( 2),40) trim(vname(2,ifield))
1883 vinfo( 3)='nondimensional'
1884 vinfo(14)=vname(4,ifield)
1885 vinfo(16)=vname(1,idtime)
1886# ifdef SEDIMENT
1887 DO i=1,nst
1888 IF (itrc.eq.idsed(i)) THEN
1889 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
1890 END IF
1891 END DO
1892# endif
1893 vinfo(21)=vname(6,ifield)
1894 aval(5)=real(iinfo(1,ifield,ng),r8)
1895 hss(ng)%pioVar(ifield)%dkind=
pio_fout
1896 hss(ng)%pioVar(ifield)%gtype=r3dobc
1897
1898 status=def_var(ng, iadm, hss(ng)%pioFile, &
1899 & hss(ng)%pioVar(ifield)%vd, &
1900 &
pio_fout, 5, t3dobc, aval, vinfo, ncname, &
1901 & setfillval = .false.)
1902 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1903 END IF
1904 END DO
1905# endif
1906# ifdef ADJUST_STFLUX
1907
1908
1909
1910 DO itrc=1,nt(ng)
1911 IF (lstflux(itrc,ng)) THEN
1912 vinfo( 1)=vname(1,idtsur(itrc))
1913 WRITE (vinfo( 2),40) trim(vname(2,idtsur(itrc)))
1914 vinfo( 3)='nondimensional'
1915 IF (itrc.eq.itemp) THEN
1916 vinfo(11)='upward flux, cooling'
1917 vinfo(12)='downward flux, heating'
1918 ELSE IF (itrc.eq.isalt) THEN
1919 vinfo(11)='upward flux, freshening (net precipitation)'
1920 vinfo(12)='downward flux, salting (net evaporation)'
1921 END IF
1922 vinfo(14)=vname(4,idtsur(itrc))
1923 vinfo(16)=vname(1,idtime)
1924# if defined WRITE_WATER && defined MASKING
1925 vinfo(20)='mask_rho'
1926# endif
1927 vinfo(21)=vname(6,idtsur(itrc))
1928 vinfo(22)='coordinates'
1929 aval(5)=real(r2dvar,r8)
1930 hss(ng)%pioVar(idtsur(itrc))%dkind=
pio_fout
1931 hss(ng)%pioVar(idtsur(itrc))%gtype=r2dvar
1932
1933 status=def_var(ng, iadm, hss(ng)%pioFile, &
1934 & hss(ng)%pioVar(idtsur(itrc))%vd, &
1935 &
pio_fout, nvd4, t3dfrc, aval, vinfo, ncname)
1936 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1937 END IF
1938 END DO
1939# endif
1940# endif
1941# ifdef ADJUST_WSTRESS
1942
1943
1944
1945 vinfo( 1)=vname(1,idusms)
1946 WRITE (vinfo( 2),40) trim(vname(2,idusms))
1947 vinfo( 3)='nondimensional'
1948 vinfo(14)=vname(4,idusms)
1949 vinfo(16)=vname(1,idtime)
1950# if defined WRITE_WATER && defined MASKING
1951 vinfo(20)='mask_u'
1952# endif
1953 vinfo(21)=vname(6,idusms)
1954 vinfo(22)='coordinates'
1955 aval(5)=real(u2dvar,r8)
1956 hss(ng)%pioVar(idusms)%dkind=
pio_fout
1957 hss(ng)%pioVar(idusms)%gtype=u2dvar
1958
1959 status=def_var(ng, iadm, hss(ng)%pioFile, &
1960 & hss(ng)%pioVar(idusms)%vd, &
1961 &
pio_fout, nvd4, u3dfrc, aval, vinfo, ncname)
1962 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1963
1964
1965
1966 vinfo( 1)=vname(1,idvsms)
1967 WRITE (vinfo( 2),40) trim(vname(2,idvsms))
1968 vinfo( 2)=vname(2,idvsms)
1969 vinfo( 3)='nondimensional'
1970 vinfo(14)=vname(4,idvsms)
1971 vinfo(16)=vname(1,idtime)
1972# if defined WRITE_WATER && defined MASKING
1973 vinfo(20)='mask_v'
1974# endif
1975 vinfo(21)=vname(6,idvsms)
1976 vinfo(22)='coordinates'
1977 aval(5)=real(v2dvar,r8)
1978 hss(ng)%pioVar(idvsms)%dkind=
pio_fout
1979 hss(ng)%pioVar(idvsms)%gtype=v2dvar
1980
1981 status=def_var(ng, iadm, hss(ng)%pioFile, &
1982 & hss(ng)%pioVar(idvsms)%vd, &
1983 &
pio_fout, nvd4, v3dfrc, aval, vinfo, ncname)
1984 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1985# endif
1986
1987
1988
1989
1990
1992 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1993
1994
1995
1996
1997
1998 CALL wrt_info (ng, iadm, hss(ng)%pioFile, ncname)
1999 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2000 END IF define
2001
2002
2003
2004
2005
2006
2007 query: IF (.not.ldefhss(ng)) THEN
2008 ncname=hss(ng)%name
2009
2010
2011
2013 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
2014 WRITE (stdout,60) trim(ncname)
2015 RETURN
2016 END IF
2017
2018
2019
2021 & piofile = hss(ng)%pioFile)
2022 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2023
2024
2025
2027 & piofile = hss(ng)%pioFile)
2028 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2029
2030
2031
2032 DO i=1,nv
2033 got_var(i)=.false.
2034 END DO
2035
2036
2037
2038
2039 DO i=1,n_var
2040 IF (trim(var_name(i)).eq.trim(vname(1,idtime))) THEN
2041 got_var(idtime)=.true.
2042 hss(ng)%pioVar(idtime)%vd=
var_desc(i)
2043 hss(ng)%pioVar(idtime)%dkind=
pio_tout
2044 hss(ng)%pioVar(idtime)%gtype=0
2045 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idfsur))) THEN
2046 got_var(idfsur)=.true.
2047 hss(ng)%pioVar(idfsur)%vd=
var_desc(i)
2048 hss(ng)%pioVar(idfsur)%dkind=
pio_fout
2049 hss(ng)%pioVar(idfsur)%gtype=r2dvar
2050 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubar))) THEN
2051 got_var(idubar)=.true.
2052 hss(ng)%pioVar(idubar)%vd=
var_desc(i)
2053 hss(ng)%pioVar(idubar)%dkind=
pio_fout
2054 hss(ng)%pioVar(idubar)%gtype=u2dvar
2055 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbar))) THEN
2056 got_var(idvbar)=.true.
2057 hss(ng)%pioVar(idvbar)%vd=
var_desc(i)
2058 hss(ng)%pioVar(idvbar)%dkind=
pio_fout
2059 hss(ng)%pioVar(idvbar)%gtype=v2dvar
2060# ifdef ADJUST_BOUNDARY
2061 ELSE IF (trim(var_name(i)).eq. &
2062 & trim(vname(1,idsbry(isfsur)))) THEN
2063 got_var(idsbry(isfsur))=.true.
2064 hss(ng)%pioVar(idsbry(isfsur))%vd=
var_desc(i)
2065 hss(ng)%pioVar(idsbry(isfsur))%dkind=
pio_fout
2066 hss(ng)%pioVar(idsbry(isfsur))%gtype=r2dobc
2067 ELSE IF (trim(var_name(i)).eq. &
2068 & trim(vname(1,idsbry(isubar)))) THEN
2069 got_var(idsbry(isubar))=.true.
2070 hss(ng)%pioVar(idsbry(isubar))%vd=
var_desc(i)
2071 hss(ng)%pioVar(idsbry(isubar))%dkind=
pio_fout
2072 hss(ng)%pioVar(idsbry(isubar))%gtype=u2dobc
2073 ELSE IF (trim(var_name(i)).eq. &
2074 & trim(vname(1,idsbry(isvbar)))) THEN
2075 got_var(idsbry(isvbar))=.true.
2076 hss(ng)%pioVar(idsbry(isvbar))%vd=
var_desc(i)
2077 hss(ng)%pioVar(idsbry(isvbar))%dkind=
pio_fout
2078 hss(ng)%pioVar(idsbry(isvbar))%gtype=v2dobc
2079# endif
2080# ifdef ADJUST_WSTRESS
2081 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idusms))) THEN
2082 got_var(idusms)=.true.
2083 hss(ng)%pioVar(idusms)%vd=
var_desc(i)
2084 hss(ng)%pioVar(idusms)%dkind=
pio_fout
2085 hss(ng)%pioVar(idusms)%gtype=u2dvar
2086 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvsms))) THEN
2087 got_var(idvsms)=.true.
2088 hss(ng)%pioVar(idvsms)%vd=
var_desc(i)
2089 hss(ng)%pioVar(idvsms)%dkind=
pio_fout
2090 hss(ng)%pioVar(idvsms)%gtype=v2dvar
2091# endif
2092# ifdef SOLVE3D
2093 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvel))) THEN
2094 got_var(iduvel)=.true.
2095 hss(ng)%pioVar(iduvel)%vd=
var_desc(i)
2096 hss(ng)%pioVar(iduvel)%dkind=
pio_fout
2097 hss(ng)%pioVar(iduvel)%gtype=u3dvar
2098 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvel))) THEN
2099 got_var(idvvel)=.true.
2100 hss(ng)%pioVar(idvvel)%vd=
var_desc(i)
2101 hss(ng)%pioVar(idvvel)%dkind=
pio_fout
2102 hss(ng)%pioVar(idvvel)%gtype=v3dvar
2103# ifdef ADJUST_BOUNDARY
2104 ELSE IF (trim(var_name(i)).eq. &
2105 & trim(vname(1,idsbry(isuvel)))) THEN
2106 got_var(idsbry(isuvel))=.true.
2107 hss(ng)%pioVar(idsbry(isuvel))%vd=
var_desc(i)
2108 hss(ng)%pioVar(idsbry(isuvel))%dkind=
pio_fout
2109 hss(ng)%pioVar(idsbry(isuvel))%gtype=u3dobc
2110 ELSE IF (trim(var_name(i)).eq. &
2111 & trim(vname(1,idsbry(isvvel)))) THEN
2112 got_var(idsbry(isvvel))=.true.
2113 hss(ng)%pioVar(idsbry(isvvel))%vd=
var_desc(i)
2114 hss(ng)%pioVar(idsbry(isvvel))%dkind=
pio_fout
2115 hss(ng)%pioVar(idsbry(isvvel))%gtype=v3dobc
2116# endif
2117# endif
2118 END IF
2119# ifdef SOLVE3D
2120 DO itrc=1,nt(ng)
2121 IF (trim(var_name(i)).eq.trim(vname(1,idtvar(itrc)))) THEN
2122 got_var(idtvar(itrc))=.true.
2123 hss(ng)%pioTrc(itrc)%vd=
var_desc(i)
2124 hss(ng)%pioTrc(itrc)%dkind=
pio_fout
2125 hss(ng)%pioTrc(itrc)%gtype=r3dvar
2126# ifdef ADJUST_BOUNDARY
2127 ELSE IF (trim(var_name(i)).eq. &
2128 & trim(vname(1,idsbry(istvar(itrc))))) THEN
2129 got_var(idsbry(istvar(itrc)))=.true.
2130 hss(ng)%pioVar(idsbry(istvar(itrc)))%vd=
var_desc(i)
2131 hss(ng)%pioVar(idsbry(istvar(itrc)))%dkind=
pio_fout
2132 hss(ng)%pioVar(idsbry(istvar(itrc)))%gtype=r3dobc
2133# endif
2134# ifdef ADJUST_STFLUX
2135 ELSE IF (trim(var_name(i)).eq. &
2136 & trim(vname(1,idtsur(itrc)))) THEN
2137 got_var(idtsur(itrc))=.true.
2138 hss(ng)%pioVar(idtsur(itrc))%vd=
var_desc(i)
2139 hss(ng)%pioVar(idtsur(itrc))%dkind=
pio_fout
2140 hss(ng)%pioVar(idtsur(itrc))%gtype=r2dvar
2141# endif
2142 END IF
2143 END DO
2144# endif
2145 END DO
2146
2147
2148
2149
2150 IF (.not.got_var(idtime)) THEN
2151 IF (master) WRITE (stdout,70) trim(vname(1,idtime)), &
2152 & trim(ncname)
2153 exit_flag=3
2154 RETURN
2155 END IF
2156 IF (.not.got_var(idfsur)) THEN
2157 IF (master) WRITE (stdout,70) trim(vname(1,idfsur)), &
2158 & trim(ncname)
2159 exit_flag=3
2160 RETURN
2161 END IF
2162 IF (.not.got_var(idubar)) THEN
2163 IF (master) WRITE (stdout,70) trim(vname(1,idubar)), &
2164 & trim(ncname)
2165 exit_flag=3
2166 RETURN
2167 END IF
2168 IF (.not.got_var(idvbar)) THEN
2169 IF (master) WRITE (stdout,70) trim(vname(1,idvbar)), &
2170 & trim(ncname)
2171 exit_flag=3
2172 RETURN
2173 END IF
2174# ifdef ADJUST_BOUNDARY
2175 IF (.not.got_var(idsbry(isfsur))) THEN
2176 IF (master) WRITE (stdout,70) trim(vname(1,idsbry(isfsur))), &
2177 & trim(ncname)
2178 exit_flag=3
2179 RETURN
2180 END IF
2181 IF (.not.got_var(idsbry(isubar))) THEN
2182 IF (master) WRITE (stdout,70) trim(vname(1,idsbry(isubar))), &
2183 & trim(ncname)
2184 exit_flag=3
2185 RETURN
2186 END IF
2187 IF (.not.got_var(idsbry(isvbar))) THEN
2188 IF (master) WRITE (stdout,70) trim(vname(1,idsbry(isvbar))), &
2189 & trim(ncname)
2190 exit_flag=3
2191 RETURN
2192 END IF
2193# endif
2194# ifdef ADJUST_WSTRESS
2195 IF (.not.got_var(idusms)) THEN
2196 IF (master) WRITE (stdout,70) trim(vname(1,idusms)), &
2197 & trim(ncname)
2198 exit_flag=3
2199 RETURN
2200 END IF
2201 IF (.not.got_var(idvsms)) THEN
2202 IF (master) WRITE (stdout,70) trim(vname(1,idvsms)), &
2203 & trim(ncname)
2204 exit_flag=3
2205 RETURN
2206 END IF
2207# endif
2208# ifdef SOLVE3D
2209 IF (.not.got_var(iduvel)) THEN
2210 IF (master) WRITE (stdout,70) trim(vname(1,iduvel)), &
2211 & trim(ncname)
2212 exit_flag=3
2213 RETURN
2214 END IF
2215 IF (.not.got_var(idvvel)) THEN
2216 IF (master) WRITE (stdout,70) trim(vname(1,idvvel)), &
2217 & trim(ncname)
2218 exit_flag=3
2219 RETURN
2220 END IF
2221# ifdef ADJUST_BOUNDARY
2222 IF (.not.got_var(idsbry(isuvel))) THEN
2223 IF (master) WRITE (stdout,70) trim(vname(1,idsbry(isuvel))), &
2224 & trim(ncname)
2225 exit_flag=3
2226 RETURN
2227 END IF
2228 IF (.not.got_var(idsbry(isvvel))) THEN
2229 IF (master) WRITE (stdout,70) trim(vname(1,idsbry(isvvel))), &
2230 & trim(ncname)
2231 exit_flag=3
2232 RETURN
2233 END IF
2234# endif
2235# endif
2236# ifdef SOLVE3D
2237 DO itrc=1,nt(ng)
2238 IF (.not.got_var(idtvar(itrc))) THEN
2239 IF (master) WRITE (stdout,70) trim(vname(1,idtvar(itrc))), &
2240 & trim(ncname)
2241 exit_flag=3
2242 RETURN
2243 END IF
2244# ifdef ADJUST_BOUNDARY
2245 IF (.not.got_var(idsbry(istvar(itrc)))) THEN
2246 IF (master) WRITE (stdout,70) &
2247 & trim(vname(1,idsbry(istvar(itrc)))), &
2248 & trim(ncname)
2249 exit_flag=3
2250 RETURN
2251 END IF
2252# endif
2253# ifdef ADJUST_STFLUX
2254 IF (.not.got_var(idtsur(itrc)).and.lstflux(itrc,ng)) THEN
2255 IF (master) WRITE (stdout,70) trim(vname(1,idtsur(itrc))), &
2256 & trim(ncname)
2257 exit_flag=3
2258 RETURN
2259 END IF
2260# endif
2261 END DO
2262# endif
2263
2264
2265
2266 hss(ng)%Rindex=rec_size
2267 END IF query
2268
2269 10 FORMAT (2x,'DEF_HESSIAN_PIO - creating Hessian file,',t56, &
2270 & 'Grid ',i2.2,': ',a)
2271 20 FORMAT (2x,'DEF_HESSIAN_PIO - inquiring Hessian file,',t56, &
2272 & 'Grid ',i2.2,': ',a)
2273 30 FORMAT (/,' DEF_HESSIAN_PIO - unable to create Hessian NetCDF', &
2274 & ' file:',1x,a)
2275 40 FORMAT (a,', Hessian eigenvectors')
2276 50 FORMAT (1pe11.4,1x,'millimeter')
2277 60 FORMAT (/,' DEF_HESSIAN_PIO - unable to open Hessian NetCDF', &
2278 & ' file: ',a)
2279 70 FORMAT (/,' DEF_HESSIAN_PIO - unable to find variable: ',a,2x, &
2280 & ' in Hessian NetCDF file: ',a)
2281
2282 RETURN
integer, parameter pio_type
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)