C+ C NAME: C Adjust_BF C PURPOSE: C Modifies the BFACTOR values to fit solar cycle and different magnetic field instruments C CALLING SEQUENCE: subroutine Adjust_BF(bWildMag,nB3D__NN,iYr,Doy,BFACTORRR,BFACTORRC,BFACTORTC,BFACTORNC) C INPUTS: C bWildMag(nB3D__NN) logical which magnetic field data and component are being used? C nB3D__NN integer # of bWildMag values C iYR integer Year of the observation (middle of year), 2010, 2011, etc. C Doy real Day of year of the observation (not used at present, but can be used to interpolate) C BFACTORRR real CSSS radial field multiplicative factor C BFACTORRC real Closed radial field multiplicative factor C BFACTORTC real Closed tangential field multiplicative factor C BFACTORNC real Closed normal field multiplicative factor C C OUTPUTS: C BFACTORRR real CSSS radial field multiplicative factor C BFACTORRC real Closed radial field multiplicative factor C BFACTORTC real Closed tangential field multiplicative factor C BFACTORNC real Closed normal field multiplicative factor C C PROCEDURE: C Entries in JDCar are made as small as possible by subtracting C an integer number of rotations. NCoff is updated correspondingly C (same integer added). C This is something of a fudge intended to maintain as much precision as C possible in all time determinations based on JDCar. C- logical bWildMag(nB3D__NN) real BFcompfact(4) /1.0,1.0,1.0,1.0/ ! To change the scale of different (closed?) components real BFmagfact(4) /1.0,1.0,1.0,1.2/ ! WSO, ADAPT, SOLIS, GONG to make same at 1 AU real BFyrfact(11) /0.71,1.18,2.00,2.50,2.00,1.25,0.71,0.56,0.40,0.38,0.40/ ! to make 1.0 at iYrr integer iYrr(11) /2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016/ nJ = nB3D__NN/4 jflag1 = 0 jflag2 = 0 jflag3 = 0 jflag4 = 0 do J=1,nJ ! loop over type of magnetic map, solis and gong known do I=1,4 ! loop over type component IJ = (J-1)*4 + I if(bWildMag(IJ).and.I.eq.1.and.jflag1.ne.1) then iflag1 = 1 ! only one CSSS Br component and one map allowed to change BFACTORRR BFACTORRR = BFACTORRR*BFcompfact(I)*BFmagfact(J) end if if(bWildMag(IJ).and.I.eq.2.and.jflag2.ne.1) then iflag2 = 1 ! only one closed Br component and one map allowed to change BFACTORRC do IY=1,11 ! loop over year if(iYr.eq.iYrr(IY)) then BFACTORRC = BFACTORRC*BFcompfact(I)*BFmagfact(J)*BFyrfact(IY) else if(iYr.lt.iYrr(1)) then BFACTORRC = BFACTORRC*BFcompfact(I)*BFmagfact(J)*BFyrfact(1) end if if(iYr.gt.iYrr(11)) then BFACTORRC = BFACTORRC*BFcompfact(I)*BFmagfact(J)*BFyrfact(11) end if end if end do end if if(bWildMag(IJ).and.I.eq.3.and.jflag3.ne.1) then iflag3 = 1 ! only one closed Br component and one map allowed to change BFACTORTC do IY=1,11 ! loop over year if(iYr.eq.iYrr(IY)) then BFACTORTC = BFACTORTC*BFcompfact(I)*BFmagfact(J)*BFyrfact(IY) else if(iYr.lt.iYrr(1)) then BFACTORTC = BFACTORTC*BFcompfact(I)*BFmagfact(J)*BFyrfact(1) end if if(iYr.gt.iYrr(11)) then BFACTORTC = BFACTORTC*BFcompfact(I)*BFmagfact(J)*BFyrfact(11) end if end if end do end if if(bWildMag(IJ).and.I.eq.4.and.jflag4.ne.1) then iflag4 = 1 ! only one closed Br component and one map allowed to change BFACTORNC do IY=1,11 ! loop over year if(iYr.eq.iYrr(IY)) then BFACTORNC = BFACTORNC*BFcompfact(I)*BFmagfact(J)*BFyrfact(IY) else if(iYr.lt.iYrr(1)) then BFACTORNC = BFACTORNC*BFcompfact(I)*BFmagfact(J)*BFyrfact(1) end if if(iYr.gt.iYrr(11)) then BFACTORNC = BFACTORNC*BFcompfact(I)*BFmagfact(J)*BFyrfact(11) end if end if end do end if end do end do write(*,'(A,4F9.5)') 'At end of adjust_bf: BRR, BCR, BCT, BCN =', BFACTORRR, BFACTORRC, BFACTORTC, BFACTORNC return end