52 INTEGER,
INTENT(IN) :: KGRID_PAR
53 INTEGER,
INTENT(IN) :: KL
54 INTEGER,
INTENT(IN) :: KNEAR_NBR
55 REAL,
DIMENSION(KGRID_PAR),
INTENT(IN) :: PGRID_PAR
56 INTEGER,
DIMENSION(:,:),
POINTER :: KNEAR
61 REAL,
DIMENSION(KL) :: ZX
62 REAL,
DIMENSION(KL) :: ZY
63 REAL,
DIMENSION(KL) :: ZDX
64 REAL,
DIMENSION(KL) :: ZDY
65 REAL,
DIMENSION(KL) :: ZDIS
66 INTEGER,
DIMENSION(KL) :: INDZDIS
70 INTEGER :: JP, ID, ISIZE
71 REAL(KIND=JPRB) :: ZHOOK_HANDLE
75 IF (
lhook)
CALL dr_hook(
'GET_NEAR_MESHES_IGN_1',0,zhook_handle)
81 isize = min(knear_nbr,kl)
86 IF (
lhook)
CALL dr_hook(
'GET_NEAR_MESHES_IGN_1',1,zhook_handle)
87 IF (
lhook)
CALL dr_hook(
'GET_NEAR_MESHES_IGN_2',0,zhook_handle)
98 zdis(:) = sqrt((zx(:)-zx(jp))**2 + (zy(:)-zy(jp))**2)
100 zmaxvaldis = 2. * maxval(zdis)
101 zdis(jp) = zmaxvaldis
104 knear(id,1:isize) = indzdis(1:isize)
111 IF (
lhook)
CALL dr_hook(
'GET_NEAR_MESHES_IGN_2',1,zhook_handle)
115 RECURSIVE SUBROUTINE quick_sort(PLIST, KORDER)
125 REAL,
DIMENSION (:),
INTENT(INOUT) :: PLIST
126 INTEGER,
DIMENSION (:),
INTENT(OUT) :: KORDER
131 DO ji = 1,
SIZE(plist)
140 RECURSIVE SUBROUTINE quick_sort_1(KLEFT_END, KRIGHT_END, PLIST1, KORDER1)
142 INTEGER,
INTENT(IN) :: KLEFT_END, KRIGHT_END
143 REAL,
DIMENSION (:),
INTENT(INOUT) :: PLIST1
144 INTEGER,
DIMENSION (:),
INTENT(INOUT) :: KORDER1
146 INTEGER :: JI, JJ, ITEMP
148 INTEGER,
PARAMETER :: IMAX_SIMPLE_SORT_SIZE = 6
150 IF (kright_end < kleft_end + imax_simple_sort_size)
THEN 158 zref = plist1((kleft_end + kright_end)/2)
166 IF (plist1(ji) >= zref)
EXIT 171 IF (plist1(jj) <= zref)
EXIT 178 plist1(ji) = plist1(jj)
181 korder1(ji) = korder1(jj)
183 ELSE IF (ji == jj)
THEN 191 IF (kleft_end < jj)
CALL quick_sort_1(kleft_end, jj, plist1, korder1)
192 IF (ji < kright_end)
CALL quick_sort_1(ji, kright_end,plist1,korder1)
200 INTEGER,
INTENT(IN) :: KLEFT_END, KRIGHT_END
201 REAL,
DIMENSION (:),
INTENT(INOUT) :: PLIST2
202 INTEGER,
DIMENSION (:),
INTENT(INOUT) :: KORDER2
204 INTEGER :: JI, JJ, ITEMP
208 DO ji = kleft_end, kright_end - 1
211 DO jj = ji+1, kright_end
214 IF (plist2(ji) > plist2(jj))
THEN 218 plist2(ji) = plist2(jj)
224 korder2(ji) = korder2(jj)
subroutine get_gridtype_ign(PGRID_PAR, KLAMBERT, KL, PX, PY, PDX, PDY, KDIMX, KDIMY, PXALL, PYALL)
integer, dimension(:), allocatable nnum
subroutine get_near_meshes_ign(KGRID_PAR, KL, PGRID_PAR, KNEAR_NBR, KN
recursive subroutine quick_sort(PLIST, KORDER)
integer, dimension(:), allocatable nindex
recursive subroutine quick_sort_1(KLEFT_END, KRIGHT_END, PLIST1, KORDER1
subroutine interchange_sort(KLEFT_END, KRIGHT_END, PLIST2, KORDER2)