msheath.f
4.08 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
subroutine msheath (xgsm,ygsm,zgsm,imagn,isheath,isolw,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 - janvier 1991
c*AUT port. CISI
c*
c*ROL Theme : Frontieres et regions
c*ROL Calcul de l'appartenance d'un satellite a la magnetogaine
c*ROL de facon directe.
c*ROL Determination de la position du satellite par rapport
c*ROL au vent solaire solaire, isolw, a la magnetogaine, isheath,
c*ROL a la magnetosphere (interieur de la magnetopause), imagn.
c*
c*PAR xgsm (I) : coordonnee solaire magnetospherique en x (rayons terrestres)
c*PAR ygsm (I) : coordonnee solaire magnetospherique en y (rayons terrestres)
c*PAR zgsm (I) : coordonnee solaire magnetospherique en z(rayons terrestres)
c*
c*PAR imagn (O) : indicateur d'appartenance a la magnetosphere
c*
c*PAR isheath (O) : indicateur d'appartenance du satellite a la magnetogaine
c*PAR isolw (O) : indicateur d'appartenance au vent solaire
c*
c*PAR ier (O) : code de retour
c*
c*NOT imagn : 1 = le satellite appartient a la magnetosphere
c*NOT imagn : 0 = le satellite n'appartient pas a la magnetosphere
c
c*NOT isheath : 1 = le satellite appartient a la magnetogaine
c*NOT isheath : 0 = le satellite n'appartient pas a la magnetogaine
c
c*NOT isolw : 1 = le satellite appartient au vent solaire
c*NOT isolw : 0 = le satellite n'appartient pas a au vent solaire
c
c*
c*NOT ier : sans objet
c*
c*INF utilise : bwshff, mpsib
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
double precision xgsm, ygsm, zgsm
integer imagn, isheath, isolw
integer ier
c
c ---------------------------------
c*FON Declaration des variables locales
c ---------------------------------
c
integer ibwsh,imp
c*LOC ibwsh,imp : indicateurs d'appartenance a l'onde et choc et
c*LOC : a la magnetopause de Sibeck
c
integer ier1,ier2
c*LOC ier1,ier2 : codes retour des modules appeles
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
ier1 = 0
ier2 = 0
c
c ------------------------
c*FON Initialisation de depart
c ------------------------
c
isolw = 0
isheath = 0
imagn = 0
imp = 0
c
c -------------------------------------------------------
c*FON Calcul de la position du satellite par rapport a l'onde
c*FON de choc Fairfield
c -------------------------------------------------------
c
call bwshff(xgsm,ygsm,zgsm,ibwsh,ier1)
c
c -----------------------------------------------------
c*FON Calcul de l'appartenance d'un point a la magnetopause
c*FON de Sibeck.
c -----------------------------------------------------
c
call mpsib(xgsm,ygsm,zgsm,imp,ier2)
c
c -------------------------------------------------
c*FON Determination de l'appartenence a la magnetogaine
c -------------------------------------------------
c
if (imp .eq. 0) then
imagn = 1
endif
c
if (imp .eq. 2 .and. ibwsh .eq. 0) then
isheath = 1
endif
c
if (ibwsh .eq. 2) then
isolw = 1
endif
c
c ****************
c Fin de programme
c ****************
c
return
end