Module GKV_geom (gkvp_geom.f90) is added. This module extract geometry settings from gkvp_set.f90.
GKV_geom also stores metric informations in -global_nz:global_nz-1 and Fourier coefficients of omg, domgdr, domgdt, domgdq, ggrr, ggrt, ..., defiend in the flux coordinates (r,t,q). Using the Fourier coefficients, metric at arbitrary position zz is calculated. Relation between flux coordinates (r,t,q) and field aligned coordinates (x,y,z) defines the metric domgdx, domgdy, domgdz, ggxx, ggxy, ..., which are used to calculate various operators, like vdx, vdy, ksq, fmx, j0, ....
The argument of "iz" of the subroutine vmecbzx_boozx_coeff in gkvp_vmecbzx.f90 is changed from local iz for each rankz to global giz.
All other modifications in source code is small; only in gkvp_advnc.f90, gkvp_header.f90, gkvp_main.f90. These are marked as !%%% For shearflow rotating flux tube model %%%.
The present version passes the following tests:
Consistency with f0.61 without shearflow (gamma_e=0) for all equib_type = "slab", "s-alpha", "analytic", "circ-MHD", "vmec", "eqdsk", "ring". The above check is done in linear calculation with adiabatic electron and LB collision model.
A multi-species (e,D,C), electromagnetic, Sugama collision operator test also confirmed the consistency between f0.61 and f0.62.
A nonlinear benchmark is also OK.
With shearflow (gamma_e/=0), time-discontinuous implementation in f0.61 approximates time-continuous f0.62. Checked for equib_type = "circ-MHD", "igs".
Rotating flux tube model is implemented.