source:
branches/2014/dev_r4650_UKMO12_CFL_diags_take2/NEMOGCM/TOOLS/OBSTOOLS/src/distance.h90
@
5947
Last change on this file since 5947 was 5947, checked in by timgraham, 8 years ago | |
---|---|
|
|
File size: 1.1 KB |
Rev | Line | |
---|---|---|
[3000] | 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.