37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
45 INTEGER,
INTENT(IN) :: kgrid_par
46 INTEGER,
INTENT(IN) :: kl
47 REAL,
DIMENSION(KGRID_PAR),
INTENT(IN) :: pgrid_par
48 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kleft
49 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kright
50 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: ktop
51 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kbottom
56 REAL,
DIMENSION(KL) :: zx
57 REAL,
DIMENSION(KL) :: zy
58 REAL,
DIMENSION(KL) :: zdx
59 REAL,
DIMENSION(KL) :: zdy
60 REAL :: zecx, zecy, zecdx, zecdy
63 REAL(KIND=JPRB) :: zhook_handle
67 IF (lhook) CALL dr_hook(
'GET_ADJ_MES_IGN',0,zhook_handle)
80 zecx = abs(zx(jy)-zx(jx))
81 zecy = abs(zy(jy)-zy(jx))
83 zecdx = (zdx(jy)+zdx(jx))/2.
84 zecdy = (zdy(jy)+zdy(jx))/2.
86 IF ( zecx <= zecdx .AND. zecy <= zecdy )
THEN
88 IF ( zecdy-zecy <= zecdx-zecx .AND. zecx/=zecdx )
THEN
90 IF ( zy(jy) < zy(jx) .AND. &
91 ( kbottom(jx)==0 .OR. &
92 zecy < abs(zy(max(1,kbottom(jx)))-zy(jx)) .OR. &
93 zecx < abs(zx(max(1,kbottom(jx)))-zx(jx)) ) )
THEN
97 ELSEIF ( zy(jy) > zy(jx) .AND. &
99 zecy < abs(zy(max(1,ktop(jx)))-zy(jx)) .OR. &
100 zecx < abs(zx(max(1,ktop(jx)))-zx(jx)) ) )
THEN
106 ELSEIF (zecdx-zecx < zecdy-zecy )
THEN
108 IF ( zx(jy) < zx(jx) .AND. &
109 ( kleft(jx)==0 .OR. &
110 zecy < abs(zy(max(1,kleft(jx)))-zy(jx)) .OR. &
111 zecx < abs(zx(max(1,kleft(jx)))-zx(jx)) ) )
THEN
115 ELSEIF ( zx(jy) > zx(jx) .AND. &
116 ( kright(jx)==0 .OR. &
117 zecy < abs(zy(max(1,kright(jx)))-zy(jx)) .OR. &
118 zecx < abs(zx(max(1,kright(jx)))-zx(jx)) ) )
THEN
132 IF (lhook) CALL dr_hook(
'GET_ADJ_MES_IGN',1,zhook_handle)
subroutine get_gridtype_ign(PGRID_PAR, KLAMBERT, KL, PX, PY, PDX, PDY, KDIMX, KDIMY, PXALL, PYALL)
subroutine get_adj_mes_ign(KGRID_PAR, KL, PGRID_PAR, KLEFT, KRIGHT, KTOP, KBOTTOM)