51 USE modi_temporal_dists
55 USE yomhook
,ONLY : lhook, dr_hook
56 USE parkind1
,ONLY : jprb
68 REAL,
DIMENSION(:),
INTENT(INOUT) :: psst
73 REAL,
DIMENSION(SIZE(PSST)) :: zsst, zsst0
76 REAL(KIND=JPRB) :: zhook_handle
79 IF (lhook) CALL dr_hook(
'SST_UPDATE',0,zhook_handle)
81 IF (.NOT.s%LTZTIME_DONE)
THEN
82 s%LTZTIME_DONE = .true.
84 s%TZTIME%TDATE%YEAR = ttime%TDATE%YEAR
85 s%TZTIME%TDATE%MONTH = ttime%TDATE%MONTH
86 s%TZTIME%TDATE%DAY = ttime%TDATE%DAY
87 s%TZTIME%TIME = ttime%TIME
90 zsst0(:) = s%XSST_INI(:)
94 CALL
temporal_dists( dts%TDATA_SST(1)%TDATE%YEAR,dts%TDATA_SST(1)%TDATE%MONTH, &
95 dts%TDATA_SST(1)%TDATE%DAY ,dts%TDATA_SST(1)%TIME, &
96 s%TZTIME%TDATE%YEAR ,s%TZTIME%TDATE%MONTH, &
97 s%TZTIME%TDATE%DAY ,s%TZTIME%TIME, &
101 ttime%TDATE%DAY ,ttime%TIME, &
102 s%TZTIME%TDATE%YEAR ,s%TZTIME%TDATE%MONTH, &
103 s%TZTIME%TDATE%DAY ,s%TZTIME%TIME, &
106 zalpha = zdt / zsdtjx
108 zsst(:)= zsst0(:)+(dts%XDATA_SST(:,1)-zsst0(:))*zalpha
110 ELSE IF ( .NOT.
temporal_lts( ttime, dts%TDATA_SST(dts%NTIME) ) )
THEN
112 zsst(:) = dts%XDATA_SST(:,dts%NTIME)
122 CALL
temporal_dists( dts%TDATA_SST(jxp)%TDATE%YEAR,dts%TDATA_SST(jxp)%TDATE%MONTH, &
123 dts%TDATA_SST(jxp)%TDATE%DAY ,dts%TDATA_SST(jxp)%TIME, &
124 dts%TDATA_SST(s%JSX)%TDATE%YEAR ,dts%TDATA_SST(s%JSX)%TDATE%MONTH, &
125 dts%TDATA_SST(s%JSX)%TDATE%DAY ,dts%TDATA_SST(s%JSX)%TIME, &
129 ttime%TDATE%DAY ,ttime%TIME, &
130 dts%TDATA_SST(s%JSX)%TDATE%YEAR,dts%TDATA_SST(s%JSX)%TDATE%MONTH, &
131 dts%TDATA_SST(s%JSX)%TDATE%DAY ,dts%TDATA_SST(s%JSX)%TIME, &
134 zalpha = zdt / zsdtjx
137 zsst(:)= dts%XDATA_SST(:,s%JSX)+(dts%XDATA_SST(:,jxp)-dts%XDATA_SST(:,s%JSX))*zalpha
143 IF (lhook) CALL dr_hook(
'SST_UPDATE',1,zhook_handle)
subroutine sst_update(DTS, S, PSST, TTIME)
logical function temporal_lts(TPT1, TPT2)
subroutine temporal_dists(KYEARF, KMONTHF, KDAYF, PSECF, KYEARI, KMONTHI, KDAYI, PSECI, PDIST)