V3FIT
fraction.f
1  SUBROUTINE fraction(irho)
2 c--
3 c This calculates the fraction passing and the fraction trapped.
4 c--
5 C-----------------------------------------------
6 C M o d u l e s
7 C-----------------------------------------------
8  USE parambs
9  USE vmec0
10  IMPLICIT NONE
11 C-----------------------------------------------
12 C D u m m y A r g u m e n t s
13 C-----------------------------------------------
14  INTEGER irho
15 C-----------------------------------------------
16 C L o c a l P a r a m e t e r s
17 C-----------------------------------------------
18  REAL(rprec), PARAMETER :: one = 1, zero = 0
19  INTEGER, PARAMETER :: n_lambda = 41
20 C-----------------------------------------------
21 C L o c a l V a r i a b l e s
22 C-----------------------------------------------
23  INTEGER :: l
24  REAL(rprec), DIMENSION(n_lambda) ::
25  1 alambda, avgvpov, antgrand, answer
26 
27 C-----------------------------------------------
28 
29  dlambda = one/(n_lambda - 1)
30 
31 c Fill lambda mesh, evaluate V||/V
32 
33  DO l = 1, n_lambda
34  alambda(l) = (l - 1)*dlambda
35  avgvpov(l) = sum(sqrt(abs(one - alambda(l)*bfield))*gsqrt_b)
36  END DO
37 
38 
39 c Form integrand
40 
41  WHERE (avgvpov .gt. zero) antgrand = alambda/avgvpov
42 
43 c Do integral for the passing fraction
44 
45  CALL simpun (alambda, antgrand, n_lambda, answer)
46 
47  fpassing(irho) = .75_dp*avgbobm2*answer(n_lambda)*sum_gsqrt_b
48  ftrapped(irho) = one - fpassing(irho)
49 
50  END SUBROUTINE fraction