36 USE modd_prep, ONLY : xlat_out, xlon_out, linterp
38 ninlat, ninlon, nilength,xilatarray
42 USE modi_adapt_horibl_surf
44 USE yomhook
,ONLY : lhook, dr_hook
45 USE parkind1
,ONLY : jprb
51 INTEGER,
INTENT(IN) :: kluout
52 REAL,
DIMENSION(:,:),
INTENT(IN) :: pfieldin
53 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfieldout
57 INTEGER,
DIMENSION(:),
ALLOCATABLE :: imaskin
58 INTEGER,
DIMENSION(:),
ALLOCATABLE :: imaskout
62 REAL :: zdlat,zdlat_reg
64 REAL(KIND=JPRB) :: zhook_handle
69 IF (lhook) CALL dr_hook(
'HOR_INTERPOL_LATLON',0,zhook_handle)
73 ALLOCATE(imaskin(nilength))
75 ALLOCATE(imaskout(ino))
83 zdlat_reg = (xilat2-xilat1)/
REAL(ninlat-1)
86 zdlat=xilatarray(jl)-xilatarray(jl-1)
87 IF(zdlat/=zdlat_reg)
THEN
96 DO jl=1,
SIZE(pfieldin,2)
98 WHERE(pfieldin(:,jl)==xundef) imaskin(:) = 0
99 CALL
horibl_surf(xilat1,xilon1,xilat2,xilon2,ninlat,ninlon,nilength, &
100 pfieldin(:,jl),ino,xlon_out,xlat_out,pfieldout(:,jl),.false., &
101 kluout,linterp,imaskin,imaskout)
104 DO jl=1,
SIZE(pfieldin,2)
106 WHERE(pfieldin(:,jl)==xundef) imaskin(:) = 0
107 CALL
adapt_horibl_surf(xilatarray,xilat1,xilon1,xilat2,xilon2,ninlat,ninlon,nilength, &
108 pfieldin(:,jl),ino,xlon_out,xlat_out,pfieldout(:,jl),.false., &
109 kluout,linterp,imaskin,imaskout)
115 IF (
ALLOCATED(imaskin ))
DEALLOCATE(imaskin )
116 IF (
ALLOCATED(imaskout))
DEALLOCATE(imaskout)
118 IF (lhook) CALL dr_hook(
'HOR_INTERPOL_LATLON',1,zhook_handle)
subroutine horibl_surf(PILA1, PILO1, PILA2, PILO2, KINLA, KINLO, KILEN, PARIN, KOLEN, PXOUT, PYOUT, PAROUT, ODVECT, KLUOUT, OINTERP, KLSMIN, KLSMOUT)
subroutine hor_interpol_latlon(KLUOUT, PFIELDIN, PFIELDOUT)
subroutine adapt_horibl_surf(PILATARRAY, PILA1, PILO1, PILA2, PILO2, KINLA, KINLO, KILEN, PARIN, KOLEN, PXOUT, PYOUT, PAROUT, ODVECT, KLUOUT, OINTERP, KLSMIN, KLSMOUT)