Module magnet_mod

module magnet_mod

        ! Uses
    use precision_mod
    use chambers_mod, ONLY: xyz2uvz3, uvz2xyz3

        ! Variables
    integer, public, PARAMETER :: kMagnetOk = 0
    integer, public, PARAMETER :: kMagnetOutside = 1
    integer, public, PARAMETER :: kMagnetPoisoned = 2
    integer, private, PARAMETER :: kOff = 0
    integer, private, PARAMETER :: kUniform = 1
    integer, private, PARAMETER :: kOpera = 2
    integer, private :: fSwitch = 0
    real (kind=R8), private, dimension (3) :: fZero
    real (kind=R8), private, dimension (3) :: fField
    real (kind=R8), private :: fMapScale
    integer, private, EXTERNAL :: operafld8

        ! Subroutines and functions
    public function MagnetIsOn ()
    public function MagnetIsUniform ()
    public function MagnetGetB3 (V3, B) result (istat)
    public subroutine MagnetOff ()
    public subroutine MagnetSetUniform (B)
    public subroutine MagnetSetOpera (FileName, ReferenceLoc, ReferenceField)

end module magnet_mod

Description of Variables

kMagnetOk

integer, public, PARAMETER :: kMagnetOk = 0

kMagnetOutside

integer, public, PARAMETER :: kMagnetOutside = 1

kMagnetPoisoned

integer, public, PARAMETER :: kMagnetPoisoned = 2

kOff

integer, private, PARAMETER :: kOff = 0

kUniform

integer, private, PARAMETER :: kUniform = 1

kOpera

integer, private, PARAMETER :: kOpera = 2

fSwitch

integer, private :: fSwitch = 0

fZero

real (kind=R8), private, dimension (3) :: fZero

fField

real (kind=R8), private, dimension (3) :: fField

fMapScale

real (kind=R8), private :: fMapScale

operafld8

integer, private, EXTERNAL :: operafld8

Description of Subroutines and Functions

MagnetIsOn

public function MagnetIsOn ()
    logical :: MagnetIsOn
end function MagnetIsOn

MagnetIsUniform

public function MagnetIsUniform ()
    logical :: MagnetIsUniform
end function MagnetIsUniform

MagnetGetB3

public function MagnetGetB3 (V3, B) result (istat)
    real (kind=R8), INTENT(in), dimension (3) :: V3
    real (kind=R8), INTENT(out), dimension (3) :: B
    integer :: istat
    ! Calls: uvz2xyz3, xyz2uvz3
end function MagnetGetB3

MagnetOff

public subroutine MagnetOff ()
end subroutine MagnetOff

MagnetSetUniform

public subroutine MagnetSetUniform (B)
    real (kind=R8), INTENT(in), dimension (3) :: B
end subroutine MagnetSetUniform

MagnetSetOpera

public subroutine MagnetSetOpera (FileName, ReferenceLoc, ReferenceField)
    character (len=*), INTENT(in) :: FileName
    real (kind=R8), INTENT(in), dimension (3) :: ReferenceLoc
    real (kind=R8), INTENT(in) :: ReferenceField
    ! Calls: kerror, operainit
end subroutine MagnetSetOpera