Skip to content

Commit

Permalink
change Npert=0; fix some errors in saving
Browse files Browse the repository at this point in the history
  • Loading branch information
zhucaoxiang committed Nov 16, 2022
1 parent 824221b commit e416168
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 44 deletions.
4 changes: 2 additions & 2 deletions sources/diagnos.f90
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ SUBROUTINE diagnos
coilspace(iout, idof+1:idof+NF ) = FouCoil(icoil)%ys(1:NF) ; idof = idof + NF
coilspace(iout, idof+1:idof+NF+1) = FouCoil(icoil)%zc(0:NF) ; idof = idof + NF +1
coilspace(iout, idof+1:idof+NF ) = FouCoil(icoil)%zs(1:NF) ; idof = idof + NF
case (coil_type_spline)
case (coil_type_spline)
NCP = Splines(icoil)%NCP
coilspace(iout, idof+1:idof+NCP*3) = Splines(icoil)%Cpoints(0:3*NCP-1) ; idof = idof + 3*NCP
!!$ case default
!!$ FATAL(descent, .true., not supported coil types)
end select
enddo
!!$ FATAL( output , idof .ne. Tdof, counting error in restart )
FATAL( output , idof .ne. Tdof, counting error in restart )
endif
!-------------------------------average coil length-------------------------------------------------------
AvgLength = zero
Expand Down
4 changes: 2 additions & 2 deletions sources/globals.f90
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module globals
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!


CHARACTER(10), parameter :: version='v0.17.00' ! version number
CHARACTER(10), parameter :: version='v0.17.01' ! version number


!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
Expand Down Expand Up @@ -183,7 +183,7 @@ module globals
REAL :: weight_specw = 0.000D+00
! bnrom stochastic
REAL :: weight_sbnorm = 0.000D+00 ! Stochastic bnormal weight
INTEGER :: Npert = 10 ! Number of coil perturbations
INTEGER :: Npert = 0 ! Number of coil perturbations
INTEGER :: Nmax = 3 ! Max frequency of perturbations
REAL :: sdelta = 1.000D-02 ! Perturbation magnitude
! optimize controls
Expand Down
84 changes: 44 additions & 40 deletions sources/saving.f90
Original file line number Diff line number Diff line change
Expand Up @@ -174,43 +174,45 @@ subroutine saving
HWRITERA( Nteta,Nzeta , Bz , surf(plasma)%Bz(0:Nteta-1,0:Nzeta-1) )
endif

NSmax = 0
do icoil = 1, Ncoils
if(coil(icoil)%NS .gt. NSmax) NSmax = coil(icoil)%NS
enddo
SALLOCATE(tempvar, (1:Ncoils, 0:NSmax) , 0.0)

! Save coil data
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%xx(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, xx , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%yy(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, yy , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%zz(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, zz , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%xt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, xt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%yt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, yt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%zt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, zt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
if (weight_sbnorm > 0) then
NSmax = 0
do icoil = 1, Ncoils
if(coil(icoil)%NS .gt. NSmax) NSmax = coil(icoil)%NS
enddo
SALLOCATE(tempvar, (1:Ncoils, 0:NSmax) , 0.0)

! Save coil data
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%xx(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, xx , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%yy(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, yy , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%zz(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, zz , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%xt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, xt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%yt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, yt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
do icoil = 1, Ncoils
tempvar(icoil,0:coil(icoil)%NS) = coil(icoil)%zt(0:coil(icoil)%NS)
enddo
HWRITERA( Ncoils, NSmax+1, zt , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0
endif

! Save filamentary body force loads
if (filforce .eq. 1) then
Expand Down Expand Up @@ -278,17 +280,19 @@ subroutine saving
enddo
HWRITERA( Ncoils, NSmax+1, bfbz , tempvar(1:Ncoils,0:NSmax) )
tempvar(1:Ncoils,0:NSmax) = 0.0

DALLOCATE(tempvar)
endif

DALLOCATE(tempvar)

HWRITEIV( 1 , iout , iout )
HWRITERV( 1 , Inorm , Inorm )
HWRITERV( 1 , Gnorm , Gnorm )
HWRITERV( 1 , Mnorm , Mnorm )
HWRITERV( 1 , overlap , overlap )
HWRITERA( iout, 14 , evolution , evolution(1:iout, 0:13) )
HWRITERA( iout, Tdof , coilspace , coilspace(1:iout, 1:Tdof) )
if (allocated(coilspace)) then
HWRITERA( iout, Tdof , coilspace , coilspace(1:iout, 1:Tdof) )
endif

if (allocated(deriv)) then
HWRITERA( Ndof, 12 , deriv , deriv(1:Ndof, 0:11) )
Expand Down

0 comments on commit e416168

Please sign in to comment.