115 & InpStrRec, InpEndRec, OutStrRec, &
116 & LBi, UBi, LBj, UBj)
121 integer,
intent(in) :: ng, tile, model
122 integer,
intent(in) :: inpstrrec, inpendrec
123 integer,
intent(in) :: lbi, ubi, lbj, ubj
125 integer,
intent(inout) :: outstrrec
127 character (len=*) :: inpname, outname
131 integer :: inpid, inprec, outid, outrec, tindex
132 integer :: gtype, i, ic, itrc, status
136 real(r8) :: fmin, fmax
137 real(dp) :: fscl, stime
139 character (len=15) :: tstring
140 character (len=22) :: t_code
142 character (len=*),
parameter :: myfile = &
143 & __FILE__//
", state_join_nf90"
155 WRITE (
stdout,10) trim(inpname)
163 WRITE (
stdout,10) trim(inpname)
186 rec_loop :
DO inprec=inpstrrec,inpendrec
188 var_loop :
DO i=1,
n_var
195 &
rclock%DateNumber, stime, &
197 & start = (/inprec/), &
210 & (/outrec/), (/1/), &
222 WRITE (tstring,
'(f15.4)') stime*
sec2day
224 WRITE (
stdout,20) t_code, &
225 & ng, trim(adjustl(tstring)), inprec, &
226 & tindex, trim(inpname), &
227 & ng, trim(adjustl(tstring)), outrec, &
228 & tindex, trim(outname)
236 status=
nf_fread2d(ng, model, inpname, inpid, &
238 & inprec, gtype, vsize, &
239 & lbi, ubi, lbj, ubj, &
240 & fscl, fmin, fmax, &
242 &
grid(ng) % rmask, &
244 &
ocean(ng) % zeta(:,:,tindex))
245 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
256 &
var_id(i), outrec, gtype, &
257 & lbi, ubi, lbj, ubj, fscl, &
259 &
grid(ng) % rmask, &
261 &
ocean(ng) % zeta(:,:,tindex), &
262 & setfillval = .false.)
263 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
283 status=
nf_fread2d(ng, model, inpname, inpid, &
285 & inprec, gtype, vsize, &
286 & lbi, ubi, lbj, ubj, &
287 & fscl, fmin, fmax, &
289 &
grid(ng) % rmask, &
291 &
ocean(ng) % rzeta(:,:,tindex))
292 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
303 &
var_id(i), outrec, gtype, &
304 & lbi, ubi, lbj, ubj, fscl, &
306 &
grid(ng) % rmask, &
308 &
ocean(ng) % rzeta(:,:,tindex))
309 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
328 status=
nf_fread2d(ng, model, inpname, inpid, &
330 & inprec, gtype, vsize, &
331 & lbi, ubi, lbj, ubj, &
332 & fscl, fmin, fmax, &
334 &
grid(ng) % umask_full, &
336 &
ocean(ng) % ubar(:,:,tindex))
337 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
348 &
var_id(i), outrec, gtype, &
349 & lbi, ubi, lbj, ubj, fscl, &
351 &
grid(ng) % umask_full, &
353 &
ocean(ng) % ubar(:,:,tindex))
354 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
374 status=
nf_fread2d(ng, model, inpname, inpid, &
376 & inprec, gtype, vsize, &
377 & lbi, ubi, lbj, ubj, &
378 & fscl, fmin, fmax, &
380 &
grid(ng) % umask_full, &
382 &
ocean(ng) % rubar(:,:,tindex))
383 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
394 &
var_id(i), outrec, gtype, &
395 & lbi, ubi, lbj, ubj, fscl, &
397 &
grid(ng) % umask_full, &
399 &
ocean(ng) % rubar(:,:,tindex))
400 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
419 status=
nf_fread2d(ng, model, inpname, inpid, &
421 & inprec, gtype, vsize, &
422 & lbi, ubi, lbj, ubj, &
423 & fscl, fmin, fmax, &
425 &
grid(ng) % vmask_full, &
427 &
ocean(ng) % vbar(:,:,tindex))
428 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
439 &
var_id(i), outrec, gtype, &
440 & lbi, ubi, lbj, ubj, fscl, &
442 &
grid(ng) % vmask_full, &
444 &
ocean(ng) % vbar(:,:,tindex))
445 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
465 status=
nf_fread2d(ng, model, inpname, inpid, &
467 & inprec, gtype, vsize, &
468 & lbi, ubi, lbj, ubj, &
469 & fscl, fmin, fmax, &
471 &
grid(ng) % vmask_full, &
473 &
ocean(ng) % rvbar(:,:,tindex))
474 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
485 &
var_id(i), outrec, gtype, &
486 & lbi, ubi, lbj, ubj, fscl, &
488 &
grid(ng) % vmask_full, &
490 &
ocean(ng) % rvbar(:,:,tindex))
491 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
512 status=
nf_fread2d(ng, model, inpname, inpid, &
514 & inprec, gtype, vsize, &
515 & lbi, ubi, lbj, ubj, &
516 & fscl, fmin, fmax, &
518 &
grid(ng) % umask_full, &
521 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
532 &
var_id(i), outrec, gtype, &
533 & lbi, ubi, lbj, ubj, fscl, &
535 &
grid(ng) % umask_full, &
538 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
557 status=
nf_fread2d(ng, model, inpname, inpid, &
559 & inprec, gtype, vsize, &
560 & lbi, ubi, lbj, ubj, &
561 & fscl, fmin, fmax, &
563 &
grid(ng) % umask, &
566 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
577 &
var_id(i), outrec, gtype, &
578 & lbi, ubi, lbj, ubj, fscl, &
580 &
grid(ng) % umask, &
583 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
601 status=
nf_fread2d(ng, model, inpname, inpid, &
603 & inprec, gtype, vsize, &
604 & lbi, ubi, lbj, ubj, &
605 & fscl, fmin, fmax, &
607 &
grid(ng) % umask, &
610 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
621 &
var_id(i), outrec, gtype, &
622 & lbi, ubi, lbj, ubj, fscl, &
624 &
grid(ng) % umask, &
627 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
647 status=
nf_fread2d(ng, model, inpname, inpid, &
649 & inprec, gtype, vsize, &
650 & lbi, ubi, lbj, ubj, &
651 & fscl, fmin, fmax, &
653 &
grid(ng) % vmask_full, &
656 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
667 &
var_id(i), outrec, gtype, &
668 & lbi, ubi, lbj, ubj, fscl, &
670 &
grid(ng) % vmask_full, &
673 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
692 status=
nf_fread2d(ng, model, inpname, inpid, &
694 & inprec, gtype, vsize, &
695 & lbi, ubi, lbj, ubj, &
696 & fscl, fmin, fmax, &
698 &
grid(ng) % vmask_full, &
701 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
712 &
var_id(i), outrec, gtype, &
713 & lbi, ubi, lbj, ubj, fscl, &
715 &
grid(ng) % vmask_full, &
718 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
736 status=
nf_fread2d(ng, model, inpname, inpid, &
738 & inprec, gtype, vsize, &
739 & lbi, ubi, lbj, ubj, &
740 & fscl, fmin, fmax, &
742 &
grid(ng) % vmask_full, &
745 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
756 &
var_id(i), outrec, gtype, &
757 & lbi, ubi, lbj, ubj, fscl, &
759 &
grid(ng) % vmask_full, &
762 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
780 status=
nf_fread3d(ng, model, inpname, inpid, &
782 & inprec, gtype, vsize, &
783 & lbi, ubi, lbj, ubj, 1,
n(ng), &
784 & fscl, fmin, fmax, &
786 &
grid(ng) % umask_full, &
788 &
ocean(ng) % u(:,:,:,tindex))
789 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
800 &
var_id(i), outrec, gtype, &
801 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
803 &
grid(ng) % umask_full, &
805 &
ocean(ng) % u(:,:,:,tindex))
806 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
826 status=
nf_fread3d(ng, model, inpname, inpid, &
828 & inprec, gtype, vsize, &
829 & lbi, ubi, lbj, ubj, 1,
n(ng), &
830 & fscl, fmin, fmax, &
832 &
grid(ng) % umask_full, &
834 &
ocean(ng) % ru(:,:,:,tindex))
835 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
846 &
var_id(i), outrec, gtype, &
847 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
849 &
grid(ng) % umask_full, &
851 &
ocean(ng) % ru(:,:,:,tindex))
852 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
871 status=
nf_fread3d(ng, model, inpname, inpid, &
873 & inprec, gtype, vsize, &
874 & lbi, ubi, lbj, ubj, 1,
n(ng), &
875 & fscl, fmin, fmax, &
877 &
grid(ng) % vmask_full, &
879 &
ocean(ng) % v(:,:,:,tindex))
880 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
891 &
var_id(i), outrec, gtype, &
892 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
894 &
grid(ng) % vmask_full, &
896 &
ocean(ng) % v(:,:,:,tindex))
897 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
917 status=
nf_fread3d(ng, model, inpname, inpid, &
919 & inprec, gtype, vsize, &
920 & lbi, ubi, lbj, ubj, 1,
n(ng), &
921 & fscl, fmin, fmax, &
923 &
grid(ng) % vmask_full, &
925 &
ocean(ng) % rv(:,:,:,tindex))
926 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
937 &
var_id(i), outrec, gtype, &
938 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
940 &
grid(ng) % vmask_full, &
942 &
ocean(ng) % rv(:,:,:,tindex))
943 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
957# ifdef FORWARD_MIXING
963 status=
nf_fread3d(ng, model, inpname, inpid, &
965 & inprec, gtype, vsize, &
966 & lbi, ubi, lbj, ubj, 0,
n(ng), &
967 & fscl, fmin, fmax, &
969 &
grid(ng) % rmask, &
972 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
983 &
var_id(i), outrec, gtype, &
984 & lbi, ubi, lbj, ubj, 0,
n(ng), fscl, &
986 &
grid(ng) % rmask, &
989 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1010 tracer1_loop :
DO itrc=1,
nt(ng)
1013 status=
nf_fread3d(ng, model, inpname, inpid, &
1015 & inprec, gtype, vsize, &
1016 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1017 & fscl, fmin, fmax, &
1019 &
grid(ng) % rmask, &
1021 &
ocean(ng) % t(:,:,:,tindex,itrc))
1022 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1025 & inprec, trim(inpname)
1033 &
var_id(i), outrec, gtype, &
1034 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
1036 &
grid(ng) % rmask, &
1038 &
ocean(ng) % t(:,:,:,tindex,itrc))
1039 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1042 & outrec, trim(outname)
1058 tracer2_loop :
DO itrc=1,
nat
1061 status=
nf_fread3d(ng, model, inpname, inpid, &
1063 & inprec, gtype, vsize, &
1064 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1065 & fscl, fmin, fmax, &
1067 &
grid(ng) % rmask, &
1069 &
mixing(ng) % Akt(:,:,:,itrc))
1070 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1073 & inprec, trim(inpname)
1081 &
var_id(i), outrec, gtype, &
1082 & lbi, ubi, lbj, ubj, 0,
n(ng), fscl, &
1084 &
grid(ng) % rmask, &
1086 &
mixing(ng) % Akt(:,:,:,itrc))
1087 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1090 & outrec, trim(outname)
1121 10
FORMAT (/,
' STATE_JOIN_NF90 - unable to open grid NetCDF file:', &
1123 20
FORMAT (
'NLM: STATE_JOIN_NF90 - Concatenating state fields,', &
1124 & t75,a,/,23x,
'(Grid ',i2.2,
', t = ',a,
', InpRec=',i4.4, &
1125 &
', Index=',i1,
', InpFile: ',a,
')', &
1126 & /,19x,
'(Grid ',i2.2,
', t = ',a,
', OutRec=',i4.4, &
1127 &
', Index=',i1,
', OutFile: ',a,
')')
1128 30
FORMAT (/,
' STATE_JOIN_NF90 - error while reading variable: ', &
1129 & a,2x,
'at time record = ',i0, &
1130 & /,19x,
'in input NetCDF file: ',a)
1131 40
FORMAT (/,
' STATE_JOIN_NF90 - error while writing variable: ', &
1132 & a,2x,
'at time record = ',i0, &
1133 & /,19x,
'in output NetCDF file: ',a)
1134 50
FORMAT (21x,
'- ',a,/,23x,
'(Min = ',1p,e15.8, &
1135 &
' Max = ',1p,e15.8,
')')
1144 & InpStrRec, InpEndRec, OutStrRec, &
1145 & LBi, UBi, LBj, UBj)
1152 integer,
intent(in) :: ng, tile, model
1153 integer,
intent(in) :: inpstrrec, inpendrec
1154 integer,
intent(in) :: lbi, ubi, lbj, ubj
1156 integer,
intent(inout) :: outstrrec
1158 character (len=*) :: inpname, outname
1162 integer :: inprec, outrec, tindex
1163 integer :: i, ic, itrc, status
1167 real(r8) :: fmin, fmax
1168 real(dp) :: fscl, stime
1170 character (len=15) :: tstring
1171 character (len=22) :: t_code
1173 character (len=*),
parameter :: myfile = &
1174 & __FILE__//
", state_join_pio"
1176 TYPE (io_desc_t),
pointer :: iodesc
1179 TYPE (file_desc_t) :: piofileinp, piofileout
1191 WRITE (
stdout,10) trim(inpname)
1199 WRITE (
stdout,10) trim(inpname)
1206 & piofile = piofileinp)
1222 rec_loop :
DO inprec=inpstrrec,inpendrec
1224 var_loop :
DO i=1,
n_var
1231 &
rclock%DateNumber, stime, &
1232 & piofile = piofileinp, &
1233 & start = (/inprec/), &
1246 & (/outrec/), (/1/), &
1247 & piofile = piofileout, &
1258 WRITE (tstring,
'(f15.4)') stime*
sec2day
1260 WRITE (
stdout,20) t_code, &
1261 & ng, trim(adjustl(tstring)), inprec, &
1262 & tindex, trim(inpname), &
1263 & ng, trim(adjustl(tstring)), outrec, &
1264 & tindex, trim(outname)
1273 IF (kind(
ocean(ng)%zeta).eq.8)
THEN
1274 piovar%dkind=pio_double
1277 piovar%dkind=pio_real
1282 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1284 & inprec, iodesc, vsize, &
1285 & lbi, ubi, lbj, ubj, &
1286 & fscl, fmin, fmax, &
1288 &
grid(ng) % rmask, &
1290 &
ocean(ng) % zeta(:,:,tindex))
1291 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1301 IF (
var_type(i).eq.pio_double)
THEN
1302 piovar%dkind=pio_double
1305 piovar%dkind=pio_real
1310 & piovar, outrec, iodesc, &
1311 & lbi, ubi, lbj, ubj, fscl, &
1313 &
grid(ng) % rmask, &
1315 &
ocean(ng) % zeta(:,:,tindex), &
1316 & setfillval = .false.)
1317 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1338 IF (kind(
ocean(ng)%rzeta).eq.8)
THEN
1339 piovar%dkind=pio_double
1342 piovar%dkind=pio_real
1347 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1349 & inprec, iodesc, vsize, &
1350 & lbi, ubi, lbj, ubj, &
1351 & fscl, fmin, fmax, &
1353 &
grid(ng) % rmask, &
1355 &
ocean(ng) % rzeta(:,:,tindex))
1356 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1366 IF (
var_type(i).eq.pio_double)
THEN
1367 piovar%dkind=pio_double
1370 piovar%dkind=pio_real
1375 & piovar, outrec, iodesc, &
1376 & lbi, ubi, lbj, ubj, fscl, &
1378 &
grid(ng) % rmask, &
1380 &
ocean(ng) % rzeta(:,:,tindex))
1381 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1401 IF (kind(
ocean(ng)%ubar).eq.8)
THEN
1402 piovar%dkind=pio_double
1405 piovar%dkind=pio_real
1410 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1412 & inprec, iodesc, vsize, &
1413 & lbi, ubi, lbj, ubj, &
1414 & fscl, fmin, fmax, &
1416 &
grid(ng) % umask_full, &
1418 &
ocean(ng) % ubar(:,:,tindex))
1419 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1429 IF (
var_type(i).eq.pio_double)
THEN
1430 piovar%dkind=pio_double
1433 piovar%dkind=pio_real
1438 & piovar, outrec, iodesc, &
1439 & lbi, ubi, lbj, ubj, fscl, &
1441 &
grid(ng) % umask_full, &
1443 &
ocean(ng) % ubar(:,:,tindex))
1444 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1465 IF (kind(
ocean(ng)%rubar).eq.8)
THEN
1466 piovar%dkind=pio_double
1469 piovar%dkind=pio_real
1474 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1476 & inprec, iodesc, vsize, &
1477 & lbi, ubi, lbj, ubj, &
1478 & fscl, fmin, fmax, &
1480 &
grid(ng) % umask_full, &
1482 &
ocean(ng) % rubar(:,:,tindex))
1483 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1493 IF (
var_type(i).eq.pio_double)
THEN
1494 piovar%dkind=pio_double
1497 piovar%dkind=pio_real
1502 & piovar, outrec, iodesc, &
1503 & lbi, ubi, lbj, ubj, fscl, &
1505 &
grid(ng) % umask_full, &
1507 &
ocean(ng) % rubar(:,:,tindex))
1508 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1528 IF (kind(
ocean(ng)%vbar).eq.8)
THEN
1529 piovar%dkind=pio_double
1532 piovar%dkind=pio_real
1537 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1539 & inprec, iodesc, vsize, &
1540 & lbi, ubi, lbj, ubj, &
1541 & fscl, fmin, fmax, &
1543 &
grid(ng) % vmask_full, &
1545 &
ocean(ng) % vbar(:,:,tindex))
1546 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1556 IF (
var_type(i).eq.pio_double)
THEN
1557 piovar%dkind=pio_double
1560 piovar%dkind=pio_real
1565 & piovar, outrec, iodesc, &
1566 & lbi, ubi, lbj, ubj, fscl, &
1568 &
grid(ng) % vmask_full, &
1570 &
ocean(ng) % vbar(:,:,tindex))
1571 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1592 IF (kind(
ocean(ng)%rvbar).eq.8)
THEN
1593 piovar%dkind=pio_double
1596 piovar%dkind=pio_real
1601 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1603 & inprec, iodesc, vsize, &
1604 & lbi, ubi, lbj, ubj, &
1605 & fscl, fmin, fmax, &
1607 &
grid(ng) % vmask_full, &
1609 &
ocean(ng) % rvbar(:,:,tindex))
1610 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1620 IF (
var_type(i).eq.pio_double)
THEN
1621 piovar%dkind=pio_double
1624 piovar%dkind=pio_real
1629 & piovar, outrec, iodesc, &
1630 & lbi, ubi, lbj, ubj, fscl, &
1632 &
grid(ng) % vmask_full, &
1634 &
ocean(ng) % rvbar(:,:,tindex))
1635 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1657 IF (kind(
ocean(ng)%rufrc).eq.8)
THEN
1658 piovar%dkind=pio_double
1661 piovar%dkind=pio_real
1666 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1668 & inprec, iodesc, vsize, &
1669 & lbi, ubi, lbj, ubj, &
1670 & fscl, fmin, fmax, &
1672 &
grid(ng) % umask_full, &
1674 &
ocean(ng) % rufrc)
1675 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1685 IF (
var_type(i).eq.pio_double)
THEN
1686 piovar%dkind=pio_double
1689 piovar%dkind=pio_real
1694 & piovar, outrec, iodesc, &
1695 & lbi, ubi, lbj, ubj, fscl, &
1697 &
grid(ng) % umask_full, &
1699 &
ocean(ng) % rufrc)
1700 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1720 IF (kind(
coupling(ng)%DU_avg1).eq.8)
THEN
1721 piovar%dkind=pio_double
1724 piovar%dkind=pio_real
1729 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1731 & inprec, iodesc, vsize, &
1732 & lbi, ubi, lbj, ubj, &
1733 & fscl, fmin, fmax, &
1735 &
grid(ng) % umask, &
1738 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1748 IF (
var_type(i).eq.pio_double)
THEN
1749 piovar%dkind=pio_double
1752 piovar%dkind=pio_real
1757 & piovar, outrec, iodesc, &
1758 & lbi, ubi, lbj, ubj, fscl, &
1760 &
grid(ng) % umask, &
1763 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1782 IF (kind(
coupling(ng)%DU_avg2).eq.8)
THEN
1783 piovar%dkind=pio_double
1786 piovar%dkind=pio_real
1791 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1793 & inprec, iodesc, vsize, &
1794 & lbi, ubi, lbj, ubj, &
1795 & fscl, fmin, fmax, &
1797 &
grid(ng) % umask, &
1800 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1810 IF (
var_type(i).eq.pio_double)
THEN
1811 piovar%dkind=pio_double
1814 piovar%dkind=pio_real
1819 & piovar, outrec, iodesc, &
1820 & lbi, ubi, lbj, ubj, fscl, &
1822 &
grid(ng) % umask, &
1825 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1846 IF (kind(
ocean(ng)%rvfrc).eq.8)
THEN
1847 piovar%dkind=pio_double
1850 piovar%dkind=pio_real
1855 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1857 & inprec, iodesc, vsize, &
1858 & lbi, ubi, lbj, ubj, &
1859 & fscl, fmin, fmax, &
1861 &
grid(ng) % vmask_full, &
1863 &
ocean(ng) % rvfrc)
1864 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1874 IF (
var_type(i).eq.pio_double)
THEN
1875 piovar%dkind=pio_double
1878 piovar%dkind=pio_real
1883 & piovar, outrec, iodesc, &
1884 & lbi, ubi, lbj, ubj, fscl, &
1886 &
grid(ng) % vmask_full, &
1888 &
ocean(ng) % rvfrc)
1889 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1909 IF (kind(
coupling(ng)%DV_avg1).eq.8)
THEN
1910 piovar%dkind=pio_double
1913 piovar%dkind=pio_real
1918 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1920 & inprec, iodesc, vsize, &
1921 & lbi, ubi, lbj, ubj, &
1922 & fscl, fmin, fmax, &
1924 &
grid(ng) % vmask_full, &
1927 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1937 IF (
var_type(i).eq.pio_double)
THEN
1938 piovar%dkind=pio_double
1941 piovar%dkind=pio_real
1946 & piovar, outrec, iodesc, &
1947 & lbi, ubi, lbj, ubj, fscl, &
1949 &
grid(ng) % vmask_full, &
1952 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1971 IF (kind(
coupling(ng)%DV_avg2).eq.8)
THEN
1972 piovar%dkind=pio_double
1975 piovar%dkind=pio_real
1980 status=
nf_fread2d(ng, model, inpname, piofileinp, &
1982 & inprec, iodesc, vsize, &
1983 & lbi, ubi, lbj, ubj, &
1984 & fscl, fmin, fmax, &
1986 &
grid(ng) % vmask_full, &
1989 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1999 IF (
var_type(i).eq.pio_double)
THEN
2000 piovar%dkind=pio_double
2003 piovar%dkind=pio_real
2008 & piovar, outrec, iodesc, &
2009 & lbi, ubi, lbj, ubj, fscl, &
2011 &
grid(ng) % vmask_full, &
2014 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2033 IF (kind(
ocean(ng)%u).eq.8)
THEN
2034 piovar%dkind=pio_double
2037 piovar%dkind=pio_real
2042 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2044 & inprec, iodesc, vsize, &
2045 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2046 & fscl, fmin, fmax, &
2048 &
grid(ng) % umask_full, &
2050 &
ocean(ng) % u(:,:,:,tindex))
2051 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2061 IF (
var_type(i).eq.pio_double)
THEN
2062 piovar%dkind=pio_double
2065 piovar%dkind=pio_real
2070 & piovar, outrec, iodesc, &
2071 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
2073 &
grid(ng) % umask_full, &
2075 &
ocean(ng) % u(:,:,:,tindex))
2076 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2097 IF (kind(
ocean(ng)%ru).eq.8)
THEN
2098 piovar%dkind=pio_double
2101 piovar%dkind=pio_real
2106 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2108 & inprec, iodesc, vsize, &
2109 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2110 & fscl, fmin, fmax, &
2112 &
grid(ng) % umask_full, &
2114 &
ocean(ng) % ru(:,:,:,tindex))
2115 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2125 IF (
var_type(i).eq.pio_double)
THEN
2126 piovar%dkind=pio_double
2129 piovar%dkind=pio_real
2134 & piovar, outrec, iodesc, &
2135 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
2137 &
grid(ng) % umask_full, &
2139 &
ocean(ng) % ru(:,:,:,tindex))
2140 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2160 IF (kind(
ocean(ng)%v).eq.8)
THEN
2161 piovar%dkind=pio_double
2164 piovar%dkind=pio_real
2169 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2171 & inprec, iodesc, vsize, &
2172 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2173 & fscl, fmin, fmax, &
2175 &
grid(ng) % vmask_full, &
2177 &
ocean(ng) % v(:,:,:,tindex))
2178 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2188 IF (
var_type(i).eq.pio_double)
THEN
2189 piovar%dkind=pio_double
2192 piovar%dkind=pio_real
2197 & piovar, outrec, iodesc, &
2198 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
2200 &
grid(ng) % vmask_full, &
2202 &
ocean(ng) % v(:,:,:,tindex))
2203 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2224 IF (kind(
ocean(ng)%rv).eq.8)
THEN
2225 piovar%dkind=pio_double
2228 piovar%dkind=pio_real
2233 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2235 & inprec, iodesc, vsize, &
2236 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2237 & fscl, fmin, fmax, &
2239 &
grid(ng) % vmask_full, &
2241 &
ocean(ng) % rv(:,:,:,tindex))
2242 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2252 IF (
var_type(i).eq.pio_double)
THEN
2253 piovar%dkind=pio_double
2256 piovar%dkind=pio_real
2261 & piovar, outrec, iodesc, &
2262 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
2264 &
grid(ng) % vmask_full, &
2266 &
ocean(ng) % rv(:,:,:,tindex))
2267 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2281# ifdef FORWARD_MIXING
2288 IF (kind(
mixing(ng)%Akv).eq.8)
THEN
2289 piovar%dkind=pio_double
2292 piovar%dkind=pio_real
2297 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2299 & inprec, iodesc, vsize, &
2300 & lbi, ubi, lbj, ubj, 0,
n(ng), &
2301 & fscl, fmin, fmax, &
2303 &
grid(ng) % rmask, &
2306 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2316 IF (
var_type(i).eq.pio_double)
THEN
2317 piovar%dkind=pio_double
2320 piovar%dkind=pio_real
2325 & piovar, outrec, iodesc, &
2326 & lbi, ubi, lbj, ubj, 0,
n(ng), fscl, &
2328 &
grid(ng) % rmask, &
2331 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2352 tracer1_loop :
DO itrc=1,
nt(ng)
2357 IF (kind(
ocean(ng)%t).eq.8)
THEN
2358 piovar%dkind=pio_double
2361 piovar%dkind=pio_real
2366 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2368 & inprec, iodesc, vsize, &
2369 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2370 & fscl, fmin, fmax, &
2372 &
grid(ng) % rmask, &
2374 &
ocean(ng) % t(:,:,:,tindex,itrc))
2375 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2378 & inprec, trim(inpname)
2385 IF (
var_type(i).eq.pio_double)
THEN
2386 piovar%dkind=pio_double
2389 piovar%dkind=pio_real
2394 & piovar, outrec, iodesc, &
2395 & lbi, ubi, lbj, ubj, 1,
n(ng), fscl, &
2397 &
grid(ng) % rmask, &
2399 &
ocean(ng) % t(:,:,:,tindex,itrc))
2400 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2403 & outrec, trim(outname)
2419 tracer2_loop :
DO itrc=1,
nat
2427 IF (kind(
mixing(ng)%Akt).eq.8)
THEN
2428 piovar%dkind=pio_double
2431 piovar%dkind=pio_real
2436 status=
nf_fread3d(ng, model, inpname, piofileinp, &
2438 & inprec, iodesc, vsize, &
2439 & lbi, ubi, lbj, ubj, 0,
n(ng), &
2440 & fscl, fmin, fmax, &
2442 &
grid(ng) % rmask, &
2444 &
mixing(ng) % Akt(:,:,:,itrc))
2445 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2448 & inprec, trim(inpname)
2455 IF (
var_type(i).eq.pio_double)
THEN
2456 piovar%dkind=pio_double
2459 piovar%dkind=pio_real
2464 & piovar, outrec, iodesc, &
2465 & lbi, ubi, lbj, ubj, 0,
n(ng), fscl, &
2467 &
grid(ng) % rmask, &
2469 &
mixing(ng) % Akt(:,:,:,itrc))
2470 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2473 & outrec, trim(outname)
2504 10
FORMAT (/,
' STATE_JOIN_PIO - unable to open grid NetCDF file:', &
2506 20
FORMAT (
'NLM: STATE_JOIN_PIO - Concatenating state fields,', &
2507 & t75,a,/,23x,
'(Grid ',i2.2,
', t = ',a,
', InpRec=',i4.4, &
2508 &
', Index=',i1,
', InpFile: ',a,
')', &
2509 & /,19x,
'(Grid ',i2.2,
', t = ',a,
', OutRec=',i4.4, &
2510 &
', Index=',i1,
', OutFile: ',a,
')')
2511 30
FORMAT (/,
' STATE_JOIN_PIO - error while reading variable: ', &
2512 & a,2x,
'at time record = ',i0, &
2513 & /,18x,
'in input NetCDF file: ',a)
2514 40
FORMAT (/,
' STATE_JOIN_PIO - error while writing variable: ', &
2515 & a,2x,
'at time record = ',i0, &
2516 & /,18x,
'in output NetCDF file: ',a)
2517 50
FORMAT (21x,
'- ',a,/,23x,
'(Min = ',1p,e15.8, &
2518 &
' Max = ',1p,e15.8,
')')