VMEC 8.52
3D Equilibrium solver with nested flux surfaces.
Loading...
Searching...
No Matches
vacmod0.f90
Go to the documentation of this file.
1
2MODULE vacmod0
3 IMPLICIT NONE
4
5 INTEGER :: mf
6 INTEGER :: nf
7 INTEGER :: nu
8 INTEGER :: nv
9 INTEGER :: mf1
10 INTEGER :: nf1
11 INTEGER :: mnpd
12 INTEGER :: mnpd2
13 INTEGER :: nuv
14 INTEGER :: nu2
15 INTEGER :: nu3
16 INTEGER :: nuv2
17 INTEGER :: nfper
18
19 INTEGER :: nvper
20 INTEGER :: nuv_tan
21 INTEGER :: nvp
22
23 INTEGER :: ndim
24
25 contains
26
27subroutine set_nestor_sizes(nfp, ntor, mpol, nzeta, ntheta, lasym)
28
29 integer, intent(in) :: nfp
30 integer, intent(in) :: ntor
31 integer, intent(in) :: mpol
32 integer, intent(in) :: nzeta
33 integer, intent(in) :: ntheta
34 logical, intent(in) :: lasym
35
36 ! NOTE copied from vmec:read_indata
37 integer :: ntheta1, ntheta2, ntheta3, nznt
38
39 !print *, "set_nestor_sizes"
40
41 ! even (rounded down) ntheta
42 ntheta1 = 2*(ntheta/2)
43
44 ! odd stellarator-symmetric little-more-than-half of ntheta
45 ntheta2 = 1 + ntheta1/2
46
47 IF (.NOT.lasym) THEN
48 ntheta3 = ntheta2
49 ELSE
50 ntheta3 = ntheta1
51 END IF
52
53 nznt = nzeta*ntheta3
54 ! END copied from vmec:read_indata
55
56 ! from here on, for NESTOR only
57 mf = mpol+1
58 nf = ntor
59 nu = ntheta1
60 nv = nzeta
61 mf1 = 1+mf
62 nf1 = 2*nf+1
63 mnpd = mf1*nf1
64
65 IF (.NOT.lasym) THEN
66 mnpd2 = mnpd
67 ndim = 1
68 ELSE
69 mnpd2 = 2*mnpd
70 ndim = 2
71 END IF
72 ! ndim = mnpd2/mnpd
73
74 nuv = nu*nv
75 nfper = nfp
76 nu2 = nu/2 + 1 ! nu2 is equal to ntheta2
77 nu3 = ntheta3
78 nuv2 = nznt ! == nv * nu3
79
80 IF (nv == 1) THEN
81 ! AXISYMMETRIC CASE: DO FP SUM TO INTEGRATE IN V
82 nvper = 64
83 nuv_tan = 2*nu*nvper
84 ELSE
85 nvper = nfper
86 nuv_tan = 2*nuv
87 END IF
88
89 nvp = nv*nvper
90
91 ! in the end:
92 ! nu = ntheta1
93 ! nu2 = ntheta2
94 ! nu3 = ntheta3
95
96end subroutine set_nestor_sizes
97
98END MODULE vacmod0
integer mnpd2
Definition vacmod0.f90:12
integer nfper
Definition vacmod0.f90:17
integer nu3
Definition vacmod0.f90:15
integer mnpd
Definition vacmod0.f90:11
integer nf1
Definition vacmod0.f90:10
integer mf1
Definition vacmod0.f90:9
subroutine set_nestor_sizes(nfp, ntor, mpol, nzeta, ntheta, lasym)
Definition vacmod0.f90:28
integer nuv_tan
Definition vacmod0.f90:20
integer nvper
Definition vacmod0.f90:19
integer nf
Definition vacmod0.f90:6
integer ndim
Definition vacmod0.f90:23
integer nuv
Definition vacmod0.f90:13
integer nu2
Definition vacmod0.f90:14
integer nvp
Definition vacmod0.f90:21
integer nu
Definition vacmod0.f90:7
integer nuv2
Definition vacmod0.f90:16
integer nv
Definition vacmod0.f90:8
integer mf
Definition vacmod0.f90:5