source: flexpart.git/src/distance.f90 @ 3481cc1

10.4.1_peseiGFS_025bugfixes+enhancementsdevrelease-10release-10.4.1scaling-bug
Last change on this file since 3481cc1 was 3481cc1, checked in by Ignacio Pisso <ip@…>, 4 years ago

move license from headers to a different file

  • Property mode set to 100644
File size: 1.7 KB
Line 
1!-----------------------------------------------------------------------
2function distance(rlat1,rlon1,rlat2,rlon2)
3
4  !$$$  SUBPROGRAM DOCUMENTATION BLOCK
5  !
6  ! SUBPROGRAM:  GCDIST     COMPUTE GREAT CIRCLE DISTANCE
7  !   PRGMMR: IREDELL       ORG: W/NMC23       DATE: 96-04-10
8  !
9  ! ABSTRACT: THIS SUBPROGRAM COMPUTES GREAT CIRCLE DISTANCE
10  !      BETWEEN TWO POINTS ON THE EARTH.
11  !
12  ! PROGRAM HISTORY LOG:
13  !   96-04-10  IREDELL
14  !
15  ! USAGE:    ...GCDIST(RLAT1,RLON1,RLAT2,RLON2)
16  !
17  !   INPUT ARGUMENT LIST:
18  !rlat1    - REAL LATITUDE OF POINT 1 IN DEGREES
19  !rlon1    - REAL LONGITUDE OF POINT 1 IN DEGREES
20  !rlat2    - REAL LATITUDE OF POINT 2 IN DEGREES
21  !rlon2    - REAL LONGITUDE OF POINT 2 IN DEGREES
22  !
23  !   OUTPUT ARGUMENT LIST:
24  !distance - REAL GREAT CIRCLE DISTANCE IN KILOMETERS
25  !
26  ! ATTRIBUTES:
27  !   LANGUAGE: Fortran 90
28  !
29  !$$$
30
31  use par_mod, only: dp
32
33  implicit none
34
35  real          :: rlat1,rlon1,rlat2,rlon2,distance
36  real(kind=dp) :: clat1,clat2,slat1,slat2,cdlon,crd
37  real(kind=dp),parameter :: rerth=6.3712e6_dp
38  real(kind=dp),parameter :: pi=3.14159265358979_dp, dpr=180.0_dp/pi
39  ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
40  if ((abs(rlat1-rlat2).lt.0.03).and. &
41       (abs(rlon1-rlon2).lt.0.03)) then
42    distance=0.
43  else
44    clat1=cos(real(rlat1,kind=dp)/dpr)
45    slat1=sin(real(rlat1,kind=dp)/dpr)
46    clat2=cos(real(rlat2,kind=dp)/dpr)
47    slat2=sin(real(rlat2,kind=dp)/dpr)
48    cdlon=cos(real((rlon1-rlon2),kind=dp)/dpr)
49    crd=slat1*slat2+clat1*clat2*cdlon
50    distance=real(rerth*acos(crd)/1000.0_dp)
51  endif
52  ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
53end function distance
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG