disgb.f
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
subroutine disgb (ityp,xsnew,rosnew,arond,drond,erond,
> posby,dist,ier)
c*
c***********************************************************************
c*
c* "Copyright [c] CNES 98 - tous droits reserves"
c* **********************************************
c*
c*PRO MAGLIB
c*
c*VER 99.03.31 - V 1.0
c*VER 01.06.05 - V 2.0
c*VER 03.01.06 - V 2.1
c*
c*AUT spec. CNES - JC KOSIK - juin 1995
c*AUT port. CISI
c*
c*ROL Theme : Frontieres et regions
c*ROL Calcul de la distance du satellite a la frontiere de
c*ROL la magnetopause ou de l'onde de choc en fonction de
c*ROL la valeur de ityp.
c*
c*PAR ityp (I) : parametre permettant de fixer le choix de frontiere
c*
c*PAR xsnew (I) : coordonnee x du satellite dans le repere solaire
c*PAR : ecliptique (rayons terrestres)
c*
c*PAR rosnew (I) : distance du satellite a l'axe de symetrie dans le
c*PAR : repere solaire ecliptique (rayons terrestres)
c*
c*PAR arond (I) : parametre modifie par la transformation quadratique
c*PAR drond (I) : parametre modifie par la transformation quadratique
c*PAR erond (I) : parametre modifie par la transformation quadratique
c*
c*PAR posby (I) : position du point
c*
c*PAR dist (O) : distance du satellite (rayons terrestres)
c*
c*PAR ier (O) : code de retour
c*
c*NOT ityp : fixe le choix de frontiere :
c*NOT : --> ityp = 1 magnetopause
c*NOT : --> ityp = 2 onde de choc
c*
c*NOT posby : Resultats dans posby :
c*NOT : --> posby = +1., point au dela de la frontiere
c*NOT : --> posby = -1., point en deca de la frontiere
c*
c*NOT ier : sans objet
c*
c*INF utilise : rootmp
c*
c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP
c*HST version 2.0 - 01.06.05 - correction de commentaires de code
c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77
c*
c***********************************************************************
c*
implicit none
c
c ---------------------------------
c*FON Declaration identificateur rcs_id
c ---------------------------------
c
character rcs_id*100
c
c --------------------------
c*FON Declaration des parametres
c --------------------------
c
integer ityp
double precision xsnew,rosnew
double precision arond,drond,erond
double precision posby
double precision dist
integer ier
c
c ---------------------------------
c*FON Declaration des variables locales
c ---------------------------------
c
double precision rtab(5)
double precision ro1,x1
c*LOC Variables de travail intermediaires
c
SAVE
c
c ---------------------------------
c*FON Affectation identificateur rcs_id
c ---------------------------------
c
data rcs_id /"
>$Id$"/
c
c ******************
c Debut de programme
c ******************
c
ier = 0
c
ro1 = rosnew
x1 = xsnew
c
if (ityp .eq. 2) then
ro1 = rosnew - 0.314665d0
endif
c
rtab(1) = arond
rtab(2) = drond
rtab(3) = erond
rtab(4) = ro1
rtab(5) = x1
c
call rootmp(rtab,dist,ier)
c
c ----------------------------------------------------
c*FON posby affecte un signe a la distance a la frontiere
c ----------------------------------------------------
c
dist = dist * posby
c
c ****************
c Fin de programme
c ****************
c
return
end