38 USE yomhook
,ONLY : lhook, dr_hook
39 USE parkind1
,ONLY : jprb
46 INTEGER,
INTENT(IN) :: kgrid_par
47 INTEGER,
INTENT(IN) :: kl
48 REAL,
DIMENSION(KGRID_PAR),
INTENT(IN) :: pgrid_par
49 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kleft
50 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kright
51 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: ktop
52 INTEGER,
DIMENSION(KL),
INTENT(OUT) :: kbottom
61 INTEGER,
DIMENSION(:),
ALLOCATABLE :: inlopa
65 REAL,
DIMENSION(:),
ALLOCATABLE :: zxcen
67 INTEGER :: jlat, jlon, il, jl, ilgrid, jlon2, id, jl0
71 REAL(KIND=JPRB) :: zhook_handle
75 IF (lhook) CALL dr_hook(
'GET_ADJ_MES_GAUSS',0,zhook_handle)
78 ALLOCATE(inlopa(0:inlati))
93 DO jlon=1,inlopa(jlat)
104 DO jlon=1,inlopa(jlat)
108 IF (jlon>1 ) kleft(jl) = jl-1
109 IF (jlon<inlopa(jlat) ) kright(jl) = jl+1
111 IF (jlon==1 ) kleft(jl) = jl+inlopa(jlat)-1
112 IF (jlon==inlopa(jlat)) kright(jl) = jl-inlopa(jlat)+1
115 zdis = abs(zxcen(jl) - zxcen(jl0 - inlopa(jlat-1) + 1))
117 DO jlon2 = 1,inlopa(jlat-1)
118 zinter = abs(zxcen(jl) - zxcen(jl0 - inlopa(jlat-1) + jlon2))
119 IF (zinter<zdis)
THEN
124 ktop(jl) = jl0 - inlopa(jlat-1) + id
127 IF (jlat<inlati )
THEN
128 zdis = abs(zxcen(jl) - zxcen(jl0 + inlopa(jlat) + 1))
130 DO jlon2 = 1,inlopa(jlat+1)
131 zinter = abs(zxcen(jl) - zxcen(jl0 + inlopa(jlat) + jlon2))
132 IF (zinter<zdis)
THEN
137 kbottom(jl) = jl0 + inlopa(jlat) + id
147 IF (lhook) CALL dr_hook(
'GET_ADJ_MES_GAUSS',1,zhook_handle)
subroutine get_gridtype_gauss(PGRID_PAR, KNLATI, PLAPO, PLOPO, PCODIL, KNLOPA, KL, PLAT, PLON, PLAT_XY, PLON_XY, PMESH_SIZE, PLONINF, PLATINF, PLONSUP, PLATSUP)
subroutine get_adj_mes_gauss(KGRID_PAR, KL, PGRID_PAR, KLEFT, KRIGHT, KTOP, KBOTTOM)