161#ifdef ADJUST_BOUNDARY
162 & IorJ, LBij, UBij, &
164 & LBi, UBi, LBj, UBj)
172 integer,
intent(in) :: ng, model, msg, tindex
173#ifdef ADJUST_BOUNDARY
174 integer,
intent(in) :: iorj, lbij, ubij
176 integer,
intent(in) :: lbi, ubi, lbj, ubj
178 integer,
intent(inout) :: inirec
180 TYPE(
t_io),
intent(inout) :: s
184 logical :: perfect2d, perfect3d, foundit
185#if defined ADJUST_BOUNDARY || \
186 defined adjust_wstress || defined adjust_stflux
187 logical :: get_adjust
189 logical,
dimension(NV) :: get_var, have_var
191 integer :: idmod, inprec, gtype, i, ifield, itrc, lstr, lend
192 integer :: nrec, mysize, ncinpid, nvatts, nvdim, status, varid
193 integer :: vsize(4), start(4), total(4)
194 integer(i8b) :: fhash
196 real(dp),
parameter :: fscl = 1.0_r8
198 real(dp) :: inptime, tmax, my_dstart, scale, time_scale
199 real(r8) :: fmax, fmin
201 real(dp),
allocatable :: timevar(:)
203 character (len= 5) :: string
204 character (len= 15) :: tstring, attnam, tvarnam
205 character (len= 22) :: t_code
206 character (len= 40) :: tunits
207 character (len=256) :: ncname
209 character (len=*),
parameter :: myfile = &
210 & __FILE__//
", get_state_nf90"
222 IF (model.eq.
inlm.or.(model.eq.0))
THEN
225 ELSE IF (model.eq.
itlm)
THEN
228 ELSE IF (model.eq.
irpm)
THEN
231 ELSE IF (model.eq.
iadm)
THEN
234 ELSE IF (model.eq.5)
THEN
237 ELSE IF (model.eq.6)
THEN
240 ELSE IF (model.eq.7)
THEN
243 ELSE IF (model.eq.8)
THEN
246 ELSE IF (model.eq.9)
THEN
249 ELSE IF (model.eq.10)
THEN
252 ELSE IF (model.eq.11)
THEN
255 ELSE IF (model.eq.12)
THEN
258 ELSE IF (model.eq.13)
THEN
261 ELSE IF (model.eq.14)
THEN
264 ELSE IF (model.eq.15)
THEN
267 ELSE IF (model.eq.16)
THEN
270 ELSE IF (model.eq.17)
THEN
279 CALL wclock_on (ng, idmod, 80, __line__, myfile)
286#ifdef PERFECT_RESTART
287 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
315 CALL checkvars (ng, model, ncname, ncinpid, string, &
316 & nrec,
nv, tvarnam, get_var, have_var)
320#if defined DEBUGGING || defined NO_LBC_ATT
324 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
325 IF (
master)
WRITE (
stdout,20) string,
'NLM_LBC', trim(ncname)
333 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
343 & myvarname = trim(tvarnam), &
354 IF (.not.
allocated(timevar))
allocate (timevar(mysize))
356 &
rclock%DateNumber, timevar, &
366 IF (timevar(i).gt.tmax)
THEN
374 IF ((inirec.ne.0).and.(inirec.gt.mysize))
THEN
375 IF (
master)
WRITE (
stdout,30) string, inirec, trim(ncname), &
380 IF (inirec.ne.0)
THEN
385 inptime=timevar(inprec)
387 IF (
allocated(timevar))
deallocate ( timevar )
394 IF (index(trim(
var_achar(i)),
'day').ne.0)
THEN
396 ELSE IF (index(trim(
var_achar(i)),
'second').ne.0)
THEN
401 IF (time_scale.gt.0.0_r8)
THEN
402 inptime=inptime*time_scale
409 IF ((model.eq.0).or.(model.eq.
inlm).or. &
410 & (model.eq.
itlm).or.(model.eq.
irpm))
THEN
412 IF (
initime(ng).lt.0.0_dp)
THEN
415 my_dstart=
initime(ng)/86400.0_dp
417 IF (((model.eq.
itlm).or.(model.eq.
irpm)).and.(msg.eq.1).and. &
418 & (inptime.ne.(my_dstart*
day2sec)))
THEN
422 IF (((model.eq.
itlm).or.(model.eq.
irpm)).and.(msg.eq.1).and. &
439#ifdef WEAK_CONSTRAINT
444 ELSE IF (model.eq.
iadm)
THEN
445 IF ((msg.eq.1).and.(inptime.eq.0.0_r8))
THEN
447 ELSE IF (msg.ne.1)
THEN
459 IF (model.eq.
inlm)
THEN
474 lstr=scan(ncname,
'/',back=.true.)+1
475 lend=len_trim(ncname)
477 IF ((10.le.model).and.(model.le.17))
THEN
482 WRITE (tstring,
'(f15.4)')
tdays(ng)
483#if defined I4DVAR || defined I4DVAR_ANA_SENSITIVITY || \
484 defined weak_constraint
486 & t_code, ng,
', Outer=',
outer, &
487 & trim(adjustl(tstring)), ncname(lstr:lend), &
492 & t_code, ng,
', Iter=',
nrun, &
493 & trim(adjustl(tstring)), ncname(lstr:lend), &
497 & t_code, ng, trim(adjustl(tstring)), &
498 & ncname(lstr:lend), inprec, tindex
510 nlm_state:
IF ((model.eq.
inlm).or.(model.eq.0))
THEN
512# ifdef PERFECT_RESTART
516 IF ((model.eq.0).and.(
nrrec(ng).ne.0))
THEN
521 & start = (/inprec/), &
528 & start = (/inprec/), &
535 & start = (/inprec/), &
542 & start = (/inprec/), &
549 & start = (/inprec/), &
556 & start = (/inprec/), &
561# if defined SEDIMENT && defined SED_MORPH
570 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
572 & inprec, gtype, vsize, &
573 & lbi, ubi, lbj, ubj, &
574 & fscl, fmin, fmax, &
576 &
grid(ng) % rmask, &
584 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
587 & inprec, trim(ncname)
610 & __line__, myfile))
THEN
629 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
631 & inprec, gtype, vsize, &
632 & lbi, ubi, lbj, ubj, 1, 3, &
633 & fscl, fmin, fmax, &
635 &
grid(ng) % rmask, &
638 &
ocean(ng) % zeta, &
644 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
646 & inprec, gtype, vsize, &
647 & lbi, ubi, lbj, ubj, &
648 & fscl, fmin, fmax, &
650 &
grid(ng) % rmask, &
653 &
ocean(ng) % zeta(:,:,tindex), &
656 &
ocean(ng) % zeta(:,:,tindex))
659 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
662 & inprec, trim(ncname)
685 & __line__, myfile))
THEN
693 IF (get_var(
idrzet).and.perfect2d)
THEN
698 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
700 & inprec, gtype, vsize, &
701 & lbi, ubi, lbj, ubj, 1, 2, &
702 & fscl, fmin, fmax, &
704 &
grid(ng) % rmask, &
707 &
ocean(ng) % rzeta, &
712 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
715 & inprec, trim(ncname)
738 & __line__, myfile))
THEN
756 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
758 & inprec, gtype, vsize, &
759 & lbi, ubi, lbj, ubj, 1, 3, &
760 & fscl, fmin, fmax, &
762 &
grid(ng) % umask, &
765 &
ocean(ng) % ubar, &
771 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
773 & inprec, gtype, vsize, &
774 & lbi, ubi, lbj, ubj, &
775 & fscl, fmin, fmax, &
777 &
grid(ng) % umask, &
780 &
ocean(ng) % ubar(:,:,tindex), &
783 &
ocean(ng) % ubar(:,:,tindex))
786 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
789 & inprec, trim(ncname)
812 & __line__, myfile))
THEN
820 IF (get_var(
idru2d).and.perfect2d)
THEN
825 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
827 & inprec, gtype, vsize, &
828 & lbi, ubi, lbj, ubj, 1, 2, &
829 & fscl, fmin, fmax, &
831 &
grid(ng) % umask, &
834 &
ocean(ng) % rubar, &
839 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
842 & inprec, trim(ncname)
865 & __line__, myfile))
THEN
883 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
885 & inprec, gtype, vsize, &
886 & lbi, ubi, lbj, ubj, 1, 3, &
887 & fscl, fmin, fmax, &
889 &
grid(ng) % vmask, &
892 &
ocean(ng) % vbar, &
898 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
900 & inprec, gtype, vsize, &
901 & lbi, ubi, lbj, ubj, &
902 & fscl, fmin, fmax, &
904 &
grid(ng) % vmask, &
907 &
ocean(ng) % vbar(:,:,tindex), &
910 &
ocean(ng) % vbar(:,:,tindex))
913 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
916 & inprec, trim(ncname)
939 & __line__, myfile))
THEN
947 IF (get_var(
idrv2d).and.perfect2d)
THEN
952 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
954 & inprec, gtype, vsize, &
955 & lbi, ubi, lbj, ubj, 1, 2, &
956 & fscl, fmin, fmax, &
958 &
grid(ng) % vmask, &
961 &
ocean(ng) % rvbar, &
966 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
969 & inprec, trim(ncname)
992 & __line__, myfile))
THEN
1002 IF (get_var(
iduvel))
THEN
1008 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1010 & inprec, gtype, vsize, &
1011 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
1012 & fscl, fmin, fmax, &
1014 &
grid(ng) % umask, &
1023 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1025 & inprec, gtype, vsize, &
1026 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1027 & fscl, fmin, fmax, &
1029 &
grid(ng) % umask, &
1032 &
ocean(ng) % u(:,:,:,tindex), &
1035 &
ocean(ng) % u(:,:,:,tindex))
1038 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1041 & inprec, trim(ncname)
1063 & __line__, myfile))
THEN
1071 IF (get_var(
idru3d).and.perfect3d)
THEN
1076 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1078 & inprec, gtype, vsize, &
1079 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
1080 & fscl, fmin, fmax, &
1082 &
grid(ng) % umask, &
1090 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1093 & inprec, trim(ncname)
1115 & __line__, myfile))
THEN
1123 IF (get_var(
idvvel))
THEN
1129 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1131 & inprec, gtype, vsize, &
1132 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
1133 & fscl, fmin, fmax, &
1135 &
grid(ng) % vmask, &
1144 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1146 & inprec, gtype, vsize, &
1147 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1148 & fscl, fmin, fmax, &
1150 &
grid(ng) % vmask, &
1153 &
ocean(ng) % v(:,:,:,tindex), &
1156 &
ocean(ng) % v(:,:,:,tindex))
1159 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1162 & inprec, trim(ncname)
1185 & __line__, myfile))
THEN
1193 IF (get_var(
idrv3d).and.perfect3d)
THEN
1198 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1200 & inprec, gtype, vsize, &
1201 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
1202 & fscl, fmin, fmax, &
1204 &
grid(ng) % vmask, &
1212 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1215 & inprec, trim(ncname)
1238 & __line__, myfile))
THEN
1247 IF (get_var(
idtvar(itrc)))
THEN
1253 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1255 & inprec, gtype, vsize, &
1256 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
1257 & fscl, fmin, fmax, &
1259 &
grid(ng) % rmask, &
1262 &
ocean(ng) % t(:,:,:,:,itrc), &
1265 &
ocean(ng) % t(:,:,:,:,itrc))
1268 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1270 & inprec, gtype, vsize, &
1271 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1272 & fscl, fmin, fmax, &
1274 &
grid(ng) % rmask, &
1277 &
ocean(ng) % t(:,:,:,tindex,itrc), &
1280 &
ocean(ng) % t(:,:,:,tindex,itrc))
1283 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1286 & inprec, trim(ncname)
1309 & __line__, myfile))
THEN
1316# if defined GLS_MIXING || defined MY25_MIXING || defined LMD_MIXING
1320 IF (have_var(
idvvis))
THEN
1325 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1327 & inprec, gtype, vsize, &
1328 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1329 & fscl, fmin,fmax, &
1331 &
grid(ng) % rmask, &
1339 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1342 & inprec, trim(ncname)
1360 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1372 & __line__, myfile))
THEN
1380 IF (have_var(
idtdif))
THEN
1385 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1387 & inprec, gtype, vsize, &
1388 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1389 & fscl, fmin,fmax, &
1391 &
grid(ng) % rmask, &
1399 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1402 & inprec, trim(ncname)
1420 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1432 & __line__, myfile))
THEN
1441 IF (have_var(
idsdif))
THEN
1446 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1448 & inprec, gtype, vsize, &
1449 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1450 & fscl, fmin,fmax, &
1452 &
grid(ng) % rmask, &
1460 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1463 & inprec, trim(ncname)
1481 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1493 & __line__, myfile))
THEN
1500# if defined LMD_SKPP
1504 IF (have_var(
idhsbl).and.perfect3d)
THEN
1509 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
1511 & inprec, gtype, vsize, &
1512 & lbi, ubi, lbj, ubj, &
1513 & fscl, fmin, fmax, &
1515 &
grid(ng) % rmask, &
1523 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1526 & inprec, trim(ncname)
1549 & __line__, myfile))
THEN
1555# if defined LMD_BKPP
1559 IF (have_var(
idhbbl).and.perfect3d)
THEN
1564 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
1566 & inprec, gtype, vsize, &
1567 & lbi, ubi, lbj, ubj, &
1568 & fscl, fmin, fmax, &
1570 &
grid(ng) % rmask, &
1578 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1581 & inprec, trim(ncname)
1604 & __line__, myfile))
THEN
1610# if defined LMD_NONLOCAL && defined PERFECT_RESTART
1615 IF (have_var(
idghat(itrc)))
THEN
1620 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1622 & inprec, gtype, vsize, &
1623 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1624 & fscl, fmin,fmax, &
1626 &
grid(ng) % rmask, &
1629 &
mixing(ng) % Ghats(:,:,:,itrc), &
1632 &
mixing(ng) % Ghats(:,:,:,itrc))
1634 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1637 & inprec, trim(ncname)
1660 & __line__, myfile))
THEN
1667# if defined GLS_MIXING || defined MY25_MIXING
1671 IF (get_var(
idmtke).and.perfect3d)
THEN
1676 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1678 & inprec, gtype, vsize, &
1679 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
1680 & fscl, fmin, fmax, &
1682 &
grid(ng) % rmask, &
1690 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1693 & inprec, trim(ncname)
1716 & __line__, myfile))
THEN
1724 IF (get_var(
idmtls).and.perfect3d)
THEN
1729 status=
nf_fread4d(ng, idmod, ncname, ncinpid, &
1731 & inprec, gtype, vsize, &
1732 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
1733 & fscl, fmin, fmax, &
1735 &
grid(ng) % rmask, &
1743 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1746 & inprec, trim(ncname)
1769 & __line__, myfile))
THEN
1777 IF (get_var(
idvmls).and.perfect3d)
THEN
1782 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1784 & inprec, gtype, vsize, &
1785 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1786 & fscl, fmin, fmax, &
1788 &
grid(ng) % rmask, &
1796 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1799 & inprec, trim(ncname)
1822 & __line__, myfile))
THEN
1830 IF (get_var(
idvmkk).and.perfect3d)
THEN
1835 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1837 & inprec, gtype, vsize, &
1838 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1839 & fscl, fmin, fmax, &
1841 &
grid(ng) % rmask, &
1849 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1852 & inprec, trim(ncname)
1875 & __line__, myfile))
THEN
1884 IF (get_var(
idvmkp).and.perfect3d)
THEN
1889 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1891 & inprec, gtype, vsize, &
1892 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1893 & fscl, fmin, fmax, &
1895 &
grid(ng) % rmask, &
1903 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1906 & inprec, trim(ncname)
1929 & __line__, myfile))
THEN
1942 IF (get_var(
idfrac(i)))
THEN
1947 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
1949 & inprec, gtype, vsize, &
1950 & lbi, ubi, lbj, ubj, 1,
nbed, &
1951 & fscl, fmin, fmax, &
1953 &
grid(ng) % rmask, &
1956 &
sedbed(ng) % bed_frac(:,:,:,i), &
1959 &
sedbed(ng) % bed_frac(:,:,:,i))
1961 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
1964 & inprec, trim(ncname)
1988 & __line__, myfile))
THEN
1996 IF (get_var(
idbmas(i)))
THEN
2001 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2003 & inprec, gtype, vsize, &
2004 & lbi, ubi, lbj, ubj, 1,
nbed, &
2005 & fscl, fmin, fmax, &
2007 &
grid(ng) % rmask, &
2010 &
sedbed(ng) % bed_mass(:,:,:,tindex,i), &
2013 &
sedbed(ng) % bed_mass(:,:,:,tindex,i))
2015 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2018 & inprec, trim(ncname)
2042 & __line__, myfile))
THEN
2052 IF (get_var(
idsbed(i)))
THEN
2057 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2059 & inprec, gtype, vsize, &
2060 & lbi, ubi, lbj, ubj, 1,
nbed, &
2061 & fscl, fmin, fmax, &
2063 &
grid(ng) % rmask, &
2066 &
sedbed(ng) % bed(:,:,:,i), &
2069 &
sedbed(ng) % bed(:,:,:,i))
2071 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2074 & inprec, trim(ncname)
2098 & __line__, myfile))
THEN
2110 IF (get_var(
idubld(i)))
THEN
2115 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2117 & inprec, gtype, vsize, &
2118 & lbi, ubi, lbj, ubj, &
2119 & fscl, fmin, fmax, &
2121 &
grid(ng) % umask, &
2124 &
sedbed(ng) % bedldu(:,:,i), &
2127 &
sedbed(ng) % bedldu(:,:,i))
2129 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2132 & inprec, trim(ncname)
2156 & __line__, myfile))
THEN
2162 IF (get_var(
idvbld(i)))
THEN
2167 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2169 & inprec, gtype, vsize, &
2170 & lbi, ubi, lbj, ubj, &
2171 & fscl, fmin, fmax, &
2173 &
grid(ng) % vmask, &
2176 &
sedbed(ng) % bedldv(:,:,i), &
2179 &
sedbed(ng) % bedldv(:,:,i))
2181 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2184 & inprec, trim(ncname)
2208 & __line__, myfile))
THEN
2217# if defined SEDIMENT || defined BBL_MODEL
2227 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2229 & inprec, gtype, vsize, &
2230 & lbi, ubi, lbj, ubj, &
2231 & fscl, fmin, fmax, &
2233 &
grid(ng) % rmask, &
2236 &
sedbed(ng) % bottom(:,:,i), &
2239 &
sedbed(ng) % bottom(:,:,i))
2241 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2244 & inprec, trim(ncname)
2268 & __line__, myfile))
THEN
2280 IF (
isice(i).gt.0)
THEN
2282 IF (get_var(ifield))
THEN
2284 & trim(
vname(1,ifield)), varid)
2289 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2290 &
vname(1,ifield), varid, &
2291 & inprec, gtype, vsize, &
2292 & lbi, ubi, lbj, ubj, &
2293 & fscl, fmin, fmax, &
2295 &
grid(ng) % umask, &
2298 &
ice(ng) % Si(:,:,tindex,i), &
2301 &
ice(ng) % Si(:,:,tindex,i))
2305 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2306 &
vname(1,ifield), varid, &
2307 & inprec, gtype, vsize, &
2308 & lbi, ubi, lbj, ubj, &
2309 & fscl, fmin, fmax, &
2311 &
grid(ng) % vmask, &
2314 &
ice(ng) % Si(:,:,tindex,i), &
2317 &
ice(ng) % Si(:,:,tindex,i))
2321 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2322 &
vname(1,ifield), varid, &
2323 & inprec, gtype, vsize, &
2324 & lbi, ubi, lbj, ubj, &
2325 & fscl, fmin, fmax, &
2327 &
grid(ng) % rmask, &
2330 &
ice(ng) % Si(:,:,tindex,i), &
2333 &
ice(ng) % Si(:,:,tindex,i))
2337 IF (
founderror(status, nf90_noerr, __line__, &
2340 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
2341 & inprec, trim(ncname)
2352 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
2359 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
2364 & __line__, myfile))
THEN
2375#if defined TANGENT || defined TL_IOMS
2381 tlm_state:
IF ((model.eq.
itlm).or.(model.eq.
irpm))
THEN
2383# if defined ADJUST_BOUNDARY || \
2384 defined adjust_wstress || defined adjust_stflux
2394 IF (get_var(
idfsur))
THEN
2399 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2401 & inprec, gtype, vsize, &
2402 & lbi, ubi, lbj, ubj, &
2403 & fscl, fmin, fmax, &
2405 &
grid(ng) % rmask, &
2408 &
ocean(ng) % tl_zeta(:,:,tindex), &
2411 &
ocean(ng) % tl_zeta(:,:,tindex))
2413 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2416 & inprec, trim(ncname)
2438 & __line__, myfile))
THEN
2444# ifdef ADJUST_BOUNDARY
2455 &
vname(1,ifield), varid, &
2457 & lbij, ubij,
nbrec(ng), &
2458 & fscl, fmin, fmax, &
2460 &
boundary(ng) % tl_zeta_obc(:,:,:, &
2464 &
boundary(ng) % tl_zeta_obc(:,:,:, &
2467 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2469 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
2470 & inprec, trim(ncname)
2478 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
2481 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
2487 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
2492 & __line__, myfile))
THEN
2501 IF (get_var(
idubar))
THEN
2506 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2508 & inprec, gtype, vsize, &
2509 & lbi, ubi, lbj, ubj, &
2510 & fscl, fmin, fmax, &
2512 &
grid(ng) % umask, &
2515 &
ocean(ng) % tl_ubar(:,:,tindex), &
2518 &
ocean(ng) % tl_ubar(:,:,tindex))
2520 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2523 & inprec, trim(ncname)
2545 & __line__, myfile))
THEN
2551# ifdef ADJUST_BOUNDARY
2562 &
vname(1,ifield), varid, &
2564 & lbij, ubij,
nbrec(ng), &
2565 & fscl, fmin, fmax, &
2567 &
boundary(ng) % tl_ubar_obc(:,:,:, &
2571 &
boundary(ng) % tl_ubar_obc(:,:,:, &
2574 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2576 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
2577 & inprec, trim(ncname)
2585 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
2588 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
2594 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
2599 & __line__, myfile))
THEN
2608 IF (get_var(
idvbar))
THEN
2613 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
2615 & inprec, gtype, vsize, &
2616 & lbi, ubi, lbj, ubj, &
2617 & fscl, fmin, fmax, &
2619 &
grid(ng) % vmask, &
2622 &
ocean(ng) % tl_vbar(:,:,tindex), &
2625 &
ocean(ng) % tl_vbar(:,:,tindex))
2627 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2630 & inprec, trim(ncname)
2652 & __line__, myfile))
THEN
2658# ifdef ADJUST_BOUNDARY
2669 &
vname(1,ifield), varid, &
2671 & lbij, ubij,
nbrec(ng), &
2672 & fscl, fmin, fmax, &
2674 &
boundary(ng) % tl_vbar_obc(:,:,:, &
2678 &
boundary(ng) % tl_vbar_obc(:,:,:, &
2681 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2683 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
2684 & inprec, trim(ncname)
2692 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
2695 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
2701 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
2706 & __line__, myfile))
THEN
2712# ifdef ADJUST_WSTRESS
2716 IF (get_var(
idusms).and.get_adjust)
THEN
2722 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2724 & inprec, gtype, vsize, &
2725 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
2726 & scale, fmin, fmax, &
2728 &
grid(ng) % umask, &
2731 &
forces(ng) % tl_ustr(:,:,:,tindex), &
2734 &
forces(ng) % tl_ustr(:,:,:,tindex))
2736 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2739 & inprec, trim(ncname)
2748 &
', adjusted tl_ustr', fmin, fmax, &
2752 &
', adjusted tl_ustr', fmin, fmax
2763 & __line__, myfile))
THEN
2771 IF (get_var(
idvsms).and.get_adjust)
THEN
2777 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2779 & inprec, gtype, vsize, &
2780 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
2781 & scale, fmin, fmax, &
2783 &
grid(ng) % vmask, &
2786 &
forces(ng) % tl_vstr(:,:,:,tindex), &
2789 &
forces(ng) % tl_vstr(:,:,:,tindex))
2791 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2794 & inprec, trim(ncname)
2803 &
', adjusted tl_vstr', fmin, fmax, &
2807 &
', adjusted tl_vstr', fmin, fmax
2818 & __line__, myfile))
THEN
2829 IF (get_var(
iduvel))
THEN
2834 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2836 & inprec, gtype, vsize, &
2837 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2838 & fscl, fmin, fmax, &
2840 &
grid(ng) % umask, &
2843 &
ocean(ng) % tl_u(:,:,:,tindex), &
2846 &
ocean(ng) % tl_u(:,:,:,tindex))
2848 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2851 & inprec, trim(ncname)
2873 & __line__, myfile))
THEN
2879# ifdef ADJUST_BOUNDARY
2890 &
vname(1,ifield), varid, &
2892 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
2893 & fscl, fmin, fmax, &
2895 &
boundary(ng) % tl_u_obc(:,:,:,:, &
2899 &
boundary(ng) % tl_u_obc(:,:,:,:, &
2902 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2904 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
2905 & inprec, trim(ncname)
2913 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
2916 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
2922 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
2927 & __line__, myfile))
THEN
2936 IF (get_var(
idvvel))
THEN
2941 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
2943 & inprec, gtype, vsize, &
2944 & lbi, ubi, lbj, ubj, 1,
n(ng), &
2945 & fscl, fmin, fmax, &
2947 &
grid(ng) % vmask, &
2950 &
ocean(ng) % tl_v(:,:,:,tindex), &
2953 &
ocean(ng) % tl_v(:,:,:,tindex))
2955 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
2958 & inprec, trim(ncname)
2980 & __line__, myfile))
THEN
2986# ifdef ADJUST_BOUNDARY
2997 &
vname(1,ifield), varid, &
2999 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
3000 & fscl, fmin, fmax, &
3002 &
boundary(ng) % tl_v_obc(:,:,:,:, &
3006 &
boundary(ng) % tl_v_obc(:,:,:,:, &
3009 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3011 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
3012 & inprec, trim(ncname)
3020 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
3023 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
3029 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
3034 & __line__, myfile))
THEN
3044 IF (get_var(
idtvar(itrc)))
THEN
3049 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3051 & inprec, gtype, vsize, &
3052 & lbi, ubi, lbj, ubj, 1,
n(ng), &
3053 & fscl, fmin, fmax, &
3055 &
grid(ng) % rmask, &
3058 &
ocean(ng) % tl_t(:,:,:,tindex,itrc), &
3061 &
ocean(ng) % tl_t(:,:,:,tindex,itrc))
3063 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3066 & inprec, trim(ncname)
3089 & __line__, myfile))
THEN
3096# ifdef ADJUST_BOUNDARY
3101 IF (get_var(
idsbry(
istvar(itrc))).and.get_adjust.and. &
3108 &
vname(1,ifield), varid, &
3110 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
3111 & fscl, fmin, fmax, &
3113 &
boundary(ng) % tl_t_obc(:,:,:,:, &
3117 &
boundary(ng) % tl_t_obc(:,:,:,:, &
3120 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3122 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
3123 & inprec, trim(ncname)
3131 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
3134 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
3140 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
3145 & __line__, myfile))
THEN
3152# ifdef ADJUST_STFLUX
3157 IF (get_var(
idtsur(itrc)).and.get_adjust.and. &
3164 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3166 & inprec, gtype, vsize, &
3167 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
3168 & scale, fmin, fmax, &
3170 &
grid(ng) % rmask, &
3173 &
forces(ng)% tl_tflux(:,:,:, &
3177 &
forces(ng)% tl_tflux(:,:,:, &
3180 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3183 & inprec, trim(ncname)
3192 &
', adjusted tl_tflux', fmin, fmax, &
3196 &
', adjusted tl_tflux', fmin, fmax
3207 & __line__, myfile))
THEN
3220 IF (get_var(
idfrac(i)))
THEN
3225 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3227 & inprec, gtype, vsize, &
3228 & lbi, ubi, lbj, ubj, 1,
nbed, &
3229 & fscl, fmin, fmax, &
3231 &
grid(ng) % rmask, &
3234 &
sedbed(ng) % tl_bed_frac(:,:,:,i), &
3237 &
sedbed(ng) % tl_bed_frac(:,:,:,i))
3239 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3242 & inprec, trim(ncname)
3265 & __line__, myfile))
THEN
3274 IF (get_var(
idbmas(i)))
THEN
3279 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3281 & inprec, gtype, vsize, &
3282 & lbi, ubi, lbj, ubj, 1,
nbed, &
3283 & fscl, fmin, fmax, &
3285 &
grid(ng) % rmask, &
3288 &
sedbed(ng) % tl_bed_mass(:,:,:, &
3292 &
sedbed(ng) % tl_bed_mass(:,:,:, &
3295 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3298 & inprec, trim(ncname)
3321 & __line__, myfile))
THEN
3331 IF (get_var(
idsbed(i)))
THEN
3336 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3338 & inprec, gtype, vsize, &
3339 & lbi, ubi, lbj, ubj, 1,
nbed, &
3340 & fscl, fmin, fmax, &
3342 &
grid(ng) % rmask, &
3345 &
sedbed(ng) % tl_bed(:,:,:,i), &
3348 &
sedbed(ng) % tl_bed(:,:,:,i))
3350 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3353 & inprec, trim(ncname)
3376 & __line__, myfile))
THEN
3388 IF (get_var(
idubld(i)))
THEN
3393 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3395 & inprec, gtype, vsize, &
3396 & lbi, ubi, lbj, ubj, &
3397 & fscl, fmin, fmax, &
3399 &
grid(ng) % umask, &
3402 &
sedbed(ng) % tl_bedldu(:,:,i), &
3405 &
sedbed(ng) % tl_bedldu(:,:,i))
3407 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3410 & inprec, trim(ncname)
3433 & __line__, myfile))
THEN
3439 IF (get_var(
idvbld(i)))
THEN
3444 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3446 & inprec, gtype, vsize, &
3447 & lbi, ubi, lbj, ubj, &
3448 & fscl, fmin, fmax, &
3450 &
grid(ng) % vmask, &
3453 &
sedbed(ng) % tl_bedldv(:,:,i), &
3456 &
sedbed(ng) % tl_bedldv(:,:,i))
3458 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3461 & inprec, trim(ncname)
3484 & __line__, myfile))
THEN
3493# if defined SEDIMENT || defined BBL_MODEL
3503 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3505 & inprec, gtype, vsize, &
3506 & lbi, ubi, lbj, ubj, &
3507 & fscl, fmin, fmax, &
3509 &
grid(ng) % rmask, &
3512 &
sedbed(ng) % tl_bottom(:,:,i), &
3515 &
sedbed(ng) % tl_bottom(:,:,i))
3517 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3520 & inprec, trim(ncname)
3543 & __line__, myfile))
THEN
3560 adm_state:
IF (model.eq.
iadm)
THEN
3564 IF (get_var(
idfsur))
THEN
3569 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3571 & inprec, gtype, vsize, &
3572 & lbi, ubi, lbj, ubj, &
3573 & fscl, fmin, fmax, &
3575 &
grid(ng) % rmask, &
3578 &
ocean(ng) % ad_zeta(:,:,tindex), &
3581 &
ocean(ng) % ad_zeta(:,:,tindex))
3583 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3586 & inprec, trim(ncname)
3608 & __line__, myfile))
THEN
3614# ifdef ADJUST_BOUNDARY
3625 &
vname(1,ifield), varid, &
3627 & lbij, ubij,
nbrec(ng), &
3628 & fscl, fmin, fmax, &
3630 &
boundary(ng) % ad_zeta_obc(:,:,:, &
3634 &
boundary(ng) % ad_zeta_obc(:,:,:, &
3637 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3639 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
3640 & inprec, trim(ncname)
3648 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
3651 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
3657 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
3662 & __line__, myfile))
THEN
3671 IF (get_var(
idubar))
THEN
3676 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3678 & inprec, gtype, vsize, &
3679 & lbi, ubi, lbj, ubj, &
3680 & fscl, fmin, fmax, &
3682 &
grid(ng) % umask, &
3685 &
ocean(ng) % ad_ubar(:,:,tindex), &
3688 &
ocean(ng) % ad_ubar(:,:,tindex))
3690 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3693 & inprec, trim(ncname)
3715 & __line__, myfile))
THEN
3721# ifdef ADJUST_BOUNDARY
3732 &
vname(1,ifield), varid, &
3734 & lbij, ubij,
nbrec(ng), &
3735 & fscl, fmin, fmax, &
3737 &
boundary(ng) % ad_ubar_obc(:,:,:, &
3741 &
boundary(ng) % ad_ubar_obc(:,:,:, &
3744 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3746 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
3747 & inprec, trim(ncname)
3755 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
3758 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
3764 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
3769 & __line__, myfile))
THEN
3778 IF (get_var(
idvbar))
THEN
3783 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
3785 & inprec, gtype, vsize, &
3786 & lbi, ubi, lbj, ubj, &
3787 & fscl, fmin, fmax, &
3789 &
grid(ng) % vmask, &
3792 &
ocean(ng) % ad_vbar(:,:,tindex), &
3795 &
ocean(ng) % ad_vbar(:,:,tindex))
3797 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3800 & inprec, trim(ncname)
3822 & __line__, myfile))
THEN
3828# ifdef ADJUST_BOUNDARY
3839 &
vname(1,ifield), varid, &
3841 & lbij, ubij,
nbrec(ng), &
3842 & fscl, fmin, fmax, &
3844 &
boundary(ng) % ad_vbar_obc(:,:,:, &
3848 &
boundary(ng) % ad_vbar_obc(:,:,:, &
3851 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3853 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
3854 & inprec, trim(ncname)
3862 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
3865 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
3872 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
3877 & __line__, myfile))
THEN
3883# ifdef ADJUST_WSTRESS
3887 IF (get_var(
idusms))
THEN
3893 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3895 & inprec, gtype, vsize, &
3896 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
3897 & scale, fmin, fmax, &
3899 &
grid(ng) % umask, &
3902 &
forces(ng) % ad_ustr(:,:,:,tindex), &
3905 &
forces(ng) % ad_ustr(:,:,:,tindex))
3907 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3910 & inprec, trim(ncname)
3919 &
', adjusted ad_ustr', fmin, fmax, &
3923 &
', adjusted ad_ustr', fmin, fmax
3934 & __line__, myfile))
THEN
3942 IF (get_var(
idvsms))
THEN
3948 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
3950 & inprec, gtype, vsize, &
3951 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
3952 & scale, fmin, fmax, &
3954 &
grid(ng) % vmask, &
3957 &
forces(ng) % ad_vstr(:,:,:,tindex), &
3960 &
forces(ng) % ad_vstr(:,:,:,tindex))
3962 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
3965 & inprec, trim(ncname)
3974 &
', adjusted ad_vstr', fmin, fmax, &
3978 &
', adjusted ad_vstr', fmin, fmax
3989 & __line__, myfile))
THEN
3999 IF (get_var(
iduvel))
THEN
4004 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4006 & inprec, gtype, vsize, &
4007 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4008 & fscl, fmin, fmax, &
4010 &
grid(ng) % umask, &
4013 &
ocean(ng) % ad_u(:,:,:,tindex), &
4016 &
ocean(ng) % ad_u(:,:,:,tindex))
4018 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4021 & inprec, trim(ncname)
4044 & __line__, myfile))
THEN
4050# ifdef ADJUST_BOUNDARY
4061 &
vname(1,ifield), varid, &
4063 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
4064 & fscl, fmin, fmax, &
4066 &
boundary(ng) % ad_u_obc(:,:,:,:, &
4070 &
boundary(ng) % ad_u_obc(:,:,:,:, &
4073 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4075 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
4076 & inprec, trim(ncname)
4084 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
4087 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
4093 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
4098 & __line__, myfile))
THEN
4107 IF (get_var(
idvvel))
THEN
4112 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4114 & inprec, gtype, vsize, &
4115 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4116 & fscl, fmin, fmax, &
4118 &
grid(ng) % vmask, &
4121 &
ocean(ng) % ad_v(:,:,:,tindex), &
4124 &
ocean(ng) % ad_v(:,:,:,tindex))
4126 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4129 & inprec, trim(ncname)
4152 & __line__, myfile))
THEN
4158# ifdef ADJUST_BOUNDARY
4169 &
vname(1,ifield), varid, &
4171 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
4172 & fscl, fmin, fmax, &
4174 &
boundary(ng) % ad_v_obc(:,:,:,:, &
4178 &
boundary(ng) % ad_v_obc(:,:,:,:, &
4181 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4183 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
4184 & inprec, trim(ncname)
4192 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
4195 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
4201 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
4206 & __line__, myfile))
THEN
4216 IF (get_var(
idtvar(itrc)))
THEN
4221 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4223 & inprec, gtype, vsize, &
4224 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4225 & fscl, fmin, fmax, &
4227 &
grid(ng) % rmask, &
4230 &
ocean(ng) % ad_t(:,:,:,tindex,itrc), &
4233 &
ocean(ng) % ad_t(:,:,:,tindex,itrc))
4235 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4238 & inprec, trim(ncname)
4261 & __line__, myfile))
THEN
4268# ifdef ADJUST_BOUNDARY
4280 &
vname(1,ifield), varid, &
4282 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
4283 & fscl, fmin, fmax, &
4285 &
boundary(ng) % ad_t_obc(:,:,:,:, &
4289 &
boundary(ng) % ad_t_obc(:,:,:,:, &
4292 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4294 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
4295 & inprec, trim(ncname)
4303 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
4306 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
4312 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
4317 & __line__, myfile))
THEN
4324# ifdef ADJUST_STFLUX
4335 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4337 & inprec, gtype, vsize, &
4338 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
4339 & scale, fmin, fmax, &
4341 &
grid(ng) % rmask, &
4344 &
forces(ng) % ad_tflux(:,:,:, &
4348 &
forces(ng) % ad_tflux(:,:,:, &
4351 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4354 & inprec, trim(ncname)
4363 &
', adjusted ad_tflux', fmin, fmax, &
4367 &
', adjusted ad_tflux', fmin, fmax
4378 & __line__, myfile))
THEN
4391 IF (get_var(
idfrac(i)))
THEN
4396 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4398 & inprec, gtype, vsize, &
4399 & lbi, ubi, lbj, ubj, 1,
nbed, &
4400 & fscl, fmin, fmax, &
4402 &
grid(ng) % rmask, &
4405 &
sedbed(ng) % ad_bed_frac(:,:,:,i), &
4408 &
sedbed(ng) % ad_bed_frac(:,:,:,i))
4410 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4413 & inprec, trim(ncname)
4436 & __line__, myfile))
THEN
4444 IF (get_var(
idbmas(i)))
THEN
4449 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4451 & inprec, gtype, vsize, &
4452 & lbi, ubi, lbj, ubj, 1,
nbed, &
4453 & fscl, fmin, fmax, &
4455 &
grid(ng) % rmask, &
4458 &
sedbed(ng) % ad_bed_mass(:,:,:, &
4462 &
sedbed(ng) % ad_bed_mass(:,:,:, &
4465 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4468 & inprec, trim(ncname)
4491 & __line__, myfile))
THEN
4501 IF (get_var(
idsbed(i)))
THEN
4506 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4508 & inprec, gtype, vsize, &
4509 & lbi, ubi, lbj, ubj, 1,
nbed, &
4510 & fscl, fmin, fmax, &
4512 &
grid(ng) % rmask, &
4515 &
sedbed(ng) % ad_bed(:,:,:,i), &
4518 &
sedbed(ng) % ad_bed(:,:,:,i))
4520 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4523 & inprec, trim(ncname)
4546 & __line__, myfile))
THEN
4557 IF (get_var(
idubld(i)))
THEN
4562 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4564 & inprec, gtype, vsize, &
4565 & lbi, ubi, lbj, ubj, &
4566 & fscl, fmin, fmax, &
4568 &
grid(ng) % umask, &
4571 &
sedbed(ng) % ad_bedldu(:,:,i), &
4574 &
sedbed(ng) % ad_bedldu(:,:,i))
4576 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4579 & inprec, trim(ncname)
4602 & __line__, myfile))
THEN
4608 IF (get_var(
idvbld(i)))
THEN
4613 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4615 & inprec, gtype, vsize, &
4616 & lbi, ubi, lbj, ubj, &
4617 & fscl, fmin, fmax, &
4619 &
grid(ng) % vmask, &
4622 &
sedbed(ng) % ad_bedldv(:,:,i), &
4625 &
sedbed(ng) % ad_bedldv(:,:,i))
4627 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4630 & inprec, trim(ncname)
4653 & __line__, myfile))
THEN
4661# if defined SEDIMENT || defined BBL_MODEL
4671 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4673 & inprec, gtype, vsize, &
4674 & lbi, ubi, lbj, ubj, &
4675 & fscl, fmin, fmax, &
4677 &
grid(ng) % rmask, &
4680 &
sedbed(ng) % ad_bottom(:,:,i), &
4683 &
sedbed(ng) % ad_bottom(:,:,i))
4685 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4688 & inprec, trim(ncname)
4711 & __line__, myfile))
THEN
4728 nrm_state:
IF ((model.eq.14).or. &
4729 & (model.eq.15).or. &
4730 & (model.eq.16).or. &
4731 & (model.eq.17))
THEN
4735 IF (get_var(
idfsur).and.((model.eq.14).or.(model.eq.15)))
THEN
4740 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4742 & inprec, gtype, vsize, &
4743 & lbi, ubi, lbj, ubj, &
4744 & fscl, fmin, fmax, &
4746 &
grid(ng) % rmask, &
4749 &
ocean(ng) % b_zeta(:,:,tindex), &
4752 &
ocean(ng) % b_zeta(:,:,tindex))
4754 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4757 & inprec, trim(ncname)
4775 & lbi, ubi, lbj, ubj, &
4778 &
ocean(ng) % b_zeta(:,:,tindex))
4787 & __line__, myfile))
THEN
4795 IF (get_var(
idubar).and.((model.eq.14).or.(model.eq.15)))
THEN
4800 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4802 & inprec, gtype, vsize, &
4803 & lbi, ubi, lbj, ubj, &
4804 & fscl, fmin, fmax, &
4806 &
grid(ng) % umask, &
4809 &
ocean(ng) % b_ubar(:,:,tindex), &
4812 &
ocean(ng) % b_ubar(:,:,tindex))
4814 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4817 & inprec, trim(ncname)
4834 & lbi, ubi, lbj, ubj, &
4837 &
ocean(ng) % b_ubar(:,:,tindex))
4846 & __line__, myfile))
THEN
4854 IF (get_var(
idvbar).and.((model.eq.14).or.(model.eq.15)))
THEN
4859 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
4861 & inprec, gtype, vsize, &
4862 & lbi, ubi, lbj, ubj, &
4863 & fscl, fmin, fmax, &
4865 &
grid(ng) % vmask, &
4868 &
ocean(ng) % b_vbar(:,:,tindex), &
4871 &
ocean(ng) % b_vbar(:,:,tindex))
4873 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4876 & inprec, trim(ncname)
4893 & lbi, ubi, lbj, ubj, &
4896 &
ocean(ng) % b_vbar(:,:,tindex))
4905 & __line__, myfile))
THEN
4916 IF (get_var(
iduvel).and.((model.eq.14).or.(model.eq.15)))
THEN
4921 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4923 & inprec, gtype, vsize, &
4924 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4925 & fscl, fmin, fmax, &
4927 &
grid(ng) % umask, &
4930 &
ocean(ng) % b_u(:,:,:,tindex), &
4933 &
ocean(ng) % b_u(:,:,:,tindex))
4935 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4938 & inprec, trim(ncname)
4955 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4958 &
ocean(ng) % b_u(:,:,:,tindex))
4967 & __line__, myfile))
THEN
4976 IF (get_var(
idvvel).and.((model.eq.14).or.(model.eq.15)))
THEN
4981 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
4983 & inprec, gtype, vsize, &
4984 & lbi, ubi, lbj, ubj, 1,
n(ng), &
4985 & fscl, fmin, fmax, &
4987 &
grid(ng) % vmask, &
4990 &
ocean(ng) % b_v(:,:,:,tindex), &
4993 &
ocean(ng) % b_v(:,:,:,tindex))
4995 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
4998 & inprec, trim(ncname)
5015 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5018 &
ocean(ng) % b_v(:,:,:,tindex))
5027 & __line__, myfile))
THEN
5037 IF (get_var(
idtvar(itrc)).and. &
5038 & ((model.eq.14).or.(model.eq.15)))
THEN
5043 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
5045 & inprec, gtype, vsize, &
5046 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5047 & fscl, fmin, fmax, &
5049 &
grid(ng) % rmask, &
5052 &
ocean(ng) % b_t(:,:,:,tindex,itrc), &
5055 &
ocean(ng) % b_t(:,:,:,tindex,itrc))
5057 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5060 & inprec, trim(ncname)
5078 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5081 &
ocean(ng) % b_t(:,:,:,tindex,itrc))
5090 & __line__, myfile))
THEN
5097# ifdef ADJUST_BOUNDARY
5105 &
boundary(ng) % b_zeta_obc(lbij:,:), &
5107 & start = (/1,1,inprec/), &
5108 & total = (/iorj,4,1/), &
5124 &
boundary(ng) % b_ubar_obc(lbij:,:), &
5126 & start = (/1,1,inprec/), &
5127 & total = (/iorj,4,1/), &
5143 &
boundary(ng) % b_vbar_obc(lbij:,:), &
5145 & start = (/1,1,inprec/), &
5146 & total = (/iorj,4,1/), &
5164 &
boundary(ng) % b_u_obc(lbij:,:,:), &
5166 & start = (/1,1,1,inprec/), &
5167 & total = (/iorj,
n(ng),4,1/), &
5183 &
boundary(ng) % b_v_obc(lbij:,:,:), &
5185 & start = (/1,1,1,inprec/), &
5186 & total = (/iorj,
n(ng),4/), &
5199 IF (get_var(
idsbry(
istvar(itrc))).and.(model.eq.16).and. &
5203 &
boundary(ng) % b_t_obc(lbij:,:,:, &
5206 & start =(/1,1,1,inprec/), &
5207 & total =(/iorj,
n(ng),4,1/), &
5219# ifdef ADJUST_WSTRESS
5223 IF (get_var(
idusms).and.(model.eq.17))
THEN
5228 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5230 & inprec, gtype, vsize, &
5231 & lbi, ubi, lbj, ubj, &
5232 & fscl, fmin, fmax, &
5234 &
grid(ng) % umask, &
5237 &
forces(ng) % b_sustr, &
5242 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5245 & inprec, trim(ncname)
5262 & lbi, ubi, lbj, ubj, &
5274 & __line__, myfile))
THEN
5282 IF (get_var(
idvsms).and.(model.eq.17))
THEN
5287 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5289 & inprec, gtype, vsize, &
5290 & lbi, ubi, lbj, ubj, &
5291 & fscl, fmin, fmax, &
5293 &
grid(ng) % vmask, &
5296 &
forces(ng) % b_svstr, &
5301 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5304 & inprec, trim(ncname)
5321 & lbi, ubi, lbj, ubj, &
5333 & __line__, myfile))
THEN
5340# if defined ADJUST_STFLUX && defined SOLVE3D
5345 IF (get_var(
idtsur(itrc)).and.(model.eq.17).and. &
5351 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5353 & inprec, gtype, vsize, &
5354 & lbi, ubi, lbj, ubj, &
5355 & fscl, fmin, fmax, &
5357 &
grid(ng) % rmask, &
5360 &
forces(ng) % b_stflx(:,:,itrc), &
5363 &
forces(ng) % b_stflx(:,:,itrc))
5365 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5368 & inprec, trim(ncname)
5386 & lbi, ubi, lbj, ubj, &
5389 &
forces(ng) % b_stflx(:,:,itrc))
5398 & __line__, myfile))
THEN
5408#if defined FOUR_DVAR || (defined HESSIAN_SV && defined BNORM)
5414 std_state:
IF ((model.eq.10).or. &
5415 & (model.eq.11).or. &
5416 & (model.eq.12).or. &
5417 & (model.eq.13))
THEN
5421 IF (get_var(
idfsur).and.((model.eq.10).or.(model.eq.11)))
THEN
5426 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5428 & inprec, gtype, vsize, &
5429 & lbi, ubi, lbj, ubj, &
5430 & fscl, fmin, fmax, &
5432 &
grid(ng) % rmask, &
5435 &
ocean(ng) % e_zeta(:,:,tindex), &
5438 &
ocean(ng) % e_zeta(:,:,tindex))
5440 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5443 & inprec, trim(ncname)
5460 & lbi, ubi, lbj, ubj, &
5463 &
ocean(ng) % e_zeta(:,:,tindex))
5472 & __line__, myfile))
THEN
5481 IF (get_var(
idubar).and.((model.eq.10).or.(model.eq.11)))
THEN
5486 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5488 & inprec, gtype, vsize, &
5489 & lbi, ubi, lbj, ubj, &
5490 & fscl, fmin, fmax, &
5492 &
grid(ng) % umask, &
5495 &
ocean(ng) % e_ubar(:,:,tindex), &
5498 &
ocean(ng) % e_ubar(:,:,tindex))
5500 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5503 & inprec, trim(ncname)
5520 & lbi, ubi, lbj, ubj, &
5523 &
ocean(ng) % e_ubar(:,:,tindex))
5532 & __line__, myfile))
THEN
5540 IF (get_var(
idvbar).and.((model.eq.10).or.(model.eq.11)))
THEN
5545 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5547 & inprec, gtype, vsize, &
5548 & lbi, ubi, lbj, ubj, &
5549 & fscl, fmin, fmax, &
5551 &
grid(ng) % vmask, &
5554 &
ocean(ng) % e_vbar(:,:,tindex), &
5557 &
ocean(ng) % e_vbar(:,:,tindex))
5559 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5562 & inprec, trim(ncname)
5580 & lbi, ubi, lbj, ubj, &
5583 &
ocean(ng) % e_vbar(:,:,tindex))
5592 & __line__, myfile))
THEN
5603 IF (get_var(
iduvel).and.((model.eq.10).or.(model.eq.11)))
THEN
5608 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
5610 & inprec, gtype, vsize, &
5611 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5612 & fscl, fmin, fmax, &
5614 &
grid(ng) % umask, &
5617 &
ocean(ng) % e_u(:,:,:,tindex), &
5620 &
ocean(ng) % e_u(:,:,:,tindex))
5622 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5625 & inprec, trim(ncname)
5642 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5645 &
ocean(ng) % e_u(:,:,:,tindex))
5654 & __line__, myfile))
THEN
5662 IF (get_var(
idvvel).and.((model.eq.10).or.(model.eq.11)))
THEN
5667 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
5669 & inprec, gtype, vsize, &
5670 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5671 & fscl, fmin, fmax, &
5673 &
grid(ng) % vmask, &
5676 &
ocean(ng) % e_v(:,:,:,tindex), &
5679 &
ocean(ng) % e_v(:,:,:,tindex))
5681 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5684 & inprec, trim(ncname)
5701 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5704 &
ocean(ng) % e_v(:,:,:,tindex))
5713 & __line__, myfile))
THEN
5723 IF (get_var(
idtvar(itrc)).and. &
5724 & ((model.eq.10).or.(model.eq.11)))
THEN
5729 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
5731 & inprec, gtype, vsize, &
5732 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5733 & fscl, fmin, fmax, &
5735 &
grid(ng) % rmask, &
5738 &
ocean(ng) % e_t(:,:,:,tindex,itrc), &
5741 &
ocean(ng) % e_t(:,:,:,tindex,itrc))
5743 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5746 & inprec, trim(ncname)
5764 & lbi, ubi, lbj, ubj, 1,
n(ng), &
5767 &
ocean(ng) % e_t(:,:,:,tindex,itrc))
5776 & __line__, myfile))
THEN
5786 IF (have_var(
idkhor).and.((model.eq.10).or.(model.eq.11)))
THEN
5791 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
5793 & inprec, gtype, vsize, &
5794 & lbi, ubi, lbj, ubj, &
5797 &
grid(ng) % rmask, &
5805 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5808 & inprec, trim(ncname)
5826 & lbi, ubi, lbj, ubj, &
5838 & __line__, myfile))
THEN
5848 IF (have_var(
idkver).and.((model.eq.10).or.(model.eq.11)))
THEN
5853 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
5855 & inprec, gtype, vsize, &
5856 & lbi, ubi, lbj, ubj, 0,
n(ng), &
5859 &
grid(ng) % rmask, &
5867 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
5870 & inprec, trim(ncname)
5888 & lbi, ubi, lbj, ubj, 0,
n(ng), &
5900 & __line__, myfile))
THEN
5906# ifdef ADJUST_BOUNDARY
5914 &
boundary(ng) % e_zeta_obc(lbij:,:), &
5916 & start = (/1,1,inprec/), &
5917 & total = (/iorj,4,1/), &
5933 &
boundary(ng) % e_ubar_obc(lbij:,:), &
5935 & start = (/1,1,inprec/), &
5936 & total = (/iorj,4,1/), &
5952 &
boundary(ng) % e_vbar_obc(lbij:,:), &
5954 & start = (/1,1,inprec/), &
5955 & total = (/iorj,4,1/), &
5973 &
boundary(ng) % e_u_obc(lbij:,:,:), &
5975 & start = (/1,1,1,inprec/), &
5976 & total = (/iorj,
n(ng),4,1/), &
5992 &
boundary(ng) % e_v_obc(lbij:,:,:), &
5994 & start = (/1,1,1,inprec/), &
5995 & total = (/iorj,
n(ng),4,1/), &
6008 IF (get_var(
idsbry(
istvar(itrc))).and.(model.eq.12).and. &
6012 &
boundary(ng) % e_t_obc(lbij:,:,:, &
6015 & start =(/1,1,1,inprec/), &
6016 & total =(/iorj,
n(ng),4,1/), &
6028# ifdef ADJUST_WSTRESS
6032 IF (get_var(
idusms).and.(model.eq.13))
THEN
6038 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6040 & inprec, gtype, vsize, &
6041 & lbi, ubi, lbj, ubj, &
6042 & scale, fmin, fmax, &
6044 &
grid(ng) % umask, &
6047 &
forces(ng) % e_sustr, &
6052 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6055 & inprec, trim(ncname)
6072 & lbi, ubi, lbj, ubj, &
6084 & __line__, myfile))
THEN
6092 IF (get_var(
idvsms).and.(model.eq.13))
THEN
6098 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6100 & inprec, gtype, vsize, &
6101 & lbi, ubi, lbj, ubj, &
6102 & scale, fmin, fmax, &
6104 &
grid(ng) % vmask, &
6107 &
forces(ng) % e_svstr, &
6112 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6115 & inprec, trim(ncname)
6132 & lbi, ubi, lbj, ubj, &
6144 & __line__, myfile))
THEN
6150# if defined ADJUST_STFLUX && defined SOLVE3D
6155 IF (get_var(
idtsur(itrc)).and.(model.eq.13).and. &
6161 IF (itrc.eq.
itemp)
THEN
6166 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6168 & inprec, gtype, vsize, &
6169 & lbi, ubi, lbj, ubj, &
6170 & scale, fmin, fmax, &
6172 &
grid(ng) % rmask, &
6175 &
forces(ng) % e_stflx(:,:,itrc), &
6178 &
forces(ng) % e_stflx(:,:,itrc))
6180 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6183 & inprec, trim(ncname)
6201 & lbi, ubi, lbj, ubj, &
6204 &
forces(ng) % e_stflx(:,:,itrc))
6213 & __line__, myfile))
THEN
6229 frc_state:
IF (model.eq.7)
THEN
6240 & start = (/inprec/), &
6246 IF (get_var(
idfsur))
THEN
6251 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6253 & inprec, gtype, vsize, &
6254 & lbi, ubi, lbj, ubj, &
6255 & fscl, fmin, fmax, &
6257 &
grid(ng) % rmask, &
6260 &
ocean(ng) % f_zeta, &
6263 &
ocean(ng) % f_zeta)
6265 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6268 & inprec, trim(ncname)
6290 & __line__, myfile))
THEN
6300 IF (get_var(
idubar))
THEN
6305 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6307 & inprec, gtype, vsize, &
6308 & lbi, ubi, lbj, ubj, &
6309 & fscl, fmin, fmax, &
6311 &
grid(ng) % umask, &
6314 &
ocean(ng) % f_ubar, &
6317 &
ocean(ng) % f_ubar)
6319 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6322 & inprec, trim(ncname)
6344 & __line__, myfile))
THEN
6352 IF (get_var(
idvbar))
THEN
6357 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
6359 & inprec, gtype, vsize, &
6360 & lbi, ubi, lbj, ubj, &
6361 & fscl, fmin, fmax, &
6363 &
grid(ng) % vmask, &
6366 &
ocean(ng) % f_vbar, &
6369 &
ocean(ng) % f_vbar)
6371 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6374 & inprec, trim(ncname)
6396 & __line__, myfile))
THEN
6406 IF (get_var(
iduvel))
THEN
6411 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
6413 & inprec, gtype, vsize, &
6414 & lbi, ubi, lbj, ubj, 1,
n(ng), &
6415 & fscl, fmin, fmax, &
6417 &
grid(ng) % umask, &
6420 &
ocean(ng) % f_u, &
6425 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6428 & inprec, trim(ncname)
6450 & __line__, myfile))
THEN
6458 IF (get_var(
idvvel))
THEN
6463 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
6465 & inprec, gtype, vsize, &
6466 & lbi, ubi, lbj, ubj, 1,
n(ng), &
6467 & fscl, fmin, fmax, &
6469 &
grid(ng) % vmask, &
6472 &
ocean(ng) % f_v, &
6477 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6480 & inprec, trim(ncname)
6502 & __line__, myfile))
THEN
6511 IF (get_var(
idtvar(itrc)))
THEN
6516 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
6518 & inprec, gtype, vsize, &
6519 & lbi, ubi, lbj, ubj, 1,
n(ng), &
6520 & fscl, fmin, fmax, &
6522 &
grid(ng) % rmask, &
6525 &
ocean(ng) % f_t(:,:,:,itrc), &
6528 &
ocean(ng) % f_t(:,:,:,itrc))
6530 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6533 & inprec, trim(ncname)
6556 & __line__, myfile))
THEN
6566#if (defined RBL4DVAR || \
6567 defined rbl4dvar_ana_sensitivity || \
6568 defined rbl4dvar_fct_sensitivity || \
6569 defined tl_rbl4dvar) && \
6570 (defined adjust_boundary || \
6571 defined adjust_stflux || \
6572 defined adjust_wstress)
6578 tlm_forcing:
IF (model.eq.5)
THEN
6585# ifdef ADJUST_BOUNDARY
6596 &
vname(1,ifield), varid, &
6598 & lbij, ubij,
nbrec(ng), &
6599 & fscl, fmin, fmax, &
6601 &
boundary(ng) % tl_zeta_obc(:,:,:, &
6605 &
boundary(ng) % tl_zeta_obc(:,:,:, &
6608 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6610 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6611 & inprec, trim(ncname)
6619 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6622 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6628 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6633 & __line__, myfile))
THEN
6648 &
vname(1,ifield), varid, &
6650 & lbij, ubij,
nbrec(ng), &
6651 & fscl, fmin, fmax, &
6653 &
boundary(ng) % tl_ubar_obc(:,:,:, &
6657 &
boundary(ng) % tl_ubar_obc(:,:,:, &
6660 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6662 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6663 & inprec, trim(ncname)
6671 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6674 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6680 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6685 & __line__, myfile))
THEN
6700 &
vname(1,ifield), varid, &
6702 & lbij, ubij,
nbrec(ng), &
6703 & fscl, fmin, fmax, &
6705 &
boundary(ng) % tl_vbar_obc(:,:,:, &
6709 &
boundary(ng) % tl_vbar_obc(:,:,:, &
6712 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6714 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6715 & inprec, trim(ncname)
6723 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6726 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6732 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6737 & __line__, myfile))
THEN
6754 &
vname(1,ifield), varid, &
6756 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
6757 & fscl, fmin, fmax, &
6759 &
boundary(ng) % tl_u_obc(:,:,:,:, &
6763 &
boundary(ng) % tl_u_obc(:,:,:,:, &
6766 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6768 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6769 & inprec, trim(ncname)
6777 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6780 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6786 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6791 & __line__, myfile))
THEN
6806 &
vname(1,ifield), varid, &
6808 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
6809 & fscl, fmin, fmax, &
6811 &
boundary(ng) % tl_v_obc(:,:,:,:, &
6815 &
boundary(ng) % tl_v_obc(:,:,:,:, &
6818 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6820 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6821 & inprec, trim(ncname)
6829 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6832 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6839 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6844 & __line__, myfile))
THEN
6853 IF (get_var(
idsbry(
istvar(itrc))).and.get_adjust.and. &
6860 &
vname(1,ifield), varid, &
6862 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
6863 & fscl, fmin, fmax, &
6865 &
boundary(ng) % tl_t_obc(:,:,:,:, &
6869 &
boundary(ng) % tl_t_obc(:,:,:,:, &
6872 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6874 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
6875 & inprec, trim(ncname)
6883 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
6886 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
6892 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
6897 & __line__, myfile))
THEN
6905# ifdef ADJUST_WSTRESS
6909 IF (get_var(
idusms).and.get_adjust)
THEN
6915 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
6917 & inprec, gtype, vsize, &
6918 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
6919 & scale, fmin, fmax, &
6921 &
grid(ng) % umask, &
6924 &
forces(ng) % tl_ustr(:,:,:,tindex), &
6927 &
forces(ng) % tl_ustr(:,:,:,tindex))
6929 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6932 & inprec, trim(ncname)
6941 &
', adjusted tl_ustr', fmin, fmax, &
6945 &
', adjusted tl_ustr', fmin, fmax
6956 & __line__, myfile))
THEN
6964 IF (get_var(
idvsms).and.get_adjust)
THEN
6970 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
6972 & inprec, gtype, vsize, &
6973 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
6974 & scale, fmin, fmax, &
6976 &
grid(ng) % vmask, &
6979 &
forces(ng) % tl_vstr(:,:,:,tindex), &
6982 &
forces(ng) % tl_vstr(:,:,:,tindex))
6984 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
6987 & inprec, trim(ncname)
6996 &
', adjusted tl_vstr', fmin, fmax, &
7000 &
', adjusted tl_vstr', fmin, fmax
7011 & __line__, myfile))
THEN
7017# if defined ADJUST_STFLUX && defined SOLVE3D
7022 IF (get_var(
idtsur(itrc)).and.get_adjust.and. &
7029 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
7031 & inprec, gtype, vsize, &
7032 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
7033 & scale, fmin, fmax, &
7035 &
grid(ng) % rmask, &
7038 &
forces(ng)% tl_tflux(:,:,:, &
7042 &
forces(ng)% tl_tflux(:,:,:, &
7045 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7048 & inprec, trim(ncname)
7057 &
', adjusted tl_tflux', fmin, fmax, &
7061 &
', adjusted tl_tflux', fmin, fmax
7072 & __line__, myfile))
THEN
7082#if defined TIME_CONV
7089 tcs_state:
IF (model.eq.6)
THEN
7100 & start = (/inprec/), &
7106 IF (get_var(
idfsur))
THEN
7111 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
7113 & inprec, gtype, vsize, &
7114 & lbi, ubi, lbj, ubj, &
7115 & fscl, fmin, fmax, &
7117 &
grid(ng) % rmask, &
7120 &
ocean(ng) % tl_zeta(:,:,tindex), &
7123 &
ocean(ng) % tl_zeta(:,:,tindex))
7125 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7128 & inprec, trim(ncname)
7151 & __line__, myfile))
THEN
7161 IF (get_var(
idubar))
THEN
7166 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
7168 & inprec, gtype, vsize, &
7169 & lbi, ubi, lbj, ubj, &
7170 & fscl, fmin, fmax, &
7172 &
grid(ng) % umask, &
7175 &
ocean(ng) % tl_ubar(:,:,tindex), &
7178 &
ocean(ng) % tl_ubar(:,:,tindex))
7180 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7183 & inprec, trim(ncname)
7205 & __line__, myfile))
THEN
7213 IF (get_var(
idvbar))
THEN
7218 status=
nf_fread2d(ng, idmod, ncname, ncinpid, &
7220 & inprec, gtype, vsize, &
7221 & lbi, ubi, lbj, ubj, &
7222 & fscl, fmin, fmax, &
7224 &
grid(ng) % vmask, &
7227 &
ocean(ng) % tl_vbar(:,:,tindex), &
7230 &
ocean(ng) % tl_vbar(:,:,tindex))
7232 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7235 & inprec, trim(ncname)
7257 & __line__, myfile))
THEN
7267 IF (get_var(
iduvel))
THEN
7272 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
7274 & inprec, gtype, vsize, &
7275 & lbi, ubi, lbj, ubj, 1,
n(ng), &
7276 & fscl, fmin, fmax, &
7278 &
grid(ng) % umask, &
7281 &
ocean(ng) % tl_u(:,:,:,tindex), &
7284 &
ocean(ng) % tl_u(:,:,:,tindex))
7286 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7289 & inprec, trim(ncname)
7311 & __line__, myfile))
THEN
7319 IF (get_var(
idvvel))
THEN
7324 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
7326 & inprec, gtype, vsize, &
7327 & lbi, ubi, lbj, ubj, 1,
n(ng), &
7328 & fscl, fmin, fmax, &
7330 &
grid(ng) % vmask, &
7333 &
ocean(ng) % tl_v(:,:,:,tindex), &
7336 &
ocean(ng) % tl_v(:,:,:,tindex))
7338 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7341 & inprec, trim(ncname)
7363 & __line__, myfile))
THEN
7372 IF (get_var(
idtvar(itrc)))
THEN
7377 status=
nf_fread3d(ng, idmod, ncname, ncinpid, &
7379 & inprec, gtype, vsize, &
7380 & lbi, ubi, lbj, ubj, 1,
n(ng), &
7381 & fscl, fmin, fmax, &
7383 &
grid(ng) % rmask, &
7386 &
ocean(ng) % tl_t(:,:,:,tindex,itrc), &
7389 &
ocean(ng) % tl_t(:,:,:,tindex,itrc))
7391 IF (
founderror(status, nf90_noerr, __line__, myfile))
THEN
7394 & inprec, trim(ncname)
7417 & __line__, myfile))
THEN
7431 CALL netcdf_close (ng, idmod, ncinpid, ncname, .false.)
7437 CALL wclock_off (ng, idmod, 80, __line__, myfile)
7440 10
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,
'unable to open input NetCDF', &
7442 20
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,
'Warning - NetCDF global', &
7443 &
' attribute:',a, &
7444 & /,19x,
'for lateral boundary conditions not checked', &
7445 & /,19x,
'in file: ',a)
7446 30
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,
'requested input time', &
7447 &
' record = ',i0,/,19x,
'not found in input NetCDF: ',a,/, &
7448 & 19x,
'number of available records = ',i0)
7449 40
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,a,t75,a, &
7450 & /,22x,
'(Grid ',i2.2,a,i4.4,
', t = ',a, &
7451 &
', File: ',a,
', Rec=',i4.4,
', Index=',i1,
')')
7452 50
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,a,t75,a, &
7453 & /,22x,
'(Grid ',i2.2,
', t = ',a, &
7454 &
', File: ',a,
', Rec=',i4.4,
', Index=',i1,
')')
7455 60
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,
'error while reading', &
7456 &
' variable: ',a,2x,
'at time record = ',i0, &
7457 & /,19x,
'in input NetCDF file: ',a)
7459 70
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
7460 &
' Max = ',1p,e15.8,
' CheckSum = ',i0,
')')
7462 70
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
7463 &
' Max = ',1p,e15.8,
')')
7465 75
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
7466 &
' Max = ',1p,e15.8,
')')
7467 80
FORMAT (/,2x,
'GET_STATE_NF90 - ',a,
'cannot find variable: ',a, &
7468 & /,19x,
'in input NetCDF file: ',a)
7477# ifdef ADJUST_BOUNDARY
7478 & IorJ, LBij, UBij, &
7480 & LBi, UBi, LBj, UBj)
7488 integer,
intent(in) :: ng, model, msg, tindex
7489# ifdef ADJUST_BOUNDARY
7490 integer,
intent(in) :: iorj, lbij, ubij
7492 integer,
intent(in) :: lbi, ubi, lbj, ubj
7494 integer,
intent(inout) :: inirec
7496 TYPE(
t_io),
intent(inout) :: s
7500 logical :: perfect2d, perfect3d, foundit
7501# if defined ADJUST_BOUNDARY || \
7502 defined adjust_wstress || defined adjust_stflux
7503 logical :: get_adjust
7505 logical,
dimension(NV) :: get_var, have_var
7507 integer :: idmod, inprec, i, ifield, itrc, lstr, lend
7508 integer :: nrec, mysize, nvatts, nvdim, status, vindex
7509 integer :: vsize(4), start(4), total(4)
7510 integer(i8b) :: fhash
7512 real(dp),
parameter :: fscl = 1.0_r8
7514 real(dp) :: inptime, tmax, my_dstart, scale, time_scale
7515 real(r8) :: fmax, fmin
7517 real(dp),
allocatable :: timevar(:)
7519 character (len= 5) :: string
7520 character (len= 15) :: tstring, attnam, tvarnam
7521 character (len= 22) :: t_code
7522 character (len= 40) :: tunits
7523 character (len=256) :: ncname
7525 character (len=*),
parameter :: myfile = &
7526 & __FILE__//
", get_state_pio"
7528 TYPE (io_desc_t),
pointer :: iodesc
7530 TYPE (file_desc_t) :: piofile
7531 TYPE (var_desc_t) :: piovar
7544 IF (model.eq.
inlm.or.(model.eq.0))
THEN
7547 ELSE IF (model.eq.
itlm)
THEN
7550 ELSE IF (model.eq.
irpm)
THEN
7553 ELSE IF (model.eq.
iadm)
THEN
7556 ELSE IF (model.eq.5)
THEN
7559 ELSE IF (model.eq.6)
THEN
7562 ELSE IF (model.eq.7)
THEN
7565 ELSE IF (model.eq.8)
THEN
7568 ELSE IF (model.eq.9)
THEN
7571 ELSE IF (model.eq.10)
THEN
7574 ELSE IF (model.eq.11)
THEN
7577 ELSE IF (model.eq.12)
THEN
7580 ELSE IF (model.eq.13)
THEN
7583 ELSE IF (model.eq.14)
THEN
7586 ELSE IF (model.eq.15)
THEN
7589 ELSE IF (model.eq.16)
THEN
7592 ELSE IF (model.eq.17)
THEN
7601 CALL wclock_on (ng, idmod, 80, __line__, myfile)
7608# ifdef PERFECT_RESTART
7609 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
7637 CALL checkvars (ng, model, ncname, piofile, string, nrec,
nv, &
7638 & tvarnam, get_var, have_var)
7642# if defined DEBUGGING || defined NO_LBC_ATT
7646 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
7647 IF (
master)
WRITE (
stdout,20) string,
'NLM_LBC', trim(ncname)
7655 IF (((model.eq.0).or.(model.eq.
inlm)).and.(
nrrec(ng).ne.0))
THEN
7656 CALL lbc_getatt (ng, model, piofile, ncname,
'NLM_LBC',
lbc)
7664 & piofile = piofile, &
7665 & myvarname = trim(tvarnam), &
7666 & piovar = piovar, &
7667 & nvardim = nvdim, &
7676 IF (.not.
allocated(timevar))
allocate (timevar(mysize))
7678 &
rclock%DateNumber, timevar, &
7679 & piofile = piofile)
7688 IF (timevar(i).gt.tmax)
THEN
7696 IF ((inirec.ne.0).and.(inirec.gt.mysize))
THEN
7697 IF (
master)
WRITE (
stdout,30) string, inirec, trim(ncname), &
7702 IF (inirec.ne.0)
THEN
7707 inptime=timevar(inprec)
7709 IF (
allocated(timevar))
deallocate ( timevar )
7715 IF (trim(var_aname(i)).eq.
'units')
THEN
7716 IF (index(trim(var_achar(i)),
'day').ne.0)
THEN
7718 ELSE IF (index(trim(var_achar(i)),
'second').ne.0)
THEN
7723 IF (time_scale.gt.0.0_r8)
THEN
7724 inptime=inptime*time_scale
7731 IF ((model.eq.0).or.(model.eq.
inlm).or. &
7732 & (model.eq.
itlm).or.(model.eq.
irpm))
THEN
7733# ifdef GENERIC_DSTART
7734 IF (
initime(ng).lt.0.0_dp)
THEN
7737 my_dstart=
initime(ng)/86400.0_dp
7739 IF (((model.eq.
itlm).or.(model.eq.
irpm)).and.(msg.eq.1).and. &
7740 & (inptime.ne.(my_dstart*
day2sec)))
THEN
7744 IF (((model.eq.
itlm).or.(model.eq.
irpm)).and.(msg.eq.1).and. &
7761# ifdef WEAK_CONSTRAINT
7766 ELSE IF (model.eq.
iadm)
THEN
7767 IF ((msg.eq.1).and.(inptime.eq.0.0_r8))
THEN
7769 ELSE IF (msg.ne.1)
THEN
7781 IF (model.eq.
inlm)
THEN
7796 lstr=scan(ncname,
'/',back=.true.)+1
7797 lend=len_trim(ncname)
7799 IF ((10.le.model).and.(model.le.17))
THEN
7804 WRITE (tstring,
'(f15.4)')
tdays(ng)
7805# if defined I4DVAR || defined I4DVAR_ANA_SENSITIVITY || \
7806 defined weak_constraint
7808 & t_code, ng,
', Outer=',
outer, &
7809 & trim(adjustl(tstring)), ncname(lstr:lend), &
7814 & t_code, ng,
', Iter=',
nrun, &
7815 & trim(adjustl(tstring)), ncname(lstr:lend), &
7819 & t_code, ng, trim(adjustl(tstring)), &
7820 & ncname(lstr:lend), inprec, tindex
7832 nlm_state:
IF ((model.eq.
inlm).or.(model.eq.0))
THEN
7834# ifdef PERFECT_RESTART
7838 IF ((model.eq.0).and.(
nrrec(ng).ne.0))
THEN
7841 &
'nstp',
nstp(ng:), &
7842 & piofile = piofile, &
7843 & start = (/inprec/), &
7848 &
'nrhs',
nrhs(ng:), &
7849 & piofile = piofile, &
7850 & start = (/inprec/), &
7855 &
'nnew',
nnew(ng:), &
7856 & piofile = piofile, &
7857 & start = (/inprec/), &
7862 &
'kstp',
kstp(ng:), &
7863 & piofile = piofile, &
7864 & start = (/inprec/), &
7869 &
'krhs',
krhs(ng:), &
7870 & piofile = piofile, &
7871 & start = (/inprec/), &
7876 &
'knew',
knew(ng:), &
7877 & piofile = piofile, &
7878 & start = (/inprec/), &
7883# if defined SEDIMENT && defined SED_MORPH
7887 IF (get_var(
idbath))
THEN
7893 IF (kind(
grid(ng)%h).eq.8)
THEN
7894 my_piovar%dkind=pio_double
7897 my_piovar%dkind=pio_real
7901 status=
nf_fread2d(ng, idmod, ncname, piofile, &
7903 & inprec, iodesc, vsize, &
7904 & lbi, ubi, lbj, ubj, &
7905 & fscl, fmin, fmax, &
7907 &
grid(ng) % rmask, &
7915 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
7918 & inprec, trim(ncname)
7941 & __line__, myfile))
THEN
7950 IF (get_var(
idfsur))
THEN
7957 IF (kind(
ocean(ng)%zeta).eq.8)
THEN
7958 my_piovar%dkind=pio_double
7961 my_piovar%dkind=pio_real
7965 status=
nf_fread3d(ng, idmod, ncname, piofile, &
7967 & inprec, iodesc, vsize, &
7968 & lbi, ubi, lbj, ubj, 1, 3, &
7969 & fscl, fmin, fmax, &
7971 &
grid(ng) % rmask, &
7974 &
ocean(ng) % zeta, &
7980 IF (kind(
ocean(ng)%zeta).eq.8)
THEN
7981 my_piovar%dkind=pio_double
7984 my_piovar%dkind=pio_real
7988 status=
nf_fread2d(ng, idmod, ncname, piofile, &
7990 & inprec, iodesc, vsize, &
7991 & lbi, ubi, lbj, ubj, &
7992 & fscl, fmin, fmax, &
7994 &
grid(ng) % rmask, &
7997 &
ocean(ng) % zeta(:,:,tindex), &
8000 &
ocean(ng) % zeta(:,:,tindex))
8003 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8006 & inprec, trim(ncname)
8029 & __line__, myfile))
THEN
8037 IF (get_var(
idrzet).and.perfect2d)
THEN
8043 IF (kind(
ocean(ng)%rzeta).eq.8)
THEN
8044 my_piovar%dkind=pio_double
8047 my_piovar%dkind=pio_real
8051 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8053 & inprec, iodesc, vsize, &
8054 & lbi, ubi, lbj, ubj, 1, 2, &
8055 & fscl, fmin, fmax, &
8057 &
grid(ng) % rmask, &
8060 &
ocean(ng) % rzeta, &
8063 &
ocean(ng) % rzeta)
8065 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8068 & inprec, trim(ncname)
8091 & __line__, myfile))
THEN
8099 IF (get_var(
idubar))
THEN
8106 IF (kind(
ocean(ng)%ubar).eq.8)
THEN
8107 my_piovar%dkind=pio_double
8110 my_piovar%dkind=pio_real
8114 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8116 & inprec, iodesc, vsize, &
8117 & lbi, ubi, lbj, ubj, 1, 3, &
8118 & fscl, fmin, fmax, &
8120 &
grid(ng) % umask, &
8123 &
ocean(ng) % ubar, &
8129 IF (kind(
ocean(ng)%ubar).eq.8)
THEN
8130 my_piovar%dkind=pio_double
8133 my_piovar%dkind=pio_real
8137 status=
nf_fread2d(ng, idmod, ncname, piofile, &
8139 & inprec, iodesc, vsize, &
8140 & lbi, ubi, lbj, ubj, &
8141 & fscl, fmin, fmax, &
8143 &
grid(ng) % umask, &
8146 &
ocean(ng) % ubar(:,:,tindex), &
8149 &
ocean(ng) % ubar(:,:,tindex))
8152 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8155 & inprec, trim(ncname)
8178 & __line__, myfile))
THEN
8186 IF (get_var(
idru2d).and.perfect2d)
THEN
8192 IF (kind(
ocean(ng)%rubar).eq.8)
THEN
8193 my_piovar%dkind=pio_double
8196 my_piovar%dkind=pio_real
8200 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8202 & inprec, iodesc, vsize, &
8203 & lbi, ubi, lbj, ubj, 1, 2, &
8204 & fscl, fmin, fmax, &
8206 &
grid(ng) % umask, &
8209 &
ocean(ng) % rubar, &
8212 &
ocean(ng) % rubar)
8214 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8217 & inprec, trim(ncname)
8240 & __line__, myfile))
THEN
8248 IF (get_var(
idvbar))
THEN
8256 IF (kind(
ocean(ng)%vbar).eq.8)
THEN
8257 my_piovar%dkind=pio_double
8260 my_piovar%dkind=pio_real
8264 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8266 & inprec, iodesc, vsize, &
8267 & lbi, ubi, lbj, ubj, 1, 3, &
8268 & fscl, fmin, fmax, &
8270 &
grid(ng) % vmask, &
8273 &
ocean(ng) % vbar, &
8279 IF (kind(
ocean(ng)%vbar).eq.8)
THEN
8280 my_piovar%dkind=pio_double
8283 my_piovar%dkind=pio_real
8287 status=
nf_fread2d(ng, idmod, ncname, piofile, &
8289 & inprec, iodesc, vsize, &
8290 & lbi, ubi, lbj, ubj, &
8291 & fscl, fmin, fmax, &
8293 &
grid(ng) % vmask, &
8296 &
ocean(ng) % vbar(:,:,tindex), &
8299 &
ocean(ng) % vbar(:,:,tindex))
8302 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8305 & inprec, trim(ncname)
8328 & __line__, myfile))
THEN
8336 IF (get_var(
idrv2d).and.perfect2d)
THEN
8342 IF (kind(
ocean(ng)%rvbar).eq.8)
THEN
8343 my_piovar%dkind=pio_double
8346 my_piovar%dkind=pio_real
8350 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8352 & inprec, iodesc, vsize, &
8353 & lbi, ubi, lbj, ubj, 1, 2, &
8354 & fscl, fmin, fmax, &
8356 &
grid(ng) % vmask, &
8359 &
ocean(ng) % rvbar, &
8362 &
ocean(ng) % rvbar)
8364 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8367 & inprec, trim(ncname)
8390 & __line__, myfile))
THEN
8400 IF (get_var(
iduvel))
THEN
8407 IF (kind(
ocean(ng)%u).eq.8)
THEN
8408 my_piovar%dkind=pio_double
8411 my_piovar%dkind=pio_real
8415 status=
nf_fread4d(ng, idmod, ncname, piofile, &
8417 & inprec, iodesc, vsize, &
8418 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
8419 & fscl, fmin, fmax, &
8421 &
grid(ng) % umask, &
8430 IF (kind(
ocean(ng)%u).eq.8)
THEN
8431 my_piovar%dkind=pio_double
8434 my_piovar%dkind=pio_real
8438 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8440 & inprec, iodesc, vsize, &
8441 & lbi, ubi, lbj, ubj, 1,
n(ng), &
8442 & fscl, fmin, fmax, &
8444 &
grid(ng) % umask, &
8447 &
ocean(ng) % u(:,:,:,tindex), &
8450 &
ocean(ng) % u(:,:,:,tindex))
8453 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8456 & inprec, trim(ncname)
8478 & __line__, myfile))
THEN
8486 IF (get_var(
idru3d).and.perfect3d)
THEN
8492 IF (kind(
ocean(ng)%ru).eq.8)
THEN
8493 my_piovar%dkind=pio_double
8496 my_piovar%dkind=pio_real
8500 status=
nf_fread4d(ng, idmod, ncname, piofile, &
8502 & inprec, iodesc, vsize, &
8503 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
8504 & fscl, fmin, fmax, &
8506 &
grid(ng) % umask, &
8514 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8517 & inprec, trim(ncname)
8539 & __line__, myfile))
THEN
8547 IF (get_var(
idvvel))
THEN
8554 IF (kind(
ocean(ng)%v).eq.8)
THEN
8555 my_piovar%dkind=pio_double
8558 my_piovar%dkind=pio_real
8562 status=
nf_fread4d(ng, idmod, ncname, piofile, &
8564 & inprec, iodesc, vsize, &
8565 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
8566 & fscl, fmin, fmax, &
8568 &
grid(ng) % vmask, &
8577 IF (kind(
ocean(ng)%v).eq.8)
THEN
8578 my_piovar%dkind=pio_double
8581 my_piovar%dkind=pio_real
8585 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8587 & inprec, iodesc, vsize, &
8588 & lbi, ubi, lbj, ubj, 1,
n(ng), &
8589 & fscl, fmin, fmax, &
8591 &
grid(ng) % vmask, &
8594 &
ocean(ng) % v(:,:,:,tindex), &
8597 &
ocean(ng) % v(:,:,:,tindex))
8600 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8603 & inprec, trim(ncname)
8626 & __line__, myfile))
THEN
8634 IF (get_var(
idrv3d).and.perfect3d)
THEN
8641 IF (kind(
ocean(ng)%rv).eq.8)
THEN
8642 my_piovar%dkind=pio_double
8645 my_piovar%dkind=pio_real
8649 status=
nf_fread4d(ng, idmod, ncname, piofile, &
8651 & inprec, iodesc, vsize, &
8652 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
8653 & fscl, fmin, fmax, &
8655 &
grid(ng) % vmask, &
8663 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8666 & inprec, trim(ncname)
8689 & __line__, myfile))
THEN
8698 IF (get_var(
idtvar(itrc)))
THEN
8705 IF (kind(
ocean(ng)%u).eq.8)
THEN
8706 my_piovar%dkind=pio_double
8709 my_piovar%dkind=pio_real
8713 status=
nf_fread4d(ng, idmod, ncname, piofile, &
8715 & inprec, iodesc, vsize, &
8716 & lbi, ubi, lbj, ubj, 1,
n(ng), 1, 2, &
8717 & fscl, fmin, fmax, &
8719 &
grid(ng) % rmask, &
8722 &
ocean(ng) % t(:,:,:,:,itrc), &
8725 &
ocean(ng) % t(:,:,:,:,itrc))
8728 IF (kind(
ocean(ng)%t).eq.8)
THEN
8729 my_piovar%dkind=pio_double
8732 my_piovar%dkind=pio_real
8736 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8738 & inprec, iodesc, vsize, &
8739 & lbi, ubi, lbj, ubj, 1,
n(ng), &
8740 & fscl, fmin, fmax, &
8742 &
grid(ng) % rmask, &
8745 &
ocean(ng) % t(:,:,:,tindex,itrc), &
8748 &
ocean(ng) % t(:,:,:,tindex,itrc))
8751 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8754 & inprec, trim(ncname)
8777 & __line__, myfile))
THEN
8784# if defined GLS_MIXING || defined MY25_MIXING || defined LMD_MIXING
8788 IF (have_var(
idvvis))
THEN
8794 IF (kind(
mixing(ng)%AKv).eq.8)
THEN
8795 my_piovar%dkind=pio_double
8798 my_piovar%dkind=pio_real
8802 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8804 & inprec, iodesc, vsize, &
8805 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8806 & fscl, fmin,fmax, &
8808 &
grid(ng) % rmask, &
8816 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8819 & inprec, trim(ncname)
8837 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8849 & __line__, myfile))
THEN
8857 IF (have_var(
idtdif))
THEN
8863 IF (kind(
mixing(ng)%AKt).eq.8)
THEN
8864 my_piovar%dkind=pio_double
8867 my_piovar%dkind=pio_real
8871 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8873 & inprec, iodesc, vsize, &
8874 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8875 & fscl, fmin,fmax, &
8877 &
grid(ng) % rmask, &
8885 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8888 & inprec, trim(ncname)
8906 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8918 & __line__, myfile))
THEN
8928 IF (have_var(
idsdif))
THEN
8934 IF (kind(
mixing(ng)%AKt).eq.8)
THEN
8935 my_piovar%dkind=pio_double
8938 my_piovar%dkind=pio_real
8942 status=
nf_fread3d(ng, idmod, ncname, piofile, &
8944 & inprec, iodesc, vsize, &
8945 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8946 & fscl, fmin,fmax, &
8948 &
grid(ng) % rmask, &
8956 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
8959 & inprec, trim(ncname)
8977 & lbi, ubi, lbj, ubj, 0,
n(ng), &
8989 & __line__, myfile))
THEN
8996# if defined LMD_SKPP
9000 IF (have_var(
idhsbl).and.perfect3d)
THEN
9007 IF (kind(
mixing(ng)%Hsbl).eq.8)
THEN
9008 my_piovar%dkind=pio_double
9011 my_piovar%dkind=pio_real
9015 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9017 & inprec, iodesc, vsize, &
9018 & lbi, ubi, lbj, ubj, &
9019 & fscl, fmin, fmax, &
9021 &
grid(ng) % rmask, &
9029 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9032 & inprec, trim(ncname)
9055 & __line__, myfile))
THEN
9061# if defined LMD_BKPP
9065 IF (have_var(
idhbbl).and.perfect3d)
THEN
9072 IF (kind(
mixing(ng)%Hbbl).eq.8)
THEN
9073 my_piovar%dkind=pio_double
9076 my_piovar%dkind=pio_real
9080 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9082 & inprec, iodesc, vsize, &
9083 & lbi, ubi, lbj, ubj, &
9084 & fscl, fmin, fmax, &
9086 &
grid(ng) % rmask, &
9094 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9097 & inprec, trim(ncname)
9120 & __line__, myfile))
THEN
9126# if defined LMD_NONLOCAL && defined PERFECT_RESTART
9131 IF (have_var(
idghat(itrc)))
THEN
9137 IF (kind(
mixing(ng)%Ghats).eq.8)
THEN
9138 my_piovar%dkind=pio_double
9141 my_piovar%dkind=pio_real
9145 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9147 & inprec, iodesc, vsize, &
9148 & lbi, ubi, lbj, ubj, 0,
n(ng), &
9149 & fscl, fmin,fmax, &
9151 &
grid(ng) % rmask, &
9154 &
mixing(ng) % Ghats(:,:,:,itrc), &
9157 &
mixing(ng) % Ghats(:,:,:,itrc))
9159 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9162 & inprec, trim(ncname)
9185 & __line__, myfile))
THEN
9192# if defined GLS_MIXING || defined MY25_MIXING
9196 IF (get_var(
idmtke).and.perfect3d)
THEN
9203 IF (kind(
mixing(ng)%tke).eq.8)
THEN
9204 my_piovar%dkind=pio_double
9207 my_piovar%dkind=pio_real
9211 status=
nf_fread4d(ng, idmod, ncname, piofile, &
9213 & inprec, iodesc, vsize, &
9214 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
9215 & fscl, fmin, fmax, &
9217 &
grid(ng) % rmask, &
9225 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9228 & inprec, trim(ncname)
9251 & __line__, myfile))
THEN
9259 IF (get_var(
idmtls).and.perfect3d)
THEN
9265 IF (kind(
mixing(ng)%gls).eq.8)
THEN
9266 my_piovar%dkind=pio_double
9269 my_piovar%dkind=pio_real
9273 status=
nf_fread4d(ng, idmod, ncname, piofile, &
9275 & inprec, iodesc, vsize, &
9276 & lbi, ubi, lbj, ubj, 0,
n(ng), 1, 2, &
9277 & fscl, fmin, fmax, &
9279 &
grid(ng) % rmask, &
9287 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9290 & inprec, trim(ncname)
9313 & __line__, myfile))
THEN
9321 IF (get_var(
idvmls).and.perfect3d)
THEN
9328 IF (kind(
mixing(ng)%Lscale).eq.8)
THEN
9329 my_piovar%dkind=pio_double
9332 my_piovar%dkind=pio_real
9336 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9338 & inprec, iodesc, vsize, &
9339 & lbi, ubi, lbj, ubj, 0,
n(ng), &
9340 & fscl, fmin, fmax, &
9342 &
grid(ng) % rmask, &
9350 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9353 & inprec, trim(ncname)
9376 & __line__, myfile))
THEN
9384 IF (get_var(
idvmkk).and.perfect3d)
THEN
9390 IF (kind(
mixing(ng)%Akk).eq.8)
THEN
9391 my_piovar%dkind=pio_double
9394 my_piovar%dkind=pio_real
9398 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9400 & inprec, iodesc, vsize, &
9401 & lbi, ubi, lbj, ubj, 0,
n(ng), &
9402 & fscl, fmin, fmax, &
9404 &
grid(ng) % rmask, &
9412 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9415 & inprec, trim(ncname)
9438 & __line__, myfile))
THEN
9448 IF (get_var(
idvmkp).and.perfect3d)
THEN
9454 IF (kind(
mixing(ng)%Akp).eq.8)
THEN
9455 my_piovar%dkind=pio_double
9458 my_piovar%dkind=pio_real
9462 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9464 & inprec, iodesc, vsize, &
9465 & lbi, ubi, lbj, ubj, 0,
n(ng), &
9466 & fscl, fmin, fmax, &
9468 &
grid(ng) % rmask, &
9476 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9479 & inprec, trim(ncname)
9502 & __line__, myfile))
THEN
9515 IF (get_var(
idfrac(i)))
THEN
9521 IF (kind(
sedbed(ng)%bed_frac).eq.8)
THEN
9522 my_piovar%dkind=pio_double
9525 my_piovar%dkind=pio_real
9529 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9531 & inprec, iodesc, vsize, &
9532 & lbi, ubi, lbj, ubj, 1,
nbed, &
9533 & fscl, fmin, fmax, &
9535 &
grid(ng) % rmask, &
9538 &
sedbed(ng) % bed_frac(:,:,:,i), &
9541 &
sedbed(ng) % bed_frac(:,:,:,i))
9543 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9546 & inprec, trim(ncname)
9570 & __line__, myfile))
THEN
9578 IF (get_var(
idbmas(i)))
THEN
9584 IF (kind(
sedbed(ng)%bed_mass).eq.8)
THEN
9585 my_piovar%dkind=pio_double
9588 my_piovar%dkind=pio_real
9592 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9594 & inprec, iodesc, vsize, &
9595 & lbi, ubi, lbj, ubj, 1,
nbed, &
9596 & fscl, fmin, fmax, &
9598 &
grid(ng) % rmask, &
9601 &
sedbed(ng) % bed_mass(:,:,:,tindex,i), &
9604 &
sedbed(ng) % bed_mass(:,:,:,tindex,i))
9606 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9609 & inprec, trim(ncname)
9633 & __line__, myfile))
THEN
9643 IF (get_var(
idsbed(i)))
THEN
9649 IF (kind(
sedbed(ng)%bed).eq.8)
THEN
9650 my_piovar%dkind=pio_double
9653 my_piovar%dkind=pio_real
9657 status=
nf_fread3d(ng, idmod, ncname, piofile, &
9659 & inprec, iodesc, vsize, &
9660 & lbi, ubi, lbj, ubj, 1,
nbed, &
9661 & fscl, fmin, fmax, &
9663 &
grid(ng) % rmask, &
9666 &
sedbed(ng) % bed(:,:,:,i), &
9669 &
sedbed(ng) % bed(:,:,:,i))
9671 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9674 & inprec, trim(ncname)
9698 & __line__, myfile))
THEN
9710 IF (get_var(
idubld(i)))
THEN
9716 IF (kind(
sedbed(ng)%bedldu).eq.8)
THEN
9717 my_piovar%dkind=pio_double
9720 my_piovar%dkind=pio_real
9724 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9726 & inprec, iodesc, vsize, &
9727 & lbi, ubi, lbj, ubj, &
9728 & fscl, fmin, fmax, &
9730 &
grid(ng) % umask, &
9733 &
sedbed(ng) % bedldu(:,:,i), &
9736 &
sedbed(ng) % bedldu(:,:,i))
9738 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9741 & inprec, trim(ncname)
9765 & __line__, myfile))
THEN
9771 IF (get_var(
idvbld(i)))
THEN
9777 IF (kind(
sedbed(ng)%bedldv).eq.8)
THEN
9778 my_piovar%dkind=pio_double
9781 my_piovar%dkind=pio_real
9785 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9787 & inprec, iodesc, vsize, &
9788 & lbi, ubi, lbj, ubj, &
9789 & fscl, fmin, fmax, &
9791 &
grid(ng) % vmask, &
9794 &
sedbed(ng) % bedldv(:,:,i), &
9797 &
sedbed(ng) % bedldv(:,:,i))
9799 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9802 & inprec, trim(ncname)
9826 & __line__, myfile))
THEN
9835# if defined SEDIMENT || defined BBL_MODEL
9846 IF (kind(
sedbed(ng)%bottom).eq.8)
THEN
9847 my_piovar%dkind=pio_double
9850 my_piovar%dkind=pio_real
9854 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9856 & inprec, iodesc, vsize, &
9857 & lbi, ubi, lbj, ubj, &
9858 & fscl, fmin, fmax, &
9860 &
grid(ng) % rmask, &
9863 &
sedbed(ng) % bottom(:,:,i), &
9866 &
sedbed(ng) % bottom(:,:,i))
9868 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
9871 & inprec, trim(ncname)
9895 & __line__, myfile))
THEN
9907 IF (
isice(i).gt.0)
THEN
9909 IF (get_var(ifield))
THEN
9911 & trim(
vname(1,ifield)), vindex)
9917 IF (kind(
ice(ng)%Si).eq.8)
THEN
9918 my_piovar%dkind=pio_double
9921 my_piovar%dkind=pio_real
9925 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9926 &
vname(1,ifield), my_piovar, &
9927 & inprec, iodesc, vsize, &
9928 & lbi, ubi, lbj, ubj, &
9929 & fscl, fmin, fmax, &
9931 &
grid(ng) % umask, &
9934 &
ice(ng) % Si(:,:,tindex,i), &
9937 &
ice(ng) % Si(:,:,tindex,i))
9941 IF (kind(
ice(ng)%Si).eq.8)
THEN
9942 my_piovar%dkind=pio_double
9945 my_piovar%dkind=pio_real
9949 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9950 &
vname(1,ifield), my_piovar, &
9951 & inprec, iodesc, vsize, &
9952 & lbi, ubi, lbj, ubj, &
9953 & fscl, fmin, fmax, &
9955 &
grid(ng) % vmask, &
9958 &
ice(ng) % Si(:,:,tindex,i), &
9961 &
ice(ng) % Si(:,:,tindex,i))
9965 IF (kind(
ice(ng)%Si).eq.8)
THEN
9966 my_piovar%dkind=pio_double
9969 my_piovar%dkind=pio_real
9973 status=
nf_fread2d(ng, idmod, ncname, piofile, &
9974 &
vname(1,ifield), my_piovar, &
9975 & inprec, iodesc, vsize, &
9976 & lbi, ubi, lbj, ubj, &
9977 & fscl, fmin, fmax, &
9979 &
grid(ng) % rmask, &
9982 &
ice(ng) % Si(:,:,tindex,i), &
9985 &
ice(ng) % Si(:,:,tindex,i))
9990 & __line__, myfile))
THEN
9992 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
9993 & inprec, trim(ncname)
10002 & fmin, fmax, fhash
10004 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10011 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10016 & __line__, myfile))
THEN
10027# if defined TANGENT || defined TL_IOMS
10033 tlm_state:
IF ((model.eq.
itlm).or.(model.eq.
irpm))
THEN
10035# if defined ADJUST_BOUNDARY || \
10036 defined adjust_wstress || defined adjust_stflux
10046 IF (get_var(
idfsur))
THEN
10052 IF (kind(
ocean(ng)%tl_zeta).eq.8)
THEN
10053 my_piovar%dkind=pio_double
10056 my_piovar%dkind=pio_real
10060 status=
nf_fread2d(ng, idmod, ncname, piofile, &
10062 & inprec, iodesc, vsize, &
10063 & lbi, ubi, lbj, ubj, &
10064 & fscl, fmin, fmax, &
10066 &
grid(ng) % rmask, &
10069 &
ocean(ng) % tl_zeta(:,:,tindex), &
10070 & checksum = fhash)
10072 &
ocean(ng) % tl_zeta(:,:,tindex))
10074 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10077 & inprec, trim(ncname)
10099 & __line__, myfile))
THEN
10105# ifdef ADJUST_BOUNDARY
10117 IF (kind(
boundary(ng)%tl_zeta_obc).eq.8)
THEN
10118 my_piovar%dkind=pio_double
10121 my_piovar%dkind=pio_real
10126 &
vname(1,ifield), my_piovar, &
10127 & inprec, iodesc, &
10128 & lbij, ubij,
nbrec(ng), &
10129 & fscl, fmin, fmax, &
10131 &
boundary(ng) % tl_zeta_obc(:,:,:, &
10133 & checksum = fhash)
10135 &
boundary(ng) % tl_zeta_obc(:,:,:, &
10138 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10140 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10141 & inprec, trim(ncname)
10149 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10152 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10158 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10163 & __line__, myfile))
THEN
10172 IF (get_var(
idubar))
THEN
10178 IF (kind(
ocean(ng)%tl_ubar).eq.8)
THEN
10179 my_piovar%dkind=pio_double
10182 my_piovar%dkind=pio_real
10186 status=
nf_fread2d(ng, idmod, ncname, piofile, &
10188 & inprec, iodesc, vsize, &
10189 & lbi, ubi, lbj, ubj, &
10190 & fscl, fmin, fmax, &
10192 &
grid(ng) % umask, &
10195 &
ocean(ng) % tl_ubar(:,:,tindex), &
10196 & checksum = fhash)
10198 &
ocean(ng) % tl_ubar(:,:,tindex))
10200 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10203 & inprec, trim(ncname)
10225 & __line__, myfile))
THEN
10231# ifdef ADJUST_BOUNDARY
10243 IF (kind(
boundary(ng)%tl_ubar_obc).eq.8)
THEN
10244 my_piovar%dkind=pio_double
10247 my_piovar%dkind=pio_real
10252 &
vname(1,ifield), my_piovar, &
10253 & inprec, iodesc, &
10254 & lbij, ubij,
nbrec(ng), &
10255 & fscl, fmin, fmax, &
10257 &
boundary(ng) % tl_ubar_obc(:,:,:, &
10259 & checksum = fhash)
10261 &
boundary(ng) % tl_ubar_obc(:,:,:, &
10264 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10266 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10267 & inprec, trim(ncname)
10275 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10278 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10284 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10289 & __line__, myfile))
THEN
10298 IF (get_var(
idvbar))
THEN
10304 IF (kind(
ocean(ng)%tl_vbar).eq.8)
THEN
10305 my_piovar%dkind=pio_double
10308 my_piovar%dkind=pio_real
10312 status=
nf_fread2d(ng, idmod, ncname, piofile, &
10314 & inprec, iodesc, vsize, &
10315 & lbi, ubi, lbj, ubj, &
10316 & fscl, fmin, fmax, &
10318 &
grid(ng) % vmask, &
10321 &
ocean(ng) % tl_vbar(:,:,tindex), &
10322 & checksum = fhash)
10324 &
ocean(ng) % tl_vbar(:,:,tindex))
10326 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10329 & inprec, trim(ncname)
10351 & __line__, myfile))
THEN
10357# ifdef ADJUST_BOUNDARY
10369 IF (kind(
boundary(ng)%tl_vbar_obc).eq.8)
THEN
10370 my_piovar%dkind=pio_double
10373 my_piovar%dkind=pio_real
10378 &
vname(1,ifield), my_piovar, &
10379 & inprec, iodesc, &
10380 & lbij, ubij,
nbrec(ng), &
10381 & fscl, fmin, fmax, &
10383 &
boundary(ng) % tl_vbar_obc(:,:,:, &
10385 & checksum = fhash)
10387 &
boundary(ng) % tl_vbar_obc(:,:,:, &
10390 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10392 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10393 & inprec, trim(ncname)
10401 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10404 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10410 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10415 & __line__, myfile))
THEN
10421# ifdef ADJUST_WSTRESS
10425 IF (get_var(
idusms).and.get_adjust)
THEN
10432 IF (kind(
forces(ng)%tl_ustr).eq.8)
THEN
10433 my_piovar%dkind=pio_double
10436 my_piovar%dkind=pio_real
10440 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10442 & inprec, iodesc, vsize, &
10443 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
10444 & scale, fmin, fmax, &
10446 &
grid(ng) % umask, &
10449 &
forces(ng) % tl_ustr(:,:,:,tindex), &
10450 & checksum = fhash)
10452 &
forces(ng) % tl_ustr(:,:,:,tindex))
10454 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10457 & inprec, trim(ncname)
10466 &
', adjusted tl_ustr', fmin, fmax, &
10470 &
', adjusted tl_ustr', fmin, fmax
10481 & __line__, myfile))
THEN
10489 IF (get_var(
idvsms).and.get_adjust)
THEN
10496 IF (kind(
forces(ng)%tl_vstr).eq.8)
THEN
10497 my_piovar%dkind=pio_double
10500 my_piovar%dkind=pio_real
10504 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10506 & inprec, iodesc, vsize, &
10507 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
10508 & scale, fmin, fmax, &
10510 &
grid(ng) % vmask, &
10513 &
forces(ng) % tl_vstr(:,:,:,tindex), &
10514 & checksum = fhash)
10516 &
forces(ng) % tl_vstr(:,:,:,tindex))
10518 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10521 & inprec, trim(ncname)
10530 &
', adjusted tl_vstr', fmin, fmax, &
10534 &
', adjusted tl_vstr', fmin, fmax
10545 & __line__, myfile))
THEN
10556 IF (get_var(
iduvel))
THEN
10562 IF (kind(
ocean(ng)%tl_u).eq.8)
THEN
10563 my_piovar%dkind=pio_double
10566 my_piovar%dkind=pio_real
10570 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10572 & inprec, iodesc, vsize, &
10573 & lbi, ubi, lbj, ubj, 1,
n(ng), &
10574 & fscl, fmin, fmax, &
10576 &
grid(ng) % umask, &
10579 &
ocean(ng) % tl_u(:,:,:,tindex), &
10580 & checksum = fhash)
10582 &
ocean(ng) % tl_u(:,:,:,tindex))
10584 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10587 & inprec, trim(ncname)
10609 & __line__, myfile))
THEN
10615# ifdef ADJUST_BOUNDARY
10627 IF (kind(
boundary(ng)%tl_u_obc).eq.8)
THEN
10628 my_piovar%dkind=pio_double
10631 my_piovar%dkind=pio_real
10636 &
vname(1,ifield), my_piovar, &
10637 & inprec, iodesc, &
10638 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
10639 & fscl, fmin, fmax, &
10641 &
boundary(ng) % tl_u_obc(:,:,:,:, &
10643 & checksum = fhash)
10645 &
boundary(ng) % tl_u_obc(:,:,:,:, &
10648 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10650 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10651 & inprec, trim(ncname)
10659 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10662 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10668 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10673 & __line__, myfile))
THEN
10682 IF (get_var(
idvvel))
THEN
10688 IF (kind(
ocean(ng)%tl_v).eq.8)
THEN
10689 my_piovar%dkind=pio_double
10692 my_piovar%dkind=pio_real
10696 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10698 & inprec, iodesc, vsize, &
10699 & lbi, ubi, lbj, ubj, 1,
n(ng), &
10700 & fscl, fmin, fmax, &
10702 &
grid(ng) % vmask, &
10705 &
ocean(ng) % tl_v(:,:,:,tindex), &
10706 & checksum = fhash)
10708 &
ocean(ng) % tl_v(:,:,:,tindex))
10710 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10713 & inprec, trim(ncname)
10735 & __line__, myfile))
THEN
10741# ifdef ADJUST_BOUNDARY
10753 IF (kind(
boundary(ng)%tl_v_obc).eq.8)
THEN
10754 my_piovar%dkind=pio_double
10757 my_piovar%dkind=pio_real
10762 &
vname(1,ifield), my_piovar, &
10763 & inprec, iodesc, &
10764 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
10765 & fscl, fmin, fmax, &
10767 &
boundary(ng) % tl_v_obc(:,:,:,:, &
10769 & checksum = fhash)
10771 &
boundary(ng) % tl_v_obc(:,:,:,:, &
10774 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10776 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10777 & inprec, trim(ncname)
10785 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10788 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10794 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10799 & __line__, myfile))
THEN
10809 IF (get_var(
idtvar(itrc)))
THEN
10815 IF (kind(
ocean(ng)%tl_t).eq.8)
THEN
10816 my_piovar%dkind=pio_double
10819 my_piovar%dkind=pio_real
10823 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10825 & inprec, iodesc, vsize, &
10826 & lbi, ubi, lbj, ubj, 1,
n(ng), &
10827 & fscl, fmin, fmax, &
10829 &
grid(ng) % rmask, &
10832 &
ocean(ng) % tl_t(:,:,:,tindex,itrc), &
10833 & checksum = fhash)
10835 &
ocean(ng) % tl_t(:,:,:,tindex,itrc))
10837 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10840 & inprec, trim(ncname)
10849 & fmin, fmax, fhash
10863 & __line__, myfile))
THEN
10870# ifdef ADJUST_BOUNDARY
10875 IF (get_var(
idsbry(
istvar(itrc))).and.get_adjust.and. &
10883 IF (kind(
boundary(ng)%tl_t_obc).eq.8)
THEN
10884 my_piovar%dkind=pio_double
10887 my_piovar%dkind=pio_real
10892 &
vname(1,ifield), my_piovar, &
10893 & inprec, iodesc, &
10894 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
10895 & fscl, fmin, fmax, &
10897 &
boundary(ng) % tl_t_obc(:,:,:,:, &
10899 & checksum = fhash)
10901 &
boundary(ng) % tl_t_obc(:,:,:,:, &
10904 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10906 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
10907 & inprec, trim(ncname)
10915 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
10918 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
10924 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
10929 & __line__, myfile))
THEN
10936# ifdef ADJUST_STFLUX
10941 IF (get_var(
idtsur(itrc)).and.get_adjust.and. &
10949 IF (kind(
forces(ng)%tl_tflux).eq.8)
THEN
10950 my_piovar%dkind=pio_double
10953 my_piovar%dkind=pio_real
10957 status=
nf_fread3d(ng, idmod, ncname, piofile, &
10959 & inprec, iodesc, vsize, &
10960 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
10961 & scale, fmin, fmax, &
10963 &
grid(ng) % rmask, &
10966 &
forces(ng)% tl_tflux(:,:,:, &
10968 & checksum = fhash)
10970 &
forces(ng)% tl_tflux(:,:,:, &
10973 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
10976 & inprec, trim(ncname)
10985 &
', adjusted tl_tflux', fmin, fmax, &
10989 &
', adjusted tl_tflux', fmin, fmax
11000 & __line__, myfile))
THEN
11013 IF (get_var(
idfrac(i)))
THEN
11019 IF (kind(
ocean(ng)%tl_bed_frac).eq.8)
THEN
11020 my_piovar%dkind=pio_double
11023 my_piovar%dkind=pio_real
11027 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11029 & inprec, iodesc, vsize, &
11030 & lbi, ubi, lbj, ubj, 1,
nbed, &
11031 & fscl, fmin, fmax, &
11033 &
grid(ng) % rmask, &
11036 &
sedbed(ng) % tl_bed_frac(:,:,:,i), &
11037 & checksum = fhash)
11039 &
sedbed(ng) % tl_bed_frac(:,:,:,i))
11041 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11044 & inprec, trim(ncname)
11053 & fmin, fmax, fhash
11067 & __line__, myfile))
THEN
11076 IF (get_var(
idbmas(i)))
THEN
11082 IF (kind(
ocean(ng)%tl_bed_mass).eq.8)
THEN
11083 my_piovar%dkind=pio_double
11086 my_piovar%dkind=pio_real
11090 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11092 & inprec, iodesc, vsize, &
11093 & lbi, ubi, lbj, ubj, 1,
nbed, &
11094 & fscl, fmin, fmax, &
11096 &
grid(ng) % rmask, &
11099 &
sedbed(ng) % tl_bed_mass(:,:,:, &
11101 & checksum = fhash)
11103 &
sedbed(ng) % tl_bed_mass(:,:,:, &
11106 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11109 & inprec, trim(ncname)
11118 & fmin, fmax, fhash
11132 & __line__, myfile))
THEN
11142 IF (get_var(
idsbed(i)))
THEN
11148 IF (kind(
ocean(ng)%tl_bed).eq.8)
THEN
11149 my_piovar%dkind=pio_double
11152 my_piovar%dkind=pio_real
11156 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11158 & inprec, iodesc, vsize, &
11159 & lbi, ubi, lbj, ubj, 1,
nbed, &
11160 & fscl, fmin, fmax, &
11162 &
grid(ng) % rmask, &
11165 &
sedbed(ng) % tl_bed(:,:,:,i), &
11166 & checksum = fhash)
11168 &
sedbed(ng) % tl_bed(:,:,:,i))
11170 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11173 & inprec, trim(ncname)
11182 & fmin, fmax, fhash
11196 & __line__, myfile))
THEN
11208 IF (get_var(
idubld(i)))
THEN
11214 IF (kind(
ocean(ng)%tl_bedldu).eq.8)
THEN
11215 my_piovar%dkind=pio_double
11218 my_piovar%dkind=pio_real
11222 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11224 & inprec, iodesc, vsize, &
11225 & lbi, ubi, lbj, ubj, &
11226 & fscl, fmin, fmax, &
11228 &
grid(ng) % umask, &
11231 &
sedbed(ng) % tl_bedldu(:,:,i), &
11232 & checksum = fhash)
11234 &
sedbed(ng) % tl_bedldu(:,:,i))
11236 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11239 & inprec, trim(ncname)
11248 & fmin, fmax, fhash
11262 & __line__, myfile))
THEN
11268 IF (get_var(
idvbld(i)))
THEN
11274 IF (kind(
ocean(ng)%tl_bedldv).eq.8)
THEN
11275 my_piovar%dkind=pio_double
11278 my_piovar%dkind=pio_real
11282 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11284 & inprec, iodesc, vsize, &
11285 & lbi, ubi, lbj, ubj, &
11286 & fscl, fmin, fmax, &
11288 &
grid(ng) % vmask, &
11291 &
sedbed(ng) % tl_bedldv(:,:,i), &
11292 & checksum = fhash)
11294 &
sedbed(ng) % tl_bedldv(:,:,i))
11296 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11299 & inprec, trim(ncname)
11308 & fmin, fmax, fhash
11322 & __line__, myfile))
THEN
11331# if defined SEDIMENT || defined BBL_MODEL
11342 IF (kind(
ocean(ng)%tl_bottom).eq.8)
THEN
11343 my_piovar%dkind=pio_double
11346 my_piovar%dkind=pio_real
11350 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11352 & inprec, iodesc, vsize, &
11353 & lbi, ubi, lbj, ubj, &
11354 & fscl, fmin, fmax, &
11356 &
grid(ng) % rmask, &
11359 &
sedbed(ng) % tl_bottom(:,:,i), &
11360 & checksum = fhash)
11362 &
sedbed(ng) % tl_bottom(:,:,i))
11364 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11367 & inprec, trim(ncname)
11376 & fmin, fmax, fhash
11390 & __line__, myfile))
THEN
11407 adm_state:
IF (model.eq.
iadm)
THEN
11411 IF (get_var(
idfsur))
THEN
11417 IF (kind(
ocean(ng)%ad_zeta).eq.8)
THEN
11418 my_piovar%dkind=pio_double
11421 my_piovar%dkind=pio_real
11425 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11427 & inprec, iodesc, vsize, &
11428 & lbi, ubi, lbj, ubj, &
11429 & fscl, fmin, fmax, &
11431 &
grid(ng) % rmask, &
11434 &
ocean(ng) % ad_zeta(:,:,tindex), &
11435 & checksum = fhash)
11437 &
ocean(ng) % ad_zeta(:,:,tindex))
11439 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11442 & inprec, trim(ncname)
11464 & __line__, myfile))
THEN
11470# ifdef ADJUST_BOUNDARY
11482 IF (kind(
boundary(ng)%ad_zeta_obc).eq.8)
THEN
11483 my_piovar%dkind=pio_double
11486 my_piovar%dkind=pio_real
11491 &
vname(1,ifield), my_piovar, &
11492 & inprec, iodesc, &
11493 & lbij, ubij,
nbrec(ng), &
11494 & fscl, fmin, fmax, &
11496 &
boundary(ng) % ad_zeta_obc(:,:,:, &
11498 & checksum = fhash)
11500 &
boundary(ng) % ad_zeta_obc(:,:,:, &
11503 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11505 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
11506 & inprec, trim(ncname)
11514 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
11517 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
11523 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
11528 & __line__, myfile))
THEN
11537 IF (get_var(
idubar))
THEN
11543 IF (kind(
ocean(ng)%ad_ubar).eq.8)
THEN
11544 my_piovar%dkind=pio_double
11547 my_piovar%dkind=pio_real
11551 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11553 & inprec, iodesc, vsize, &
11554 & lbi, ubi, lbj, ubj, &
11555 & fscl, fmin, fmax, &
11557 &
grid(ng) % umask, &
11560 &
ocean(ng) % ad_ubar(:,:,tindex), &
11561 & checksum = fhash)
11563 &
ocean(ng) % ad_ubar(:,:,tindex))
11565 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11568 & inprec, trim(ncname)
11590 & __line__, myfile))
THEN
11596# ifdef ADJUST_BOUNDARY
11608 IF (kind(
boundary(ng)%ad_ubar_obc).eq.8)
THEN
11609 my_piovar%dkind=pio_double
11612 my_piovar%dkind=pio_real
11617 &
vname(1,ifield), my_piovar, &
11618 & inprec, iodesc, &
11619 & lbij, ubij,
nbrec(ng), &
11620 & fscl, fmin, fmax, &
11622 &
boundary(ng) % ad_ubar_obc(:,:,:, &
11624 & checksum = fhash)
11626 &
boundary(ng) % ad_ubar_obc(:,:,:, &
11629 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11631 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
11632 & inprec, trim(ncname)
11640 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
11643 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
11649 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
11654 & __line__, myfile))
THEN
11663 IF (get_var(
idvbar))
THEN
11669 IF (kind(
ocean(ng)%ad_vbar).eq.8)
THEN
11670 my_piovar%dkind=pio_double
11673 my_piovar%dkind=pio_real
11677 status=
nf_fread2d(ng, idmod, ncname, piofile, &
11679 & inprec, iodesc, vsize, &
11680 & lbi, ubi, lbj, ubj, &
11681 & fscl, fmin, fmax, &
11683 &
grid(ng) % vmask, &
11686 &
ocean(ng) % ad_vbar(:,:,tindex), &
11687 & checksum = fhash)
11689 &
ocean(ng) % ad_vbar(:,:,tindex))
11691 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11694 & inprec, trim(ncname)
11716 & __line__, myfile))
THEN
11722# ifdef ADJUST_BOUNDARY
11734 IF (kind(
boundary(ng)%ad_vbar_obc).eq.8)
THEN
11735 my_piovar%dkind=pio_double
11738 my_piovar%dkind=pio_real
11743 &
vname(1,ifield), my_piovar, &
11744 & inprec, iodesc, &
11745 & lbij, ubij,
nbrec(ng), &
11746 & fscl, fmin, fmax, &
11748 &
boundary(ng) % ad_vbar_obc(:,:,:, &
11750 & checksum = fhash)
11752 &
boundary(ng) % ad_vbar_obc(:,:,:, &
11755 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11757 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
11758 & inprec, trim(ncname)
11766 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
11769 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
11776 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
11781 & __line__, myfile))
THEN
11787# ifdef ADJUST_WSTRESS
11791 IF (get_var(
idusms))
THEN
11798 IF (kind(
forces(ng)%ad_ustr).eq.8)
THEN
11799 my_piovar%dkind=pio_double
11802 my_piovar%dkind=pio_real
11806 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11808 & inprec, iodesc, vsize, &
11809 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
11810 & scale, fmin, fmax, &
11812 &
grid(ng) % umask, &
11815 &
forces(ng) % ad_ustr(:,:,:,tindex), &
11816 & checksum = fhash)
11818 &
forces(ng) % ad_ustr(:,:,:,tindex))
11820 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11823 & inprec, trim(ncname)
11832 &
', adjusted ad_ustr', fmin, fmax, &
11836 &
', adjusted ad_ustr', fmin, fmax
11847 & __line__, myfile))
THEN
11855 IF (get_var(
idvsms))
THEN
11862 IF (kind(
forces(ng)%ad_vstr).eq.8)
THEN
11863 my_piovar%dkind=pio_double
11866 my_piovar%dkind=pio_real
11870 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11872 & inprec, iodesc, vsize, &
11873 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
11874 & scale, fmin, fmax, &
11876 &
grid(ng) % vmask, &
11879 &
forces(ng) % ad_vstr(:,:,:,tindex), &
11880 & checksum = fhash)
11882 &
forces(ng) % ad_vstr(:,:,:,tindex))
11884 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11887 & inprec, trim(ncname)
11896 &
', adjusted ad_vstr', fmin, fmax, &
11900 &
', adjusted ad_vstr', fmin, fmax
11911 & __line__, myfile))
THEN
11921 IF (get_var(
iduvel))
THEN
11927 IF (kind(
ocean(ng)%ad_u).eq.8)
THEN
11928 my_piovar%dkind=pio_double
11931 my_piovar%dkind=pio_real
11935 status=
nf_fread3d(ng, idmod, ncname, piofile, &
11937 & inprec, iodesc, vsize, &
11938 & lbi, ubi, lbj, ubj, 1,
n(ng), &
11939 & fscl, fmin, fmax, &
11941 &
grid(ng) % umask, &
11944 &
ocean(ng) % ad_u(:,:,:,tindex), &
11945 & checksum = fhash)
11947 &
ocean(ng) % ad_u(:,:,:,tindex))
11949 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
11952 & inprec, trim(ncname)
11975 & __line__, myfile))
THEN
11981# ifdef ADJUST_BOUNDARY
11993 IF (kind(
boundary(ng)%ad_u_obc).eq.8)
THEN
11994 my_piovar%dkind=pio_double
11997 my_piovar%dkind=pio_real
12002 &
vname(1,ifield), my_piovar, &
12003 & inprec, iodesc, &
12004 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
12005 & fscl, fmin, fmax, &
12007 &
boundary(ng) % ad_u_obc(:,:,:,:, &
12009 & checksum = fhash)
12011 &
boundary(ng) % ad_u_obc(:,:,:,:, &
12014 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12016 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
12017 & inprec, trim(ncname)
12025 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
12028 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
12034 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
12039 & __line__, myfile))
THEN
12048 IF (get_var(
idvvel))
THEN
12054 IF (kind(
ocean(ng)%ad_v).eq.8)
THEN
12055 my_piovar%dkind=pio_double
12058 my_piovar%dkind=pio_real
12062 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12064 & inprec, iodesc, vsize, &
12065 & lbi, ubi, lbj, ubj, 1,
n(ng), &
12066 & fscl, fmin, fmax, &
12068 &
grid(ng) % vmask, &
12071 &
ocean(ng) % ad_v(:,:,:,tindex), &
12072 & checksum = fhash)
12074 &
ocean(ng) % ad_v(:,:,:,tindex))
12076 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12079 & inprec, trim(ncname)
12102 & __line__, myfile))
THEN
12108# ifdef ADJUST_BOUNDARY
12120 IF (kind(
boundary(ng)%ad_v_obc).eq.8)
THEN
12121 my_piovar%dkind=pio_double
12124 my_piovar%dkind=pio_real
12129 &
vname(1,ifield), my_piovar, &
12130 & inprec, iodesc, &
12131 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
12132 & fscl, fmin, fmax, &
12134 &
boundary(ng) % ad_v_obc(:,:,:,:, &
12136 & checksum = fhash)
12138 &
boundary(ng) % ad_v_obc(:,:,:,:, &
12141 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12143 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
12144 & inprec, trim(ncname)
12152 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
12155 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
12161 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
12166 & __line__, myfile))
THEN
12176 IF (get_var(
idtvar(itrc)))
THEN
12182 IF (kind(
ocean(ng)%ad_t).eq.8)
THEN
12183 my_piovar%dkind=pio_double
12186 my_piovar%dkind=pio_real
12190 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12192 & inprec, iodesc, vsize, &
12193 & lbi, ubi, lbj, ubj, 1,
n(ng), &
12194 & fscl, fmin, fmax, &
12196 &
grid(ng) % rmask, &
12199 &
ocean(ng) % ad_t(:,:,:,tindex,itrc), &
12200 & checksum = fhash)
12202 &
ocean(ng) % ad_t(:,:,:,tindex,itrc))
12204 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12207 & inprec, trim(ncname)
12216 & fmin, fmin, fhash
12230 & __line__, myfile))
THEN
12237# ifdef ADJUST_BOUNDARY
12250 IF (kind(
boundary(ng)%ad_t_obc).eq.8)
THEN
12251 my_piovar%dkind=pio_double
12254 my_piovar%dkind=pio_real
12259 &
vname(1,ifield), my_piovar, &
12260 & inprec, iodesc, &
12261 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
12262 & fscl, fmin, fmax, &
12264 &
boundary(ng) % ad_t_obc(:,:,:,:, &
12266 & checksum = fhash)
12268 &
boundary(ng) % ad_t_obc(:,:,:,:, &
12271 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12273 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
12274 & inprec, trim(ncname)
12282 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
12285 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
12291 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
12296 & __line__, myfile))
THEN
12303# ifdef ADJUST_STFLUX
12315 IF (kind(
forces(ng)%ad_tflux).eq.8)
THEN
12316 my_piovar%dkind=pio_double
12319 my_piovar%dkind=pio_real
12323 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12325 & inprec, iodesc, vsize, &
12326 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
12327 & scale, fmin, fmax, &
12329 &
grid(ng) % rmask, &
12332 &
forces(ng) % ad_tflux(:,:,:, &
12334 & checksum = fhash)
12336 &
forces(ng) % ad_tflux(:,:,:, &
12339 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12342 & inprec, trim(ncname)
12351 &
', adjusted ad_tflux', fmin, fmax, &
12355 &
', adjusted ad_tflux', fmin, fmax
12366 & __line__, myfile))
THEN
12379 IF (get_var(
idfrac(i)))
THEN
12385 IF (kind(
sedbed(ng)%ad_bed_frac).eq.8)
THEN
12386 my_piovar%dkind=pio_double
12389 my_piovar%dkind=pio_real
12393 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12395 & inprec, iodesc, vsize, &
12396 & lbi, ubi, lbj, ubj, 1,
nbed, &
12397 & fscl, fmin, fmax, &
12399 &
grid(ng) % rmask, &
12402 &
sedbed(ng) % ad_bed_frac(:,:,:,i), &
12403 & checksum = fhash)
12405 &
sedbed(ng) % ad_bed_frac(:,:,:,i))
12407 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12410 & inprec, trim(ncname)
12419 & fmin, fmax, fhash
12433 & __line__, myfile))
THEN
12441 IF (get_var(
idbmas(i)))
THEN
12447 IF (kind(
sedbed(ng)%ad_bed_mass).eq.8)
THEN
12448 my_piovar%dkind=pio_double
12451 my_piovar%dkind=pio_real
12455 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12457 & inprec, iodesc, vsize, &
12458 & lbi, ubi, lbj, ubj, 1,
nbed, &
12459 & fscl, fmin, fmax, &
12461 &
grid(ng) % rmask, &
12464 &
sedbed(ng) % ad_bed_mass(:,:,:, &
12466 & checksum = fhash)
12468 &
sedbed(ng) % ad_bed_mass(:,:,:, &
12471 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12474 & inprec, trim(ncname)
12483 & fmin, fmax, fhash
12497 & __line__, myfile))
THEN
12507 IF (get_var(
idsbed(i)))
THEN
12513 IF (kind(
sedbed(ng)%ad_bed).eq.8)
THEN
12514 my_piovar%dkind=pio_double
12517 my_piovar%dkind=pio_real
12521 status=
nf_fread3d(ng, idmod, ncname, piofile, &
12523 & inprec, iodesc, vsize, &
12524 & lbi, ubi, lbj, ubj, 1,
nbed, &
12525 & fscl, fmin, fmax, &
12527 &
grid(ng) % rmask, &
12530 &
sedbed(ng) % ad_bed(:,:,:,i), &
12531 & checksum = fhash)
12533 &
sedbed(ng) % ad_bed(:,:,:,i))
12535 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12538 & inprec, trim(ncname)
12547 & fmin, fmax, fhash
12561 & __line__, myfile))
THEN
12573 IF (get_var(
idubld(i)))
THEN
12579 IF (kind(
sedbed(ng)%ad_bedldu).eq.8)
THEN
12580 my_piovar%dkind=pio_double
12583 my_piovar%dkind=pio_real
12587 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12589 & inprec, iodesc, vsize, &
12590 & lbi, ubi, lbj, ubj, &
12591 & fscl, fmin, fmax, &
12593 &
grid(ng) % umask, &
12596 &
sedbed(ng) % ad_bedldu(:,:,i), &
12597 & checksum = fhash)
12599 &
sedbed(ng) % ad_bedldu(:,:,i))
12601 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12604 & inprec, trim(ncname)
12613 & fmin, fmax, fhash
12627 & __line__, myfile))
THEN
12633 IF (get_var(
idvbld(i)))
THEN
12639 IF (kind(
sedbed(ng)%ad_bedldv).eq.8)
THEN
12640 my_piovar%dkind=pio_double
12643 my_piovar%dkind=pio_real
12647 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12649 & inprec, iodesc, vsize, &
12650 & lbi, ubi, lbj, ubj, &
12651 & fscl, fmin, fmax, &
12653 &
grid(ng) % vmask, &
12656 &
sedbed(ng) % ad_bedldv(:,:,i), &
12657 & checksum = fhash)
12659 &
sedbed(ng) % ad_bedldv(:,:,i))
12661 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12664 & inprec, trim(ncname)
12673 & fmin, fmax, fhash
12687 & __line__, myfile))
THEN
12695# if defined SEDIMENT || defined BBL_MODEL
12706 IF (kind(
sedbed(ng)%tl_bottom).eq.8)
THEN
12707 my_piovar%dkind=pio_double
12710 my_piovar%dkind=pio_real
12714 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12716 & inprec, iodesc, vsize, &
12717 & lbi, ubi, lbj, ubj, &
12718 & fscl, fmin, fmax, &
12720 &
grid(ng) % rmask, &
12723 &
sedbed(ng) % ad_bottom(:,:,i), &
12724 & checksum = fhash)
12726 &
sedbed(ng) % ad_bottom(:,:,i))
12728 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12731 & inprec, trim(ncname)
12740 & fmin, fmax, fhash
12754 & __line__, myfile))
THEN
12771 nrm_state:
IF ((model.eq.14).or. &
12772 & (model.eq.15).or. &
12773 & (model.eq.16).or. &
12774 & (model.eq.17))
THEN
12778 IF (get_var(
idfsur).and.((model.eq.14).or.(model.eq.15)))
THEN
12784 IF (kind(
ocean(ng)%b_zeta).eq.8)
THEN
12785 my_piovar%dkind=pio_double
12788 my_piovar%dkind=pio_real
12792 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12794 & inprec, iodesc, vsize, &
12795 & lbi, ubi, lbj, ubj, &
12796 & fscl, fmin, fmax, &
12798 &
grid(ng) % rmask, &
12801 &
ocean(ng) % b_zeta(:,:,tindex), &
12802 & checksum = fhash)
12804 &
ocean(ng) % b_zeta(:,:,tindex))
12806 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12809 & inprec, trim(ncname)
12827 & lbi, ubi, lbj, ubj, &
12830 &
ocean(ng) % b_zeta(:,:,tindex))
12839 & __line__, myfile))
THEN
12847 IF (get_var(
idubar).and.((model.eq.14).or.(model.eq.15)))
THEN
12853 IF (kind(
ocean(ng)%b_ubar).eq.8)
THEN
12854 my_piovar%dkind=pio_double
12857 my_piovar%dkind=pio_real
12861 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12863 & inprec, iodesc, vsize, &
12864 & lbi, ubi, lbj, ubj, &
12865 & fscl, fmin, fmax, &
12867 &
grid(ng) % umask, &
12870 &
ocean(ng) % b_ubar(:,:,tindex), &
12871 & checksum = fhash)
12873 &
ocean(ng) % b_ubar(:,:,tindex))
12875 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12878 & inprec, trim(ncname)
12895 & lbi, ubi, lbj, ubj, &
12898 &
ocean(ng) % b_ubar(:,:,tindex))
12907 & __line__, myfile))
THEN
12915 IF (get_var(
idvbar).and.((model.eq.14).or.(model.eq.15)))
THEN
12921 IF (kind(
ocean(ng)%b_vbar).eq.8)
THEN
12922 my_piovar%dkind=pio_double
12925 my_piovar%dkind=pio_real
12929 status=
nf_fread2d(ng, idmod, ncname, piofile, &
12931 & inprec, iodesc, vsize, &
12932 & lbi, ubi, lbj, ubj, &
12933 & fscl, fmin, fmax, &
12935 &
grid(ng) % vmask, &
12938 &
ocean(ng) % b_vbar(:,:,tindex), &
12939 & checksum = fhash)
12941 &
ocean(ng) % b_vbar(:,:,tindex))
12943 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
12946 & inprec, trim(ncname)
12963 & lbi, ubi, lbj, ubj, &
12966 &
ocean(ng) % b_vbar(:,:,tindex))
12975 & __line__, myfile))
THEN
12986 IF (get_var(
iduvel).and.((model.eq.14).or.(model.eq.15)))
THEN
12992 IF (kind(
ocean(ng)%b_u).eq.8)
THEN
12993 my_piovar%dkind=pio_double
12996 my_piovar%dkind=pio_real
13000 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13002 & inprec, iodesc, vsize, &
13003 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13004 & fscl, fmin, fmax, &
13006 &
grid(ng) % umask, &
13009 &
ocean(ng) % b_u(:,:,:,tindex), &
13010 & checksum = fhash)
13012 &
ocean(ng) % b_u(:,:,:,tindex))
13014 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13017 & inprec, trim(ncname)
13034 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13037 &
ocean(ng) % b_u(:,:,:,tindex))
13046 & __line__, myfile))
THEN
13055 IF (get_var(
idvvel).and.((model.eq.14).or.(model.eq.15)))
THEN
13061 IF (kind(
ocean(ng)%b_v).eq.8)
THEN
13062 my_piovar%dkind=pio_double
13065 my_piovar%dkind=pio_real
13069 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13071 & inprec, iodesc, vsize, &
13072 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13073 & fscl, fmin, fmax, &
13075 &
grid(ng) % vmask, &
13078 &
ocean(ng) % b_v(:,:,:,tindex), &
13079 & checksum = fhash)
13081 &
ocean(ng) % b_v(:,:,:,tindex))
13083 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13086 & inprec, trim(ncname)
13103 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13106 &
ocean(ng) % b_v(:,:,:,tindex))
13115 & __line__, myfile))
THEN
13125 IF (get_var(
idtvar(itrc)).and. &
13126 & ((model.eq.14).or.(model.eq.15)))
THEN
13132 IF (kind(
ocean(ng)%b_t).eq.8)
THEN
13133 my_piovar%dkind=pio_double
13136 my_piovar%dkind=pio_real
13140 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13142 & inprec, iodesc, vsize, &
13143 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13144 & fscl, fmin, fmax, &
13146 &
grid(ng) % rmask, &
13149 &
ocean(ng) % b_t(:,:,:,tindex,itrc), &
13150 & checksum = fhash)
13152 &
ocean(ng) % b_t(:,:,:,tindex,itrc))
13154 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13157 & inprec, trim(ncname)
13166 & fmin, fmax, fhash
13175 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13178 &
ocean(ng) % b_t(:,:,:,tindex,itrc))
13187 & __line__, myfile))
THEN
13194# ifdef ADJUST_BOUNDARY
13202 &
boundary(ng) % b_zeta_obc(lbij:,:), &
13203 & piofile = piofile, &
13204 & start = (/1,1,inprec/), &
13205 & total = (/iorj,4,1/), &
13206 & min_val = fmin, &
13221 &
boundary(ng) % b_ubar_obc(lbij:,:), &
13222 & piofile = piofile, &
13223 & start = (/1,1,inprec/), &
13224 & total = (/iorj,4,1/), &
13225 & min_val = fmin, &
13240 &
boundary(ng) % b_vbar_obc(lbij:,:), &
13241 & piofile = piofile, &
13242 & start = (/1,1,inprec/), &
13243 & total = (/iorj,4,1/), &
13244 & min_val = fmin, &
13261 &
boundary(ng) % b_u_obc(lbij:,:,:), &
13262 & piofile = piofile, &
13263 & start = (/1,1,1,inprec/), &
13264 & total = (/iorj,
n(ng),4,1/), &
13265 & min_val = fmin, &
13280 &
boundary(ng) % b_v_obc(lbij:,:,:), &
13281 & piofile = piofile, &
13282 & start = (/1,1,1,inprec/), &
13283 & total = (/iorj,
n(ng),4,1/), &
13284 & min_val = fmin, &
13296 IF (get_var(
idsbry(
istvar(itrc))).and.(model.eq.16).and. &
13300 &
boundary(ng) % b_t_obc(lbij:,:,:, &
13302 & piofile = piofile, &
13303 & start =(/1,1,1,inprec/), &
13304 & total =(/iorj,
n(ng),4,1/), &
13305 & min_val = fmin, &
13316# ifdef ADJUST_WSTRESS
13320 IF (get_var(
idusms).and.(model.eq.17))
THEN
13326 IF (kind(
forces(ng)%b_sustr).eq.8)
THEN
13327 my_piovar%dkind=pio_double
13330 my_piovar%dkind=pio_real
13334 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13336 & inprec, iodesc, vsize, &
13337 & lbi, ubi, lbj, ubj, &
13338 & fscl, fmin, fmax, &
13340 &
grid(ng) % umask, &
13343 &
forces(ng) % b_sustr, &
13344 & checksum = fhash)
13348 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13351 & inprec, trim(ncname)
13368 & lbi, ubi, lbj, ubj, &
13380 & __line__, myfile))
THEN
13388 IF (get_var(
idvsms).and.(model.eq.17))
THEN
13394 IF (kind(
forces(ng)%b_svstr).eq.8)
THEN
13395 my_piovar%dkind=pio_double
13398 my_piovar%dkind=pio_real
13402 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13404 & inprec, iodesc, vsize, &
13405 & lbi, ubi, lbj, ubj, &
13406 & fscl, fmin, fmax, &
13408 &
grid(ng) % vmask, &
13411 &
forces(ng) % b_svstr, &
13412 & checksum = fhash)
13416 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13419 & inprec, trim(ncname)
13436 & lbi, ubi, lbj, ubj, &
13448 & __line__, myfile))
THEN
13455# if defined ADJUST_STFLUX && defined SOLVE3D
13460 IF (get_var(
idtsur(itrc)).and.(model.eq.17).and. &
13467 IF (kind(
forces(ng)%b_stflx).eq.8)
THEN
13468 my_piovar%dkind=pio_double
13471 my_piovar%dkind=pio_real
13475 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13477 & inprec, iodesc, vsize, &
13478 & lbi, ubi, lbj, ubj, &
13479 & fscl, fmin, fmax, &
13481 &
grid(ng) % rmask, &
13484 &
forces(ng) % b_stflx(:,:,itrc), &
13485 & checksum = fhash)
13487 &
forces(ng) % b_stflx(:,:,itrc))
13489 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13492 & inprec, trim(ncname)
13501 & fmin, fmax, fhash
13510 & lbi, ubi, lbj, ubj, &
13513 &
forces(ng) % b_stflx(:,:,itrc))
13522 & __line__, myfile))
THEN
13532# if defined FOUR_DVAR || (defined HESSIAN_SV && defined BNORM)
13538 std_state:
IF ((model.eq.10).or. &
13539 & (model.eq.11).or. &
13540 & (model.eq.12).or. &
13541 & (model.eq.13))
THEN
13545 IF (get_var(
idfsur).and.((model.eq.10).or.(model.eq.11)))
THEN
13551 IF (kind(
ocean(ng)%e_zeta).eq.8)
THEN
13552 my_piovar%dkind=pio_double
13555 my_piovar%dkind=pio_real
13559 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13561 & inprec, iodesc, vsize, &
13562 & lbi, ubi, lbj, ubj, &
13563 & fscl, fmin, fmax, &
13565 &
grid(ng) % rmask, &
13568 &
ocean(ng) % e_zeta(:,:,tindex), &
13569 & checksum = fhash)
13571 &
ocean(ng) % e_zeta(:,:,tindex))
13573 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13576 & inprec, trim(ncname)
13593 & lbi, ubi, lbj, ubj, &
13596 &
ocean(ng) % e_zeta(:,:,tindex))
13605 & __line__, myfile))
THEN
13614 IF (get_var(
idubar).and.((model.eq.10).or.(model.eq.11)))
THEN
13620 IF (kind(
ocean(ng)%e_ubar).eq.8)
THEN
13621 my_piovar%dkind=pio_double
13624 my_piovar%dkind=pio_real
13628 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13630 & inprec, iodesc, vsize, &
13631 & lbi, ubi, lbj, ubj, &
13632 & fscl, fmin, fmax, &
13634 &
grid(ng) % umask, &
13637 &
ocean(ng) % e_ubar(:,:,tindex), &
13638 & checksum = fhash)
13640 &
ocean(ng) % e_ubar(:,:,tindex))
13642 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13645 & inprec, trim(ncname)
13662 & lbi, ubi, lbj, ubj, &
13665 &
ocean(ng) % e_ubar(:,:,tindex))
13674 & __line__, myfile))
THEN
13682 IF (get_var(
idvbar).and.((model.eq.10).or.(model.eq.11)))
THEN
13688 IF (kind(
ocean(ng)%e_vbar).eq.8)
THEN
13689 my_piovar%dkind=pio_double
13692 my_piovar%dkind=pio_real
13696 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13698 & inprec, iodesc, vsize, &
13699 & lbi, ubi, lbj, ubj, &
13700 & fscl, fmin, fmax, &
13702 &
grid(ng) % vmask, &
13705 &
ocean(ng) % e_vbar(:,:,tindex), &
13706 & checksum = fhash)
13708 &
ocean(ng) % e_vbar(:,:,tindex))
13710 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13713 & inprec, trim(ncname)
13731 & lbi, ubi, lbj, ubj, &
13734 &
ocean(ng) % e_vbar(:,:,tindex))
13743 & __line__, myfile))
THEN
13754 IF (get_var(
iduvel).and.((model.eq.10).or.(model.eq.11)))
THEN
13760 IF (kind(
ocean(ng)%b_u).eq.8)
THEN
13761 my_piovar%dkind=pio_double
13764 my_piovar%dkind=pio_real
13768 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13770 & inprec, iodesc, vsize, &
13771 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13772 & fscl, fmin, fmax, &
13774 &
grid(ng) % umask, &
13777 &
ocean(ng) % e_u(:,:,:,tindex), &
13778 & checksum = fhash)
13780 &
ocean(ng) % e_u(:,:,:,tindex))
13782 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13785 & inprec, trim(ncname)
13802 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13805 &
ocean(ng) % e_u(:,:,:,tindex))
13814 & __line__, myfile))
THEN
13822 IF (get_var(
idvvel).and.((model.eq.10).or.(model.eq.11)))
THEN
13828 IF (kind(
ocean(ng)%e_v).eq.8)
THEN
13829 my_piovar%dkind=pio_double
13832 my_piovar%dkind=pio_real
13836 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13838 & inprec, iodesc, vsize, &
13839 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13840 & fscl, fmin, fmax, &
13842 &
grid(ng) % vmask, &
13845 &
ocean(ng) % e_v(:,:,:,tindex), &
13846 & checksum = fhash)
13848 &
ocean(ng) % e_v(:,:,:,tindex))
13850 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13853 & inprec, trim(ncname)
13870 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13873 &
ocean(ng) % e_v(:,:,:,tindex))
13882 & __line__, myfile))
THEN
13892 IF (get_var(
idtvar(itrc)).and. &
13893 & ((model.eq.10).or.(model.eq.11)))
THEN
13899 IF (kind(
ocean(ng)%e_t).eq.8)
THEN
13900 my_piovar%dkind=pio_double
13903 my_piovar%dkind=pio_real
13907 status=
nf_fread3d(ng, idmod, ncname, piofile, &
13909 & inprec, iodesc, vsize, &
13910 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13911 & fscl, fmin, fmax, &
13913 &
grid(ng) % rmask, &
13916 &
ocean(ng) % e_t(:,:,:,tindex,itrc), &
13917 & checksum = fhash)
13919 &
ocean(ng) % e_t(:,:,:,tindex,itrc))
13921 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13924 & inprec, trim(ncname)
13933 & fmin, fmax, fhash
13942 & lbi, ubi, lbj, ubj, 1,
n(ng), &
13945 &
ocean(ng) % e_t(:,:,:,tindex,itrc))
13954 & __line__, myfile))
THEN
13964 IF (have_var(
idkhor).and.((model.eq.10).or.(model.eq.11)))
THEN
13970 IF (kind(
mixing(ng)%Kh).eq.8)
THEN
13971 my_piovar%dkind=pio_double
13974 my_piovar%dkind=pio_real
13978 status=
nf_fread2d(ng, idmod, ncname, piofile, &
13980 & inprec, iodesc, vsize, &
13981 & lbi, ubi, lbj, ubj, &
13984 &
grid(ng) % rmask, &
13988 & checksum = fhash)
13992 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
13995 & inprec, trim(ncname)
14013 & lbi, ubi, lbj, ubj, &
14025 & __line__, myfile))
THEN
14035 IF (have_var(
idkver).and.((model.eq.10).or.(model.eq.11)))
THEN
14041 IF (kind(
mixing(ng)%Kv).eq.8)
THEN
14042 my_piovar%dkind=pio_double
14045 my_piovar%dkind=pio_real
14049 status=
nf_fread3d(ng, idmod, ncname, piofile, &
14051 & inprec, iodesc, vsize, &
14052 & lbi, ubi, lbj, ubj, 0,
n(ng), &
14055 &
grid(ng) % rmask, &
14059 & checksum = fhash)
14063 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14066 & inprec, trim(ncname)
14084 & lbi, ubi, lbj, ubj, 0,
n(ng), &
14096 & __line__, myfile))
THEN
14102# ifdef ADJUST_BOUNDARY
14110 &
boundary(ng) % e_zeta_obc(lbij:,:), &
14111 & piofile = piofile, &
14112 & start = (/1,1,inprec/), &
14113 & total = (/iorj,4,1/), &
14114 & min_val = fmin, &
14129 &
boundary(ng) % e_ubar_obc(lbij:,:), &
14130 & piofile = piofile, &
14131 & start = (/1,1,inprec/), &
14132 & total = (/iorj,4,1/), &
14133 & min_val = fmin, &
14148 &
boundary(ng) % e_vbar_obc(lbij:,:), &
14149 & piofile = piofile, &
14150 & start = (/1,1,inprec/), &
14151 & total = (/iorj,4,1/), &
14152 & min_val = fmin, &
14169 &
boundary(ng) % e_u_obc(lbij:,:,:), &
14170 & piofile = piofile, &
14171 & start = (/1,1,1,inprec/), &
14172 & total = (/iorj,
n(ng),4,1/), &
14173 & min_val = fmin, &
14188 &
boundary(ng) % e_v_obc(lbij:,:,:), &
14189 & piofile = piofile, &
14190 & start = (/1,1,1,inprec/), &
14191 & total = (/iorj,
n(ng),4,1/), &
14192 & min_val = fmin, &
14204 IF (get_var(
idsbry(
istvar(itrc))).and.(model.eq.12).and. &
14208 &
boundary(ng) % e_t_obc(lbij:,:,:, &
14210 & piofile = piofile, &
14211 & start =(/1,1,1,inprec/), &
14212 & total =(/iorj,
n(ng),4,1/), &
14213 & min_val = fmin, &
14224# ifdef ADJUST_WSTRESS
14228 IF (get_var(
idusms).and.(model.eq.13))
THEN
14235 IF (kind(
forces(ng)%e_sustr).eq.8)
THEN
14236 my_piovar%dkind=pio_double
14239 my_piovar%dkind=pio_real
14243 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14245 & inprec, iodesc, vsize, &
14246 & lbi, ubi, lbj, ubj, &
14247 & scale, fmin, fmax, &
14249 &
grid(ng) % umask, &
14252 &
forces(ng) % e_sustr, &
14253 & checksum = fhash)
14257 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14260 & inprec, trim(ncname)
14277 & lbi, ubi, lbj, ubj, &
14289 & __line__, myfile))
THEN
14297 IF (get_var(
idvsms).and.(model.eq.13))
THEN
14304 IF (kind(
forces(ng)%e_svstr).eq.8)
THEN
14305 my_piovar%dkind=pio_double
14308 my_piovar%dkind=pio_real
14312 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14314 & inprec, iodesc, vsize, &
14315 & lbi, ubi, lbj, ubj, &
14316 & scale, fmin, fmax, &
14318 &
grid(ng) % vmask, &
14321 &
forces(ng) % e_svstr, &
14322 & checksum = fhash)
14326 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14329 & inprec, trim(ncname)
14346 & lbi, ubi, lbj, ubj, &
14358 & __line__, myfile))
THEN
14364# if defined ADJUST_STFLUX && defined SOLVE3D
14369 IF (get_var(
idtsur(itrc)).and.(model.eq.13).and. &
14374 IF (itrc.eq.
itemp)
THEN
14381 IF (kind(
forces(ng)%e_stflx).eq.8)
THEN
14382 my_piovar%dkind=pio_double
14385 my_piovar%dkind=pio_real
14389 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14391 & inprec, iodesc, vsize, &
14392 & lbi, ubi, lbj, ubj, &
14393 & scale, fmin, fmax, &
14395 &
grid(ng) % rmask, &
14398 &
forces(ng) % e_stflx(:,:,itrc), &
14399 & checksum = fhash)
14401 &
forces(ng) % e_stflx(:,:,itrc))
14403 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14406 & inprec, trim(ncname)
14415 & fmin, fmax, fhash
14424 & lbi, ubi, lbj, ubj, &
14427 &
forces(ng) % e_stflx(:,:,itrc))
14436 & __line__, myfile))
THEN
14446# if defined IMPULSE
14452 frc_state:
IF (model.eq.7)
THEN
14462 & piofile = piofile, &
14463 & start = (/inprec/), &
14469 IF (get_var(
idfsur))
THEN
14475 IF (kind(
ocean(ng)%f_zeta).eq.8)
THEN
14476 my_piovar%dkind=pio_double
14479 my_piovar%dkind=pio_real
14483 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14485 & inprec, iodesc, vsize, &
14486 & lbi, ubi, lbj, ubj, &
14487 & fscl, fmin, fmax, &
14489 &
grid(ng) % rmask, &
14492 &
ocean(ng) % f_zeta, &
14493 & checksum = fhash)
14495 &
ocean(ng) % f_zeta)
14497 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14500 & inprec, trim(ncname)
14522 & __line__, myfile))
THEN
14532 IF (get_var(
idubar))
THEN
14538 IF (kind(
ocean(ng)%f_ubar).eq.8)
THEN
14539 my_piovar%dkind=pio_double
14542 my_piovar%dkind=pio_real
14546 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14548 & inprec, iodesc, vsize, &
14549 & lbi, ubi, lbj, ubj, &
14550 & fscl, fmin, fmax, &
14552 &
grid(ng) % umask, &
14555 &
ocean(ng) % f_ubar, &
14556 & checksum = fhash)
14558 &
ocean(ng) % f_ubar)
14560 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14563 & inprec, trim(ncname)
14585 & __line__, myfile))
THEN
14593 IF (get_var(
idvbar))
THEN
14599 IF (kind(
ocean(ng)%f_vbar).eq.8)
THEN
14600 my_piovar%dkind=pio_double
14603 my_piovar%dkind=pio_real
14607 status=
nf_fread2d(ng, idmod, ncname, piofile, &
14609 & inprec, iodesc, vsize, &
14610 & lbi, ubi, lbj, ubj, &
14611 & fscl, fmin, fmax, &
14613 &
grid(ng) % vmask, &
14616 &
ocean(ng) % f_vbar, &
14617 & checksum = fhash)
14619 &
ocean(ng) % f_vbar)
14621 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14624 & inprec, trim(ncname)
14646 & __line__, myfile))
THEN
14656 IF (get_var(
iduvel))
THEN
14662 IF (kind(
ocean(ng)%f_u).eq.8)
THEN
14663 my_piovar%dkind=pio_double
14666 my_piovar%dkind=pio_real
14670 status=
nf_fread3d(ng, idmod, ncname, piofile, &
14672 & inprec, iodesc, vsize, &
14673 & lbi, ubi, lbj, ubj, 1,
n(ng), &
14674 & fscl, fmin, fmax, &
14676 &
grid(ng) % umask, &
14679 &
ocean(ng) % f_u, &
14680 & checksum = fhash)
14684 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14687 & inprec, trim(ncname)
14709 & __line__, myfile))
THEN
14717 IF (get_var(
idvvel))
THEN
14723 IF (kind(
ocean(ng)%f_v).eq.8)
THEN
14724 my_piovar%dkind=pio_double
14727 my_piovar%dkind=pio_real
14731 status=
nf_fread3d(ng, idmod, ncname, piofile, &
14733 & inprec, iodesc, vsize, &
14734 & lbi, ubi, lbj, ubj, 1,
n(ng), &
14735 & fscl, fmin, fmax, &
14737 &
grid(ng) % vmask, &
14740 &
ocean(ng) % f_v, &
14741 & checksum = fhash)
14745 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14748 & inprec, trim(ncname)
14770 & __line__, myfile))
THEN
14779 IF (get_var(
idtvar(itrc)))
THEN
14785 IF (kind(
ocean(ng)%f_t).eq.8)
THEN
14786 my_piovar%dkind=pio_double
14789 my_piovar%dkind=pio_real
14793 status=
nf_fread3d(ng, idmod, ncname, piofile, &
14795 & inprec, iodesc, vsize, &
14796 & lbi, ubi, lbj, ubj, 1,
n(ng), &
14797 & fscl, fmin, fmax, &
14799 &
grid(ng) % rmask, &
14802 &
ocean(ng) % f_t(:,:,:,itrc), &
14803 & checksum = fhash)
14805 &
ocean(ng) % f_t(:,:,:,itrc))
14807 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14810 & inprec, trim(ncname)
14819 & fmin, fmax, fhash
14833 & __line__, myfile))
THEN
14843# if (defined RBL4DVAR || \
14844 defined rbl4dvar_ana_sensitivity || \
14845 defined rbl4dvar_fct_sensitivity || \
14846 defined tl_rbl4dvar) && \
14847 (defined adjust_boundary || \
14848 defined adjust_stflux || \
14849 defined adjust_wstress)
14855 tlm_forcing:
IF (model.eq.5)
THEN
14862# ifdef ADJUST_BOUNDARY
14874 IF (kind(
boundary(ng)%tl_zeta_obc).eq.8)
THEN
14875 my_piovar%dkind=pio_double
14878 my_piovar%dkind=pio_real
14883 &
vname(1,ifield), my_piovar, &
14884 & inprec, iodesc, &
14885 & lbij, ubij,
nbrec(ng), &
14886 & fscl, fmin, fmax, &
14888 &
boundary(ng) % tl_zeta_obc(:,:,:, &
14890 & checksum = fhash)
14892 &
boundary(ng) % tl_zeta_obc(:,:,:, &
14895 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14897 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
14898 & inprec, trim(ncname)
14906 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
14909 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
14915 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
14920 & __line__, myfile))
THEN
14936 IF (kind(
boundary(ng)%tl_ubar_obc).eq.8)
THEN
14937 my_piovar%dkind=pio_double
14940 my_piovar%dkind=pio_real
14945 &
vname(1,ifield), my_piovar, &
14946 & inprec, iodesc, &
14947 & lbij, ubij,
nbrec(ng), &
14948 & fscl, fmin, fmax, &
14950 &
boundary(ng) % tl_ubar_obc(:,:,:, &
14952 & checksum = fhash)
14954 &
boundary(ng) % tl_ubar_obc(:,:,:, &
14957 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
14959 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
14960 & inprec, trim(ncname)
14968 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
14971 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
14977 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
14982 & __line__, myfile))
THEN
14998 IF (kind(
boundary(ng)%tl_vbar_obc).eq.8)
THEN
14999 my_piovar%dkind=pio_double
15002 my_piovar%dkind=pio_real
15007 &
vname(1,ifield), my_piovar, &
15008 & inprec, iodesc, &
15009 & lbij, ubij,
nbrec(ng), &
15010 & fscl, fmin, fmax, &
15012 &
boundary(ng) % tl_vbar_obc(:,:,:, &
15014 & checksum = fhash)
15016 &
boundary(ng) % tl_vbar_obc(:,:,:, &
15019 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15021 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
15022 & inprec, trim(ncname)
15030 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
15033 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
15039 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
15044 & __line__, myfile))
THEN
15062 IF (kind(
boundary(ng)%tl_u_obc).eq.8)
THEN
15063 my_piovar%dkind=pio_double
15066 my_piovar%dkind=pio_real
15071 &
vname(1,ifield), my_piovar, &
15072 & inprec, iodesc, &
15073 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
15074 & fscl, fmin, fmax, &
15076 &
boundary(ng) % tl_u_obc(:,:,:,:, &
15078 & checksum = fhash)
15080 &
boundary(ng) % tl_u_obc(:,:,:,:, &
15083 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15085 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
15086 & inprec, trim(ncname)
15094 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
15097 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
15103 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
15108 & __line__, myfile))
THEN
15124 IF (kind(
boundary(ng)%tl_v_obc).eq.8)
THEN
15125 my_piovar%dkind=pio_double
15128 my_piovar%dkind=pio_real
15133 &
vname(1,ifield), my_piovar, &
15134 & inprec, iodesc, &
15135 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
15136 & fscl, fmin, fmax, &
15138 &
boundary(ng) % tl_v_obc(:,:,:,:, &
15140 & checksum = fhash)
15142 &
boundary(ng) % tl_v_obc(:,:,:,:, &
15145 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15147 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
15148 & inprec, trim(ncname)
15156 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
15159 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
15166 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
15171 & __line__, myfile))
THEN
15180 IF (get_var(
idsbry(
istvar(itrc))).and.get_adjust.and. &
15188 IF (kind(
boundary(ng)%tl_t_obc).eq.8)
THEN
15189 my_piovar%dkind=pio_double
15192 my_piovar%dkind=pio_real
15197 &
vname(1,ifield), my_piovar, &
15198 & inprec, iodesc, &
15199 & lbij, ubij, 1,
n(ng),
nbrec(ng), &
15200 & fscl, fmin, fmax, &
15202 &
boundary(ng) % tl_t_obc(:,:,:,:, &
15204 & checksum = fhash)
15206 &
boundary(ng) % tl_t_obc(:,:,:,:, &
15209 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15211 WRITE (
stdout,60) string, trim(
vname(1,ifield)), &
15212 & inprec, trim(ncname)
15220 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax, &
15223 WRITE (
stdout,70) trim(
vname(2,ifield)), fmin, fmax
15229 WRITE (
stdout,80) string, trim(
vname(1,ifield)), &
15234 & __line__, myfile))
THEN
15242# ifdef ADJUST_WSTRESS
15246 IF (get_var(
idusms).and.get_adjust)
THEN
15253 IF (kind(
forces(ng)%tl_ustr).eq.8)
THEN
15254 my_piovar%dkind=pio_double
15257 my_piovar%dkind=pio_real
15261 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15263 & inprec, iodesc, vsize, &
15264 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
15265 & scale, fmin, fmax, &
15267 &
grid(ng) % umask, &
15270 &
forces(ng) % tl_ustr(:,:,:,tindex), &
15271 & checksum = fhash)
15273 &
forces(ng) % tl_ustr(:,:,:,tindex))
15275 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15278 & inprec, trim(ncname)
15287 &
', adjusted tl_ustr', fmin, fmax, &
15291 &
', adjusted tl_ustr', fmin, fmax
15302 & __line__, myfile))
THEN
15310 IF (get_var(
idvsms).and.get_adjust)
THEN
15317 IF (kind(
forces(ng)%tl_vstr).eq.8)
THEN
15318 my_piovar%dkind=pio_double
15321 my_piovar%dkind=pio_real
15325 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15327 & inprec, iodesc, vsize, &
15328 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
15329 & scale, fmin, fmax, &
15331 &
grid(ng) % vmask, &
15334 &
forces(ng) % tl_vstr(:,:,:,tindex), &
15335 & checksum = fhash)
15337 &
forces(ng) % tl_vstr(:,:,:,tindex))
15339 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15342 & inprec, trim(ncname)
15351 &
', adjusted tl_vstr', fmin, fmax, &
15355 &
', adjusted tl_vstr', fmin, fmax
15366 & __line__, myfile))
THEN
15372# if defined ADJUST_STFLUX && defined SOLVE3D
15377 IF (get_var(
idtsur(itrc)).and.get_adjust.and. &
15385 IF (kind(
forces(ng)%tl_tflux).eq.8)
THEN
15386 my_piovar%dkind=pio_double
15389 my_piovar%dkind=pio_real
15393 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15395 & inprec, iodesc, vsize, &
15396 & lbi, ubi, lbj, ubj, 1,
nfrec(ng), &
15397 & scale, fmin, fmax, &
15399 &
grid(ng) % rmask, &
15402 &
forces(ng)% tl_tflux(:,:,:, &
15404 & checksum = fhash)
15406 &
forces(ng)% tl_tflux(:,:,:, &
15409 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15412 & inprec, trim(ncname)
15421 &
', adjusted tl_tflux', fmin, fmax, &
15425 &
', adjusted tl_tflux', fmin, fmax
15436 & __line__, myfile))
THEN
15446# if defined TIME_CONV
15453 tcs_state:
IF (model.eq.6)
THEN
15463 & piofile = piofile, &
15464 & start = (/inprec/), &
15470 IF (get_var(
idfsur))
THEN
15476 IF (kind(
ocean(ng)%tl_zeta).eq.8)
THEN
15477 my_piovar%dkind=pio_double
15480 my_piovar%dkind=pio_real
15484 status=
nf_fread2d(ng, idmod, ncname, piofile, &
15486 & inprec, iodesc, vsize, &
15487 & lbi, ubi, lbj, ubj, &
15488 & fscl, fmin, fmax, &
15490 &
grid(ng) % rmask, &
15493 &
ocean(ng) % tl_zeta(:,:,tindex), &
15494 & checksum = fhash)
15496 &
ocean(ng) % tl_zeta(:,:,tindex))
15498 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15501 & inprec, trim(ncname)
15524 & __line__, myfile))
THEN
15534 IF (get_var(
idubar))
THEN
15540 IF (kind(
ocean(ng)%tl_ubar).eq.8)
THEN
15541 my_piovar%dkind=pio_double
15544 my_piovar%dkind=pio_real
15548 status=
nf_fread2d(ng, idmod, ncname, piofile, &
15550 & inprec, iodesc, vsize, &
15551 & lbi, ubi, lbj, ubj, &
15552 & fscl, fmin, fmax, &
15554 &
grid(ng) % umask, &
15557 &
ocean(ng) % tl_ubar(:,:,tindex), &
15558 & checksum = fhash)
15560 &
ocean(ng) % tl_ubar(:,:,tindex))
15562 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15565 & inprec, trim(ncname)
15587 & __line__, myfile))
THEN
15595 IF (get_var(
idvbar))
THEN
15601 IF (kind(
ocean(ng)%tl_vbar).eq.8)
THEN
15602 my_piovar%dkind=pio_double
15605 my_piovar%dkind=pio_real
15609 status=
nf_fread2d(ng, idmod, ncname, piofile, &
15611 & inprec, iodesc, vsize, &
15612 & lbi, ubi, lbj, ubj, &
15613 & fscl, fmin, fmax, &
15615 &
grid(ng) % vmask, &
15618 &
ocean(ng) % tl_vbar(:,:,tindex), &
15619 & checksum = fhash)
15621 &
ocean(ng) % tl_vbar(:,:,tindex))
15623 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15626 & inprec, trim(ncname)
15648 & __line__, myfile))
THEN
15658 IF (get_var(
iduvel))
THEN
15664 IF (kind(
ocean(ng)%tl_u).eq.8)
THEN
15665 my_piovar%dkind=pio_double
15668 my_piovar%dkind=pio_real
15672 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15674 & inprec, iodesc, vsize, &
15675 & lbi, ubi, lbj, ubj, 1,
n(ng), &
15676 & fscl, fmin, fmax, &
15678 &
grid(ng) % umask, &
15681 &
ocean(ng) % tl_u(:,:,:,tindex), &
15682 & checksum = fhash)
15684 &
ocean(ng) % tl_u(:,:,:,tindex))
15686 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15689 & inprec, trim(ncname)
15711 & __line__, myfile))
THEN
15719 IF (get_var(
idvvel))
THEN
15725 IF (kind(
ocean(ng)%tl_v).eq.8)
THEN
15726 my_piovar%dkind=pio_double
15729 my_piovar%dkind=pio_real
15733 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15735 & inprec, iodesc, vsize, &
15736 & lbi, ubi, lbj, ubj, 1,
n(ng), &
15737 & fscl, fmin, fmax, &
15739 &
grid(ng) % vmask, &
15742 &
ocean(ng) % tl_v(:,:,:,tindex), &
15743 & checksum = fhash)
15745 &
ocean(ng) % tl_v(:,:,:,tindex))
15747 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15750 & inprec, trim(ncname)
15772 & __line__, myfile))
THEN
15781 IF (get_var(
idtvar(itrc)))
THEN
15787 IF (kind(
ocean(ng)%tl_t).eq.8)
THEN
15788 my_piovar%dkind=pio_double
15791 my_piovar%dkind=pio_real
15795 status=
nf_fread3d(ng, idmod, ncname, piofile, &
15797 & inprec, iodesc, vsize, &
15798 & lbi, ubi, lbj, ubj, 1,
n(ng), &
15799 & fscl, fmin, fmax, &
15801 &
grid(ng) % rmask, &
15804 &
ocean(ng) % tl_t(:,:,:,tindex,itrc), &
15805 & checksum = fhash)
15807 &
ocean(ng) % tl_t(:,:,:,tindex,itrc))
15809 IF (
founderror(status, pio_noerr, __line__, myfile))
THEN
15812 & inprec, trim(ncname)
15821 & fmin, fmax, fhash
15835 & __line__, myfile))
THEN
15855 CALL wclock_off (ng, idmod, 80, __line__, myfile)
15858 10
FORMAT (/,2x,
'GET_STATE_PIO - ',a,
'unable to open input NetCDF', &
15860 20
FORMAT (/,2x,
'GET_STATE_PIO - ',a,
'Warning - NetCDF global', &
15861 &
' attribute:',a, &
15862 & /,19x,
'for lateral boundary conditions not checked', &
15863 & /,19x,
'in file: ',a)
15864 30
FORMAT (/,2x,
'GET_STATE_PIO - ',a,
'requested input time', &
15865 &
' record = ',i0,/,19x,
'not found in input NetCDF: ',a,/, &
15866 & 19x,
'number of available records = ',i0)
15867 40
FORMAT (/,2x,
'GET_STATE_PIO - ',a,a,t75,a, &
15868 & /,22x,
'(Grid ',i2.2,a,i4.4,
', t = ',a, &
15869 &
', File: ',a,
', Rec=',i4.4,
', Index=',i1,
')')
15870 50
FORMAT (/,2x,
'GET_STATE_PIO - ',a,a,t75,a, &
15871 & /,22x,
'(Grid ',i2.2,
', t = ',a, &
15872 &
', File: ',a,
', Rec=',i4.4,
', Index=',i1,
')')
15873 60
FORMAT (/,2x,
'GET_STATE_PIO - ',a,
'error while reading', &
15874 &
' variable: ',a,2x,
'at time record = ',i0, &
15875 & /,19x,
'in input NetCDF file: ',a)
15877 70
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
15878 &
' Max = ',1p,e15.8,
' CheckSum = ',i0,
')')
15880 70
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
15881 &
' Max = ',1p,e15.8,
')')
15883 75
FORMAT (19x,
'- ',a,/,22x,
'(Min = ',1p,e15.8, &
15884 &
' Max = ',1p,e15.8,
')')
15885 80
FORMAT (/,2x,
'GET_STATE_PIO - ',a,
'cannot find variable: ',a, &
15886 & /,19x,
'in input NetCDF file: ',a)