msheath.f 4.08 KB
      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