6 SUBROUTINE bilin_extrap (KLUOUT,KX,KY,KCIJ,PX1,PY1,PFIELD1,PX2,PY2,PFIELD2,OINTERP)
87 USE modi_hor_extrapol_surf
102 INTEGER,
INTENT(IN) :: KLUOUT
103 INTEGER,
INTENT(IN) :: KX, KY
104 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: KCIJ
105 REAL,
DIMENSION(:),
INTENT(IN) :: PX1
106 REAL,
DIMENSION(:),
INTENT(IN) :: PY1
107 REAL,
DIMENSION(:,:),
INTENT(IN) :: PFIELD1
108 REAL,
DIMENSION(:),
INTENT(IN) :: PX2
109 REAL,
DIMENSION(:),
INTENT(IN) :: PY2
110 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFIELD2
111 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OINTERP
116 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IP
117 INTEGER,
DIMENSION(KY) :: IX
121 INTEGER :: INFOMPI, JL, JI, INL, INO
122 REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP
127 ino =
SIZE(pfield2,1)
128 inl =
SIZE(pfield2,2)
137 CALL mpi_bcast(icount,kind(icount)/4,mpi_integer,
npio,
ncomm,infompi)
140 IF (icount==0 .AND.
lhook)
CALL dr_hook(
'BILIN_EXTRAP',1,zhook_handle)
141 IF (icount==0)
RETURN 144 WRITE(kluout,*)
' Remaining horizontal extrapolations' 145 WRITE(kluout,*)
' Total number of input data : ',icount,
' / ',
SIZE(pfield2(:,jl))
146 WRITE(kluout,*)
' Number of points to interpolate: ',
count(pfield2(:,jl)==
xundef .AND. ointerp(:))
151 ip(ji,1) = kx*(kcij(ji,2)-1)+kcij(ji,1)
157 ip,pfield1,py2,px2,pfield2,ointerp)