856
857
859
860
861
862 integer, intent(in) :: ng, tile, model
863 integer, intent(in) :: LBi, UBi, LBj, UBj
864
865 character (len=*), intent(in) :: INPncname
866
867
868
869 integer :: Iinp, Iout, Irec, MyRec, Nrec
870 integer :: i, status, vindex
871 integer :: Vsize(4)
872 integer :: j, k, itrc
873
874 real(r8) :: Fmin, Fmax
875
876 real(dp) :: scale
877 real(dp) :: inp_time(1)
878 real(dp) :: timeI, timeR, fac
879
880 character (len=*), parameter :: MyFile = &
881 & __FILE__//", time_corr_pio"
882
883 TYPE (IO_Desc_t), pointer :: ioDesc
884 TYPE (My_VarDesc), pointer :: pioVar
885
886# include "set_bounds.h"
887
888 sourcefile=myfile
889
890
891
892
893
894
895
897 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
898 nrec=rec_size
899
900
901
903 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
904
905
906
907
908 DO i=1,4
909 vsize(i)=0
910 END DO
911
912
913
914
915
916
917
919 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
920 WRITE (stdout,10) trim(inpncname)
921 RETURN
922 END IF
923
924
925
926 iinp=1
927 scale=1.0_dp
928
929
930
931 IF (find_string(var_name, n_var, vname(1,idztlf), vindex)) THEN
932
934 IF (kind(ocean(ng)%f_zetaS).eq.8) THEN
935 piovar%dkind=pio_double
937 ELSE
938 piovar%dkind=pio_real
940 END IF
941 piovar%gtype=r2dvar
942
943 DO myrec=1,nrec-1
944 status=nf_fread2d(ng, model, inpncname, inppiofile, &
945 & vname(1,idztlf), piovar, &
946 & myrec, iodesc, vsize, &
947 & lbi, ubi, lbj, ubj, &
948 & scale, fmin, fmax, &
949# ifdef MASKING
950 & grid(ng) % rmask, &
951# endif
952 & ocean(ng) % f_zetaS(:,:,myrec))
953 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
954 IF (master) THEN
955 WRITE (stdout,20) trim(vname(1,idztlf)), myrec, &
956 & trim(inpncname)
957 END IF
958 exit_flag=2
959 ioerror=status
960 RETURN
961 END IF
962 END DO
963 ELSE
964 IF (master) WRITE (stdout,40) trim(vname(1,idztlf)), &
965 & trim(inpncname)
966 exit_flag=2
967 RETURN
968 END IF
969
970
971
972 IF (find_string(var_name, n_var, vname(1,idubtf), vindex)) THEN
973
975 IF (kind(ocean(ng)%f_ubarS).eq.8) THEN
976 piovar%dkind=pio_double
978 ELSE
979 piovar%dkind=pio_real
981 END IF
982 piovar%gtype=u2dvar
983
984 DO myrec=1,nrec-1
985 status=nf_fread2d(ng, model, inpncname, inppiofile, &
986 & vname(1,idubtf), piovar, &
987 & myrec, iodesc, vsize, &
988 & lbi, ubi, lbj, ubj, &
989 & scale, fmin, fmax, &
990# ifdef MASKING
991 & grid(ng) % umask_full, &
992# endif
993 & ocean(ng) % f_ubarS(:,:,myrec))
994 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
995 IF (master) THEN
996 WRITE (stdout,20) trim(vname(1,idubtf)), myrec, &
997 & trim(inpncname)
998 END IF
999 exit_flag=2
1000 ioerror=status
1001 RETURN
1002 END IF
1003 END DO
1004 ELSE
1005 IF (master) WRITE (stdout,20) trim(vname(1,idubtf)), &
1006 & trim(inpncname)
1007 exit_flag=2
1008 RETURN
1009 END IF
1010
1011
1012
1013 IF (find_string(var_name, n_var, vname(1,idvbtf), vindex)) THEN
1014
1016 IF (kind(ocean(ng)%f_vbarS).eq.8) THEN
1017 piovar%dkind=pio_double
1019 ELSE
1020 piovar%dkind=pio_real
1022 END IF
1023 piovar%gtype=v2dvar
1024
1025 DO myrec=1,nrec-1
1026 status=nf_fread2d(ng, model, inpncname, inppiofile, &
1027 & vname(1,idvbtf), piovar, &
1028 & myrec, iodesc, vsize, &
1029 & lbi, ubi, lbj, ubj, &
1030 & scale, fmin, fmax, &
1031# ifdef MASKING
1032 & grid(ng) % vmask_full, &
1033# endif
1034 & ocean(ng) % f_vbarS(:,:,myrec))
1035 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1036 IF (master) THEN
1037 WRITE (stdout,20) trim(vname(1,idvbtf)), myrec, &
1038 & trim(inpncname)
1039 END IF
1040 exit_flag=2
1041 ioerror=status
1042 RETURN
1043 END IF
1044 END DO
1045 ELSE
1046 IF (master) WRITE (stdout,40) trim(vname(1,idvbtf)), &
1047 & trim(inpncname)
1048 exit_flag=2
1049 RETURN
1050 END IF
1051
1052# ifdef SOLVE3D
1053
1054
1055
1056 IF (find_string(var_name, n_var, vname(1,idutlf), vindex)) THEN
1057
1059 IF (kind(ocean(ng)%f_uS).eq.8) THEN
1060 piovar%dkind=pio_double
1062 ELSE
1063 piovar%dkind=pio_real
1065 END IF
1066 piovar%gtype=u3dvar
1067
1068 DO myrec=1,nrec-1
1069 status=nf_fread3d(ng, model, inpncname, inppiofile, &
1070 & vname(1,idutlf), piovar, &
1071 & myrec, iodesc, vsize, &
1072 & lbi, ubi, lbj, ubj, 1, n(ng), &
1073 & scale, fmin, fmax, &
1074# ifdef MASKING
1075 & grid(ng) % umask_full, &
1076# endif
1077 & ocean(ng) % f_uS(:,:,:,myrec))
1078 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1079 IF (master) THEN
1080 WRITE (stdout,20) trim(vname(1,idutlf)), myrec, &
1081 & trim(inpncname)
1082 END IF
1083 exit_flag=2
1084 ioerror=status
1085 RETURN
1086 END IF
1087 END DO
1088 ELSE
1089 IF (master) WRITE (stdout,40) trim(vname(1,idutlf)), &
1090 & trim(inpncname)
1091 exit_flag=2
1092 RETURN
1093 END IF
1094
1095
1096
1097 IF (find_string(var_name, n_var, vname(1,idvtlf), vindex)) THEN
1098
1100 IF (kind(ocean(ng)%f_vS).eq.8) THEN
1101 piovar%dkind=pio_double
1103 ELSE
1104 piovar%dkind=pio_real
1106 END IF
1107 piovar%gtype=v3dvar
1108
1109 DO myrec=1,nrec-1
1110 status=nf_fread3d(ng, model, inpncname, inppiofile, &
1111 & vname(1,idvtlf), piovar, &
1112 & myrec, iodesc, vsize, &
1113 & lbi, ubi, lbj, ubj, 1, n(ng), &
1114 & scale, fmin, fmax, &
1115# ifdef MASKING
1116 & grid(ng) % vmask_full, &
1117# endif
1118 & ocean(ng) % f_vS(:,:,:,myrec))
1119 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1120 IF (master) THEN
1121 WRITE (stdout,20) trim(vname(1,idvtlf)), myrec, &
1122 & trim(inpncname)
1123 END IF
1124 exit_flag=2
1125 ioerror=status
1126 RETURN
1127 END IF
1128 END DO
1129 ELSE
1130 IF (master) WRITE (stdout,40) trim(vname(1,idvtlf)), &
1131 & trim(inpncname)
1132 exit_flag=2
1133 RETURN
1134 END IF
1135
1136
1137
1138 DO itrc=1,nt(ng)
1139 IF (find_string(var_name, n_var, vname(1,idttlf(itrc)), &
1140 & vindex)) THEN
1141
1143 IF (kind(ocean(ng)%f_tS).eq.8) THEN
1144 piovar%dkind=pio_double
1146 ELSE
1147 piovar%dkind=pio_real
1149 END IF
1150 piovar%gtype=r3dvar
1151
1152 DO myrec=1,nrec-1
1153 status=nf_fread3d(ng, model, inpncname, inppiofile, &
1154 & vname(1,idttlf(itrc)), piovar, &
1155 & myrec, iodesc, vsize, &
1156 & lbi, ubi, lbj, ubj, 1, n(ng), &
1157 & scale, fmin, fmax, &
1158# ifdef MASKING
1159 & grid(ng) % rmask, &
1160# endif
1161 & ocean(ng) % f_tS(:,:,:,myrec,itrc))
1162 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1163 IF (master) THEN
1164 WRITE (stdout,20) trim(vname(1,idttlf(itrc))), myrec, &
1165 & trim(inpncname)
1166 END IF
1167 exit_flag=2
1168 ioerror=status
1169 RETURN
1170 END IF
1171 END DO
1172 ELSE
1173 IF (master) WRITE (stdout,40) trim(vname(1,idttlf(i))), &
1174 & trim(inpncname)
1175 exit_flag=2
1176 RETURN
1177 END IF
1178 END DO
1179# endif
1180
1181
1182
1183
1184
1185
1186 iout=0
1187 rec_loop : DO irec=nrec-1,1,-1
1188 iout=iout+1
1189 timei=dstart*day2sec+(iout-1)*nadj(ng)*dt(ng)
1190
1191
1192
1193 IF (find_string(var_name, n_var, vname(1,idtime), vindex)) THEN
1195 & vname(1,idtime), &
1196 & rclock%DateNumber, inp_time, &
1197 & piofile = inppiofile, &
1198 & start = (/irec/), &
1199 & total = (/1/))
1200 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1201
1203 & vname(1,idtime), inp_time, &
1204 & (/iout/), (/1/), &
1205 & piofile = tlf(ng)%pioFile)
1206 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1207 ELSE
1208 IF (master) WRITE (stdout,20) trim(vname(1,idtime)), &
1209 & trim(inpncname)
1210 exit_flag=2
1211 END IF
1212
1213
1214
1215
1216
1217
1218
1219 DO j=jstrr,jendr
1220 DO i=istrr,iendr
1221 ocean(ng) % ad_zeta(i,j,iinp)=0.0_r8
1222 END DO
1223 END DO
1224
1225
1226
1227 IF (find_string(var_name, n_var, vname(1,idztlf), vindex)) THEN
1228
1229 IF (tlf(ng)%pioVar(idztlf)%dkind.eq.pio_double) THEN
1231 ELSE
1233 END IF
1234
1235 DO myrec=nrec-1,1,-1
1236
1237
1238
1239 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1240 fac=exp(-abs(timei-timer)/tdecay(isfsur,ng))
1241# ifdef ENDPOINT_TRAPEZOIDAL
1242 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1243 fac=0.5_r8*fac
1244 END IF
1245# endif
1246
1247
1248
1249 DO j=jstrr,jendr
1250 DO i=istrr,iendr
1251 ocean(ng) % ad_zeta(i,j,iinp)= &
1252 & ocean(ng) % ad_zeta(i,j,iinp)+ &
1253 & fac*ocean(ng) % f_zetaS(i,j,myrec)
1254 END DO
1255 END DO
1256 END DO
1257
1258
1259
1260 status=nf_fwrite2d(ng, model, tlf(ng)%pioFile, idztlf, &
1261 & tlf(ng)%pioVar(idztlf), &
1262 & iout, iodesc, &
1263 & lbi, ubi, lbj, ubj, scale, &
1264# ifdef MASKING
1265 & grid(ng) % rmask, &
1266# endif
1267 & ocean(ng) % ad_zeta(:,:,iinp))
1268 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1269 IF (master) THEN
1270 WRITE (stdout,30) trim(vname(1,idztlf)), irec, &
1271 & trim(tlf(ng)%name)
1272 END IF
1273 exit_flag=3
1274 ioerror=status
1275 RETURN
1276 END IF
1277 ELSE
1278 IF (master) WRITE (stdout,40) trim(vname(1,idztlf)), &
1279 & trim(inpncname)
1280 exit_flag=2
1281 RETURN
1282 END IF
1283
1284
1285
1286
1287
1288
1289
1290 DO j=jstrr,jendr
1291 DO i=istr,iendr
1292 ocean(ng) % ad_ubar(i,j,iinp)=0.0_r8
1293 END DO
1294 END DO
1295
1296
1297
1298 IF (find_string(var_name, n_var, vname(1,idubtf), vindex)) THEN
1299
1300 IF (tlf(ng)%pioVar(idubtf)%dkind.eq.pio_double) THEN
1302 ELSE
1304 END IF
1305
1306 DO myrec=nrec-1,1,-1
1307
1308
1309
1310 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1311 fac=exp(-abs(timei-timer)/tdecay(isubar,ng))
1312# ifdef ENDPOINT_TRAPEZOIDAL
1313 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1314 fac=0.5_r8*fac
1315 END IF
1316# endif
1317
1318
1319
1320 DO j=jstrr,jendr
1321 DO i=istr,iendr
1322 ocean(ng) % ad_ubar(i,j,iinp)= &
1323 & ocean(ng) % ad_ubar(i,j,iinp)+ &
1324 & fac*ocean(ng) % f_ubarS(i,j,myrec)
1325 END DO
1326 END DO
1327 END DO
1328
1329
1330
1331 status=nf_fwrite2d(ng, model, tlf(ng)%pioFile, idubtf, &
1332 & tlf(ng)%pioVar(idubtf), &
1333 & iout, iodesc, &
1334 & lbi, ubi, lbj, ubj, scale, &
1335# ifdef MASKING
1336 & grid(ng) % umask_full, &
1337# endif
1338 & ocean(ng) % ad_ubar(:,:,iinp))
1339 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1340 IF (master) THEN
1341 WRITE (stdout,30) trim(vname(1,idubtf)), irec, &
1342 & trim(tlf(ng)%name)
1343 END IF
1344 exit_flag=3
1345 ioerror=status
1346 RETURN
1347 END IF
1348 ELSE
1349 IF (master) WRITE (stdout,20) trim(vname(1,idubtf)), &
1350 & trim(inpncname)
1351 exit_flag=2
1352 RETURN
1353 END IF
1354
1355
1356
1357
1358
1359
1360
1361 DO j=jstr,jendr
1362 DO i=istrr,iendr
1363 ocean(ng) % ad_vbar(i,j,iinp)=0.0_r8
1364 END DO
1365 END DO
1366
1367
1368
1369 IF (find_string(var_name, n_var, vname(1,idvbtf), vindex)) THEN
1370
1371 IF (tlf(ng)%pioVar(idvbtf)%dkind.eq.pio_double) THEN
1373 ELSE
1375 END IF
1376
1377 DO myrec=nrec-1,1,-1
1378
1379
1380
1381 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1382 fac=exp(-abs(timei-timer)/tdecay(isvbar,ng))
1383# ifdef ENDPOINT_TRAPEZOIDAL
1384 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1385 fac=0.5_r8*fac
1386 END IF
1387# endif
1388
1389
1390
1391 DO j=jstr,jendr
1392 DO i=istrr,iendr
1393 ocean(ng) % ad_vbar(i,j,iinp)= &
1394 & ocean(ng) % ad_vbar(i,j,iinp)+ &
1395 & fac*ocean(ng) % f_vbarS(i,j,myrec)
1396 END DO
1397 END DO
1398 END DO
1399
1400
1401
1402 status=nf_fwrite2d(ng, model, tlf(ng)%pioFile, idvbtf, &
1403 & tlf(ng)%pioVar(idvbtf), &
1404 & iout, iodesc, &
1405 & lbi, ubi, lbj, ubj, scale, &
1406# ifdef MASKING
1407 & grid(ng) % vmask_full, &
1408# endif
1409 & ocean(ng) % ad_vbar(:,:,iinp))
1410 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1411 IF (master) THEN
1412 WRITE (stdout,30) trim(vname(1,idvbtf)), irec, &
1413 & trim(tlf(ng)%name)
1414 END IF
1415 exit_flag=3
1416 ioerror=status
1417 RETURN
1418 END IF
1419 ELSE
1420 IF (master) WRITE (stdout,20) trim(vname(1,idvbtf)), &
1421 & trim(inpncname)
1422 exit_flag=2
1423 RETURN
1424 END IF
1425
1426# ifdef SOLVE3D
1427
1428
1429
1430
1431
1432
1433
1434 DO k=1,n(ng)
1435 DO j=jstrr,jendr
1436 DO i=istr,iendr
1437 ocean(ng) % ad_u(i,j,k,iinp)=0.0_r8
1438 END DO
1439 END DO
1440 END DO
1441
1442
1443
1444 IF (find_string(var_name, n_var, vname(1,idutlf), vindex)) THEN
1445
1446 IF (tlf(ng)%pioVar(idutlf)%dkind.eq.pio_double) THEN
1448 ELSE
1450 END IF
1451
1452 DO myrec=nrec-1,1,-1
1453
1454
1455
1456 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1457 fac=exp(-abs(timei-timer)/tdecay(isuvel,ng))
1458# ifdef ENDPOINT_TRAPEZOIDAL
1459 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1460 fac=0.5_r8*fac
1461 END IF
1462# endif
1463
1464
1465
1466 DO k=1,n(ng)
1467 DO j=jstrr,jendr
1468 DO i=istr,iendr
1469 ocean(ng) % ad_u(i,j,k,iinp)= &
1470 & ocean(ng) % ad_u(i,j,k,iinp)+ &
1471 & fac*ocean(ng) % f_uS(i,j,k,myrec)
1472 END DO
1473 END DO
1474 END DO
1475 END DO
1476
1477
1478
1479 status=nf_fwrite3d(ng, model, tlf(ng)%pioFile, idutlf, &
1480 & tlf(ng)%pioVar(idutlf), &
1481 & iout, iodesc, &
1482 & lbi, ubi, lbj, ubj, 1, n(ng), scale, &
1483# ifdef MASKING
1484 & grid(ng) % umask_full, &
1485# endif
1486 & ocean(ng) % ad_u(:,:,:,iinp))
1487 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1488 IF (master) THEN
1489 WRITE (stdout,30) trim(vname(1,idutlf)), irec, &
1490 & trim(tlf(ng)%name)
1491 END IF
1492 exit_flag=3
1493 ioerror=status
1494 RETURN
1495 END IF
1496 ELSE
1497 IF (master) WRITE (stdout,40) trim(vname(1,idutlf)), &
1498 & trim(inpncname)
1499 exit_flag=2
1500 RETURN
1501 END IF
1502
1503
1504
1505
1506
1507
1508
1509 DO k=1,n(ng)
1510 DO j=jstr,jendr
1511 DO i=istrr,iendr
1512 ocean(ng) % ad_v(i,j,k,iinp)=0.0_r8
1513 END DO
1514 END DO
1515 END DO
1516
1517
1518
1519 IF (find_string(var_name, n_var, vname(1,idvtlf), vindex)) THEN
1520
1521 IF (tlf(ng)%pioVar(idvtlf)%dkind.eq.pio_double) THEN
1523 ELSE
1525 END IF
1526
1527 DO myrec=nrec-1,1,-1
1528
1529
1530
1531 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1532 fac=exp(-abs(timei-timer)/tdecay(isvvel,ng))
1533# ifdef ENDPOINT_TRAPEZOIDAL
1534 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1535 fac=0.5_r8*fac
1536 END IF
1537# endif
1538
1539
1540
1541 DO k=1,n(ng)
1542 DO j=jstr,jendr
1543 DO i=istrr,iendr
1544 ocean(ng) % ad_v(i,j,k,iinp)= &
1545 & ocean(ng) % ad_v(i,j,k,iinp)+ &
1546 & fac*ocean(ng) % f_vS(i,j,k,myrec)
1547 END DO
1548 END DO
1549 END DO
1550 END DO
1551
1552
1553
1554 status=nf_fwrite3d(ng, model, tlf(ng)%pioFile, idvtlf, &
1555 & tlf(ng)%pioVar(idvtlf), &
1556 & iout, iodesc, &
1557 & lbi, ubi, lbj, ubj, 1, n(ng), scale, &
1558# ifdef MASKING
1559 & grid(ng) % vmask_full, &
1560# endif
1561 & ocean(ng) % ad_v(:,:,:,iinp))
1562 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1563 IF (master) THEN
1564 WRITE (stdout,30) trim(vname(1,idvtlf)), irec, &
1565 & trim(tlf(ng)%name)
1566 END IF
1567 exit_flag=3
1568 ioerror=status
1569 RETURN
1570 END IF
1571 ELSE
1572 IF (master) WRITE (stdout,40) trim(vname(1,idvtlf)), &
1573 & trim(inpncname)
1574 exit_flag=2
1575 RETURN
1576 END IF
1577
1578
1579
1580
1581
1582
1583
1584 DO itrc=1,nt(ng)
1585 DO k=1,n(ng)
1586 DO j=jstrr,jendr
1587 DO i=istrr,iendr
1588 ocean(ng) % ad_t(i,j,k,iinp,itrc)=0.0_r8
1589 END DO
1590 END DO
1591 END DO
1592 END DO
1593
1594
1595
1596 DO itrc=1,nt(ng)
1597 IF (find_string(var_name, n_var, vname(1,idttlf(itrc)), &
1598 & vindex)) THEN
1599
1600 IF (tlf(ng)%pioTrc(itrc)%dkind.eq.pio_double) THEN
1602 ELSE
1604 END IF
1605
1606 DO myrec=nrec-1,1,-1
1607
1608
1609
1610 timer=dstart*day2sec+(nrec-1-myrec)*nadj(ng)*dt(ng)
1611 fac=exp(-abs(timei-timer)/tdecay(istvar(itrc),ng))
1612# ifdef ENDPOINT_TRAPEZOIDAL
1613 IF ((myrec.eq.1).or.(myrec.eq.(nrec-1))) THEN
1614 fac=0.5_r8*fac
1615 END IF
1616# endif
1617
1618
1619
1620 DO k=1,n(ng)
1621 DO j=jstr,jendr
1622 DO i=istrr,iendr
1623 ocean(ng) % ad_t(i,j,k,iinp,itrc)= &
1624 & ocean(ng) % ad_t(i,j,k,iinp,itrc)+ &
1625 & fac*ocean(ng) % f_tS(i,j,k,myrec,itrc)
1626 END DO
1627 END DO
1628 END DO
1629 END DO
1630
1631
1632
1633 status=nf_fwrite3d(ng, model, tlf(ng)%pioFile, &
1634 & idttlf(itrc), tlf(ng)%pioTrc(itrc), &
1635 & iout, iodesc, &
1636 & lbi, ubi, lbj, ubj, 1, n(ng), scale, &
1637# ifdef MASKING
1638 & grid(ng) % rmask, &
1639# endif
1640 & ocean(ng) % ad_t(:,:,:,iinp,itrc))
1641 IF (founderror(status, nf90_noerr, __line__, myfile)) THEN
1642 IF (master) THEN
1643 WRITE (stdout,30) trim(vname(1,idttlf(itrc))), irec, &
1644 & trim(tlf(ng)%name)
1645 END IF
1646 exit_flag=3
1647 ioerror=status
1648 RETURN
1649 END IF
1650 ELSE
1651 IF (master) WRITE (stdout,40) trim(vname(1,idttlf(i))), &
1652 & trim(inpncname)
1653 exit_flag=2
1654 RETURN
1655 END IF
1656 END DO
1657# endif
1658 END DO rec_loop
1659
1660
1661
1662
1663
1664
1666 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1667
1668 IF (master) WRITE (stdout,50) nrec-1, trim(tlf(ng)%name)
1669
1670 10 FORMAT (/,' TIME_CORR_PIO - unable to open input NetCDF', &
1671 & ' file: ',a)
1672 20 FORMAT (/,' TIME_CORR_PIO - error while reading variable: ',a, &
1673 & 2x,'at time record = ',i3,/,17x,'in input NetCDF file:', &
1674 & 1x,a)
1675 30 FORMAT (/,' TIME_CORR_PIO - error while writing variable: ',a, &
1676 & 2x,'at time record = ',i3,/,17x,'into NetCDF file: ',a)
1677 40 FORMAT (/,' TIME_CORR_PIO - cannot find state variable: ',a, &
1678 & /,18x,'in input NetCDF file: ',a)
1679 50 FORMAT (2x,'TIME_CORR_PIO - wrote convolved adjoint impulses', &
1680 & ', records: 001 to ',i3.3,/,21x,'file: ',a)
1681
1682 RETURN
type(io_desc_t), dimension(:), pointer iodesc_dp_r3dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_u3dvar
subroutine, public pio_netcdf_sync(ng, model, ncname, piofile)
type(io_desc_t), dimension(:), pointer iodesc_sp_u2dvar
type(io_desc_t), dimension(:), pointer iodesc_dp_u3dvar
type(var_desc_t), dimension(:), pointer var_desc
type(io_desc_t), dimension(:), pointer iodesc_sp_r2dvar
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)
type(io_desc_t), dimension(:), pointer iodesc_dp_u2dvar
type(io_desc_t), dimension(:), pointer iodesc_dp_v3dvar
subroutine, public pio_netcdf_check_dim(ng, model, ncname, piofile)
type(io_desc_t), dimension(:), pointer iodesc_dp_v2dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_v3dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_r3dvar
type(io_desc_t), dimension(:), pointer iodesc_dp_r2dvar
type(io_desc_t), dimension(:), pointer iodesc_sp_v2dvar