29# if defined SEDIMENT || defined BBL_MODEL
35# if defined BBL_MODEL || defined WAVES_OUTPUT
37# if defined PIO_LIB && defined DISTRIBUTE
47# if defined PIO_LIB && defined DISTRIBUTE
53# if defined PIO_LIB && defined DISTRIBUTE
62# if defined WEC || defined WEC_VF
63 USE wec_output_mod,
ONLY : wec_wrt_station_nf90
64# if defined PIO_LIB && defined DISTRIBUTE
65 USE wec_output_mod,
ONLY : wec_wrt_station_pio
73# if defined PIO_LIB && defined DISTRIBUTE
85 integer,
intent(in) :: ng, tile
89 integer :: lbi, ubi, lbj, ubj
91 character (len=*),
parameter :: myfile = &
103 SELECT CASE (
sta(ng)%IOtype)
106 & lbi, ubi, lbj, ubj)
108# if defined PIO_LIB && defined DISTRIBUTE
111 & lbi, ubi, lbj, ubj)
119 10
FORMAT (
' WRT_STATION - Illegal output file type, io_type = ',i0, &
120 & /,15x,
'Check KeyWord ''OUT_LIB'' in ''roms.in''.')
127 & LBi, UBi, LBj, UBj)
134 integer,
intent(in) :: ng, model, tile
135 integer,
intent(in) :: lbi, ubi, lbj, ubj
141 integer :: nposb, nposr, nposw
142 integer :: fcount, i, ifield, k, np, status
146 real(r8),
dimension(Nstation(ng)) :: xpos, ypos, zpos, psta
149 real(r8),
dimension(Nstation(ng)*Nbed) :: xposb, yposb, zposb
150 real(r8),
dimension(Nstation(ng)*Nbed) :: bsta
152 real(r8),
dimension(Nstation(ng)*(N(ng))) :: xposr, yposr, zposr
153 real(r8),
dimension(Nstation(ng)*(N(ng)+1)) :: xposw, yposw, zposw
154 real(r8),
dimension(Nstation(ng)*(N(ng)+1)) :: rsta
157 real(r8),
allocatable :: ur2d(:,:)
158 real(r8),
allocatable :: vr2d(:,:)
160 real(r8),
allocatable :: ur3d(:,:,:)
161 real(r8),
allocatable :: vr3d(:,:,:)
164 character (len=*),
parameter :: myfile = &
165 & __FILE__//
", wrt_station_nf90"
177 sta(ng)%Rindex=
sta(ng)%Rindex+1
178 fcount=
sta(ng)%Fcount
179 sta(ng)%Nrec(fcount)=
sta(ng)%Nrec(fcount)+1
184# ifdef STATIONS_CGRID
207 np=k+1+(i-1)*(
n(ng)+1)
227 & (/
sta(ng)%Rindex/), (/1/), &
228 & ncid =
sta(ng)%ncid, &
237 & lbi, ubi, lbj, ubj, &
238 & scale,
ocean(ng)%zeta(:,:,kout), &
243 & ncid =
sta(ng)%ncid, &
253 & lbi, ubi, lbj, ubj, &
254 & scale,
ocean(ng)%ubar(:,:,kout), &
259 & ncid =
sta(ng)%ncid, &
269 & lbi, ubi, lbj, ubj, &
270 & scale,
ocean(ng)%vbar(:,:,kout), &
275 & ncid =
sta(ng)%ncid, &
284 IF (.not.
allocated(ur2d))
THEN
285 allocate (ur2d(lbi:ubi,lbj:ubj))
286 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
288 IF (.not.
allocated(vr2d))
THEN
289 allocate (vr2d(lbi:ubi,lbj:ubj))
290 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
293 & lbi, ubi, lbj, ubj, &
294 &
grid(ng) % CosAngler, &
295 &
grid(ng) % SinAngler, &
297 &
grid(ng) % rmask_full, &
299 &
ocean(ng) % ubar(:,:,kout), &
300 &
ocean(ng) % vbar(:,:,kout), &
305 & lbi, ubi, lbj, ubj, &
311 & ncid =
sta(ng)%ncid, &
316 & lbi, ubi, lbj, ubj, &
322 & ncid =
sta(ng)%ncid, &
337 & lbi, ubi, lbj, ubj, 1,
n(ng), &
338 & scale,
ocean(ng)%u(:,:,:,nout), &
339 & nposr, xposr, yposr, zposr, rsta)
342 & (/1,1,
sta(ng)%Rindex/), &
344 & ncid =
sta(ng)%ncid, &
354 & lbi, ubi, lbj, ubj, 1,
n(ng), &
355 & scale,
ocean(ng)%v(:,:,:,nout), &
356 & nposr, xposr, yposr, zposr, rsta)
359 & (/1,1,
sta(ng)%Rindex/), &
361 & ncid =
sta(ng)%ncid, &
370 IF (.not.
allocated(ur3d))
THEN
371 allocate (ur3d(lbi:ubi,lbj:ubj,
n(ng)))
372 ur3d(lbi:ubi,lbj:ubj,1:
n(ng))=0.0_r8
374 IF (.not.
allocated(vr3d))
THEN
375 allocate (vr3d(lbi:ubi,lbj:ubj,
n(ng)))
376 vr3d(lbi:ubi,lbj:ubj,1:
n(ng))=0.0_r8
379 & lbi, ubi, lbj, ubj, 1,
n(ng), &
380 &
grid(ng) % CosAngler, &
381 &
grid(ng) % SinAngler, &
383 &
grid(ng) % rmask_full, &
385 &
ocean(ng) % u(:,:,:,nout), &
386 &
ocean(ng) % v(:,:,:,nout), &
391 & lbi, ubi, lbj, ubj, 1,
n(ng), &
393 & nposr, xposr, yposr, zposr, rsta)
396 & (/1,1,
sta(ng)%Rindex/), &
398 & ncid =
sta(ng)%ncid, &
403 & lbi, ubi, lbj, ubj, 1,
n(ng), &
405 & nposr, xposr, yposr, zposr, rsta)
408 & (/1,1,
sta(ng)%Rindex/), &
410 & ncid =
sta(ng)%ncid, &
423 & lbi, ubi, lbj, ubj, 0,
n(ng), &
424 & scale,
ocean(ng)%wvel, &
425 & nposw, xposw, yposw, zposw, rsta)
428 & (/1,1,
sta(ng)%Rindex/), &
430 & ncid =
sta(ng)%ncid, &
440 & lbi, ubi, lbj, ubj, 0,
n(ng), &
441 & scale,
ocean(ng)%W, &
442 & nposw, xposw, yposw, zposw, rsta)
445 & (/1,1,
sta(ng)%Rindex/), &
447 & ncid =
sta(ng)%ncid, &
456 IF (
sout(ifield,ng))
THEN
459 & lbi, ubi, lbj, ubj, 1,
n(ng), &
460 & scale,
ocean(ng)%t(:,:,:,nout,i), &
461 & nposr, xposr, yposr, zposr, rsta)
464 & (/1,1,
sta(ng)%Rindex/), &
466 & ncid =
sta(ng)%ncid, &
467 & varid =
sta(ng)%Tid(i))
477 & lbi, ubi, lbj, ubj, 1,
n(ng), &
478 & scale,
ocean(ng)%rho, &
479 & nposr, xposr, yposr, zposr, rsta)
482 & (/1,1,
sta(ng)%Rindex/), &
484 & ncid =
sta(ng)%ncid, &
496 & lbi, ubi, lbj, ubj, &
497 & scale,
mixing(ng)%hsbl, &
502 & ncid =
sta(ng)%ncid, &
514 & lbi, ubi, lbj, ubj, &
515 & scale,
mixing(ng)%hbbl, &
520 & ncid =
sta(ng)%ncid, &
531 & lbi, ubi, lbj, ubj, 0,
n(ng), &
532 & scale,
mixing(ng)%Akv, &
533 & nposw, xposw, yposw, zposw, rsta)
536 & (/1,1,
sta(ng)%Rindex/), &
538 & ncid =
sta(ng)%ncid, &
548 & lbi, ubi, lbj, ubj, 0,
n(ng), &
550 & nposw, xposw, yposw, zposw, rsta)
553 & (/1,1,
sta(ng)%Rindex/), &
555 & ncid =
sta(ng)%ncid, &
567 & lbi, ubi, lbj, ubj, 0,
n(ng), &
569 & nposw, xposw, yposw, zposw, rsta)
572 & (/1,1,
sta(ng)%Rindex/), &
574 & ncid =
sta(ng)%ncid, &
579# if defined GLS_MIXING || defined MY25_MIXING
586 & lbi, ubi, lbj, ubj, 0,
n(ng), &
587 & scale,
mixing(ng)%tke(:,:,:,nout), &
588 & nposw, xposw, yposw, zposw, rsta)
591 & (/1,1,
sta(ng)%Rindex/), &
593 & ncid =
sta(ng)%ncid, &
603 & lbi, ubi, lbj, ubj, 0,
n(ng), &
604 & scale,
mixing(ng)%gls(:,:,:,nout), &
605 & nposw, xposw, yposw, zposw, rsta)
608 & (/1,1,
sta(ng)%Rindex/), &
610 & ncid =
sta(ng)%ncid, &
615# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
622 & lbi, ubi, lbj, ubj, &
623 & scale,
forces(ng)%Pair, &
628 & ncid =
sta(ng)%ncid, &
633# if defined BULK_FLUXES || defined ECOSIM
640 & lbi, ubi, lbj, ubj, &
641 & scale,
forces(ng)%Uwind, &
646 & ncid =
sta(ng)%ncid, &
654 & lbi, ubi, lbj, ubj, &
655 & scale,
forces(ng)%Vwind, &
660 & ncid =
sta(ng)%ncid, &
669 IF (.not.
allocated(ur2d))
THEN
670 allocate (ur2d(lbi:ubi,lbj:ubj))
671 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
673 IF (.not.
allocated(vr2d))
THEN
674 allocate (vr2d(lbi:ubi,lbj:ubj))
675 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
678 & lbi, ubi, lbj, ubj, &
679 &
grid(ng) % CosAngler, &
680 &
grid(ng) % SinAngler, &
682 &
grid(ng) % rmask_full, &
690 & lbi, ubi, lbj, ubj, &
696 & ncid =
sta(ng)%ncid, &
701 & lbi, ubi, lbj, ubj, &
707 & ncid =
sta(ng)%ncid, &
722 & lbi, ubi, lbj, ubj, &
726 & trim(
vname(1,ifield)), psta, &
728 & ncid =
sta(ng)%ncid, &
729 & varid =
sta(ng)%Vid(ifield))
741 & lbi, ubi, lbj, ubj, &
745 & trim(
vname(1,ifield)), psta, &
747 & ncid =
sta(ng)%ncid, &
748 & varid =
sta(ng)%Vid(ifield))
760 & lbi, ubi, lbj, ubj, &
761 & scale,
forces(ng)%lhflx, &
766 & ncid =
sta(ng)%ncid, &
776 & lbi, ubi, lbj, ubj, &
777 & scale,
forces(ng)%shflx, &
782 & ncid =
sta(ng)%ncid, &
792 & lbi, ubi, lbj, ubj, &
793 & scale,
forces(ng)%lrflx, &
798 & ncid =
sta(ng)%ncid, &
811 & lbi, ubi, lbj, ubj, &
812 & scale,
forces(ng)%srflx, &
817 & ncid =
sta(ng)%ncid, &
822# if defined EMINUSP && defined BULK_FLUXES
829 & lbi, ubi, lbj, ubj, &
835 & ncid =
sta(ng)%ncid, &
845 & lbi, ubi, lbj, ubj, &
846 & scale,
forces(ng)%evap, &
851 & ncid =
sta(ng)%ncid, &
861 & lbi, ubi, lbj, ubj, &
862 & scale,
forces(ng)%rain, &
867 & ncid =
sta(ng)%ncid, &
879 & lbi, ubi, lbj, ubj, &
880 & scale,
forces(ng)%sustr, &
885 & ncid =
sta(ng)%ncid, &
895 & lbi, ubi, lbj, ubj, &
896 & scale,
forces(ng)%svstr, &
901 & ncid =
sta(ng)%ncid, &
911 & lbi, ubi, lbj, ubj, &
912 & scale,
forces(ng)%bustr, &
917 & ncid =
sta(ng)%ncid, &
927 & lbi, ubi, lbj, ubj, &
928 & scale,
forces(ng)%bvstr, &
933 & ncid =
sta(ng)%ncid, &
945 & lbi, ubi, lbj, ubj, &
946 & scale,
grid(ng)%rmask_wet, &
951 & ncid =
sta(ng)%ncid, &
961 & lbi, ubi, lbj, ubj, &
962 & scale,
grid(ng)%umask_wet, &
967 & ncid =
sta(ng)%ncid, &
977 & lbi, ubi, lbj, ubj, &
978 & scale,
grid(ng)%vmask_wet, &
983 & ncid =
sta(ng)%ncid, &
989# if defined BBL_MODEL || defined WAVES_OUTPUT
996 & lbi, ubi, lbj, ubj, &
1007 CALL ice_wrt_station_nf90 (ng, model, tile, &
1008 & lbi, ubi, lbj, ubj, &
1020 & lbi, ubi, lbj, ubj, &
1025# if defined WEC || defined WEC_VF
1031 CALL wec_wrt_station_nf90 (ng, model, tile, &
1032 & lbi, ubi, lbj, ubj, &
1046# if defined PIO_LIB && defined DISTRIBUTE
1050 & LBi, UBi, LBj, UBj)
1057 integer,
intent(in) :: ng, tile
1058 integer,
intent(in) :: lbi, ubi, lbj, ubj
1064 integer :: nposb, nposr, nposw
1065 integer :: fcount, i, ifield, k, np, status
1069 real(r8),
dimension(Nstation(ng)) :: xpos, ypos, zpos, psta
1072 real(r8),
dimension(Nstation(ng)*Nbed) :: xposb, yposb, zposb
1073 real(r8),
dimension(Nstation(ng)*Nbed) :: bsta
1075 real(r8),
dimension(Nstation(ng)*(N(ng))) :: xposr, yposr, zposr
1076 real(r8),
dimension(Nstation(ng)*(N(ng)+1)) :: xposw, yposw, zposw
1077 real(r8),
dimension(Nstation(ng)*(N(ng)+1)) :: rsta
1080 real(r8),
allocatable :: ur2d(:,:)
1081 real(r8),
allocatable :: vr2d(:,:)
1083 real(r8),
allocatable :: ur3d(:,:,:)
1084 real(r8),
allocatable :: vr3d(:,:,:)
1087 character (len=*),
parameter :: myfile = &
1088 & __FILE__//
", wrt_station_pio"
1100 sta(ng)%Rindex=
sta(ng)%Rindex+1
1101 fcount=
sta(ng)%Fcount
1102 sta(ng)%Nrec(fcount)=
sta(ng)%Nrec(fcount)+1
1107# ifdef STATIONS_CGRID
1125 xposr(np)=
scalars(ng)%SposX(i)
1126 yposr(np)=
scalars(ng)%SposY(i)
1127 zposr(np)=real(k,r8)
1130 np=k+1+(i-1)*(
n(ng)+1)
1131 xposw(np)=
scalars(ng)%SposX(i)
1132 yposw(np)=
scalars(ng)%SposY(i)
1133 zposw(np)=real(k,r8)
1138 xposb(np)=
scalars(ng)%SposX(i)
1139 yposb(np)=
scalars(ng)%SposY(i)
1140 zposb(np)=real(k,r8)
1150 & (/
sta(ng)%Rindex/), (/1/), &
1151 & piofile =
sta(ng)%pioFile, &
1160 & lbi, ubi, lbj, ubj, &
1161 & scale,
ocean(ng)%zeta(:,:,kout), &
1165 & (/1,
sta(ng)%Rindex/), &
1167 & piofile =
sta(ng)%pioFile, &
1178 & lbi, ubi, lbj, ubj, &
1179 & scale,
ocean(ng)%ubar(:,:,kout), &
1183 & (/1,
sta(ng)%Rindex/), &
1185 & piofile =
sta(ng)%pioFile, &
1195 & lbi, ubi, lbj, ubj, &
1196 & scale,
ocean(ng)%vbar(:,:,kout), &
1200 & (/1,
sta(ng)%Rindex/), &
1202 & piofile =
sta(ng)%pioFile, &
1211 IF (.not.
allocated(ur2d))
THEN
1212 allocate (ur2d(lbi:ubi,lbj:ubj))
1213 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
1215 IF (.not.
allocated(vr2d))
THEN
1216 allocate (vr2d(lbi:ubi,lbj:ubj))
1217 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
1220 & lbi, ubi, lbj, ubj, &
1221 &
grid(ng) % CosAngler, &
1222 &
grid(ng) % SinAngler, &
1224 &
grid(ng) % rmask_full, &
1226 &
ocean(ng) % ubar(:,:,kout), &
1227 &
ocean(ng) % vbar(:,:,kout), &
1232 & lbi, ubi, lbj, ubj, &
1237 & (/1,
sta(ng)%Rindex/), &
1239 & piofile =
sta(ng)%pioFile, &
1244 & lbi, ubi, lbj, ubj, &
1249 & (/1,
sta(ng)%Rindex/), &
1251 & piofile =
sta(ng)%pioFile, &
1266 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1267 & scale,
ocean(ng)%u(:,:,:,nout), &
1268 & nposr, xposr, yposr, zposr, rsta)
1271 & (/1,1,
sta(ng)%Rindex/), &
1273 & piofile =
sta(ng)%pioFile, &
1283 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1284 & scale,
ocean(ng)%v(:,:,:,nout), &
1285 & nposr, xposr, yposr, zposr, rsta)
1288 & (/1,1,
sta(ng)%Rindex/), &
1290 & piofile =
sta(ng)%pioFile, &
1299 IF (.not.
allocated(ur3d))
THEN
1300 allocate (ur3d(lbi:ubi,lbj:ubj,
n(ng)))
1301 ur3d(lbi:ubi,lbj:ubj,1:
n(ng))=0.0_r8
1303 IF (.not.
allocated(vr3d))
THEN
1304 allocate (vr3d(lbi:ubi,lbj:ubj,
n(ng)))
1305 vr3d(lbi:ubi,lbj:ubj,1:
n(ng))=0.0_r8
1308 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1309 &
grid(ng) % CosAngler, &
1310 &
grid(ng) % SinAngler, &
1312 &
grid(ng) % rmask_full, &
1314 &
ocean(ng) % u(:,:,:,nout), &
1315 &
ocean(ng) % v(:,:,:,nout), &
1320 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1322 & nposr, xposr, yposr, zposr, rsta)
1325 & (/1,1,
sta(ng)%Rindex/), &
1327 & piofile =
sta(ng)%pioFile, &
1332 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1334 & nposr, xposr, yposr, zposr, rsta)
1337 & (/1,1,
sta(ng)%Rindex/), &
1339 & piofile =
sta(ng)%pioFile, &
1352 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1353 & scale,
ocean(ng)%wvel, &
1354 & nposw, xposw, yposw, zposw, rsta)
1357 & (/1,1,
sta(ng)%Rindex/), &
1359 & piofile =
sta(ng)%pioFile, &
1369 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1370 & scale,
ocean(ng)%W, &
1371 & nposw, xposw, yposw, zposw, rsta)
1374 & (/1,1,
sta(ng)%Rindex/), &
1376 & piofile =
sta(ng)%pioFile, &
1385 IF (
sout(ifield,ng))
THEN
1388 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1389 & scale,
ocean(ng)%t(:,:,:,nout,i), &
1390 & nposr, xposr, yposr, zposr, rsta)
1393 & (/1,1,
sta(ng)%Rindex/), &
1395 & piofile =
sta(ng)%pioFile, &
1396 & piovar =
sta(ng)%pioTrc(i)%vd)
1406 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1407 & scale,
ocean(ng)%rho, &
1408 & nposr, xposr, yposr, zposr, rsta)
1411 & (/1,1,
sta(ng)%Rindex/), &
1413 & piofile =
sta(ng)%pioFile, &
1425 & lbi, ubi, lbj, ubj, &
1426 & scale,
mixing(ng)%hsbl, &
1430 & (/1,
sta(ng)%Rindex/), &
1432 & piofile =
sta(ng)%pioFile, &
1444 & lbi, ubi, lbj, ubj, &
1445 & scale,
mixing(ng)%hbbl, &
1449 & (/1,
sta(ng)%Rindex/), &
1451 & piofile =
sta(ng)%pioFile, &
1462 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1463 & scale,
mixing(ng)%Akv, &
1464 & nposw, xposw, yposw, zposw, rsta)
1467 & (/1,1,
sta(ng)%Rindex/), &
1469 & piofile =
sta(ng)%pioFile, &
1479 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1481 & nposw, xposw, yposw, zposw, rsta)
1484 & (/1,1,
sta(ng)%Rindex/), &
1486 & piofile =
sta(ng)%pioFile, &
1498 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1500 & nposw, xposw, yposw, zposw, rsta)
1503 & (/1,1,
sta(ng)%Rindex/), &
1505 & piofile =
sta(ng)%pioFile, &
1510# if defined GLS_MIXING || defined MY25_MIXING
1517 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1518 & scale,
mixing(ng)%tke(:,:,:,nout), &
1519 & nposw, xposw, yposw, zposw, rsta)
1522 & (/1,1,
sta(ng)%Rindex/), &
1524 & piofile =
sta(ng)%pioFile, &
1534 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1535 & scale,
mixing(ng)%gls(:,:,:,nout), &
1536 & nposw, xposw, yposw, zposw, rsta)
1539 & (/1,1,
sta(ng)%Rindex/), &
1541 & piofile =
sta(ng)%pioFile, &
1546# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
1553 & lbi, ubi, lbj, ubj, &
1554 & scale,
forces(ng)%Pair, &
1558 & (/1,
sta(ng)%Rindex/), &
1560 & piofile =
sta(ng)%pioFile, &
1565# if defined BULK_FLUXES || defined ECOSIM
1572 & lbi, ubi, lbj, ubj, &
1573 & scale,
forces(ng)%Uwind, &
1577 & (/1,
sta(ng)%Rindex/), &
1579 & piofile =
sta(ng)%pioFile, &
1587 & lbi, ubi, lbj, ubj, &
1588 & scale,
forces(ng)%Vwind, &
1592 & (/1,
sta(ng)%Rindex/), &
1594 & piofile =
sta(ng)%pioFile, &
1603 IF (.not.
allocated(ur2d))
THEN
1604 allocate (ur2d(lbi:ubi,lbj:ubj))
1605 ur2d(lbi:ubi,lbj:ubj)=0.0_r8
1607 IF (.not.
allocated(vr2d))
THEN
1608 allocate (vr2d(lbi:ubi,lbj:ubj))
1609 vr2d(lbi:ubi,lbj:ubj)=0.0_r8
1612 & lbi, ubi, lbj, ubj, &
1613 &
grid(ng) % CosAngler, &
1614 &
grid(ng) % SinAngler, &
1616 &
grid(ng) % rmask_full, &
1624 & lbi, ubi, lbj, ubj, &
1629 & (/1,
sta(ng)%Rindex/), &
1631 & piofile =
sta(ng)%pioFile, &
1636 & lbi, ubi, lbj, ubj, &
1641 & (/1,
sta(ng)%Rindex/), &
1643 & piofile =
sta(ng)%pioFile, &
1658 & lbi, ubi, lbj, ubj, &
1662 & trim(
vname(1,ifield)), psta, &
1663 & (/1,
sta(ng)%Rindex/), &
1665 & piofile =
sta(ng)%pioFile, &
1666 & piovar =
sta(ng)%pioVar(ifield)%vd)
1678 & lbi, ubi, lbj, ubj, &
1682 & trim(
vname(1,ifield)), psta, &
1683 & (/1,
sta(ng)%Rindex/), &
1685 & piofile =
sta(ng)%pioFile, &
1686 & piovar =
sta(ng)%pioVar(ifield)%vd)
1698 & lbi, ubi, lbj, ubj, &
1699 & scale,
forces(ng)%lhflx, &
1703 & (/1,
sta(ng)%Rindex/), &
1705 & piofile =
sta(ng)%pioFile, &
1715 & lbi, ubi, lbj, ubj, &
1716 & scale,
forces(ng)%shflx, &
1720 & (/1,
sta(ng)%Rindex/), &
1722 & piofile =
sta(ng)%pioFile, &
1732 & lbi, ubi, lbj, ubj, &
1733 & scale,
forces(ng)%lrflx, &
1737 & (/1,
sta(ng)%Rindex/), &
1739 & piofile =
sta(ng)%pioFile, &
1752 & lbi, ubi, lbj, ubj, &
1753 & scale,
forces(ng)%srflx, &
1757 & (/1,
sta(ng)%Rindex/), &
1759 & piofile =
sta(ng)%pioFile, &
1764# if defined EMINUSP && defined BULK_FLUXES
1771 & lbi, ubi, lbj, ubj, &
1776 & (/1,
sta(ng)%Rindex/), &
1778 & piofile =
sta(ng)%pioFile, &
1788 & lbi, ubi, lbj, ubj, &
1789 & scale,
forces(ng)%evap, &
1793 & (/1,
sta(ng)%Rindex/), &
1795 & piofile =
sta(ng)%pioFile, &
1805 & lbi, ubi, lbj, ubj, &
1806 & scale,
forces(ng)%rain, &
1810 & (/1,
sta(ng)%Rindex/), &
1812 & piofile =
sta(ng)%pioFile, &
1824 & lbi, ubi, lbj, ubj, &
1825 & scale,
forces(ng)%sustr, &
1829 & (/1,
sta(ng)%Rindex/), &
1831 & piofile =
sta(ng)%pioFile, &
1841 & lbi, ubi, lbj, ubj, &
1842 & scale,
forces(ng)%svstr, &
1846 & (/1,
sta(ng)%Rindex/), &
1848 & piofile =
sta(ng)%pioFile, &
1858 & lbi, ubi, lbj, ubj, &
1859 & scale,
forces(ng)%bustr, &
1863 & (/1,
sta(ng)%Rindex/), &
1865 & piofile =
sta(ng)%pioFile, &
1875 & lbi, ubi, lbj, ubj, &
1876 & scale,
forces(ng)%bvstr, &
1880 & (/1,
sta(ng)%Rindex/), &
1882 & piofile =
sta(ng)%pioFile, &
1894 & lbi, ubi, lbj, ubj, &
1895 & scale,
grid(ng)%rmask_wet, &
1899 & (/1,
sta(ng)%Rindex/), &
1901 & piofile =
sta(ng)%pioFile, &
1910 & lbi, ubi, lbj, ubj, &
1911 & scale,
grid(ng)%umask_wet, &
1915 & (/1,
sta(ng)%Rindex/), &
1917 & piofile =
sta(ng)%pioFile, &
1927 & lbi, ubi, lbj, ubj, &
1928 & scale,
grid(ng)%vmask_wet, &
1932 & (/1,
sta(ng)%Rindex/), &
1934 & piofile =
sta(ng)%pioFile, &
1940# if defined BBL_MODEL || defined WAVES_OUTPUT
1947 & lbi, ubi, lbj, ubj, &
1958 CALL ice_wrt_station_pio (ng, model, tile, &
1959 & lbi, ubi, lbj, ubj, &
1971 & lbi, ubi, lbj, ubj, &
1976# if defined WEC || defined WEC_VF
1982 CALL wec_wrt_station_pio (ng, model, tile, &
1983 & lbi, ubi, lbj, ubj, &
subroutine, public bbl_wrt_station_pio(ng, model, tile, lbi, ubi, lbj, ubj, varout, s)
subroutine, public bbl_wrt_station_nf90(ng, model, tile, lbi, ubi, lbj, ubj, varout, s)
type(t_forces), dimension(:), allocatable forces
type(t_grid), dimension(:), allocatable grid
type(t_io), dimension(:), allocatable sta
character(len=256) sourcefile
type(t_mixing), dimension(:), allocatable mixing
integer, parameter io_nf90
integer, parameter io_pio
integer, dimension(:), allocatable idtsur
integer, dimension(:), allocatable idtvar
character(len=maxlen), dimension(6, 0:nv) vname
logical, dimension(:,:), allocatable sout
subroutine, public netcdf_sync(ng, model, ncname, ncid)
type(t_ocean), dimension(:), allocatable ocean
integer, dimension(:), allocatable n
type(t_bounds), dimension(:), allocatable bounds
integer, parameter r3dvar
integer, dimension(:), allocatable nstation
integer, parameter u3dvar
integer, parameter u2dvar
integer, parameter w3dvar
integer, dimension(:), allocatable nt
integer, parameter r2dvar
integer, parameter v2dvar
integer, parameter v3dvar
subroutine, public pio_netcdf_sync(ng, model, ncname, piofile)
type(t_scalars), dimension(:), allocatable scalars
real(dp), dimension(:), allocatable time
subroutine, public sediment_wrt_station_nf90(ng, model, tile, lbi, ubi, lbj, ubj, varout, s)
subroutine, public sediment_wrt_station_pio(ng, model, tile, lbi, ubi, lbj, ubj, varout, s)
logical function, public founderror(flag, noerr, line, routine)
subroutine, public uv_rotate3d(ng, tile, add, lboundary, lbi, ubi, lbj, ubj, lbk, ubk, cosangler, sinangler, rmask_full, uinp, vinp, uout, vout)
subroutine, public uv_rotate2d(ng, tile, add, lboundary, lbi, ubi, lbj, ubj, cosangler, sinangler, rmask_full, uinp, vinp, uout, vout)
subroutine, private wrt_station_nf90(ng, model, tile, lbi, ubi, lbj, ubj)
subroutine, private wrt_station_pio(ng, model, tile, lbi, ubi, lbj, ubj)
subroutine, public wrt_station(ng, tile)