source: trunk/LMDZ.TITAN/libf/phytitan/solarlong.F @ 1243

Last change on this file since 1243 was 3, checked in by slebonnois, 14 years ago

Creation de repertoires:

  • chantiers : pour communiquer sur nos projets de modifs
  • documentation : pour stocker les docs

Ajout de:

  • libf/phytitan : physique de Titan
  • libf/chimtitan: chimie de Titan
  • libf/phyvenus : physique de Venus
File size: 1.9 KB
Line 
1      SUBROUTINE solarlong(pday,psollong)
2      IMPLICIT NONE
3
4c=======================================================================
5c
6c   Objet:
7c   ------
8c
9c      Calcul de la distance soleil-planete et de la declinaison
10c   en fonction du jour de l'annee.
11c
12c
13c   Methode:
14c   --------
15c
16c      Calcul complet de l'ellipse
17c
18c   Interface:
19c   ----------
20c
21c      Un common comprenant les parametres orbitaux.
22c
23c   Arguments:
24c   ----------
25c
26c   Input:
27c   ------
28c   pday          jour de l'annee (le jour 0 correspondant a l'equinoxe)
29c
30c   Output:
31c   -------
32c   psollong     Longitude solaire
33c
34c=======================================================================
35c-----------------------------------------------------------------------
36c   Declarations:
37c   -------------
38
39#include "comorbit.h"
40
41c arguments:
42c ----------
43
44      REAL pday,psollong
45
46c Local:
47c ------
48
49      REAL zanom,xref,zx0,zdx,zteta,zz
50      INTEGER iter
51
52
53c-----------------------------------------------------------------------
54c calcul de l'angle polaire et de la distance au soleil :
55c -------------------------------------------------------
56
57c  calcul de l'zanomalie moyenne
58
59      zz=(pday-peri_day)/year_day
60      zanom=2.*pi*(zz-nint(zz))
61      xref=abs(zanom)
62
63c  resolution de l'equation horaire  zx0 - e * sin (zx0) = xref
64c  methode de Newton
65
66      zx0=xref+e_elips*sin(xref)
67      DO 110 iter=1,10
68         zdx=-(zx0-e_elips*sin(zx0)-xref)/(1.-e_elips*cos(zx0))
69         if(abs(zdx).le.(1.e-7)) goto 120
70         zx0=zx0+zdx
71110   continue
72120   continue
73      zx0=zx0+zdx
74      if(zanom.lt.0.) zx0=-zx0
75
76c zteta est la longitude solaire
77
78      zteta=2.*atan(sqrt((1.+e_elips)/(1.-e_elips))*tan(zx0/2.))
79
80      psollong=zteta-timeperi
81
82      IF(psollong.LT.0.) psollong=psollong+2.*pi
83      IF(psollong.GT.2.*pi) psollong=psollong-2.*pi
84c-----------------------------------------------------------------------
85c   sorties eventuelles:
86c   ---------------------
87
88      RETURN
89      END
Note: See TracBrowser for help on using the repository browser.