47 USE yomhook
,ONLY : lhook, dr_hook
48 USE parkind1
,ONLY : jprb
55 REAL,
INTENT(IN) :: pdat
56 REAL,
INTENT(IN) :: pndat
57 REAL,
DIMENSION(:),
INTENT(IN) :: pval0
58 REAL,
DIMENSION(:),
INTENT(IN) :: pval1
59 REAL,
DIMENSION(:),
INTENT(IN) :: pval2
60 REAL,
DIMENSION(:),
INTENT(OUT) :: pout
66 REAL,
DIMENSION(SIZE(PVAL0)) :: zmid1
67 REAL,
DIMENSION(SIZE(PVAL0)) :: zmid2
68 REAL,
DIMENSION(SIZE(PVAL0)) :: za
69 REAL,
DIMENSION(SIZE(PVAL0)) :: zb
70 REAL,
DIMENSION(SIZE(PVAL0)) :: zc
75 INTEGER :: jdat, indat
77 REAL(KIND=JPRB) :: zhook_handle
81 IF (lhook) CALL dr_hook(
'INTERPOL_QUADRA',0,zhook_handle)
92 zscarre = zscarre +
REAL(jdat*jdat)
93 zsum = zsum +
REAL(jdat)
99 zmid1(:) = 0.5 * (pval1(:)+pval0(:))
100 zmid2(:) = 0.5 * (pval1(:)+pval2(:))
106 za(:) = ((pval1(:)-zmid1(:))*pndat - (zmid2(:)-zmid1(:))*(zsum-pndat)/pndat) &
107 / ((zscarre-pndat)-(zsum-pndat)*(pndat+2.0))
109 zb(:) = ((zmid2(:)-zmid1(:)) - (pndat*(pndat+2.0) * za(:))) / pndat
111 zc(:) = zmid1(:) - za(:) - zb(:)
116 pout(:) = za(:) * pdat**2 + zb(:) * pdat + zc(:)
121 IF (lhook) CALL dr_hook(
'INTERPOL_QUADRA',1,zhook_handle)
subroutine interpol_quadra(PDAT, PNDAT, PVAL0, PVAL1, PVAL2, POUT)