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