32 xlator, xlonor, nimax, njmax, &
37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
46 INTEGER,
INTENT(IN) :: kgrid_par
47 INTEGER,
INTENT(IN) :: ksso
49 REAL,
DIMENSION(:),
INTENT(IN) :: pgrid_par
50 REAL,
DIMENSION(:),
INTENT(IN) :: plat
51 REAL,
DIMENSION(:),
INTENT(IN) :: plon
52 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kindex
53 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kissox
54 INTEGER,
DIMENSION(:,:),
INTENT(OUT) :: kissoy
59 REAL,
DIMENSION(SIZE(PLON)) :: zlon
61 REAL,
DIMENSION(:),
ALLOCATABLE :: zx
62 REAL,
DIMENSION(:),
ALLOCATABLE :: zy
63 REAL,
DIMENSION(:),
ALLOCATABLE :: zdx
64 REAL,
DIMENSION(:),
ALLOCATABLE :: zdy
71 REAL(KIND=JPRB) :: zhook_handle
74 IF (lhook) CALL dr_hook(
'GET_MESH_INDEX_CONF_PROJ',0,zhook_handle)
75 IF (.NOT.
ALLOCATED(xxlim))
THEN
81 xlator,xlonor,nimax,njmax )
83 ALLOCATE(zx(nimax*njmax))
84 ALLOCATE(zy(nimax*njmax))
85 ALLOCATE(zdx(nimax*njmax))
86 ALLOCATE(zdy(nimax*njmax))
89 px=zx,py=zy,pdx=zdx,pdy=zdy )
94 ALLOCATE(xxlim(nimax+1))
95 xxlim(1) = zx(1) - zdx(1)/2.
98 xxlim(ji) = zx(jl) - (zdx(jl-1)+zdx(jl))/4.
100 xxlim(nimax+1) = zx(nimax) + zdx(nimax)/2.
102 ALLOCATE(xylim(njmax+1))
103 xylim(1) = zy(1) - zdy(1)/2.
105 jl = 1 + (jj-1) * nimax
106 xylim(jj) = zy(jl) - (zdy(jl-nimax)+zdy(jl))/4.
108 xylim(njmax+1) = zy(1+(njmax-1)*nimax) + zdy(1+(njmax-1)*nimax)/2.
117 zdxlim = xxlim(2) - xxlim(1)
118 zdylim = xylim(2) - xylim(1)
123 zlon(:) = plon(:)+nint((xlon0-plon(:)+180.0*xsurf_epsilon)/360.)*360.
128 ALLOCATE(zx(
SIZE(plat)))
129 ALLOCATE(zy(
SIZE(plat)))
131 CALL
xy_conf_proj(xlat0,xlon0,xrpk,xbeta,xlator,xlonor, &
142 IF ( zx(jl)<xxlim(1) .OR. zx(jl)>=xxlim(nimax+1) &
143 .OR. zy(jl)<xylim(1) .OR. zy(jl)>=xylim(njmax+1) )
THEN
151 ji = min(int( (zx(jl) - xxlim(1))/zdxlim+1),nimax)
152 jj = min(int( (zy(jl) - xylim(1))/zdylim+1),njmax)
154 kindex(1,jl) = (jj-1) * nimax + ji
161 kissox(1,jl) = 1 + int( float(ksso) * (zx(jl)-xxlim(ji))/(xxlim(ji+1)-xxlim(ji)) )
162 kissoy(1,jl) = 1 + int( float(ksso) * (zy(jl)-xylim(jj))/(xylim(jj+1)-xylim(jj)) )
169 IF (lhook) CALL dr_hook(
'GET_MESH_INDEX_CONF_PROJ',1,zhook_handle)
subroutine xy_conf_proj(PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, PX, PY, PLAT, PLON)
subroutine get_mesh_index_conf_proj(KGRID_PAR, KSSO, PGRID_PAR, PLAT, PLON, KINDEX, KISSOX, KISSOY)
subroutine get_gridtype_conf_proj(PGRID_PAR, PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, KIMAX, KJMAX, PX, PY, PDX, PDY, KL)