vs_igrf.f 8.87 KB
      subroutine vs_igrf
c*
c***********************************************************************
c*
c*PRO MAGLIB
c*
c*VER 01.01.07 - V 3.0
c*VER 17.02.24 - V 4.0
c*VER 20.07.16 - V 5.0
c*
c*AUT spec. N A S A
c*AUT spec. CNES - JC KOSIK - novembre 2006
c*AUT port. AKKA
c*
c*ROL Theme : Modeles de champs magnetiques
c*ROL         Calcul des variations seculaires pour les modeles
C*ROL         dgrf95 ou dgrf00 ou dgrf05 ou dgrf10 ou dgrf15 ou
C*ROL         igrf20
c*
c*HST version 3.0 - 01.01.07
c*HST version 4.0 - 17.02.24 - Ajout du modèle IGRF2015
c*HST version 5.0 - 20.07.16 - Ajout du modèle IGRF2020
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 ier, km, n, m
c
c     ---------------------------------
c*FON Declaration des variables locales
c     ---------------------------------
c
      integer lg(14,14,6)
c*LOC lg : coefficients entre 1995 et 2020
c
      integer kmax
c*LOC kmax : nombre de pas de calcul (= 14)
c

c*LOC n,m,jj,km : indices de boucles et de tableaux
c
      double precision cof1,cof2,delt, dg, fn1, fn2

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*FON Affectation des constantes
c     --------------------------
c
c*   coefficients pour 1995,2000,2005,2010,2015 et 2020
c
c    Revision octobre 2006, nouveaux coefficients pour les champs dgrf95,
c                           dgrf2000, igrf2005
      data lg/
c
c    Champ dgrf 95
c
     s  10,
     s -296920,-22000,13350,9400,-2140,680,770,250,40,-30,3*0,
     s 53060,-17840,30700,-22670,7800,3520,670,-720,60,90,-60,3*0,
     s -23660,-4130,16810,12490,2900,2350,680,10,-60,30,20,3*0,
     s -2620,3020,-4270,7590,-4180,-1180,-1700,280,-90,-100,-40,3*0,
     s 2620,-2360,970,-3060,1220,-1660,-10,50,-140,80,-10,3*0,
     s 460,1650,-1430,-550,1070,-170,190,40,90,-80,40,3*0,
     s -170,720,670,-580,10,360,-930,80,60,-10,20,3*0,
     s -690,-250,40,240,170,-240,-60,-20,-50,100,20,3*0,
     s 110,-210,80,-230,150,110,-160,-40,-70,-20,50,3*0,
     s -200,150,120,-60,-80,80,50,-80,30,-80,10,3*0,
     s  10,0,40,50,-50,-10,-20,10,-20,-70,0,45*0,
c
c    Champ dgrf 00
c
     >  10,
     >  -296194,-22677,13396,9323,-2188,723,790,244,50,-26,27,-22,-2,
     >  51861,-17282,30684,-22880,7868,3514,682,-740,66,94,-60,-17,-3,
     > -9,
     > -24816,-4580,16709,12521,2500,2223,742,0,-92,30,17,-19,2,3,
     > -2276,2934,-4911,7145,-4030,-1304,-1609,333,-79,-84,-31,15,9,1,
     >  2726,-2319,1198,-3038,1113,-1686,-59,91,-166,63,-5,-1,-2,-4,
     >  438,1719,-1331,-393,1063,-129,169,69,91,-89,37,1,9,13,
     > -174,637,651,-612,7,438,-904,73,70,-15,10,-7,-5,-4,
     > -646,-242,62,240,148,-254,-58,-12,-79,93,20,7,3,7,
     >  119,-215,85,-215,155,89,-149,-21,-70,-43,42,17,-3,-4,
     > -197,134,125,-62,-84,84,38,-82,48,-82,3,1,-4,3,
     >  17,0,40,49,-59,-12,-29,2,-22,-74,-11,12,-1,-1,
     >  1,13,-9,-26,9,-7,-28,-9,-12,-19,-9,40,-2,4,
     > -4,3,25,-26,7,3,0,0,3,-9,-4,8,-4,0,
     > -9,2,18,-4,-10,-1,7,3,6,3,-2,-5,-9,1,
c
c    Champ dgrf 05   (mise à jour Octobre 2010)
c
     > 100,
     > -2955463,-233724,133630,92055,-22700,7360,7988,2480,558,-217,
     >  295,-215,-16,
     >  507799,-166905,304769,-230583,79796,35441,6956,-7446,762,976,
     > -612,-160,-29,-88,
     > -259450,-51543,165776,124639,21065,20895,7674,-165,-1173,358,
     >  142,-188,21,30,
     > -19886,26972,-52472,67251,-37986,-13654,-15134,3873,-688,-694,
     > -235,144,89,28,
     >  28207,-22523,14515,-30536,10000,-16805,-1458,1230,-1811,501,
     > -15,-31,-38,-43,
     >  4272,18025,-12345,-1957,10385,-1355,1458,937,1017,-1076,306,
     >  29,96,118,
     > -2033,5475,6363,-6353,24,5094,-8636,542,936,-125,29,-79,-30,
     > -37,
     > -6114,-2257,682,2535,1093,-2632,-464,194,-1125,876,206,53,46,
     >  75,
     >  1120,-2088,983,-1971,1622,761,-1276,-6,-487,-666,377,180,-35,
     > -26,
     > -2011,1269,1267,-672,-816,810,292,-773,601,-922,-21,16,-36,35,
     >  219,10,446,476,-658,-101,-347,-86,-231,-793,-209,96,8,-5,
     >  26,144,-77,-227,90,-58,-269,-108,-158,-190,-139,399,-49,41,
     > -55,23,238,-263,61,40,1,2,28,-87,-34,88,-8,-10,
     > -76,33,172,-54,-107,-4,63,21,53,38,-22,-57,-82,-18,
c
c    Champ dgrf 10 (mise à jour Février2017)
c
     >  100,
     > -2949657,-239606,133985,91266,-23087,7278,8044,2441,550,-194,
     >  305,-212,-9,
     >  494426,-158642,302634,-232654,80897,35729,6869,-7500,821,945,
     > -624,-148,-21,-89,
     > -270854,-57573,166817,123210,16658,20026,7592,-455,-1450,345,
     >  89,-203,30,31,
     > -16040,25175,-53703,63373,-35683,-14105,-14140,4524,-559,-527,
     > -107,165,104,42,
     >  28648,-21103,16446,-30972,8940,-16317,-2283,1400,-1934,313,
     > -16,-51,-63,-45,
     >  4458,18901,-11806,-1,10104,-803,1310,1046,1161,-1238,245,54,
     >  95,108,
     > -2090,4418,6154,-6626,302,5540,-7809,164,1085,-76,-33,-79,-11,
     > -31,
     > -5780,-2120,654,2496,703,-2761,-328,492,-1405,843,213,37,52,78,
     >  1084,-2003,1183,-1741,1671,696,-1074,164,-354,-842,309,179,
     > -39,-18,
     > -2054,1151,1275,-714,-742,797,214,-608,701,-1008,-103,12,-37,
     >  38,
     >  273,-10,471,444,-722,-96,-395,-199,-197,-831,-280,75,21,2,
     >  13,167,-66,-176,85,-39,-251,-127,-211,-194,-186,375,-77,42,
     > -87,27,213,-249,49,59,0,13,27,-86,-23,87,4,-26,
     > -87,30,166,-59,-114,-7,54,10,49,44,-25,-53,-79,-26,
c
c    Champ dgrf 15 (mise à jour Juillet 2020)
c
     >  100,
     > -2944146,-244588,135033,90742,-23291,6955,8129,2398,533,-201,300,
     > -209,-2,
     >  479599,-150177,301220,-235226,81368,36014,6757,-7599,889,883,
     > -626,-140,-16,-92,
     > -284541,-64217,167635,122585,12049,19235,7279,-679,-1678,302,17,
     > -230,46,42,
     > -11529,24504,-53870,58169,-33485,-14094,-12985,5182,-316,-322,55,
     >  208,123,63,
     >  28354,-18843,18095,-32923,7038,-15740,-2893,1507,-2056,67,-55,
     > -79,-89,-42,
     >  4698,19698,-11914,1598,10012,430,1314,932,1333,-1320,170,58,85,
     >  96,
     > -2061,3330,5874,-6664,735,6241,-7085,-288,1176,-10,-67,-70,10,
     > -19,
     > -5427,-1953,559,2445,327,-2750,-232,661,-1598,868,213,14,54,81,
     >  1004,-1826,1318,-1460,1616,569,-910,226,-202,-906,233,170,-37,
     > -13,
     > -2177,1076,1174,-674,-688,779,104,-389,844,-1054,-180,-22,-43,38,
     >  328,-40,455,440,-792,-61,-416,-285,-112,-872,-359,44,22,8,
     >  0,211,-60,-105,76,-20,-212,-144,-257,-201,-234,349,-94,46,
     > -108,37,175,-219,27,72,-9,29,23,-89,-16,72,-3,-35,
     > -88,49,156,-50,-124,-10,42,-4,48,48,-30,-43,-71,-36,
c
c    Champ igrf 20 (mise à jour Juillet 2020)
c
     >  10,
     > -294048,-24996,13632,9030,-2343,660,806,237,50,-19,30,-20,1,
     >  46525,-14509,29820,-23812,8095,3632,655,-767,97,84,-62,-14,-1,
     > -9,
     > -29916,-7346,16770,12362,863,1878,729,-82,-176,29,-1,-25,5,5,
     > -821,2419,-5434,5257,-3094,-1407,-1215,565,-5,-15,17,23,13,7,
     >  2819,-1584,1997,-3497,480,-1512,-362,158,-211,-11,-9,-9,-12,-3,
     >  477,2083,-1212,323,989,135,135,64,153,-132,7,3,7,8,
     > -191,251,528,-645,89,681,-647,-72,137,11,-9,-7,3,0,
     > -515,-169,22,235,-22,-272,-18,98,-165,88,19,-1,5,8,
     >  84,-153,128,-117,149,36,-69,28,-3,-93,14,14,-3,0,
     > -234,110,98,-51,-63,78,4,-14,96,-119,-24,-6,-5,4,
     >  34,-2,36,48,-86,-1,-43,-34,-1,-88,-38,2,1,1,
     >  0,25,-6,-4,6,-2,-17,-16,-30,-20,-26,31,-11,5,
     > -12,5,14,-18,1,8,-2,6,2,-9,0,5,-3,-5,
     > -9,6,14,-4,-13,-1,3,-1,5,5,-4,-4,-6,-4
     > /
c
      data kmax /14/
c
c     ******************
c     Debut de programme
c     ******************
c
      ier = 0   
c        
c     **********************************************
c     km = 1, variation seculaire entre 1995 et 2000
c     km = 2, variation seculaire entre 2000 et 2005
c     km = 3, variation seculaire entre 2005 et 2010
c     km = 4, variation seculaire entre 2010 et 2015
c     km = 5, variation seculaire entre 2015 et 2020
c     ********************************************** 
         km =  + 5
c
         delt =  5.d0         
c
c     ************************
c     Facteur de normalisation
c     ************************
      fn1 = dble(lg(1,1,km))
      fn2 = dble(lg(1,1,km+1))
c
         do 70 n = 1, kmax
            do 80 m = 1, kmax    
            cof1   = dble(lg(n,m,km))/fn1
            cof2   = dble(lg(n,m,km+1))/fn2
            dg = ((cof2 - cof1) / delt)*(fn1*fn2)
            write(1,100)'n , m, dg, lg2, lg1 ', n,m ,dg,
     >       dble(lg(n,m,km+1)),dble(lg(n,m,km))
80          continue
70       continue

 100     format(a20,2i5,3f10.1)
c
c     ****************
c     Fin de programme
c     ****************
c
      return
      end