7 kyear,kmonth,kday,hflag,pout)
48 USE yomhook
,ONLY : lhook, dr_hook
49 USE parkind1
,ONLY : jprb
59 INTEGER,
INTENT(IN) :: kyear
60 INTEGER,
INTENT(IN) :: kmonth
61 INTEGER,
INTENT(IN) :: kday
62 CHARACTER(LEN=1),
INTENT(IN) :: hflag
64 REAL,
DIMENSION(:),
INTENT(OUT) :: pout
78 REAL(KIND=JPRB) :: zhook_handle
84 IF (lhook) CALL dr_hook(
'INTERPOL_SST_MTH',0,zhook_handle)
85 IF ( (hflag/=
'S') .AND. (hflag/=
'T') .AND. (hflag/=
'H') .AND. (hflag/=
'C') )
THEN
86 CALL
abor1_sfx(
'FATAL ERROR in INTERPOL_SST_MTH : HFLAG not S nor T nor C nor H. !')
94 IF( ((mod(kyear,4)==0).AND.(mod(kyear,100)/=0)) .OR. (mod(kyear,400)==0))
THEN
112 IF (kmonth==s%TZTIME%TDATE%MONTH)
THEN
122 IF (hflag ==
'T')
THEN
123 CALL
interpol_local(s%CINTERPOL_SST,s%XSST_MTH(:,imth0),s%XSST_MTH(:,imth1),s%XSST_MTH(:,imth2))
124 ELSEIF (hflag ==
'S')
THEN
125 CALL
interpol_local(s%CINTERPOL_SSS,s%XSSS_MTH(:,imth0),s%XSSS_MTH(:,imth1),s%XSSS_MTH(:,imth2))
126 pout(:) = max(0.0,pout(:))
127 ELSEIF (hflag ==
'H')
THEN
128 CALL
interpol_local(s%CINTERPOL_SIT,s%XSIT_MTH(:,imth0),s%XSIT_MTH(:,imth1),s%XSIT_MTH(:,imth2))
129 pout(:) = max(0.0,pout(:))
130 ELSEIF (hflag ==
'C')
THEN
131 CALL
interpol_local(s%CINTERPOL_SIC,s%XSIC_MTH(:,imth0),s%XSIC_MTH(:,imth1),s%XSIC_MTH(:,imth2))
132 pout(:) = max(0.0,min(1.0,pout(:)))
135 IF (lhook) CALL dr_hook(
'INTERPOL_SST_MTH',1,zhook_handle)
145 USE modi_interpol_quadra
146 USE modi_interpol_linear
150 CHARACTER(LEN=6),
INTENT(IN) :: hmethod
151 REAL,
DIMENSION(:) ,
INTENT(IN) :: pmth0
152 REAL,
DIMENSION(:) ,
INTENT(IN) :: pmth1
153 REAL,
DIMENSION(:) ,
INTENT(IN) :: pmth2
155 REAL(KIND=JPRB) :: zhook_handle
157 IF (lhook) CALL dr_hook(
'INTERPOL_SST_MTH:INTERPOL_LOCAL',0,zhook_handle)
159 IF(hmethod==
'QUADRA')
THEN
161 ELSEIF(hmethod==
'LINEAR')
THEN
163 ELSEIF(hmethod==
'UNIF')
THEN
166 CALL
abor1_sfx(
'INTERPOL_SST_MTH:INTERPOL_LOCAL: interpolation method not supported')
169 IF (lhook) CALL dr_hook(
'INTERPOL_SST_MTH:INTERPOL_LOCAL',1,zhook_handle)
subroutine interpol_quadra(PDAT, PNDAT, PVAL0, PVAL1, PVAL2, POUT)
subroutine abor1_sfx(YTEXT)
subroutine interpol_sst_mth(S, KYEAR, KMONTH, KDAY, HFLAG, POUT)
subroutine interpol_linear(PDAT, PNDAT, PVAL0, PVAL1, PVAL2, POUT)
subroutine interpol_local(HMETHOD, PMTH0, PMTH1, PMTH2)