136 & LBi, UBi, LBj, UBj)
143 integer,
intent(in) :: ng, model, tile
144 integer,
intent(in) :: lbi, ubi, lbj, ubj
148 integer :: fcount, gfactor, gtype, status
150 integer :: i, itrc, j, k
155 real(r8),
allocatable :: ur2d(:,:)
156 real(r8),
allocatable :: vr2d(:,:)
158 real(r8),
allocatable :: wr3d(:,:,:)
161 character (len=*),
parameter :: myfile = &
162 & __FILE__//
", wrt_quick_nf90"
164# include "set_bounds.h"
177#if defined WRITE_WATER && defined MASKING
185 qck(ng)%Rindex=
qck(ng)%Rindex+1
187 qck(ng)%Nrec(fcount)=
qck(ng)%Nrec(fcount)+1
209 & (/
qck(ng)%Rindex/), (/1/), &
210 & ncid =
qck(ng)%ncid, &
222 &
qck(ng)%Rindex, gtype, &
223 & lbi, ubi, lbj, ubj, scale, &
225 &
grid(ng) % pmask, &
227 &
grid(ng) % pmask_wet, &
228 & setfillval = .false.)
229 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
244 &
qck(ng)%Rindex, gtype, &
245 & lbi, ubi, lbj, ubj, scale, &
247 &
grid(ng) % rmask, &
249 &
grid(ng) % rmask_wet, &
250 & setfillval = .false.)
251 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
266 &
qck(ng)%Rindex, gtype, &
267 & lbi, ubi, lbj, ubj, scale, &
269 &
grid(ng) % umask, &
271 &
grid(ng) % umask_wet, &
272 & setfillval = .false.)
273 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
288 &
qck(ng)%Rindex, gtype, &
289 & lbi, ubi, lbj, ubj, scale, &
291 &
grid(ng) % vmask, &
293 &
grid(ng) % vmask_wet, &
294 & setfillval = .false.)
295 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
313 &
qck(ng)%Rindex, gtype, &
314 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
316 &
grid(ng) % rmask, &
319 & setfillval = .false.)
320 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
338 grid(ng)%z_v(i,j,k)=0.5_r8*(
grid(ng)%z_r(i-1,j,k)+ &
339 &
grid(ng)%z_r(i ,j,k))
345 &
qck(ng)%Rindex, gtype, &
346 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
348 &
grid(ng) % umask, &
351 & setfillval = .false.)
352 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
370 grid(ng)%z_v(i,j,k)=0.5_r8*(
grid(ng)%z_r(i,j-1,k)+ &
371 &
grid(ng)%z_r(i,j ,k))
377 &
qck(ng)%Rindex, gtype, &
378 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
380 &
grid(ng) % vmask, &
383 & setfillval = .false.)
384 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
401 &
qck(ng)%Rindex, gtype, &
402 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
404 &
grid(ng) % rmask, &
407 & setfillval = .false.)
408 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
426 &
qck(ng)%Rindex, gtype, &
427 & lbi, ubi, lbj, ubj, scale, &
429 &
grid(ng) % rmask, &
432 &
ocean(ng) % zeta(:,:,kout), &
433 & setfillval = .false.)
435 &
ocean(ng) % zeta(:,:,kout))
437 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
454 &
qck(ng)%Rindex, gtype, &
455 & lbi, ubi, lbj, ubj, scale, &
457 &
grid(ng) % umask_full, &
459 &
ocean(ng) % ubar(:,:,kout))
460 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
477 &
qck(ng)%Rindex, gtype, &
478 & lbi, ubi, lbj, ubj, scale, &
480 &
grid(ng) % vmask_full, &
482 &
ocean(ng) % vbar(:,:,kout))
483 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
497 IF (.not.
allocated(ur2d))
THEN
498 allocate (ur2d(lbi:ubi,lbj:ubj))
499 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
501 IF (.not.
allocated(vr2d))
THEN
502 allocate (vr2d(lbi:ubi,lbj:ubj))
503 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
506 & lbi, ubi, lbj, ubj, &
507 &
grid(ng) % CosAngler, &
508 &
grid(ng) % SinAngler, &
510 &
grid(ng) % rmask_full, &
512 &
ocean(ng) % ubar(:,:,kout), &
513 &
ocean(ng) % vbar(:,:,kout), &
520 &
qck(ng)%Rindex, gtype, &
521 & lbi, ubi, lbj, ubj, scale, &
523 &
grid(ng) % rmask_full, &
526 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
537 &
qck(ng)%Rindex, gtype, &
538 & lbi, ubi, lbj, ubj, scale, &
540 &
grid(ng) % rmask_full, &
543 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
564 &
qck(ng)%Rindex, gtype, &
565 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
567 &
grid(ng) % umask_full, &
569 &
ocean(ng) % u(:,:,:,nout))
570 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
587 &
qck(ng)%Rindex, gtype, &
588 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
590 &
grid(ng) % vmask_full, &
592 &
ocean(ng) % v(:,:,:,nout))
593 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
610 &
qck(ng)%Rindex, gtype, &
611 & lbi, ubi, lbj, ubj, scale, &
613 &
grid(ng) % umask_full, &
615 &
ocean(ng) % u(:,:,
n(ng),nout))
616 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
633 &
qck(ng)%Rindex, gtype, &
634 & lbi, ubi, lbj, ubj, scale, &
636 &
grid(ng) % vmask_full, &
638 &
ocean(ng) % v(:,:,
n(ng),nout))
639 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
656 &
qck(ng)%Rindex, gtype, &
657 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
659 &
grid(ng) % rmask_full, &
662 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
677 &
qck(ng)%Rindex, gtype, &
678 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
680 &
grid(ng) % rmask_full, &
683 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
700 &
qck(ng)%Rindex, gtype, &
701 & lbi, ubi, lbj, ubj, scale, &
703 &
grid(ng) % rmask_full, &
705 &
ocean(ng) % ua(:,:,
n(ng)))
706 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
721 &
qck(ng)%Rindex, gtype, &
722 & lbi, ubi, lbj, ubj, scale, &
724 &
grid(ng) % rmask_full, &
726 &
ocean(ng) % va(:,:,
n(ng)))
727 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
740 IF (.not.
allocated(wr3d))
THEN
741 allocate (wr3d(lbi:ubi,lbj:ubj,0:
n(ng)))
742 wr3d(lbi:ubi,lbj:ubj,0:
n(ng))=0.0_r8
746 CALL scale_omega (ng, tile, lbi, ubi, lbj, ubj, 0,
n(ng), &
753 &
qck(ng)%Rindex, gtype, &
754 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
756 &
grid(ng) % rmask, &
759 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
777 &
qck(ng)%Rindex, gtype, &
778 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
780 &
grid(ng) % rmask, &
783 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
800 &
qck(ng)%Tid(itrc), &
801 &
qck(ng)%Rindex, gtype, &
802 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
804 &
grid(ng) % rmask, &
806 &
ocean(ng) % t(:,:,:,nout,itrc))
807 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
827 &
qck(ng)%Rindex, gtype, &
828 & lbi, ubi, lbj, ubj, scale, &
830 &
grid(ng) % rmask, &
832 &
ocean(ng) % t(:,:,
n(ng),nout,itrc))
833 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
852 &
qck(ng)%Rindex, gtype, &
853 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
855 &
grid(ng) % rmask, &
858 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
876 &
qck(ng)%Rindex, gtype, &
877 & lbi, ubi, lbj, ubj, scale, &
879 &
grid(ng) % rmask, &
882 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
901 &
qck(ng)%Rindex, gtype, &
902 & lbi, ubi, lbj, ubj, scale, &
904 &
grid(ng) % rmask, &
907 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
925 &
qck(ng)%Rindex, gtype, &
926 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
928 &
grid(ng) % rmask, &
931 & setfillval = .false.)
932 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
949 &
qck(ng)%Rindex, gtype, &
950 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
952 &
grid(ng) % rmask, &
955 & setfillval = .false.)
956 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
974 &
qck(ng)%Rindex, gtype, &
975 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
977 &
grid(ng) % rmask, &
980 & setfillval = .false.)
981 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
991# if defined GLS_MIXING || defined MY25_MIXING
1000 &
qck(ng)%Rindex, gtype, &
1001 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
1003 &
grid(ng) % rmask, &
1005 &
mixing(ng) % tke(:,:,:,nout), &
1006 & setfillval = .false.)
1007 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1024 &
qck(ng)%Rindex, gtype, &
1025 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
1027 &
grid(ng) % rmask, &
1029 &
mixing(ng) % gls(:,:,:,nout), &
1030 & setfillval = .false.)
1032 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1042# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
1051 &
qck(ng)%Rindex, gtype, &
1052 & lbi, ubi, lbj, ubj, scale, &
1054 &
grid(ng) % rmask, &
1057 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1067# if defined BULK_FLUXES
1076 &
qck(ng)%Rindex, gtype, &
1077 & lbi, ubi, lbj, ubj, scale, &
1079 &
grid(ng) % rmask, &
1082 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1092# if defined BULK_FLUXES || defined ECOSIM
1101 &
qck(ng)%Rindex, gtype, &
1102 & lbi, ubi, lbj, ubj, scale, &
1104 &
grid(ng) % rmask, &
1107 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1122 &
qck(ng)%Rindex, gtype, &
1123 & lbi, ubi, lbj, ubj, scale, &
1125 &
grid(ng) % rmask, &
1128 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1141 IF (.not.
allocated(ur2d))
THEN
1142 allocate (ur2d(lbi:ubi,lbj:ubj))
1143 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
1145 IF (.not.
allocated(vr2d))
THEN
1146 allocate (vr2d(lbi:ubi,lbj:ubj))
1147 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
1150 & lbi, ubi, lbj, ubj, &
1151 &
grid(ng) % CosAngler, &
1152 &
grid(ng) % SinAngler, &
1154 &
grid(ng) % rmask_full, &
1164 &
qck(ng)%Rindex, gtype, &
1165 & lbi, ubi, lbj, ubj, scale, &
1167 &
grid(ng) % rmask, &
1170 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1183 &
qck(ng)%Rindex, gtype, &
1184 & lbi, ubi, lbj, ubj, scale, &
1186 &
grid(ng) % rmask, &
1189 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1206 IF (itrc.eq.
itemp)
THEN
1212 ELSE IF (itrc.eq.
isalt)
THEN
1218 &
qck(ng)%Rindex, gtype, &
1219 & lbi, ubi, lbj, ubj, scale, &
1221 &
grid(ng) % rmask, &
1223 &
forces(ng) % stflx(:,:,itrc))
1224 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1236# if defined BULK_FLUXES || defined FRC_COUPLING
1245 &
qck(ng)%Rindex, gtype, &
1246 & lbi, ubi, lbj, ubj, scale, &
1248 &
grid(ng) % rmask, &
1251 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1268 &
qck(ng)%Rindex, gtype, &
1269 & lbi, ubi, lbj, ubj, scale, &
1271 &
grid(ng) % rmask, &
1274 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1291 &
qck(ng)%Rindex, gtype, &
1292 & lbi, ubi, lbj, ubj, scale, &
1294 &
grid(ng) % rmask, &
1297 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1318 &
qck(ng)%Rindex, gtype, &
1319 & lbi, ubi, lbj, ubj, scale, &
1321 &
grid(ng) % rmask, &
1324 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1341 &
qck(ng)%Rindex, gtype, &
1342 & lbi, ubi, lbj, ubj, scale, &
1344 &
grid(ng) % rmask, &
1347 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1366 &
qck(ng)%Rindex, gtype, &
1367 & lbi, ubi, lbj, ubj, scale, &
1369 &
grid(ng) % rmask, &
1372 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1390 &
qck(ng)%Rindex, gtype, &
1391 & lbi, ubi, lbj, ubj, scale, &
1393 &
grid(ng) % rmask, &
1396 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1415 &
qck(ng)%Rindex, gtype, &
1416 & lbi, ubi, lbj, ubj, scale, &
1418 &
grid(ng) % umask, &
1421 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1438 &
qck(ng)%Rindex, gtype, &
1439 & lbi, ubi, lbj, ubj, scale, &
1441 &
grid(ng) % vmask, &
1444 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1461 &
qck(ng)%Rindex, gtype, &
1462 & lbi, ubi, lbj, ubj, scale, &
1464 &
grid(ng) % umask, &
1467 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1484 &
qck(ng)%Rindex, gtype, &
1485 & lbi, ubi, lbj, ubj, scale, &
1487 &
grid(ng) % vmask, &
1490 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1500#if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
1507 & lbi, ubi, lbj, ubj, &
1512#if defined ICE_MODEL && defined SOLVE3D
1518 CALL ice_wrt_nf90 (ng, model, tile, &
1519 & lbi, ubi, lbj, ubj, &
1524#if defined SEDIMENT && defined SOLVE3D
1531 & lbi, ubi, lbj, ubj, &
1536#if defined WEC_VF && defined SOLVE3D
1542 CALL wec_wrt_nf90 (ng, model, tile, &
1543 & lbi, ubi, lbj, ubj, &
1556 10
FORMAT (2x,
'WRT_QUICK_NF90 - writing quicksave', t42, &
1559 &
'fields (Index=',i1,
',',i1,
') in record = ',i0,t92,i2.2)
1561 &
'fields (Index=',i1,
',',i1,
') in record = ',i0)
1565 &
'fields (Index=',i1,
') in record = ',i0,t92,i2.2)
1567 &
'fields (Index=',i1,
') in record = ',i0)
1570 20
FORMAT (/,
' WRT_QUICK_NF90 - error while writing variable: ',a, &
1571 & /,18x,
'into quicksave NetCDF file for time record: ',i0)
1580 & LBi, UBi, LBj, UBj)
1587 integer,
intent(in) :: ng, model, tile
1588 integer,
intent(in) :: lbi, ubi, lbj, ubj
1592 integer :: fcount, status
1594 integer :: i, itrc, j, k
1599 real(r8),
allocatable :: ur2d(:,:)
1600 real(r8),
allocatable :: vr2d(:,:)
1602 real(r8),
allocatable :: wr3d(:,:,:)
1605 character (len=*),
parameter :: myfile = &
1606 & __FILE__//
", wrt_quick_pio"
1608 TYPE (io_desc_t),
pointer :: iodesc
1610# include "set_bounds.h"
1622 qck(ng)%Rindex=
qck(ng)%Rindex+1
1624 qck(ng)%Nrec(fcount)=
qck(ng)%Nrec(fcount)+1
1646 & (/
qck(ng)%Rindex/), (/1/), &
1647 & piofile =
qck(ng)%pioFile, &
1656 IF (
qck(ng)%pioVar(
idpwet)%dkind.eq.pio_double)
THEN
1665 & lbi, ubi, lbj, ubj, scale, &
1667 &
grid(ng) % pmask, &
1669 &
grid(ng) % pmask_wet, &
1670 & setfillval = .false.)
1671 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1683 IF (
qck(ng)%pioVar(
idrwet)%dkind.eq.pio_double)
THEN
1692 & lbi, ubi, lbj, ubj, scale, &
1694 &
grid(ng) % rmask, &
1696 &
grid(ng) % rmask_wet, &
1697 & setfillval = .false.)
1698 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1710 IF (
qck(ng)%pioVar(
iduwet)%dkind.eq.pio_double)
THEN
1719 & lbi, ubi, lbj, ubj, scale, &
1721 &
grid(ng) % umask, &
1723 &
grid(ng) % umask_wet, &
1724 & setfillval = .false.)
1725 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1737 IF (
qck(ng)%pioVar(
idvwet)%dkind.eq.pio_double)
THEN
1746 & lbi, ubi, lbj, ubj, scale, &
1748 &
grid(ng) % vmask, &
1750 &
grid(ng) % vmask_wet, &
1751 & setfillval = .false.)
1752 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1767 IF (
qck(ng)%pioVar(
idpthr)%dkind.eq.pio_double)
THEN
1776 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
1778 &
grid(ng) % rmask, &
1781 & setfillval = .false.)
1782 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1799 grid(ng)%z_v(i,j,k)=0.5_r8*(
grid(ng)%z_r(i-1,j,k)+ &
1800 &
grid(ng)%z_r(i ,j,k))
1804 IF (
qck(ng)%pioVar(
idpthu)%dkind.eq.pio_double)
THEN
1813 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
1815 &
grid(ng) % umask, &
1818 & setfillval = .false.)
1819 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1836 grid(ng)%z_v(i,j,k)=0.5_r8*(
grid(ng)%z_r(i,j-1,k)+ &
1837 &
grid(ng)%z_r(i,j ,k))
1841 IF (
qck(ng)%pioVar(
idpthv)%dkind.eq.pio_double)
THEN
1850 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
1852 &
grid(ng) % vmask, &
1855 & setfillval = .false.)
1856 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1870 IF (
qck(ng)%pioVar(
idpthw)%dkind.eq.pio_double)
THEN
1879 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
1881 &
grid(ng) % rmask, &
1884 & setfillval = .false.)
1885 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1900 IF (
qck(ng)%pioVar(
idfsur)%dkind.eq.pio_double)
THEN
1909 & lbi, ubi, lbj, ubj, scale, &
1911 &
grid(ng) % rmask, &
1914 &
ocean(ng) % zeta(:,:,kout), &
1915 & setfillval = .false.)
1917 &
ocean(ng) % zeta(:,:,kout))
1919 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1933 IF (
qck(ng)%pioVar(
idubar)%dkind.eq.pio_double)
THEN
1942 & lbi, ubi, lbj, ubj, scale, &
1944 &
grid(ng) % umask_full, &
1946 &
ocean(ng) % ubar(:,:,kout))
1947 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1961 IF (
qck(ng)%pioVar(
idvbar)%dkind.eq.pio_double)
THEN
1970 & lbi, ubi, lbj, ubj, scale, &
1972 &
grid(ng) % vmask_full, &
1974 &
ocean(ng) % vbar(:,:,kout))
1975 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1989 IF (.not.
allocated(ur2d))
THEN
1990 allocate (ur2d(lbi:ubi,lbj:ubj))
1991 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
1993 IF (.not.
allocated(vr2d))
THEN
1994 allocate (vr2d(lbi:ubi,lbj:ubj))
1995 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
1998 & lbi, ubi, lbj, ubj, &
1999 &
grid(ng) % CosAngler, &
2000 &
grid(ng) % SinAngler, &
2002 &
grid(ng) % rmask_full, &
2004 &
ocean(ng) % ubar(:,:,kout), &
2005 &
ocean(ng) % vbar(:,:,kout), &
2009 IF (
qck(ng)%pioVar(
idu2de)%dkind.eq.pio_double)
THEN
2018 & lbi, ubi, lbj, ubj, scale, &
2020 &
grid(ng) % rmask_full, &
2023 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2032 IF (
qck(ng)%pioVar(
idv2dn)%dkind.eq.pio_double)
THEN
2041 & lbi, ubi, lbj, ubj, scale, &
2043 &
grid(ng) % rmask_full, &
2046 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2064 IF (
qck(ng)%pioVar(
iduvel)%dkind.eq.pio_double)
THEN
2073 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2075 &
grid(ng) % umask_full, &
2077 &
ocean(ng) % u(:,:,:,nout))
2078 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2092 IF (
qck(ng)%pioVar(
idvvel)%dkind.eq.pio_double)
THEN
2101 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2103 &
grid(ng) % vmask_full, &
2105 &
ocean(ng) % v(:,:,:,nout))
2106 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2120 IF (
qck(ng)%pioVar(
idusur)%dkind.eq.pio_double)
THEN
2129 & lbi, ubi, lbj, ubj, scale, &
2131 &
grid(ng) % umask_full, &
2133 &
ocean(ng) % u(:,:,
n(ng),nout))
2134 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2148 IF (
qck(ng)%pioVar(
idvsur)%dkind.eq.pio_double)
THEN
2157 & lbi, ubi, lbj, ubj, scale, &
2159 &
grid(ng) % vmask_full, &
2161 &
ocean(ng) % v(:,:,
n(ng),nout))
2162 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2176 IF (
qck(ng)%pioVar(
idu3de)%dkind.eq.pio_double)
THEN
2185 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2187 &
grid(ng) % rmask_full, &
2190 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2204 IF (
qck(ng)%pioVar(
idv3dn)%dkind.eq.pio_double)
THEN
2213 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2215 &
grid(ng) % rmask_full, &
2218 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2232 IF (
qck(ng)%pioVar(
idusue)%dkind.eq.pio_double)
THEN
2241 & lbi, ubi, lbj, ubj, scale, &
2243 &
grid(ng) % rmask_full, &
2245 &
ocean(ng) % ua(:,:,
n(ng)))
2246 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2260 IF (
qck(ng)%pioVar(
idvsun)%dkind.eq.pio_double)
THEN
2269 & lbi, ubi, lbj, ubj, scale, &
2271 &
grid(ng) % rmask_full, &
2273 &
ocean(ng) % va(:,:,
n(ng)))
2274 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2287 IF (.not.
allocated(wr3d))
THEN
2288 allocate (wr3d(lbi:ubi,lbj:ubj,0:
n(ng)))
2289 wr3d(lbi:ubi,lbj:ubj,0:
n(ng))=0.0_r8
2292 CALL scale_omega (ng, tile, lbi, ubi, lbj, ubj, 0,
n(ng), &
2298 IF (
qck(ng)%pioVar(
idovel)%dkind.eq.pio_double)
THEN
2307 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2309 &
grid(ng) % rmask, &
2312 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2327 IF (
qck(ng)%pioVar(
idwvel)%dkind.eq.pio_double)
THEN
2336 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2338 &
grid(ng) % rmask, &
2341 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2356 IF (
qck(ng)%pioTrc(itrc)%dkind.eq.pio_double)
THEN
2362 &
qck(ng)%pioTrc(itrc), &
2365 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2367 &
grid(ng) % rmask, &
2369 &
ocean(ng) % t(:,:,:,nout,itrc))
2370 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2387 IF (
qck(ng)%pioVar(
idsurt(itrc))%dkind.eq.pio_double)
THEN
2396 & lbi, ubi, lbj, ubj, scale, &
2398 &
grid(ng) % rmask, &
2400 &
ocean(ng) % t(:,:,
n(ng),nout,itrc))
2401 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2417 IF (
qck(ng)%pioVar(
iddano)%dkind.eq.pio_double)
THEN
2426 & lbi, ubi, lbj, ubj, 1,
n(ng), scale, &
2428 &
grid(ng) % rmask, &
2431 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2447 IF (
qck(ng)%pioVar(
idhsbl)%dkind.eq.pio_double)
THEN
2456 & lbi, ubi, lbj, ubj, scale, &
2458 &
grid(ng) % rmask, &
2461 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2477 IF (
qck(ng)%pioVar(
idhbbl)%dkind.eq.pio_double)
THEN
2486 & lbi, ubi, lbj, ubj, scale, &
2488 &
grid(ng) % rmask, &
2491 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2506 IF (
qck(ng)%pioVar(
idvvis)%dkind.eq.pio_double)
THEN
2515 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2517 &
grid(ng) % rmask, &
2520 & setfillval = .false.)
2521 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2535 IF (
qck(ng)%pioVar(
idtdif)%dkind.eq.pio_double)
THEN
2544 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2546 &
grid(ng) % rmask, &
2549 & setfillval = .false.)
2550 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2566 IF (
qck(ng)%pioVar(
idsdif)%dkind.eq.pio_double)
THEN
2575 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2577 &
grid(ng) % rmask, &
2580 & setfillval = .false.)
2581 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2591# if defined GLS_MIXING || defined MY25_MIXING
2597 IF (
qck(ng)%pioVar(
idmtke)%dkind.eq.pio_double)
THEN
2606 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2608 &
grid(ng) % rmask, &
2610 &
mixing(ng) % tke(:,:,:,nout), &
2611 & setfillval = .false.)
2612 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2626 IF (
qck(ng)%pioVar(
idmtls)%dkind.eq.pio_double)
THEN
2635 & lbi, ubi, lbj, ubj, 0,
n(ng), scale, &
2637 &
grid(ng) % rmask, &
2639 &
mixing(ng) % gls(:,:,:,nout), &
2640 & setfillval = .false.)
2642 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2652# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
2658 IF (
qck(ng)%pioVar(
idpair)%dkind.eq.pio_double)
THEN
2667 & lbi, ubi, lbj, ubj, scale, &
2669 &
grid(ng) % rmask, &
2672 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2682# if defined BULK_FLUXES
2688 IF (
qck(ng)%pioVar(
idtair)%dkind.eq.pio_double)
THEN
2697 & lbi, ubi, lbj, ubj, scale, &
2699 &
grid(ng) % rmask, &
2702 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2712# if defined BULK_FLUXES || defined ECOSIM
2718 IF (
qck(ng)%pioVar(
iduair)%dkind.eq.pio_double)
THEN
2727 & lbi, ubi, lbj, ubj, scale, &
2729 &
grid(ng) % rmask, &
2732 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2744 IF (
qck(ng)%pioVar(
idvair)%dkind.eq.pio_double)
THEN
2753 & lbi, ubi, lbj, ubj, scale, &
2755 &
grid(ng) % rmask, &
2758 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2771 IF (.not.
allocated(ur2d))
THEN
2772 allocate (ur2d(lbi:ubi,lbj:ubj))
2773 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
2775 IF (.not.
allocated(vr2d))
THEN
2776 allocate (vr2d(lbi:ubi,lbj:ubj))
2777 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
2780 & lbi, ubi, lbj, ubj, &
2781 &
grid(ng) % CosAngler, &
2782 &
grid(ng) % SinAngler, &
2784 &
grid(ng) % rmask_full, &
2791 IF (
qck(ng)%pioVar(
iduaie)%dkind.eq.pio_double)
THEN
2800 & lbi, ubi, lbj, ubj, scale, &
2802 &
grid(ng) % rmask, &
2805 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
2815 IF (
qck(ng)%pioVar(
idvain)%dkind.eq.pio_double)
THEN
2824 & lbi, ubi, lbj, ubj, scale, &
2826 &
grid(ng) % rmask, &
2829 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
2846 IF (itrc.eq.
itemp)
THEN
2852 ELSE IF (itrc.eq.
isalt)
THEN
2855 IF (
qck(ng)%pioVar(
idtsur(itrc))%dkind.eq.pio_double)
THEN
2864 & lbi, ubi, lbj, ubj, scale, &
2866 &
grid(ng) % rmask, &
2868 &
forces(ng) % stflx(:,:,itrc))
2869 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2881# if defined BULK_FLUXES || defined FRC_COUPLING
2887 IF (
qck(ng)%pioVar(
idlhea)%dkind.eq.pio_double)
THEN
2896 & lbi, ubi, lbj, ubj, scale, &
2898 &
grid(ng) % rmask, &
2901 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2915 IF (
qck(ng)%pioVar(
idshea)%dkind.eq.pio_double)
THEN
2924 & lbi, ubi, lbj, ubj, scale, &
2926 &
grid(ng) % rmask, &
2929 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2943 IF (
qck(ng)%pioVar(
idlrad)%dkind.eq.pio_double)
THEN
2952 & lbi, ubi, lbj, ubj, scale, &
2954 &
grid(ng) % rmask, &
2957 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2975 IF (
qck(ng)%pioVar(
idevap)%dkind.eq.pio_double)
THEN
2984 & lbi, ubi, lbj, ubj, scale, &
2986 &
grid(ng) % rmask, &
2989 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3003 IF (
qck(ng)%pioVar(
idrain)%dkind.eq.pio_double)
THEN
3012 & lbi, ubi, lbj, ubj, scale, &
3014 &
grid(ng) % rmask, &
3017 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3033 IF (
qck(ng)%pioVar(
idempf)%dkind.eq.pio_double)
THEN
3042 & lbi, ubi, lbj, ubj, scale, &
3044 &
grid(ng) % rmask, &
3047 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3063 IF (
qck(ng)%pioVar(
idsrad)%dkind.eq.pio_double)
THEN
3072 & lbi, ubi, lbj, ubj, scale, &
3074 &
grid(ng) % rmask, &
3077 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3093 IF (
qck(ng)%pioVar(
idusms)%dkind.eq.pio_double)
THEN
3102 & lbi, ubi, lbj, ubj, scale, &
3104 &
grid(ng) % umask, &
3107 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3121 IF (
qck(ng)%pioVar(
idvsms)%dkind.eq.pio_double)
THEN
3130 & lbi, ubi, lbj, ubj, scale, &
3132 &
grid(ng) % vmask, &
3135 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3149 IF (
qck(ng)%pioVar(
idubms)%dkind.eq.pio_double)
THEN
3158 & lbi, ubi, lbj, ubj, scale, &
3160 &
grid(ng) % umask, &
3163 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3177 IF (
qck(ng)%pioVar(
idvbms)%dkind.eq.pio_double)
THEN
3186 & lbi, ubi, lbj, ubj, scale, &
3188 &
grid(ng) % vmask, &
3191 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3201# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
3208 & lbi, ubi, lbj, ubj, &
3213# if defined ICE_MODEL && defined SOLVE3D
3219 CALL ice_wrt_pio (ng, model, tile, &
3220 & lbi, ubi, lbj, ubj, &
3225# if defined SEDIMENT && defined SOLVE3D
3232 & lbi, ubi, lbj, ubj, &
3237# if defined WEC_VF && defined SOLVE3D
3243 CALL wec_wrt_pio (ng, model, tile, &
3244 & lbi, ubi, lbj, ubj, &
3257 10
FORMAT (2x,
'WRT_QUICK_PIO - writing quicksave', t42, &
3260 &
'fields (Index=',i1,
',',i1,
') in record = ',i0,t92,i2.2)
3262 &
'fields (Index=',i1,
',',i1,
') in record = ',i0)
3266 &
'fields (Index=',i1,
') in record = ',i0,t92,i2.2)
3268 &
'fields (Index=',i1,
') in record = ',i0)
3271 20
FORMAT (/,
' WRT_QUICK_PIO - error while writing variable: ',a, &
3272 & /,17x,
'into quicksave NetCDF file for time record: ',i0)