1 |
! |
module coordij_m |
|
! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/coordij.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $ |
|
|
! |
|
|
SUBROUTINE coordij(lon,lat,ilon,jlat) |
|
|
|
|
|
c======================================================================= |
|
|
c |
|
|
c calcul des coordonnees i et j de la maille scalaire dans |
|
|
c laquelle se trouve le point (lon,lat) en radian |
|
|
c |
|
|
c======================================================================= |
|
|
|
|
|
use dimens_m |
|
|
use paramet_m |
|
|
use comconst |
|
|
use comgeom |
|
|
use serre |
|
|
use nr_util, only: pi |
|
|
IMPLICIT NONE |
|
|
REAL lon,lat |
|
|
INTEGER ilon,jlat |
|
|
INTEGER i,j |
|
|
|
|
|
|
|
|
real zlon,zlat |
|
|
|
|
|
zlon=lon*pi/180. |
|
|
zlat=lat*pi/180. |
|
|
|
|
|
DO i=1,iim+1 |
|
|
IF (rlonu(i).GT.zlon) THEN |
|
|
ilon=i |
|
|
GOTO 10 |
|
|
ENDIF |
|
|
ENDDO |
|
|
10 CONTINUE |
|
|
|
|
|
j=0 |
|
|
DO j=1,jjm |
|
|
IF(rlatv(j).LT.zlat) THEN |
|
|
jlat=j |
|
|
GOTO 20 |
|
|
ENDIF |
|
|
ENDDO |
|
|
20 CONTINUE |
|
|
IF(j.EQ.0) j=jjm+1 |
|
2 |
|
|
3 |
RETURN |
IMPLICIT NONE |
4 |
END |
|
5 |
|
contains |
6 |
|
|
7 |
|
SUBROUTINE coordij(lon, lat, ilon, jlat) |
8 |
|
|
9 |
|
! From LMDZ4/libf/dyn3d/coordij.F, version 1.1.1.1 2004/05/19 12:53:05 |
10 |
|
|
11 |
|
! Calcul des coordonnées ilon et jlat de la maille scalaire dans |
12 |
|
! laquelle se trouve le point (lon, lat). |
13 |
|
|
14 |
|
USE comgeom, only: rlonu, rlatv |
15 |
|
USE dimens_m, only: iim, jjm |
16 |
|
|
17 |
|
REAL, intent(in):: lon, lat ! in rad |
18 |
|
INTEGER, intent(out):: ilon, jlat |
19 |
|
|
20 |
|
!---------------------------------------------------------- |
21 |
|
|
22 |
|
ilon = 1 |
23 |
|
do while (ilon <= iim .and. rlonu(ilon) <= lon) |
24 |
|
ilon = ilon + 1 |
25 |
|
end do |
26 |
|
|
27 |
|
jlat = 1 |
28 |
|
do while (jlat <= jjm - 1 .and. rlatv(jlat) >= lat) |
29 |
|
jlat = jlat + 1 |
30 |
|
end do |
31 |
|
|
32 |
|
END SUBROUTINE coordij |
33 |
|
|
34 |
|
end module coordij_m |