source: trunk/LMDZ.COMMON/libf/dyn3d_common/tidal_forces.F @ 1300

Last change on this file since 1300 was 1300, checked in by emillour, 10 years ago

Common dynamics:
Some updates to keep up with LMDZ5 Earth model evolution (up to LMDZ5 rev 1955).
Main change is the introduction of a "dyn3d_common" directory
to store files common to dyn3d and dyn3dpar.
See file "DOC/chantiers/commit_importants.log" for detailed list
of changes. These changes do not change results on test cases.
EM

File size: 2.8 KB
Line 
1      SUBROUTINE tidal_forces (t, du, dv)
2
3      IMPLICIT NONE
4c
5c=======================================================================
6c
7c   Auteur:  B. Charnay  (10/2010)
8c   -------
9c
10c   Objet:
11c   ------
12c
13c   *****************************************************************
14c   ..... calcul du gradient horizontal du potentiel gravitationnel du aux forces de marees causees par Saturne
15c   ..... Formule tiree de Tokano 2002
16c   *****************************************************************
17c          Ces termes sont ajoutes a  d(ucov)/dt et a d(vcov)/dt  ..
18c
19c
20c    du et dv          sont des arguments de sortie pour le s-pg  ....
21c
22c=======================================================================
23c
24#include "dimensions.h"
25#include "paramet.h"
26#include "logic.h"
27#include "comvert.h"
28#include "comconst.h"
29#include "comgeom.h"
30!#include "comorbit.h"
31      REAL t        ! jour de l'annee
32      REAL du( ip1jmp1,llm ),  dv( ip1jm,llm )
33
34c     variables locales
35      REAL Vo
36      PARAMETER (Vo=-4.691e-6)
37      INTEGER  l,ij,i,k
38      REAL n                ! 2pi/periode de rotation siderale (en jours)
39      REAL a0               ! angle à l'instant initial entre Titan et le perihelie
40      PARAMETER (a0=0.)     
41
42c     cos et sin de la latitude et longitude, calcules au premiers appel
43      REAL coslonv(ip1jm),sinlonv(ip1jm)
44      REAL sinlatv(ip1jm),coslatv(ip1jm)
45      REAL coslonu(ip1jmp1),sinlonu(ip1jmp1)
46      REAL sinlatu(ip1jmp1),coslatu(ip1jmp1)     
47
48      LOGICAl first     
49
50      SAVE coslonv,coslonu,sinlonu,sinlonv
51      SAVE coslatv,coslatu,sinlatu,sinlatv
52      SAVE first, n
53
54      DATA first /.true./
55
56! Calcul des sin et cos aux points consideres
57
58      IF(first) THEN
59         first=.false.
60         n=2*3.145!*(1+1/673.)
61         do i=1,iip1
62          do k=1,jjm
63            coslonv(i+(k-1)*iip1)=cos(rlonv(i))
64            sinlonv(i+(k-1)*iip1)=sin(rlonv(i))
65            coslatv(i+(k-1)*iip1)=cos(rlatv(k))
66            sinlatv(i+(k-1)*iip1)=sin(rlatv(k))
67          ENDDO
68         ENDDO
69
70
71
72         do i=1,iip1
73          do k=1,jjp1
74            coslonu(i+(k-1)*iip1)=cos(rlonu(i))
75            sinlonu(i+(k-1)*iip1)=sin(rlonu(i))
76            coslatu(i+(k-1)*iip1)=cos(rlatu(k))
77            sinlatu(i+(k-1)*iip1)=sin(rlatu(k))
78          ENDDO
79         ENDDO
80
81
82
83      ENDIF
84
85
86! Tendance du aux forces de maree
87
88      DO l = 1,llm
89
90      DO ij  = 1, ip1jmp1
91
92       du(ij,l) = cu(ij)*Vo
93     $    *(3*sinlonu(ij)*coslonu(ij)*coslatu(ij)*cos(n*t+a0)
94     $    -2*coslatu(ij)*(2*coslonu(ij)**2-1)*sin(n*t+a0))       
95      ENDDO
96
97      DO ij  = 1, ip1jm
98       dv(ij,l) = cv(ij)*Vo
99     $    *(3*sinlatv(ij)*coslatv(ij)*coslonv(ij)**2*cos(n*t+a0)
100     $    + 4*coslatv(ij)*sinlatv(ij)*sinlonv(ij)*coslonv(ij)
101     $    *sin(n*t+a0))     
102      ENDDO
103
104      ENDDO
105
106
107c
108      RETURN
109      END
Note: See TracBrowser for help on using the repository browser.