7 KINDEX,KISSOX,KISSOY,PVALUE,PNODATA)
46 INTEGER,
INTENT(IN) :: KSSO
47 REAL,
DIMENSION(:),
INTENT(IN) :: PGRID_PAR
48 REAL,
DIMENSION(:),
INTENT(IN) :: PLAT
49 REAL,
DIMENSION(:),
INTENT(IN) :: PLON
50 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KINDEX
51 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KISSOX
52 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: KISSOY
54 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PVALUE
55 REAL,
OPTIONAL,
INTENT(IN) :: PNODATA
62 REAL,
DIMENSION(:),
ALLOCATABLE :: ZX
63 REAL,
DIMENSION(:),
ALLOCATABLE :: ZY
65 REAL,
DIMENSION(:),
ALLOCATABLE :: ZXLIM
67 REAL,
DIMENSION(SIZE(PLAT)) :: ZVALUE
69 LOGICAL,
DIMENSION(SIZE(PLAT)) :: GMASK
75 INTEGER :: ISIZE, IFACT
79 INTEGER,
DIMENSION(SIZE(PLAT),2) :: ICI
80 INTEGER,
DIMENSION(1) :: IDX0
81 REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP
84 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_1',0,zhook_handle)
86 IF (
PRESENT(pvalue) .AND.
PRESENT(pnodata))
THEN 94 IF (.NOT.
ALLOCATED(
xxlim))
THEN 101 ifact = floor(sqrt(float(il)))
102 isize = floor(float(il) / ifact)
107 nfracd(jj) = 1 + (jj-1)*isize
139 zvalx = maxval(zxlim) + 1.
142 xxlims(ji) = zxlim(idx0(1))
144 zxlim(idx0(1)) = zvalx
153 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_1',1,zhook_handle)
154 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_2',0,zhook_handle)
159 ALLOCATE(zx(
SIZE(plat)))
160 ALLOCATE(zy(
SIZE(plat)))
165 CALL xy_ign(ilambert,zx,zy,plat,plon)
171 .OR. zy(jl)<
xy_min .OR. zy(jl)>
xy_max ) gmask(jl) = .true.
186 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_2',1,zhook_handle)
189 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_3',0,zhook_handle_omp)
193 IF (zvalue(jl)==znodata) cycle
202 IF (zx(jl)>
xxlims(ji))
THEN 208 DO ji = ici(jl,2),0,-1
223 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_3',1,zhook_handle_omp)
226 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_4',0,zhook_handle)
230 IF (zvalue(jl)==znodata) cycle
234 DO ji=ici(jl,1),ici(jl,2)
241 kindex(icpt,jl) =
nxids(ji)
244 kissox(icpt,jl) = 1 + int( float(ksso) * (zx(jl)-
xxlim(
nxids(ji)
248 IF (icpt==
novmx)
EXIT 259 IF (
lhook)
CALL dr_hook(
'GET_MESH_INDEX_IGN_4',1,zhook_handle)
subroutine get_gridtype_ign(PGRID_PAR, KLAMBERT, KL, PX, PY, PDX, PDY, KDIMX, KDIMY, PXALL, PYALL)
subroutine xy_ign(KLAMBERT, PX, PY, PLAT, PLON)
real, dimension(:), allocatable xxlims
real, dimension(:), allocatable xxlim
integer, dimension(:), allocatable nxids
real, dimension(:), allocatable xylim
subroutine get_mesh_index_ign(KSSO, PGRID_PAR, PLAT, PLON, KINDEX, KISSOX, KISSOY, PVALUE, PNODATA)
real, dimension(:), allocatable xdy
real, dimension(:), allocatable xdx
integer, dimension(:), allocatable nfracd