diff --git a/Sources/metrics.f90 b/Sources/metrics.f90 index fd447cb..7faac84 100644 --- a/Sources/metrics.f90 +++ b/Sources/metrics.f90 @@ -101,7 +101,6 @@ MODULE metrics !------------------------------------------------------------------------------- SUBROUTINE init_metric_elements() USE timer_mod, ONLY: init_timers - USE shared_data, ONLY: torflux, polflux USE island_params, hs=>hs_i, ns=>ns_i IMPLICIT NONE diff --git a/Sources/pchelms.f90 b/Sources/pchelms.f90 index ddbbefa..dbd4597 100644 --- a/Sources/pchelms.f90 +++ b/Sources/pchelms.f90 @@ -24,7 +24,7 @@ MODULE pchelms asubsmncf, asubumnsf, asubvmnsf USE quantities, ONLY: fsupsmnsf, fsupumncf, fsupvmncf, & fsupsmncf, fsupumnsf, fsupvmnsf - USE shared_data, ONLY: torflux, polflux, nsp, r1_i, z1_i, ru_i, & + USE shared_data, ONLY: nsp, r1_i, z1_i, ru_i, & zu_i, rv_i, zv_i, lcolscale USE descriptor_mod, ONLY: iam, nprocs, lscalapack, INHESSIAN, SIESTA_COMM USE v3_utilities, ONLY: assert diff --git a/Sources/quantities.f90 b/Sources/quantities.f90 index 3780faa..191829d 100644 --- a/Sources/quantities.f90 +++ b/Sources/quantities.f90 @@ -857,9 +857,15 @@ SUBROUTINE dealloc_quantities IF (ALLOCATED(ksupsijf0)) THEN DEALLOCATE(ksupsijf0, ksupuijf0, ksupvijf0) END IF + IF (ALLOCATED(ksupsijf)) THEN + DEALLOCATE(ksupsijf, ksupuijf, ksupvijf) + END IF IF (ALLOCATED(bsubsijf)) THEN DEALLOCATE(bsubsijf, bsubuijf, bsubvijf) END IF + IF (ALLOCATED(bsupsijf)) THEN + DEALLOCATE(bsupsijf, bsupuijf, bsupvijf) + END IF ! Asymmetric quantities. IF (lasym) THEN diff --git a/Sources/shared_data.f90 b/Sources/shared_data.f90 index 239e29c..97e27ed 100644 --- a/Sources/shared_data.f90 +++ b/Sources/shared_data.f90 @@ -165,10 +165,6 @@ MODULE shared_data ! Shared quantities. !> FIXME: UNKNOWN REAL (dp) :: jsupvdotA -!> Toroidal flux profile. - REAL (dp), DIMENSION(:), ALLOCATABLE :: torflux -!> Poloidal flux profile. - REAL (dp), DIMENSION(:), ALLOCATABLE :: polflux !> Covariant vector potential for stellator symmetric s component on full grid. REAL (dp), DIMENSION(:,:,:), POINTER :: asubsmnsf !> Covariant vector potential for non-stellator symmetric s component on full diff --git a/Sources/siesta_init.f90 b/Sources/siesta_init.f90 index 4167d39..d8a386b 100644 --- a/Sources/siesta_init.f90 +++ b/Sources/siesta_init.f90 @@ -200,7 +200,7 @@ SUBROUTINE Init_Allocate_Arrays(lpar) ! L o c a l V a r i a b l e s !----------------------------------------------- LOGICAL :: lrealloc, lalloc - INTEGER :: istat, n1, n2, n3, nsmin, nsmax, & + INTEGER :: istat, n1, n2, n3, nsmin, nsmax, & nsmin1, nsmax1 !----------------------------------------------- lalloc = ALLOCATED(jvsupsijf) @@ -219,72 +219,74 @@ SUBROUTINE Init_Allocate_Arrays(lpar) END IF IF (lalloc) THEN - IF (SIZE(bsupsijh0,3) .EQ. n3) lrealloc=.FALSE. + IF (SIZE(bsupsijh0,3) .EQ. n3) THEN + lrealloc = .FALSE. + END IF IF (lrealloc) THEN - DEALLOCATE (jvsupsijf, jvsupuijf, jvsupvijf, & - bsupsijf0, bsupuijf0, bsupvijf0, & - bsupsijf, bsupuijf, bsupvijf, & - bsupsijh0, bsupuijh0, bsupvijh0, & - bsubsijf, bsubuijf, bsubvijf, & - ksupsijf0, ksupuijf0, ksupvijf0, & - ksupsijf, ksupuijf, ksupvijf, & - ksubsijf, ksubuijf, ksubvijf, & - pijf0, pijh0, pijf0_ds, & - pijh0_du, pijh0_dv, stat=istat) - CALL assert_eq(0, istat, & - 'Deallocation error #1 in INIT_ALLOCATE_ARRAYS') + DEALLOCATE (jvsupsijf, jvsupuijf, jvsupvijf, & + bsupsijf0, bsupuijf0, bsupvijf0, & + bsupsijf, bsupuijf, bsupvijf, & + bsupsijh0, bsupuijh0, bsupvijh0, & + bsubsijf, bsubuijf, bsubvijf, & + ksupsijf0, ksupuijf0, ksupvijf0, & + ksupsijf, ksupuijf, ksupvijf, & + ksubsijf, ksubuijf, ksubvijf, & + pijf0, pijh0, pijf0_ds, & + pijh0_du, pijh0_dv, stat=istat) + CALL assert_eq(0, istat, & + 'Deallocation error #1 in INIT_ALLOCATE_ARRAYS') END IF END IF IF (lrealloc) THEN n3 = ns - ALLOCATE (jvsupsijf(n1,n2,n3), jvsupuijf(n1,n2,n3), & ! Full mesh quantities (real space) - jvsupvijf(n1,n2,n3)) ! jacobian*(V_s , V_u , V_v) + ALLOCATE (jvsupsijf(n1,n2,n3), jvsupuijf(n1,n2,n3), & ! Full mesh quantities (real space) + jvsupvijf(n1,n2,n3)) ! jacobian*(V_s , V_u , V_v) IF (lpar) THEN - ALLOCATE (bsupsijh0(n1,n2,nsmin1:nsmax1), & ! B^s, B^u, B^v (half) - bsupuijh0(n1,n2,nsmin1:nsmax1), & - bsupvijh0(n1,n2,nsmin1:nsmax1), & - bsupsijf0(n1,n2,nsmin1:nsmax1), & ! B^s, B^u, B^v (full) - bsupuijf0(n1,n2,nsmin1:nsmax1), & - bsupvijf0(n1,n2,nsmin1:nsmax1), & - ksupsijf0(n1,n2,nsmin1:nsmax), & ! K^s, K^u, K^v - ksupuijf0(n1,n2,nsmin1:nsmax), & - ksupvijf0(n1,n2,nsmin1:nsmax), & - ksubsijf(n1,n2,nsmin1:nsmax), & ! Full mesh quantities (real space) - ksubuijf(n1,n2,nsmin1:nsmax), & ! K_s, K_u, K_v - ksubvijf(n1,n2,nsmin1:nsmax), & - bsubsijf(n1,n2,nsmin1:nsmax), & ! Full mesh quantities (real space) - bsubuijf(n1,n2,nsmin1:nsmax), & ! B_s, B_u, B_v - bsubvijf(n1,n2,nsmin1:nsmax), & - ksupsijf(n1,n2,nsmin:nsmax), & - ksupuijf(n1,n2,nsmin:nsmax), & - ksupvijf(n1,n2,nsmin:nsmax), & - bsupsijf(n1,n2,nsmin:nsmax), & - bsupuijf(n1,n2,nsmin:nsmax), & - bsupvijf(n1,n2,nsmin:nsmax), & - pijh0(n1,n2,nsmin1:nsmax1), & - pijh0_du(n1,n2,nsmin1:nsmax), & - pijh0_dv(n1,n2,nsmin1:nsmax), & - pijf0(n1,n2,nsmin1:nsmax1), & - pijf0_ds(n1,n2,nsmin1:nsmax), stat=istat) + ALLOCATE (bsupsijh0(n1,n2,nsmin1:nsmax1), & ! B^s, B^u, B^v (half) + bsupuijh0(n1,n2,nsmin1:nsmax1), & + bsupvijh0(n1,n2,nsmin1:nsmax1), & + bsupsijf0(n1,n2,nsmin1:nsmax1), & ! B^s, B^u, B^v (full) + bsupuijf0(n1,n2,nsmin1:nsmax1), & + bsupvijf0(n1,n2,nsmin1:nsmax1), & + ksupsijf0(n1,n2,nsmin1:nsmax), & ! K^s, K^u, K^v + ksupuijf0(n1,n2,nsmin1:nsmax), & + ksupvijf0(n1,n2,nsmin1:nsmax), & + ksubsijf(n1,n2,nsmin1:nsmax), & ! Full mesh quantities (real space) + ksubuijf(n1,n2,nsmin1:nsmax), & ! K_s, K_u, K_v + ksubvijf(n1,n2,nsmin1:nsmax), & + bsubsijf(n1,n2,nsmin1:nsmax), & ! Full mesh quantities (real space) + bsubuijf(n1,n2,nsmin1:nsmax), & ! B_s, B_u, B_v + bsubvijf(n1,n2,nsmin1:nsmax), & + ksupsijf(n1,n2,nsmin:nsmax), & + ksupuijf(n1,n2,nsmin:nsmax), & + ksupvijf(n1,n2,nsmin:nsmax), & + bsupsijf(n1,n2,nsmin:nsmax), & + bsupuijf(n1,n2,nsmin:nsmax), & + bsupvijf(n1,n2,nsmin:nsmax), & + pijh0(n1,n2,nsmin1:nsmax1), & + pijh0_du(n1,n2,nsmin1:nsmax), & + pijh0_dv(n1,n2,nsmin1:nsmax), & + pijf0(n1,n2,nsmin1:nsmax1), & + pijf0_ds(n1,n2,nsmin1:nsmax), stat=istat) ELSE - ALLOCATE (ksupsijf0(n1,n2,n3), ksupuijf0(n1,n2,n3), & - ksupvijf0(n1,n2,n3), ksupsijf(n1,n2,n3), & - ksupuijf(n1,n2,n3), ksupvijf(n1,n2,n3), & - ksubsijf(n1,n2,n3), & - ksubuijf(n1,n2,n3), & - ksubvijf(n1,n2,n3), & - bsubsijf(n1,n2,n3), & - bsubuijf(n1,n2,n3), & - bsubvijf(n1,n2,n3), & - pijf0(n1,n2,n3), pijh0(n1,n2,n3), & - pijh0_du(n1,n2,n3), pijh0_dv(n1,n2,n3), & - pijf0_ds(n1,n2,n3), bsupsijf0(n1,n2,n3), & - bsupuijf0(n1,n2,n3),bsupvijf0(n1,n2,n3), & - bsupsijf(n1,n2,n3), bsupuijf(n1,n2,n3), & - bsupvijf(n1,n2,n3), bsupsijh0(n1,n2,n3), & - bsupuijh0(n1,n2,n3),bsupvijh0(n1,n2,n3), & - stat=istat) + ALLOCATE (ksupsijf0(n1,n2,n3), ksupuijf0(n1,n2,n3), & + ksupvijf0(n1,n2,n3), ksupsijf(n1,n2,n3), & + ksupuijf(n1,n2,n3), ksupvijf(n1,n2,n3), & + ksubsijf(n1,n2,n3), & + ksubuijf(n1,n2,n3), & + ksubvijf(n1,n2,n3), & + bsubsijf(n1,n2,n3), & + bsubuijf(n1,n2,n3), & + bsubvijf(n1,n2,n3), & + pijf0(n1,n2,n3), pijh0(n1,n2,n3), & + pijh0_du(n1,n2,n3), pijh0_dv(n1,n2,n3), & + pijf0_ds(n1,n2,n3), bsupsijf0(n1,n2,n3), & + bsupuijf0(n1,n2,n3),bsupvijf0(n1,n2,n3), & + bsupsijf(n1,n2,n3), bsupuijf(n1,n2,n3), & + bsupvijf(n1,n2,n3), bsupsijh0(n1,n2,n3), & + bsupuijh0(n1,n2,n3),bsupvijh0(n1,n2,n3), & + stat=istat) END IF CALL assert_eq(0, istat, & 'Allocation error #1 in Init_Allocate_Arrays') diff --git a/Sources/vmec_info.f90 b/Sources/vmec_info.f90 index 9c12d38..d0afb83 100644 --- a/Sources/vmec_info.f90 +++ b/Sources/vmec_info.f90 @@ -256,7 +256,7 @@ SUBROUTINE vmec_info_set_wout(wout_file, ns_in, mpol_in, ntor_in, & USE island_params USE stel_constants, ONLY: twopi, zero, mu0 USE island_params, hs=>hs_i, ns=>ns_i - USE shared_data, ONLY: lasym, torflux, polflux + USE shared_data, ONLY: lasym IMPLICIT NONE @@ -345,14 +345,6 @@ SUBROUTINE vmec_info_set_wout(wout_file, ns_in, mpol_in, ntor_in, & gamma END IF - ALLOCATE(torflux(ns), polflux(ns)) - torflux(1) = 0 - polflux(1) = 0; - DO js = 2, ns - polflux(js) = polflux(js - 1) + hs*(chipf_i(js) + chipf_i(js - 1))/2 - torflux(js) = torflux(js - 1) + hs*(phipf_i(js) + phipf_i(js - 1))/2 - END DO - CALL vmec_info_set_RZL ! Construct R