39 USE modi_horibl_surf_gridin
40 USE modi_horibl_surf_value
41 USE modi_horibl_surf_extrap
50 INTEGER,
INTENT(IN) :: KLUOUT
51 REAL,
DIMENSION(:,:),
INTENT(IN) :: PFIELDIN
52 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFIELDOUT
56 REAL,
DIMENSION(:,:),
POINTER :: ZFIELDIN0=>null()
57 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ZFIELDIN
59 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: ILSMIN
60 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IMASKIN
61 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMASKOUT
62 INTEGER,
DIMENSION(:),
POINTER :: IMASK=>null()
63 INTEGER,
DIMENSION(SIZE(NP,1),SIZE(NP,2)) :: IP
66 REAL(KIND=JPRB) :: ZHOOK_HANDLE
72 IF (
lhook)
CALL dr_hook(
'HOR_INTERPOL_GAUSS',0,zhook_handle)
74 inl =
SIZE(pfieldout,2)
76 ALLOCATE(imaskout(ino))
80 ALLOCATE(imaskin(
nni,inl))
84 WHERE(pfieldin(:,:)==
xundef) imaskin(:,:) = 0.
87 ALLOCATE(zfieldin(ino,inl,12))
88 ALLOCATE(ilsmin(ino,inl,12))
92 zfieldin0,zfieldin,ilsmin,imaskin,imaskout,imask)
96 ip(ji,jl) = imask(
np(ji,jl))
100 DO jl=1,
SIZE(pfieldout,2)
102 CALL horibl_surf_value(
nni,ino,pfieldout(:,jl),
linterp,zfieldin(:,jl,:),ilsmin(:,jl,:),&
115 DEALLOCATE(zfieldin0)
120 IF (
lhook)
CALL dr_hook(
'HOR_INTERPOL_GAUSS',1,zhook_handle)
integer, dimension(:), allocatable ninloh
real, dimension(:), allocatable xlat
real, dimension(:), allocatable xola
integer, dimension(:,:), allocatable np
real, dimension(:), allocatable xlon_out
subroutine hor_interpol_gauss(KLUOUT, PFIELDIN, PFIELDOUT)
logical, dimension(:), allocatable linterp
real, dimension(:), allocatable xlon
integer, dimension(:), allocatable ninlo
subroutine horibl_surf_gridin(KINLA, KINLO, KILEN, PARIN, KOLEN, ODVECT, KLUOUT, OGLOBS, OGLOBN, OGLOBLON, KP, PARIN0_OUT, PARIN_OUT, KLSMIN_OUT, KLSMIN, KLSMOUT, KMASK)
real, dimension(:), allocatable xlat_out
real, dimension(:), allocatable xolo
real, dimension(:,:), allocatable xla
real, dimension(:,:), allocatable xloph
subroutine horibl_surf_value(KILEN, KOLEN, PAROUT, OINTERP, PARIN, KLSMIN, POLO, POLA, PLA, PLOP, KMASKIN, KLSMOUT)