olsdon.f 9.2 KB
      subroutine olsdon (tiltd,trc,ier)
c*
c***********************************************************************
c*
c*      "Copyright [c] CNES 98 - tous droits reserves"
c*      **********************************************
c*
c*PRO MAGLIB
c*
c*VER 01.10.23 - V 2.0
c*VER 03.01.06 - V 2.1
c*
c*AUT spec. CNES - JC KOSIK - octobre 2001
c*AUT port. CISI
c*
c*ROL Theme : Astronomie et calculs d'orbite
c*ROL       Recherche des donnees Olson par interpolation sur
c*ROL       le tilt. 
c*ROL       Quand le tilt est superieur a 30 on prend les donnees 30.
c
c*
c*PAR tiltd (I) : angle de tilt (degres)
c*
c*PAR trc   (O) : donnees d'Olson (dizaines de rayons terrestres)
c*
c*PAR ier   (O) : code de retour
c*
c*NOT ier       : sans objet
c*
c*INF utilise   : sans objet
c*
c*HST version 2.0 - 01.10.23 - Enrichissement de la maglib au CDPP
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 tiltd
      double precision trc(13,12)
      integer ier
c
c     ---------------------------------
c*FON Declaration des variables locales
c     ---------------------------------
c
      double precision deltat
      double precision tr0(13,12)
      double precision tr10(13,12)
      double precision tr20(13,12)
      double precision tr30(13,12)
c*LOC Variables de travail intermediaires
c
      integer i,j
c*LOC i, j :indices de boucles
c
      SAVE
c
c     ---------------------------------
c*FON Affectation identificateur rcs_id
c     ---------------------------------
c
      data rcs_id /"
     >$Id$"/
c
c     --------------------------
c*FON Affectation des constantes
c     --------------------------
c
c  Positions de lq magnetopause en fonction du tilt et des angles theta et phi
c
      data ((tr0(i,j),i=1,13),j=1,12) /13*1.0725d0,
     > 1.0766d0,1.0764d0,1.0760d0,1.0754d0,1.0748d0,1.0743d0,1.0741d0,
     > 1.0743d0,1.0748d0,1.0754d0,1.0760d0,1.0764d0,1.0766d0,
     > 1.0655d0,1.0675d0,1.0730d0,1.0806d0,1.0884d0,1.0942d0,1.0963d0,
     > 1.0942d0,1.0884d0,1.0806d0,1.0730d0,1.0675d0,1.0655d0,
     > 1.0494d0,1.0547d0,1.0698d0,1.0914d0,1.1143d0,1.1321d0,1.1388d0,
     > 1.1321d0,1.1143d0,1.0914d0,1.0698d0,1.0547d0,1.0494d0,
     > 1.0175d0,1.0273d0,1.0555d0,1.0982d0,1.1465d0,1.1862d0,1.2018d0,
     > 1.1862d0,1.1465d0,1.0982d0,1.0555d0,1.0273d0,1.0175d0,
     > 0.9470d0,0.9621d0,1.0075d0,1.0814d0,1.1743d0,1.2598d0,1.2962d0,
     > 1.2598d0,1.1743d0,1.0814d0,1.0075d0,0.9621d0,0.9470d0,
     > 1.2144d0,1.2263d0,1.2606d0,1.3124d0,1.3713d0,1.4198d0,1.4388d0,
     > 1.4198d0,1.3713d0,1.3124d0,1.2606d0,1.2263d0,1.2144d0,
     > 1.5257d0,1.5333d0,1.5548d0,1.5856d0,1.6183d0,1.6435d0,1.6531d0,
     > 1.6435d0,1.6183d0,1.5856d0,1.5548d0,1.5333d0,1.5257d0,
     > 1.9467d0,1.9495d0,1.9571d0,1.9676d0,1.9784d0,1.9863d0,1.9893d0,
     > 1.9863d0,1.9784d0,1.9676d0,1.9571d0,1.9495d0,1.9467d0,
     > 2.6045d0,2.6023d0,2.5963d0,2.5881d0,2.5800d0,2.5741d0,2.5720d0,
     > 2.5741d0,2.5800d0,2.5881d0,2.5963d0,2.6023d0,2.6045d0,
     > 3.8706d0,3.8476d0,3.7868d0,3.7083d0,3.6344d0,3.5830d0,3.5648d0,
     > 3.5830d0,3.6344d0,3.7083d0,3.7868d0,3.8476d0,3.8706d0,
     > 7.4383d0,7.3923d0,7.2709d0,7.1142d0,6.9673d0,6.8654d0,6.8291d0,
     > 6.8654d0,6.9673d0,7.1142d0,7.2709d0,7.3923d0,7.4383d0/

      data  ((tr10(i,j),i=1,13),j=1,12) /13*1.0715d0,
     > 1.0869d0,1.0864d0,1.0850d0,1.0828d0,1.0800d0,1.0767d0,1.0733d0,
     > 1.0698d0,1.0667d0,1.0640d0,1.0620d0,1.0607d0,1.0603d0,
     > 1.0882d0,1.0896d0,1.0932d0,1.0976d0,1.1007d0,1.1005d0,1.0956d0,
     > 1.0860d0,1.0730d0,1.0591d0,1.0467d0,1.0384d0,1.0354d0,
     > 1.0884d0,1.0929d0,1.1053d0,1.1220d0,1.1373d0,1.1445d0,1.1384d0,
     > 1.1182d0,1.0882d0,1.0556d0,1.0273d0,1.0085d0,1.0019d0,
     > 1.0785d0,1.0878d0,1.1141d0,1.1520d0,1.1902d0,1.2119d0,1.2017d0,
     > 1.1572d0,1.0923d0,1.0261d0,0.9728d0,0.9392d0,0.9278d0,
     > 1.0403d0,1.0529d0,1.0899d0,1.1473d0,1.2149d0,1.2728d0,1.2964d0,
     > 1.2736d0,1.2163d0,1.1491d0,1.0919d0,1.0550d0,1.0424d0,
     > 1.1106d0,1.1242d0,1.1643d0,1.2279d0,1.3071d0,1.3851d0,1.4394d0,
     > 1.4536d0,1.4299d0,1.3861d0,1.3421d0,1.3113d0,1.3004d0,
     > 1.4445d0,1.4542d0,1.4822d0,1.5245d0,1.5739d0,1.6206d0,1.6539d0,
     > 1.6674d0,1.6615d0,1.6431d0,1.6216d0,1.6052d0,1.5992d0,
     > 1.8667d0,1.8722d0,1.8878d0,1.9112d0,1.9389d0,1.9666d0,1.9902d0,
     > 2.0070d0,2.0163d0,2.0192d0,2.0184d0,2.0165d0,2.0156d0,
     > 2.5233d0,2.5243d0,2.5274d0,2.5332d0,2.5425d0,2.5557d0,2.5729d0,
     > 2.5933d0,2.6154d0,2.6368d0,2.6548d0,2.6668d0,2.6711d0,
     > 3.7800d0,3.7621d0,3.7150d0,3.6550d0,3.6009d0,3.5680d0,3.5656d0,
     > 3.5968d0,3.6581d0,3.7390d0,3.8219d0,3.8848d0,3.9084d0,
     > 7.2363d0,7.2027d0,7.1141d0,7.0010d0,6.8985d0,6.8355d0,6.8297d0,
     > 6.8868d0,7.0003d0,7.1502d0,7.3038d0,7.4203d0,7.4640d0/
c
      data  ((tr20(i,j),i=1,13),j=1,12) /13*1.0680d0,
     > 1.0852d0,1.0849d0,1.0841d0,1.0824d0,1.0795d0,1.0754d0,1.0699d0,
     > 1.0634d0,1.0565d0,1.0499d0,1.0445d0,1.0409d0,1.0397d0,
     > 1.1032d0,1.1044d0,1.1072d0,1.1098d0,1.1098d0,1.1046d0,1.0929d0,
     > 1.0752d0,1.0539d0,1.0324d0,1.0142d0,1.0021d0,0.9979d0,
     > 1.1192d0,1.1234d0,1.1347d0,1.1486d0,1.1583d0,1.1560d0,1.1366d0,
     > 1.1010d0,1.0561d0,1.0114d0,0.9747d0,0.9510d0,0.9429d0,
     > 1.1286d0,1.1359d0,1.1562d0,1.1838d0,1.2089d0,1.2181d0,1.2011d0,
     > 1.1575d0,1.0986d0,1.0394d0,0.9914d0,0.9609d0,0.9505d0,
     > 1.1300d0,1.1392d0,1.1654d0,1.2045d0,1.2478d0,1.2830d0,1.2971d0,
     > 1.2846d0,1.2507d0,1.2083d0,1.1699d0,1.1439d0,1.1348d0,
     > 1.0912d0,1.1048d0,1.1449d0,1.2094d0,1.2911d0,1.3754d0,1.4413d0,
     > 1.4712d0,1.4639d0,1.4335d0,1.3985d0,1.3726d0,1.3632d0,
     > 1.3342d0,1.3470d0,1.3846d0,1.4436d0,1.5172d0,1.5933d0,1.6567d0,
     > 1.6952d0,1.7059d0,1.6960d0,1.6779d0,1.6623d0,1.6564d0,
     > 1.7638d0,1.7731d0,1.8001d0,1.8416d0,1.8925d0,1.9457d0,1.9936d0,
     > 2.0304d0,2.0534d0,2.0643d0,2.0669d0,2.0662d0,2.0655d0,
     > 2.4149d0,2.4207d0,2.4375d0,2.4640d0,2.4979d0,2.5364d0,2.5765d0,
     > 2.6150d0,2.6493d0,2.6774d0,2.6980d0,2.7106d0,2.7148d0,
     > 3.6522d0,3.6415d0,3.6139d0,3.5806d0,3.5550d0,3.5487d0,3.5689d0,
     > 3.6178d0,3.6914d0,3.7795d0,3.8653d0,3.9287d0,3.9522d0,
     > 6.9630d0,6.9440d0,6.8952d0,6.8370d0,6.7943d0,6.7882d0,6.8324d0,
     > 6.9304d0,7.0749d0,7.2460d0,7.4119d0,7.5340d0,7.5791d0/
c
      data  ((tr30(i,j),i=1,13),j=1,12) /13*1.0586d0,
     > 1.0876d0,1.0871d0,1.0855d0,1.0824d0,1.0774d0,1.0702d0,1.0609d0,
     > 1.0502d0,1.0389d0,1.0282d0,1.0196d0,1.0139d0,1.0119d0,
     > 1.1128d0,1.1139d0,1.1163d0,1.1177d0,1.1148d0,1.1044d0,1.0853d0,
     > 1.0585d0,1.0279d0,0.9981d0,0.9736d0,0.9576d0,0.9521d0,
     > 1.1405d0,1.1454d0,1.1581d0,1.1728d0,1.1797d0,1.1679d0,1.1310d0,
     > 1.0729d0,1.0059d0,0.9435d0,0.8950d0,0.8649d0,0.8548d0,
     > 1.1686d0,1.1735d0,1.1868d0,1.2037d0,1.2167d0,1.2169d0,1.1981d0,
     > 1.1612d0,1.1132d0,1.0656d0,1.0262d0,1.0008d0,0.9921d0,
     > 1.1936d0,1.1998d0,1.2171d0,1.2421d0,1.2686d0,1.2892d0,1.2971d0,
     > 1.2894d0,1.2690d0,1.2425d0,1.2176d0,1.2003d0,1.1942d0,
     > 1.2067d0,1.2168d0,1.2461d0,1.2915d0,1.3465d0,1.4013d0,1.4442d0,
     > 1.4668d0,1.4684d0,1.4553d0,1.4373d0,1.4229d0,1.4175d0,
     > 1.2159d0,1.2315d0,1.2782d0,1.3543d0,1.4540d0,1.5638d0,1.6623d0,
     > 1.7282d0,1.7535d0,1.7475d0,1.7276d0,1.7093d0,1.7022d0,
     > 1.6526d0,1.6659d0,1.7049d0,1.7662d0,1.8433d0,1.9259d0,2.0013d0,
     > 2.0587d0,2.0929d0,2.1067d0,2.1076d0,2.1041d0,2.1022d0,
     > 2.2942d0,2.3053d0,2.3377d0,2.3882d0,2.4512d0,2.5197d0,2.5856d0,
     > 2.6421d0,2.6850d0,2.7137d0,2.7304d0,2.7386d0,2.7409d0,
     > 3.5065d0,3.5043d0,3.4999d0,3.4987d0,3.5077d0,3.5331d0,3.5786d0,
     > 3.6443d0,3.7257d0,3.8134d0,3.8935d0,3.9503d0,3.9709d0,
     > 6.6545d0,6.6525d0,6.6503d0,6.6571d0,6.6849d0,6.7444d0,6.8417d0,
     > 6.9762d0,7.1392d0,7.3124d0,7.4692d0,7.5798d0,7.6198d0/
c
c     ******************
c     Debut de programme
c     ******************
c
      ier = 0
c
      if (tiltd .lt. 0.d0) then
         tiltd = -tiltd
      endif
c      
      if (tiltd .ge. 0.d0 .and. tiltd .lt. 10.d0) then
c
         do 10 i = 1, 13
            do 20 j = 1, 12
               deltat   = tr10(i,j) - tr0(i,j)
               trc(i,j) = tr0(i,j) + tiltd * deltat / 10.d0
20          continue
10       continue
c
      endif
c
      if (tiltd .ge. 10.d0 .and. tiltd .lt. 20.d0) then
c
         do 30 i = 1, 13
            do 40 j = 1, 12
               deltat   = tr20(i,j) - tr10(i,j)
               trc(i,j) = tr10(i,j) + tiltd * deltat / 10.d0
40          continue
30       continue
c
      endif
c
      if (tiltd .ge. 20.d0 .and. tiltd .lt. 30.d0) then
c
         do 50 i = 1,1 3
            do 60 j = 1, 12
               deltat   = tr30(i,j) - tr20(i,j)
               trc(i,j) = tr20(i,j)  + tiltd * deltat/10.d0
60          continue
50       continue
c
      endif
c
      if (tiltd .ge. 30.d0) then
c
         do 70 i = 1, 13
            do 80 j = 1, 12
               trc(i,j) = tr30(i,j)
80          continue
70       continue
c
      endif
c
c     ****************
c     Fin de programme
c     ****************
c
      return
      end