38 USE modd_prep, ONLY : xlat_out, xlon_out, linterp
47 USE yomhook
,ONLY : lhook, dr_hook
48 USE parkind1
,ONLY : jprb
54 INTEGER,
INTENT(IN) :: kluout
55 REAL,
DIMENSION(:,:),
INTENT(IN) :: pfieldin
56 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfieldout
60 REAL,
DIMENSION(:),
ALLOCATABLE :: zx,zy
61 REAL,
DIMENSION(:),
ALLOCATABLE :: zx_duplique
62 REAL,
DIMENSION(:),
ALLOCATABLE :: zy_duplique
63 REAL,
DIMENSION(:),
ALLOCATABLE :: zxy_duplique
64 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zfieldin
65 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zfieldin_duplique
66 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zfieldout_duplique
71 REAL(KIND=JPRB) :: zhook_handle
73 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: ginterp_duplique
78 IF (lhook) CALL dr_hook(
'HOR_INTERPOL_CONF_PROJ',0,zhook_handle)
85 ALLOCATE(zxy_duplique(2),zfieldin_duplique(nx,2,
SIZE(pfieldin,2)))
86 ALLOCATE(zx_duplique(2*ino),zy_duplique(2*ino),zfieldout_duplique(2*ino,
SIZE(pfieldin,2)))
87 ALLOCATE(ginterp_duplique(
SIZE(zfieldout_duplique,1)))
92 CALL
xy_conf_proj(xlat0,xlon0,xrpk,xbeta,xlatori,xlonori, &
93 zx,zy,xlat_out,xlon_out )
97 ALLOCATE(zfieldin(nx,ny,
SIZE(pfieldin,2)))
101 zfieldin(ji,jj,:) = pfieldin(ji+nx*(jj-1),:)
106 zfieldin_duplique(:,1,:)=zfieldin(:,1,:)
107 zfieldin_duplique(:,2,:)=zfieldin(:,1,:)
108 zxy_duplique(1)=xy(1)
109 zxy_duplique(2)=xy(1)+10000.
110 zx_duplique(1:ino) =zx(:)
111 zx_duplique(ino+1:2*ino)=zx(:)
112 zy_duplique(1:ino) =zy(:)
113 zy_duplique(ino+1:2*ino)=zy(:)+10000.
114 ginterp_duplique(1:ino) =linterp(1:ino)
115 ginterp_duplique(ino+1:2*ino)=linterp(1:ino)
121 DO jl=1,
SIZE(pfieldin,2)
122 CALL
bilin(kluout,xx,zxy_duplique,zfieldin_duplique(:,:,jl), &
123 zx_duplique,zy_duplique,zfieldout_duplique(:,jl),ginterp_duplique)
125 pfieldout(1:ino,jl)=zfieldout_duplique(1:ino,jl)
128 DO jl=1,
SIZE(pfieldin,2)
129 CALL
bilin(kluout,xx,xy,zfieldin(:,:,jl),zx,zy,pfieldout(:,jl),linterp)
139 IF (ny==1)
DEALLOCATE(zxy_duplique,zx_duplique,zy_duplique, &
140 zfieldin_duplique,zfieldout_duplique,ginterp_duplique)
142 IF (lhook) CALL dr_hook(
'HOR_INTERPOL_CONF_PROJ',1,zhook_handle)
subroutine bilin(KLUOUT, PX1, PY1, PFIELD1, PX2, PY2, PFIELD2, OINTERP)
subroutine hor_interpol_conf_proj(KLUOUT, PFIELDIN, PFIELDOUT)
subroutine xy_conf_proj(PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, PX, PY, PLAT, PLON)