1 SUBROUTINE read_wout_booz(extension, iread, ierr)
3 USE booz_params, mpol_b => mpol, nfp_b => nfp, ns_b => ns,
4 1 ntor_b => ntor, mnmax_b => mnmax, phip_b => phip,
5 2 mpol_nyq_b => mpol_nyq, ntor_nyq_b => ntor_nyq,
6 3 mnmax_nyq_b => mnmax_nyq,
7 4 pres_b => pres, beta_b => beta_vol, phi_b => phi,
8 5 buco_b => buco, bvco_b => bvco,
9 6 bsubumnc_b => bsubumnc, bsubvmnc_b => bsubvmnc,
10 6 bsubumns_b => bsubumns, bsubvmns_b => bsubvmns
11 USE booz_persistent, rmnc_b => rmnc, zmns_b => zmns,
12 1 lmns_b => lmns, rmns_b => rmns, zmnc_b => zmnc,
14 3 xm_b => xm, xn_b => xn, xm_nyq_b => xm_nyq,
20 INTEGER :: ierr, iread
21 CHARACTER(LEN=*) :: extension
23 CALL read_wout_file(extension, ierr)
26 print *,
' ierr = ', ierr,
27 1
' error in read_wout_file called from xbooz_xform'
29 IF (ierr_vmec.ne.0 .or. ierr.ne.0)
GOTO 1000
34 mpol_b = mpol; mpol_nyq_b = mnyq
36 ntor_b = ntor; ntor_nyq_b = nnyq
37 mnmax_b= mnmax; mnmax_nyq_b = mnmax_nyq
48 mboz = max(6*mpol, 2, mboz)
49 nboz = max(2*ntor-1, 0, nboz)
52 IF (nboz .eq. 0) nv_boz = 1
56 mnboz = nboz+1 + (mboz-1)*(1+2*nboz)
62 CALL allocate_boozer (iread)
64 xm_b(:mnmax) = xm(:mnmax)
65 xn_b(:mnmax) = xn(:mnmax)
66 xm_nyq_b(:mnmax_nyq) = xm_nyq(:mnmax_nyq)
67 xn_nyq_b(:mnmax_nyq) = xn_nyq(:mnmax_nyq)
69 rmnc_b(:mnmax,:ns) = rmnc(:mnmax,:ns)
70 zmns_b(:mnmax,:ns) = zmns(:mnmax,:ns)
71 lmns_b(:mnmax,:ns) = lmns(:mnmax,:ns)
74 rmns_b(:mnmax,:ns) = rmns(:mnmax,:ns)
75 zmnc_b(:mnmax,:ns) = zmnc(:mnmax,:ns)
76 lmnc_b(:mnmax,:ns) = lmnc(:mnmax,:ns)
79 bsubumnc_b(:mnmax_nyq,:ns) = bsubumnc(:mnmax_nyq,:ns)
80 bsubvmnc_b(:mnmax_nyq,:ns) = bsubvmnc(:mnmax_nyq,:ns)
81 bmodmnc(:mnmax_nyq,:ns) = bmnc(:mnmax_nyq,:ns)
84 bsubumns_b(:mnmax_nyq,:ns) = bsubumns(:mnmax_nyq,:ns)
85 bsubvmns_b(:mnmax_nyq,:ns) = bsubvmns(:mnmax_nyq,:ns)
86 bmodmns(:mnmax_nyq,:ns) = bmns(:mnmax_nyq,:ns)
89 hiota(2:ns) = iotas(2:ns)
90 phip_b(2:ns) = phip(2:ns)
91 pres_b(2:ns) = pres(2:ns)
92 beta_b(2:ns) = beta_vol(2:ns)
93 phi_b(2:ns) = phi(2:ns)
94 buco_b(2:ns) = buco(2:ns)
95 bvco_b(2:ns) = bvco(2:ns)
100 1000
CALL read_wout_deallocate
101 IF (ierr .eq. 0)
THEN
104 print *,
' ierr = ', ierr,
' writing in READ_WOUT_BOOZ'
107 END SUBROUTINE read_wout_booz