/[lmdze]/trunk/Sources/phylmd/orbite.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/orbite.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years ago) by guez
File size: 1542 byte(s)
Sources inside, compilation outside.
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     SUBROUTINE orbite(xjour, longi, dist)
8    
9 guez 125 ! From phylmd/orbite.F, version 1.1.1.1 2004/05/19 12:53:08
10 guez 3
11 guez 125 ! Author: Z.X. Li (LMD/CNRS)
12 guez 22 ! Date: 1993/08/18
13 guez 118
14 guez 125 ! Pour un jour donné, calcule la longitude vraie de la Terre et la
15     ! distance Terre-Soleil, c'est-à-dire l'unité astronomique.
16 guez 3
17 guez 125 use nr_util, only: pi
18     USE yomcst, ONLY: r_ecc, r_peri
19    
20 guez 22 REAL, INTENT (IN):: xjour ! jour de l'année à 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     ! au point vernal (21 mars), en degrés
25 guez 3
26 guez 22 REAL, INTENT (OUT), OPTIONAL:: dist
27 guez 125 ! distance terre-soleil (par rapport à la moyenne)
28 guez 3
29 guez 125 ! Local:
30     REAL pir, xl, xllp, xee, xse, ranm
31 guez 3
32     !----------------------------------------------------------------------
33    
34 guez 22 pir = pi / 180.
35     xl = r_peri + 180.
36     xllp = xl * pir
37 guez 125 xee = r_ecc**2
38 guez 22 xse = sqrt(1. - xee)
39 guez 125 ranm = 2. * ((r_ecc / 2 + r_ecc * xee / 8.) * (1. + xse) * sin(xllp) &
40     - xee / 4. * (0.5 + xse) * sin(2.*xllp) + r_ecc * xee / 8. &
41     * (1. / 3. + xse) * sin(3. * xllp)) + (xjour - 81.) * pir - xllp
42 guez 22 xee = xee * r_ecc
43 guez 125 longi = (ranm + (2. * r_ecc - xee / 4.) * sin(ranm) + 5. / 4. * r_ecc**2 &
44     * sin(2 * ranm) + 13. / 12. * xee * sin(3. * ranm)) / pir + xl
45 guez 3
46 guez 22 IF (present(dist)) then
47 guez 125 dist = (1 - r_ecc * r_ecc) &
48     / (1 + r_ecc * cos(pir * (longi - (r_peri + 180.))))
49 guez 22 end IF
50 guez 3
51     END SUBROUTINE orbite
52    
53 guez 22 END MODULE orbite_m

  ViewVC Help
Powered by ViewVC 1.1.21