New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
distance.h90 in utils/tools/OBSTOOLS/src – NEMO

source: utils/tools/OBSTOOLS/src/distance.h90 @ 10841

Last change on this file since 10841 was 3000, checked in by djlea, 13 years ago

Updated obstools. Addition of headers to programs which explain what each utility does and how to run it. All the programs now build using the naketools utility.

File size: 1.1 KB
Line 
1   REAL FUNCTION distance( plon1, plat1, plon2, plat2 )
2      ! Arggumnts
3      REAL :: plon1,plat1,plat2,plon2
4      ! Local variables
5      REAL :: zplat1,zplon1,zplat2,zplon2
6      REAL :: za1,za2,zb1,zb2,zc1,zc2,zcos1,zcos2
7      REAL, PARAMETER :: zrad = 3.141592653589793/180.0
8      REAL, parameter :: rearth = 6371229
9
10      zplon1 = plon1
11      zplon2 = plon2
12      IF ( zplon1 <  -180 ) zplon1 = zplon1 + 360.0
13      IF ( zplon1 >=  180 ) zplon1 = zplon1 - 360.0
14      IF ( zplon2 <  -180 ) zplon2 = zplon2 + 360.0
15      IF ( zplon2 >=  180 ) zplon2 = zplon2 - 360.0
16
17      zplon1 = zplon1 * zrad
18      zplon2 = zplon2 * zrad
19      zplat1 = plat1  * zrad
20      zplat2 = plat2  * zrad
21      zcos1  = COS( zplat1 )
22      zcos2  = COS( zplat2 )
23      za1    = SIN( zplat1 )
24      za2    = SIN( zplat2 )
25      zb1    = zcos1 * COS( zplon1 )
26      zb2    = zcos2 * COS( zplon2 )
27      zc1    = zcos1 * SIN( zplon1 )
28      zc2    = zcos2 * SIN( zplon2 )
29
30      distance  =  rearth  *  &
31         &  ASIN( SQRT( ABS ( 1.0 - ( za1 * za2 + zb1 * zb2 + zc1 * zc2) ** 2) ) )
32     
33    END FUNCTION distance
Note: See TracBrowser for help on using the repository browser.