45 USE yomhook
,ONLY : lhook, dr_hook
46 USE parkind1
,ONLY : jprb
53 REAL,
INTENT(IN) :: pdat
54 REAL,
INTENT(IN) :: pndat
55 REAL,
DIMENSION(:),
INTENT(IN) :: pval0
56 REAL,
DIMENSION(:),
INTENT(IN) :: pval1
57 REAL,
DIMENSION(:),
INTENT(IN) :: pval2
58 REAL,
DIMENSION(:),
INTENT(OUT) :: pout
64 REAL :: zfact0, zfact1, zfact2
66 REAL(KIND=JPRB) :: zhook_handle
73 IF (lhook) CALL dr_hook(
'INTERPOL_LINEAR',0,zhook_handle)
81 zfact0=max(1.0-(pdat*2.0+pndat-1.0)/(pndat*2.0),0.0)
82 zfact1=(2.0*pndat-abs(2.0*pdat-pndat-1.0))/(pndat*2.0)
83 zfact2=max(1.0-((pndat+1.0-pdat)*2.0+pndat-1.0)/(pndat*2.0),0.0)
88 pout(:) = pval0(:)*zfact0+pval1(:)*zfact1+pval2(:)*zfact2
93 IF (lhook) CALL dr_hook(
'INTERPOL_LINEAR',1,zhook_handle)
subroutine interpol_linear(PDAT, PNDAT, PVAL0, PVAL1, PVAL2, POUT)