V3FIT
tolicu.f
1  SUBROUTINE tolicu (torcur)
2  USE vparams, ONLY: mu0
3  USE vacmod
4  USE biotsavart
5  USE parallel_include_module
6  IMPLICIT NONE
7 C-----------------------------------------------
8 C D u m m y A r g u m e n t s
9 C-----------------------------------------------
10  REAL(dp), INTENT(IN) :: torcur
11 C-----------------------------------------------
12 C L o c a l V a r i a b l e s
13 C-----------------------------------------------
14  INTEGER :: i, kper, kv
15  REAL(dp) :: current(1), ttolion, ttolioff
16  REAL(dp), DIMENSION(:,:), ALLOCATABLE :: xpts
17 C-----------------------------------------------
18 !
19 ! COMPUTE WIRE SEGMENTS (DO NOT CLOSE LOOP, CLOSURE DONE IN biotsavart ROUTINES)
20 !
21  CALL second0(ttolion)
22 
23  ALLOCATE (xpts(3,nvp), stat=i)
24  IF (i .ne. 0) stop ' allocation error in tolicu'
25 
26  current = torcur/mu0
27 
28  i = 0
29  DO kper = 1, nvper
30  DO kv = 1, nv
31  i = i + 1
32  xpts(1,i) = raxis_nestor(kv)*(cosper(kper)*cosuv(kv)
33  1 - sinper(kper)*sinuv(kv))
34  xpts(2,i) = raxis_nestor(kv)*(sinper(kper)*cosuv(kv)
35  1 + cosper(kper)*sinuv(kv))
36  xpts(3,i) = zaxis_nestor(kv)
37  END DO
38  END DO
39 
40 !
41 ! INITIALIZE COIL-RELATED QUANTITIES
42 !
43  CALL initialize_biotsavart (current, xpt=xpts)
44 
45  CALL second0(ttolioff)
46  s_tolicu_time = s_tolicu_time + (ttolioff - ttolion)
47 
48  END SUBROUTINE tolicu