vs_chp.f 9.57 KB
      subroutine vs_chp
c*
c***********************************************************************
c*
c*PRO MAGLIB
c*
c*VER 01.01.07 - V 3.0
c*VER 13.10.10 - V 4.0
c*VER 17.02.24 - V 5.0
c*VER 20.07.16 - V 6.0
c*
c*AUT spec. CNES - JC KOSIK - Novembre 2006
c*AUT port. SILOGIC
c*AUT adapt. AKKA
c*
c*ROL Theme : Modeles de champs magnetiques
c*ROL         Calcul des variations seculaires pour les modeles
C*ROL         chp95, chp00, chp05, chp10, chp15 et chp20
c*
c*NOT common    : util, util2
c*
c*INF utilise   : sans objet
c*
c*HST version 3.0 - 01.01.07
c*HST version 4.0 - 13.10.10 Coefficients de Schmidt
c*HST                        entre 1995 et 2010
c*HST version 5.0 - 17.02.24 - Coefficients de Schmidt
c*HST                          entre 1995 et 2015
c*HST version 6.0 - 20.07.16 - Coefficients de Schmidt
c*HST                          entre 1995 et 2020
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 variables locales
c     ---------------------------------
c
      integer lg(195,6)
c*LOC lg : coefficients entre 1995 et 2020
c
      integer kmax
c*LOC kmax : nombre de pas de calcul (= 14)
c
      integer i,k,l,imin,imax,ntot,nm,inc
c*LOC i,k,l,jj,imin,imax,ntot,nm,inc : indices de boucles et de tableaux
c
      double precision delt,dgg(14,14),dhh(14,14),fn1,fn2

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

c
c     ******************
c     Debut de programme
c     ******************
c
c     ---------------
c*FON Initialisations
c     ---------------

         delt  =  5.d0
         
         imax = 6
         imin = imax - 1
c
c        *************************
c        Facteur de normalisation
c        *************************
         fn1 = 10.d0
	 fn2 = 10.d0
         if ((imin .ge. 3) .and. (imin .lt. 6)) then
	    fn2 = 100.d0
	 endif
         if ((imax.ge. 3) .and. (imax .lt. 6)) then
	    fn1 = 100.d0
	 endif
	 
         

         ntot = 0
         do 60  k = 2, kmax
            dgg(k,1) = ((+ dble(lg(ntot+1,imax))/fn1 - 
     >	                   dble(lg(ntot+1,imin))/fn2)
     >                  / delt)
     >                 *(fn1*fn2)
            l = 1

            write(1,100)  'k,1,dgg',k, 1, dgg(k,1)
c
            nm = 2 * k - 1
            do 50 l = 2, k
               inc = 2 * l - 2
               dgg(k,l) = ((dble(lg(ntot+inc,imax))/fn1 -
     >	    	    	    dble(lg(ntot+inc,imin))/fn2)
     >                     /delt)
     >                    *(fn1*fn2)
               write(1,100) 'k,l,dgg',  k, l, dgg(k,l)

               dhh(k,l) = ((+ dble(lg(ntot+inc+1,imax))/fn1 -
     >                        dble(lg(ntot+inc+1,imin))/fn2) 
     >                     /delt)
     >                    *(fn1*fn2)
               write(1,100) 'k,l,dgg', k,l, dhh(k,l)
50          continue
            ntot = ntot + nm
60       continue

100      format(a20, 2i5, 2f10.1)

c     ****************
c     Fin de programme
c     ****************
c
      return
      end