V3FIT
dvdpsi.f
1  SUBROUTINE dvdpsi
2  USE mapg_mod
3  IMPLICIT NONE
4  REAL(rprec) :: chi(nthet), mu0
5  INTEGER :: ipsi, jthet, j, i
6  pi=acos(-1._dbl)
7  vprime=0
8  tflx=0
9  volume=0
10  DO jthet=1,nthet
11  chi(jthet)=2.*pi*(jthet-1)/(nthet-1)
12  ENDdo
13  dthe=2.*pi/(nthet-1.)
14  dpsi=1./(npsi-1.)
15 ! dpsi=dpsi*(psilim-psiaxis)
16  arcrad=0.
17  DO jthet=2,nthet
18  DO ipsi=2,npsi
19  arcrad(ipsi,jthet)=arcrad(ipsi-1,jthet)+
20  & sqrt((xs(ipsi,jthet)-xs(ipsi-1,jthet))**2
21  & +(zs(ipsi,jthet)-zs(ipsi-1,jthet))**2)
22  ENDdo
23  ENDdo
24  mu0=4e-7*pi
25  DO j=1,nthet
26  jacob(1,j)=0
27  DO i=2,npsi
28  jacob(i,j)=arcsur(i,nthet)/(2.*pi*bps(i,j))
29  ENDdo
30  ENDdo
31 
32  DO ipsi=1,npsi
33  vprime(ipsi)=2*pi*trap(nthet,chi,jacob(ipsi,1:nthet))
34  ENDdo
35  DO ipsi=2,npsi
36  volume(ipsi)=trap(ipsi,psiv(1:ipsi),vprime(1:ipsi))
37  ENDdo
38  vprime(1)=axisv(psiv,vprime,SIZE(psiv))
39 ! PRINT*,"V = ",REAL(volume(SIZE(volume))),' m^3'
40  DO ipsi=2,npsi ! 2pi*<x>*<lp>*<lr>
41  tflx(ipsi)=trap(ipsi,psiv(1:ipsi),qsfin(1:ipsi))
42  ENDdo
43  END SUBROUTINE dvdpsi