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