MPI-AMRVAC
3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
module mod_pfss.t – potential field source surface model PURPOSE : to extrapolate global potential magnetic field of the sun from synoptic magnetograms 2013.11.04 Developed by S. Moschou and C. Xia 2014.04.01 Allow to change source surface (C. Xia) PRECONDITIONS: More...
Functions/Subroutines | |
subroutine, public | harm_coef (mapname) |
subroutine | cfweights (ym, miu, cfwm) |
subroutine | coef (b_r0, xm, ym, miu, mius, cfwm) |
subroutine, public | pfss (ixIL, ixOL, Bpf, x) |
subroutine | inv_sph_transform (Bt, phi, miu, mius, nphi, ntheta, Bpf, qlmax) |
subroutine | fft (a, b, ntot, n, nspan, isn) |
Variables | |
double precision, public | r_s =2.5d0 |
double precision, public | r_0 =1.d0 |
integer, public | lmax =0 |
logical, public | trunc =.false. |
module mod_pfss.t – potential field source surface model PURPOSE : to extrapolate global potential magnetic field of the sun from synoptic magnetograms 2013.11.04 Developed by S. Moschou and C. Xia 2014.04.01 Allow to change source surface (C. Xia) PRECONDITIONS:
nphi, ntheta are long integers and other arrays are double precision. theta contains decreasing radians with increasing indice (Pi to 0) phi contains increasing radians with increasing indice (0 to 2*Pi) USAGE: example for a magnetogram with name 'mdicr2020.dat':
subroutine initglobaldata_usr ... R_0=1.d0 ! dimensionless Solar radius (default 1.0) R_s=2.5d0 ! dimensionless radius of source surface (default 2.5) lmax=120 ! use a fixed value instead of the value determined by the resolution of input magnetogram trunc=.true. ! use less spherical harmonics at larger distances call harm_coef('mdicr2020.dat') end subroutine initglobaldata_usr
subroutine initonegrid_usr(ixI^L,ixO^L,w,x) ... double precision :: bpf(ixI^S,1:ndir) ... call pfss(ixI^L,ixO^L,bpf,x) w(ix^S,mag(:))=bpf(ix^S,:)
end subroutine initonegrid_usr
subroutine mod_pfss::cfweights | ( | integer, intent(in) | ym, |
double precision, dimension(ym), intent(in) | miu, | ||
double precision, dimension(ym), intent(out) | cfwm | ||
) |
Definition at line 167 of file mod_pfss.t.
subroutine mod_pfss::coef | ( | double precision, dimension(xm,ym), intent(in) | b_r0, |
integer, intent(in) | xm, | ||
integer, intent(in) | ym, | ||
double precision, dimension(ym), intent(in) | miu, | ||
double precision, dimension(ym), intent(in) | mius, | ||
double precision, dimension(ym), intent(in) | cfwm | ||
) |
subroutine mod_pfss::fft | ( | double precision, dimension(:) | a, |
double precision, dimension(:) | b, | ||
integer | ntot, | ||
integer | n, | ||
integer | nspan, | ||
integer | isn | ||
) |
Definition at line 456 of file mod_pfss.t.
subroutine, public mod_pfss::harm_coef | ( | character(len=*) | mapname | ) |
subroutine mod_pfss::inv_sph_transform | ( | double complex, dimension(0:lmax,0:lmax), intent(in) | Bt, |
double precision, dimension(nphi), intent(in) | phi, | ||
double precision, dimension(ntheta), intent(in) | miu, | ||
double precision, dimension(ntheta), intent(in) | mius, | ||
integer, intent(in) | nphi, | ||
integer, intent(in) | ntheta, | ||
double precision, dimension(nphi,ntheta), intent(out) | Bpf, | ||
integer, intent(in) | qlmax | ||
) |
Definition at line 361 of file mod_pfss.t.
subroutine, public mod_pfss::pfss | ( | integer, intent(in) | ixI, |
integer, intent(in) | L, | ||
integer, intent(in) | ixO, | ||
L, | |||
double precision, dimension(ixi^s,1:ndir), intent(out) | Bpf, | ||
double precision, dimension(ixi^s,1:ndim), intent(in) | x | ||
) |
integer, public mod_pfss::lmax =0 |
Definition at line 42 of file mod_pfss.t.
double precision, public mod_pfss::r_0 =1.d0 |
Definition at line 40 of file mod_pfss.t.
double precision, public mod_pfss::r_s =2.5d0 |
Definition at line 40 of file mod_pfss.t.
logical, public mod_pfss::trunc =.false. |
Definition at line 43 of file mod_pfss.t.