/[lmdze]/trunk/phylmd/orbite.f90
ViewVC logotype

Annotation of /trunk/phylmd/orbite.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 318 - (hide annotations)
Tue Dec 11 15:06:38 2018 UTC (5 years, 5 months ago) by guez
Original Path: trunk/phylmd/orbite.f
File size: 1461 byte(s)
Add test for procedure orbite.

1 guez 22 MODULE orbite_m
2 guez 3
3 guez 22 IMPLICIT NONE
4 guez 3
5 guez 22 CONTAINS
6 guez 3
7 guez 208 pure SUBROUTINE orbite(xjour, longi, dist)
8 guez 3
9 guez 317 ! From phylmd/orbite.F, version 1.1.1.1, 2004/05/19 12:53:08
10 guez 3
11 guez 317 ! Author: Z. X. Li (LMD/CNRS)
12 guez 22 ! Date: 1993/08/18
13 guez 118
14 guez 317 ! Pour un jour donn\'e, calcule la longitude vraie de la Terre et
15     ! la distance Terre-Soleil.
16 guez 3
17 guez 318 use nr_util, only: deg_to_rad, rad_to_deg
18 guez 125 USE yomcst, ONLY: r_ecc, r_peri
19    
20 guez 208 REAL, INTENT (IN):: xjour ! jour de l'ann\'ee \`a compter du premier janvier
21 guez 3
22 guez 22 REAL, INTENT (OUT):: longi
23 guez 125 ! longitude vraie de la Terre dans son orbite solaire, par rapport
24 guez 208 ! au point vernal (21 mars), en degr\'es
25 guez 3
26 guez 318 REAL, INTENT (OUT), OPTIONAL:: dist ! distance terre-soleil, en ua
27 guez 3
28 guez 125 ! Local:
29 guez 317 REAL xl, xllp, xee, xse, ranm
30 guez 3
31     !----------------------------------------------------------------------
32    
33 guez 22 xl = r_peri + 180.
34 guez 317 xllp = xl * deg_to_rad
35 guez 125 xee = r_ecc**2
36 guez 22 xse = sqrt(1. - xee)
37 guez 125 ranm = 2. * ((r_ecc / 2 + r_ecc * xee / 8.) * (1. + xse) * sin(xllp) &
38     - xee / 4. * (0.5 + xse) * sin(2.*xllp) + r_ecc * xee / 8. &
39 guez 317 * (1. / 3. + xse) * sin(3. * xllp)) + (xjour - 81.) * deg_to_rad - xllp
40 guez 22 xee = xee * r_ecc
41 guez 318 longi = ranm + (2. * r_ecc - xee / 4.) * sin(ranm) &
42     + 5. / 4. * r_ecc**2 * sin(2 * ranm) + 13. / 12. * xee * sin(3. * ranm)
43     IF (present(dist)) dist = (1 - r_ecc**2) / (1 + r_ecc * cos(longi))
44     longi = longi * rad_to_deg + xl
45 guez 3
46     END SUBROUTINE orbite
47    
48 guez 22 END MODULE orbite_m

  ViewVC Help
Powered by ViewVC 1.1.21