Skip to content

Commit 7721192

Browse files
author
Caoxiang Zhu
authored
Merge pull request #16 from PrincetonUniversity/develop
Develop
2 parents 19b0c4c + 5e78c33 commit 7721192

34 files changed

Lines changed: 2919 additions & 922 deletions

New/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ifeq ($(CC),gfortran)
2020
RFLAGS=-O3 -Wall -fdefault-real-8 -ffixed-line-length-none -march=native -ffast-math
2121
DFLAGS=-g3 -Wextra -Wtarget-lifetime -fbacktrace -fbounds-check -ffpe-trap=zero -fcheck=all -DDEBUG
2222
else
23-
RFLAGS=-r8 -mcmodel=large -O3 -m64 -unroll0 -fno-alias -ip -traceback -vec_report0 #-ipo -xhost
23+
RFLAGS=-r8 -mcmodel=large -O3 -m64 -unroll0 -fno-alias -ip -traceback #-vec_report0 #-ipo -xhost
2424
DFLAGS=-check all -check noarg_temp_created -debug full -D DEBUG
2525
endif
2626

@@ -61,7 +61,7 @@ $(FFILES): %.F90: %.h
6161
############################################################################################################
6262

6363
clean:
64-
rm -f $(FFILES) ; rm -f $(ROBJS) ; rm -f $(DOBJS) ; rm -f *.mod ; rm -f *.pdf
64+
rm -f $(FFILES) ; rm -f $(ROBJS) ; rm -f $(DOBJS) ; rm -f $(NUMOBJ) ; rm -f *.mod ; rm -f *.pdf
6565

6666
############################################################################################################
6767

New/congrad.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ SUBROUTINE congrad
7272
if(myid .eq. 0) write(ounit, '("congrad : EXITING--------Local minimum reached!")')
7373
exit ! reach minimum
7474
endif
75-
75+
7676
beta = sum(gradf**2) / sum( (gradf-gradk)*p )
7777
p = -gradf + beta*p ! direction for next step;
7878
gradk = gradf !save for the current step;

New/initial.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ subroutine initial
420420
FATAL( initial, TN_maxiter < 0, must be non-negative )
421421
endif
422422
423-
write(ounit, '(8X,": IsNormalize = "I" ; IsNormWeight = "I)') IsNormalize, IsNormWeight
423+
write(ounit, '(8X,": IsNormalize = "I1" ; IsNormWeight = "I1)') IsNormalize, IsNormWeight
424424

425425
select case ( case_bnormal )
426426
case ( 0 )

New/rdcoils.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ subroutine rdcoils
8484
include "mpif.h"
8585

8686
LOGICAL :: exist
87-
INTEGER :: icoil, maxnseg, ifirst, NF, itmp, ip, icoef
87+
INTEGER :: icoil, maxnseg, ifirst, NF, itmp, ip, icoef, total_coef
8888
REAL :: Rmaj, zeta, totalcurrent, z0, r1, r2, z1, z2
8989
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
9090

@@ -383,17 +383,20 @@ subroutine rdcoils
383383
if (IsNormalize > 0) then
384384
Gnorm = 0
385385
Inorm = 0
386+
total_coef = 0 ! total number of coefficients
386387
do icoil = 1, Ncoils
388+
NF = FouCoil(icoil)%NF
389+
total_coef = total_coef + (6*NF + 3)
387390
do icoef = 0, NF
388391
Gnorm = Gnorm + FouCoil(icoil)%xs(icoef)**2 + FouCoil(icoil)%xc(icoef)**2
389392
Gnorm = Gnorm + FouCoil(icoil)%ys(icoef)**2 + FouCoil(icoil)%yc(icoef)**2
390393
Gnorm = Gnorm + FouCoil(icoil)%zs(icoef)**2 + FouCoil(icoil)%zc(icoef)**2
391394
enddo
392395
Inorm = Inorm + coil(icoil)%I**2
393396
enddo
394-
Gnorm = sqrt(Gnorm) * weight_gnorm
395-
Inorm = sqrt(Inorm) * weight_inorm
396-
Inorm = Inorm * (NF + 1) * 6 ! compensate for the fact that there are so many more spatial variables
397+
Gnorm = sqrt(Gnorm/total_coef) * weight_gnorm ! quadratic mean
398+
Inorm = sqrt(Inorm/Ncoils) * weight_inorm ! quadratic mean
399+
!Inorm = Inorm * 6 ! compensate for the fact that there are so many more spatial variables
397400

398401
FATAL( rdcoils, abs(Gnorm) < machprec, cannot be zero )
399402
FATAL( rdcoils, abs(Inorm) < machprec, cannot be zero )

New/saving.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ subroutine saving
2929

3030

3131
INTEGER :: ii, jj, icoil, NF
32-
CHARACTER(LEN=10) :: version='v0.1.0'
32+
CHARACTER(LEN=10) :: version='v0.1.02'
3333

3434

3535
! the following are used by the macros HWRITEXX below; do not alter/remove;
@@ -209,10 +209,10 @@ subroutine saving
209209
if( save_coils == 1 ) then
210210

211211
open(funit,file=trim(outcoils), status="unknown", form="formatted" )
212-
write(funit,'("periods 1")')
212+
write(funit,'("periods "I3)') Nfp
213213
write(funit,'("begin filament")')
214214
write(funit,'("mirror NIL")')
215-
do icoil = 1, Ncoils
215+
do icoil = 1, Ncoils*Npc
216216
do ii = 0, coil(icoil)%NS-1
217217
write(funit,1010) coil(icoil)%xx(ii), coil(icoil)%yy(ii), coil(icoil)%zz(ii), coil(icoil)%I
218218
enddo

New/solvers.h

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -311,13 +311,13 @@ end subroutine costfun
311311
subroutine normweight
312312
use globals, only : zero, one, machprec, ounit, myid, xdof, bnorm, bharm, tflux, ttlen, specw, ccsep, &
313313
weight_bnorm, weight_bharm, weight_tflux, weight_ttlen, weight_specw, weight_ccsep, target_tflux, &
314-
psi_avg, coil, Ncoils, case_length
314+
psi_avg, coil, Ncoils, case_length, Bmnc, Bmns, tBmnc, tBmns
315315

316316
implicit none
317317
include "mpif.h"
318318

319319
INTEGER :: ierr, icoil
320-
REAL :: tmp, cur_tflux
320+
REAL :: tmp, cur_tflux, modBn, modtBn
321321

322322
!----------------------------------------------------------------------------------------------------
323323

@@ -345,23 +345,31 @@ subroutine normweight
345345

346346
endif
347347

348-
!-!-!-!-!-!-!-!-!-!-bnorm-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
348+
!-!-!-!-!-!-!-!-!-!-bharm-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
349349

350-
if( weight_bnorm >= machprec ) then
350+
if( weight_bharm >= machprec ) then
351351

352-
call bnormal(0)
353-
if (abs(bnorm) > machprec) weight_bnorm = weight_bnorm / bnorm
354-
if( myid == 0 ) write(ounit, 1000) "weight_bnorm", weight_bnorm
352+
call bmnharm(0)
353+
modBn = sqrt(sum(Bmnc**2 + Bmns**2))
354+
modtBn = sqrt(sum(tBmnc**2 + tBmns**2))
355+
do icoil = 1, Ncoils
356+
coil(icoil)%I = coil(icoil)%I * modtBn / modBn
357+
enddo
358+
if(myid .eq. 0) write(ounit,'("solvers : rescale coil currents with a factor of "ES12.5)') &
359+
modtBn / modBn
360+
call bmnharm(0)
361+
if (abs(bharm) > machprec) weight_bharm = weight_bharm / bharm
362+
if( myid == 0 ) write(ounit, 1000) "weight_bharm", weight_bharm
355363

356364
endif
357365

358366
!-!-!-!-!-!-!-!-!-!-bnorm-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
359367

360-
if( weight_bharm >= machprec ) then
368+
if( weight_bnorm >= machprec ) then
361369

362-
call bmnharm(0)
363-
if (abs(bharm) > machprec) weight_bharm = weight_bharm / bharm
364-
if( myid == 0 ) write(ounit, 1000) "weight_bharm", weight_bharm
370+
call bnormal(0)
371+
if (abs(bnorm) > machprec) weight_bnorm = weight_bnorm / bnorm
372+
if( myid == 0 ) write(ounit, 1000) "weight_bnorm", weight_bnorm
365373

366374
endif
367375

@@ -403,7 +411,7 @@ subroutine normweight
403411
!!$
404412
!!$ endif
405413

406-
1000 format("solvers : "A12" is normalized to" ES23.15)
414+
1000 format("solvers : "A12" is normalized to " ES23.15)
407415

408416
call packdof(xdof)
409417

New/torflux.h

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,9 +246,12 @@ subroutine bpotential0(icoil, iteta, jzeta, Ax, Ay, Az)
246246

247247
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
248248

249-
FATAL( bpotential0, icoil .lt. 1 .or. icoil .gt. Ncoils*Npc, icoil not in right range )
250-
FATAL( bpotential0, iteta .lt. 0 .or. iteta .gt. Nteta , iteta not in right range )
251-
FATAL( bpotential0, jzeta .lt. 0 .or. jzeta .gt. Nzeta , jzeta not in right range )
249+
FATAL( bpotential0, icoil .lt. 1 .or. icoil .gt. Ncoils*Npc, &
250+
icoil not in right range )
251+
FATAL( bpotential0, iteta .lt. 0 .or. iteta .gt. Nteta , &
252+
iteta not in right range )
253+
FATAL( bpotential0, jzeta .lt. 0 .or. jzeta .gt. Nzeta , &
254+
jzeta not in right range )
252255

253256
dlx = zero; ltx = zero; Ax = zero
254257
dly = zero; lty = zero; Ay = zero
@@ -300,9 +303,12 @@ subroutine bpotential1(icoil, iteta, jzeta, Ax, Ay, Az, ND)
300303

301304
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
302305

303-
FATAL( bpotential1, icoil .lt. 1 .or. icoil .gt. Ncoils*Npc, icoil not in right range )
304-
FATAL( bpotential1, iteta .lt. 0 .or. iteta .gt. Nteta , iteta not in right range )
305-
FATAL( bpotential1, jzeta .lt. 0 .or. jzeta .gt. Nzeta , jzeta not in right range )
306+
FATAL( bpotential1, icoil .lt. 1 .or. icoil .gt. Ncoils*Npc, &
307+
icoil not in right range )
308+
FATAL( bpotential1, iteta .lt. 0 .or. iteta .gt. Nteta , &
309+
iteta not in right range )
310+
FATAL( bpotential1, jzeta .lt. 0 .or. jzeta .gt. Nzeta , &
311+
jzeta not in right range )
306312
FATAL( bpotential1, ND <= 0, wrong inout dimension of ND )
307313

308314
NS = coil(icoil)%NS

Old/Makefile

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
#!/bin/sh
22

33
############################################################################################################
4+
# comment out on 20180228 for NAG incompative
5+
# ALLFILES= globals numrec initial surface rdknot rdcoils knotxx iccoil bfield bnormal torflux tlength equarcl \
6+
# specwid coilsep nlinear fdcheck denergy descent congrad truncnt restart diagnos exinput identfy \
7+
# bnftran hessian focus
48

5-
ALLFILES= globals numrec initial surface rdknot rdcoils knotxx iccoil bfield bnormal torflux tlength equarcl \
9+
ALLFILES= globals numrec initial surface rdcoils iccoil bfield bnormal torflux tlength equarcl \
610
specwid coilsep nlinear fdcheck denergy descent congrad truncnt restart diagnos exinput identfy \
7-
bnftran focus
11+
bnftran hessian focus
812

913
############################################################################################################
1014

@@ -19,12 +23,17 @@
1923
MACROS=macros
2024
CC=intel # if want to use gfortran; make CC=gfortran
2125
FC=mpif90
22-
FLAGS=-r8 -mcmodel=large -O3 -m64 -unroll0 -fno-alias -ip -traceback -vec_report0
26+
FLAGS=-r8 -mcmodel=large -O3 -m64 -unroll0 -fno-alias -ip -traceback -D BNORM #-vec_report0
2327
DFLAGS=-check all -check noarg_temp_created -debug full -D DEBUG
2428

2529
############################################################################################################
2630

27-
NAG=-L$(NAG_ROOT)/lib -lnag_nag
31+
#NAG=-L$(NAG_ROOT)/lib -lnag
32+
NAG= -I$(NAG_ROOT)/nag_interface_blocks $(NAG_ROOT)/lib/libnag_mkl.a \
33+
-Wl,--start-group $(NAG_ROOT)/mkl_intel64_11.3.3/lib/libmkl_intel_lp64.a \
34+
$(NAG_ROOT)/mkl_intel64_11.3.3/lib/libmkl_intel_thread.a \
35+
$(NAG_ROOT)/mkl_intel64_11.3.3/lib/libmkl_core.a -Wl,--end-group \
36+
-liomp5 -lpthread -lm -ldl -lstdc++
2837

2938
HDF5=-I$(HDF5_HOME)/include -L$(HDF5_HOME)/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran \
3039
-lhdf5 -lpthread -lz -lm
@@ -39,12 +48,12 @@
3948

4049
############################################################################################################
4150

42-
xfocus: $(OBJS) tnpack.o hybrj.o
43-
$(FC) -o xfocus $(OBJS) tnpack.o hybrj.o $(OCULUSFLAGS) $(NAG) $(HDF5)
51+
xfocus: $(OBJS) tnpack.o hybrj.o modchl.o
52+
$(FC) -o xfocus $(OBJS) tnpack.o hybrj.o modchl.o $(OCULUSFLAGS) $(NAG) $(HDF5) $(MKL)
4453
@echo "Compiling xfocus finished."
4554

46-
dfocus: $(DOBJS) tnpack.o hybrj.o
47-
$(FC) -o dfocus $(DOBJS) tnpack.o hybrj.o $(OCULUSFLAGS) $(NAG) $(HDF5)
55+
dfocus: $(DOBJS) tnpack.o hybrj.o modchl.o
56+
$(FC) -o dfocus $(DOBJS) tnpack.o hybrj.o modchl.o $(OCULUSFLAGS) $(NAG) $(HDF5) $(MKL)
4857
@echo "Compiling dfocus finished."
4958

5059
############################################################################################################
@@ -54,11 +63,14 @@ hybrj.o: hybrj.f
5463
tnpack.o: tnpack.f
5564
$(FC) -c $(FLAGS) $(DFLAGS) -o $@ $<
5665

66+
modchl.o: modchl.f
67+
$(FC) -c $(FLAGS) $(DFLAGS) -o $@ $<
68+
5769
$(OBJS): %_r.o: %.F90
58-
$(FC) -c $(FLAGS) -o $@ $< $(OCULUSFLAGS) $(NAG) $(HDF5)
70+
$(FC) -c $(FLAGS) -o $@ $< $(OCULUSFLAGS) $(NAG) $(HDF5) $(MKL)
5971

6072
$(DOBJS): %_d.o: %.F90
61-
$(FC) -c $(FLAGS) $(DFLAGS) -o $@ $< $(OCULUSFLAGS) $(NAG) $(HDF5)
73+
$(FC) -c $(FLAGS) $(DFLAGS) -o $@ $< $(OCULUSFLAGS) $(NAG) $(HDF5) $(MKL)
6274

6375
$(FFILES): %.F90: %.h
6476
m4 -P $(MACROS) $< > $@

Old/bfield.h

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -15,68 +15,68 @@
1515

1616

1717
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
18-
subroutine bfield( RpZ, itangent, dBRpZ, ibfield )
19-
20-
! DATE : April 2016
21-
! using bs00aa in oculus ( actually NAG adaptive integration routines ) calculating magnetic field;
22-
! only be used at the beginning stage; may be deleted later.
23-
24-
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
25-
26-
use kmodule, only : zero, one, pi2, vsmall, myid, ounit, Ncoils, coil, icoil, bsfield
27-
28-
use oculus , only : bs00aa
29-
30-
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
31-
32-
implicit none
33-
34-
include "mpif.h"
35-
36-
INTEGER :: itangent, ibfield
37-
REAL :: RpZ(1:3), dBRpZ(1:3,0:3)
38-
39-
INTEGER :: ierr, ibs00aa
40-
REAL :: zeta, Bx, By, Bz, czeta, szeta
41-
42-
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
43-
44-
dBRpZ(1:3,0:3) = zero ! set default intent(out) ; 11 Oct 15;
45-
46-
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
47-
48-
zeta = modulo( RpZ(2), pi2)
49-
50-
czeta = cos(zeta)
51-
szeta = sin(zeta)
52-
53-
bsfield%x = RpZ(1) * czeta
54-
bsfield%y = RpZ(1) * szeta
55-
bsfield%z = RpZ(3)
56-
57-
Bx = zero
58-
By = zero
59-
Bz = zero
60-
61-
do icoil = 1, Ncoils ! icoil is a global variable which is passed through to auxiliary.h; 11 Oct 15;
62-
63-
ibs00aa = 0 ; bsfield%LB = .true. ; bsfield%LA = .false. ; bsfield%LL = .false. ; call bs00aa( bsfield, ibs00aa )
64-
65-
Bx = Bx + bsfield%Bx * coil(icoil)%I
66-
By = By + bsfield%By * coil(icoil)%I
67-
Bz = Bz + bsfield%Bz * coil(icoil)%I
68-
69-
enddo ! end of do icoil; 11 Oct 15;
70-
71-
dBRpZ(1,0) = ( Bx * czeta + By * szeta )
72-
dBRpZ(2,0) = ( - Bx * szeta + By * czeta ) / RpZ(1)
73-
dBRpZ(3,0) = Bz
74-
75-
ibfield = 0
76-
77-
return
78-
79-
end subroutine bfield
18+
!!$subroutine bfield( RpZ, itangent, dBRpZ, ibfield )
19+
!!$
20+
!!$! DATE : April 2016
21+
!!$! using bs00aa in oculus ( actually NAG adaptive integration routines ) calculating magnetic field;
22+
!!$! only be used at the beginning stage; may be deleted later.
23+
!!$
24+
!!$!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
25+
!!$
26+
!!$ use kmodule, only : zero, one, pi2, vsmall, myid, ounit, Ncoils, coil, icoil, bsfield
27+
!!$
28+
!!$ use oculus , only : bs00aa
29+
!!$
30+
!!$!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
31+
!!$
32+
!!$ implicit none
33+
!!$
34+
!!$ include "mpif.h"
35+
!!$
36+
!!$ INTEGER :: itangent, ibfield
37+
!!$ REAL :: RpZ(1:3), dBRpZ(1:3,0:3)
38+
!!$
39+
!!$ INTEGER :: ierr, ibs00aa
40+
!!$ REAL :: zeta, Bx, By, Bz, czeta, szeta
41+
!!$
42+
!!$!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
43+
!!$
44+
!!$ dBRpZ(1:3,0:3) = zero ! set default intent(out) ; 11 Oct 15;
45+
!!$
46+
!!$!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
47+
!!$
48+
!!$ zeta = modulo( RpZ(2), pi2)
49+
!!$
50+
!!$ czeta = cos(zeta)
51+
!!$ szeta = sin(zeta)
52+
!!$
53+
!!$ bsfield%x = RpZ(1) * czeta
54+
!!$ bsfield%y = RpZ(1) * szeta
55+
!!$ bsfield%z = RpZ(3)
56+
!!$
57+
!!$ Bx = zero
58+
!!$ By = zero
59+
!!$ Bz = zero
60+
!!$
61+
!!$ do icoil = 1, Ncoils ! icoil is a global variable which is passed through to auxiliary.h; 11 Oct 15;
62+
!!$
63+
!!$ ibs00aa = 0 ; bsfield%LB = .true. ; bsfield%LA = .false. ; bsfield%LL = .false. ; call bs00aa( bsfield, ibs00aa )
64+
!!$
65+
!!$ Bx = Bx + bsfield%Bx * coil(icoil)%I
66+
!!$ By = By + bsfield%By * coil(icoil)%I
67+
!!$ Bz = Bz + bsfield%Bz * coil(icoil)%I
68+
!!$
69+
!!$ enddo ! end of do icoil; 11 Oct 15;
70+
!!$
71+
!!$ dBRpZ(1,0) = ( Bx * czeta + By * szeta )
72+
!!$ dBRpZ(2,0) = ( - Bx * szeta + By * czeta ) / RpZ(1)
73+
!!$ dBRpZ(3,0) = Bz
74+
!!$
75+
!!$ ibfield = 0
76+
!!$
77+
!!$ return
78+
!!$
79+
!!$end subroutine bfield
8080

8181
!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!
8282
! DATE: 06/15/2016

0 commit comments

Comments
 (0)