diff --git a/examples/biblis.inp b/examples/biblis.inp index ff18491..257ba94 100644 --- a/examples/biblis.inp +++ b/examples/biblis.inp @@ -1,15 +1,20 @@ BIBLIS BENCHMARK -&specs -delta=23.1226 +&material_options +material_source=0 number_materials=8 -number_bundles=49 +/ +&geometry_options +delta=23.1226 +number_assemblies=49 stencil_dimension=9 / -&options +&solver_options +verbose=0 +/ +&model_options mixing_factor=0.98850 alpha1=-0.13804 alpha2=-0.00405 -verbose=0 / \\\ Stencil. Nonzeros represent materials and zeros symmetry and reflector. 1 8 2 6 1 7 1 4 0 @@ -22,19 +27,19 @@ verbose=0 -1 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \\\ D1 0.2421231467459725 -0.16486631321413778 -0.05315901114231841 - 1.4360000 1.4366000 0.0000000 1.4389000 1.4381000 1.4385000 1.4389000 1.4393000 + 1.4360000 1.4366000 1.4000000 1.4389000 1.4381000 1.4385000 1.4389000 1.4393000 \\\ D2 - 0.3635000 0.3636000 0.0000000 0.3638000 0.3665000 0.3665000 0.3679000 0.3680000 -\\\ R1 - 0.0272582 0.0272995 0.0000000 0.0274640 0.0272930 0.0273240 0.0272900 0.0273210 + 0.3635000 0.3636000 0.4000000 0.3638000 0.3665000 0.3665000 0.3679000 0.3680000 \\\ A1 - 0.0750580 0.0784360 0.0000000 0.0914080 0.0848280 0.0873140 0.0880240 0.0905100 + 0.0095040 0.0096780 0.0100000 0.0103630 0.0100030 0.0101320 0.0101650 0.0102940 +\\\ A2 + 0.0750580 0.0784360 0.1000000 0.0914080 0.0848280 0.0873140 0.0880240 0.0905100 \\\ F1 - 0.0058708 0.0061908 0.0000000 0.0074527 0.0061908 0.0064285 0.0061908 0.0064285 + 0.0058708 0.0061908 0.0060000 0.0074527 0.0061908 0.0064285 0.0061908 0.0064285 \\\ F2 - 0.0960670 0.1035800 0.0000000 0.1323600 0.1035800 0.1091100 0.1035800 0.1091100 + 0.0960670 0.1035800 0.1000000 0.1323600 0.1035800 0.1091100 0.1035800 0.1091100 \\\ S12 - 0.0177540 0.0176210 0.0000000 0.0171010 0.0172900 0.0171920 0.0171250 0.0170270 + 0.0177540 0.0176210 0.0200000 0.0171010 0.0172900 0.0171920 0.0171250 0.0170270 *** This is free space *** @@ -49,3 +54,6 @@ verbose=0 0 0 0 0 0 0 0 0 0 model 1: 0.9884979114056625 -0.13803858216284481 -0.004050725958076542 + + keff = 1.025805 + maximum peaking = 1.265466 diff --git a/examples/three_batch_burn.inp b/examples/three_batch_burn.inp new file mode 100644 index 0000000..7c56d60 --- /dev/null +++ b/examples/three_batch_burn.inp @@ -0,0 +1,151 @@ +SMALL PWR BENCHMARK OF YAMAMOTO +&material_options +material_source=1 +number_materials=49 +/ +&geometry_options +delta=21.0 +stencil_dimension=9 +number_assemblies=49 +/ +&solver_options +reactor_power=3.411 +number_burnup_steps=30 +burnup_option=1 +verbose=1 +max_inners=200 +max_outers=1000 +stol=0.00001 +ktol=0.00001 +/ +&model_options +mixing_factor=0.98850 +alpha1=-0.13804 +alpha2=-0.00405 +/ +\\\ Stencil. Nonzeros represent materials and zeros symmetry and reflector. + 1 2 3 4 5 6 7 8 0 + -1 9 10 11 12 13 14 15 0 + -1 16 17 18 19 20 21 22 0 + -1 23 24 25 26 27 28 29 0 + -1 30 31 32 33 34 35 0 0 + -1 36 37 38 39 40 41 0 0 + -1 42 43 44 45 46 0 0 0 + -1 47 48 49 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 +\\\ material = 0 + 30.0 4.1 1 +\\\ material = 1 + 15.0 4.1 1 +\\\ material = 2 + 0.0 4.1 1 +\\\ material = 3 + 30.0 4.1 1 +\\\ material = 4 + 0.0 4.1 1 +\\\ material = 5 + 15.0 4.1 1 +\\\ material = 6 + 30.0 4.1 1 +\\\ material = 7 + 30.0 4.1 1 +\\\ material = 8 + 15.0 4.1 1 +\\\ material = 9 + 30.0 4.1 1 +\\\ material = 10 + 0.0 4.1 1 +\\\ material = 11 + 15.0 4.1 1 +\\\ material = 12 + 15.0 4.1 1 +\\\ material = 13 + 0.0 4.1 1 +\\\ material = 14 + 30.0 4.1 1 +\\\ material = 15 + 30.0 4.1 1 +\\\ material = 16 + 0.0 4.1 1 +\\\ material = 17 + 15.0 4.1 1 +\\\ material = 18 + 15.0 4.1 1 +\\\ material = 19 + 0.0 4.1 1 +\\\ material = 20 + 0.0 4.1 1 +\\\ material = 21 + 30.0 4.1 1 +\\\ material = 22 + 0.0 4.1 1 +\\\ material = 23 + 15.0 4.1 1 +\\\ material = 24 + 15.0 4.1 1 +\\\ material = 25 + 15.0 4.1 1 +\\\ material = 26 + 15.0 4.1 1 +\\\ material = 27 + 0.0 4.1 1 +\\\ material = 28 + 30.0 4.1 1 +\\\ material = 29 + 15.0 4.1 1 +\\\ material = 30 + 15.0 4.1 1 +\\\ material = 31 + 15.0 4.1 1 +\\\ material = 32 + 15.0 4.1 1 +\\\ material = 33 + 0.0 4.1 1 +\\\ material = 34 + 30.0 4.1 1 +\\\ material = 35 + 15.0 4.1 1 +\\\ material = 36 + 0.0 4.1 1 +\\\ material = 37 + 15.0 4.1 1 +\\\ material = 38 + 0.0 4.1 1 +\\\ material = 39 + 0.0 4.1 1 +\\\ material = 40 + 30.0 4.1 1 +\\\ material = 41 + 0.0 4.1 1 +\\\ material = 42 + 0.0 4.1 1 +\\\ material = 43 + 0.0 4.1 1 +\\\ material = 44 + 30.0 4.1 1 +\\\ material = 45 + 30.0 4.1 1 +\\\ material = 46 + 30.0 4.1 1 +\\\ material = 47 + 30.0 4.1 1 +\\\ material = 48 + 30.0 4.1 1 +\\\ burnup steps comes next (in full power days) + 1.0 5.0 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. 25. + +*** This is free space *** + + 1 8 2 6 1 7 1 4 0 + 0 1 8 2 8 1 1 4 0 + 0 8 1 8 2 7 1 4 0 + 0 2 8 2 8 1 8 4 0 + 0 8 2 8 2 5 4 0 0 + 0 1 7 1 5 4 4 0 0 + 0 1 1 8 4 4 0 0 0 + 0 4 4 4 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 + +model 1: 0.9884979114056625 -0.13803858216284481 -0.004050725958076542 + + 1.0000 5.0000 81.4286 157.8571 234.2857 310.7143 387.1429 463.5714 540.0000 diff --git a/examples/yamamoto.inp b/examples/yamamoto.inp new file mode 100644 index 0000000..3605ab0 --- /dev/null +++ b/examples/yamamoto.inp @@ -0,0 +1,156 @@ +SMALL PWR BENCHMARK OF YAMAMOTO +&material_options +material_source=1 +number_materials=49 +/ +&geometry_options +delta=21.0 +stencil_dimension=9 +number_assemblies=49 +/ +&solver_options +reactor_power=3.411 +reactor_height=1 +extra_p=0.1 +Tin=270 +mdCp=0.1 +Res_g=0.023468028 Res_h=0.012718504 Res_c=0.001384238 Res_f=0.014744043 +number_pins=289 +number_burnup_steps=20 +burnup_option=1 +verbose=1 +max_inners=20 +max_outers=1000 +stol=0.0001 +/ +&model_options +mixing_factor=0.98850 +alpha1=-0.13804 +alpha2=-0.00405 +/ +\\\ Stencil. Nonzeros represent materials and zeros symmetry and reflector. + 1 2 3 4 5 6 7 8 0 + -1 9 10 11 12 13 14 15 0 + -1 16 17 18 19 20 21 22 0 + -1 23 24 25 26 27 28 29 0 + -1 30 31 32 33 34 35 0 0 + -1 36 37 38 39 40 41 0 0 + -1 42 43 44 45 46 0 0 0 + -1 47 48 49 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 +\\\ comment + 34.7 4.1 2 +\\\ comment + 32.7 4.1 2 +\\\ comment + 32.2 4.1 2 +\\\ comment + 28.9 4.1 2 +\\\ comment + 27.9 4.1 0 +\\\ comment + 27.9 4.1 0 +\\\ comment + 23.8 4.1 0 +\\\ comment + 23.8 4.1 0 +\\\ comment + 23.0 4.1 0 +\\\ comment + 19.5 4.1 3 +\\\ comment + 19.0 4.1 3 +\\\ comment + 19.0 4.1 3 +\\\ comment + 18.9 4.1 3 +\\\ comment + 18.9 4.1 2 +\\\ comment + 18.4 4.1 3 +\\\ comment + 18.4 4.1 3 +\\\ comment + 16.8 4.1 3 +\\\ comment + 16.8 4.1 3 +\\\ comment + 12.6 4.1 0 +\\\ comment + 12.6 4.1 0 +\\\ comment + 11.3 4.1 0 +\\\ comment + 11.3 4.1 0 +\\\ comment + 10.2 4.1 0 +\\\ comment + 10.2 4.1 0 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 3 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ comment + 0 4.1 0 +\\\ burnup steps comes next (in full power days) + 1.0 5.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 + +*** This is free space *** + + 1 8 2 6 1 7 1 4 0 + 0 1 8 2 8 1 1 4 0 + 0 8 1 8 2 7 1 4 0 + 0 2 8 2 8 1 8 4 0 + 0 8 2 8 2 5 4 0 0 + 0 1 7 1 5 4 4 0 0 + 0 1 1 8 4 4 0 0 0 + 0 4 4 4 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 + +model 1: 0.9884979114056625 -0.13803858216284481 -0.004050725958076542 + + 1.0000 5.0000 81.4286 157.8571 234.2857 310.7143 387.1429 463.5714 540.0000 diff --git a/src/Makefile b/src/Makefile index 3ed706d..bfa758a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -8,17 +8,23 @@ objects = \ flare.o \ geometry.o \ coefficients.o \ -group_data.o \ +material_data.o \ +nuclear_data.o \ +nuclear_data_NOBP.o \ +nuclear_data_IFBA.o \ +nuclear_data_WABA.o \ +nuclear_data_GAD.o \ state.o \ -solver.o +solver.o \ +utilities.o #=============================================================================== # User Options #=============================================================================== -COMPILER = ifort -DEBUG = no -OPTIMIZE = yes +COMPILER = gnu +DEBUG = yes +OPTIMIZE = no PROFILE = no PYTHON = yes @@ -28,11 +34,10 @@ PYTHON = yes F90 = gfortran ifeq ($(COMPILER),gnu) F90 = gfortran - F90FLAGS := -fbacktrace - LDFLAGS = - LIB = - #INCLUDE = -I ./rng/ - + F90FLAGS = -cpp -fbacktrace -ffree-line-length-none -fPIC -I/home/robertsj/opt/papi/include/ + LDFLAGS = -L/home/robertsj/opt/papi/lib/ + LIB = #-lpapi + # Debugging ifeq ($(DEBUG),yes) F90FLAGS += -g -Wall -pedantic -std=f2008 -fbounds-check \ @@ -48,7 +53,7 @@ ifeq ($(COMPILER),gnu) # Optimization ifeq ($(OPTIMIZE),yes) - F90FLAGS += -O3 + F90FLAGS += -O3 -funroll-loops -ffinite-math-only -funsafe-math-optimizations -fexpensive-optimizations endif endif @@ -57,7 +62,6 @@ ifeq ($(COMPILER),ifort) F90FLAGS := LDFLAGS = LIB = - #INCLUDE = -I ./rng/ # Debugging ifeq ($(DEBUG),yes) @@ -92,7 +96,10 @@ neat: @rm -f *.o *.mod pyflare: - f2py --opt="-fast" -c -m pyflare group_data.f90 geometry.f90 state.f90 coefficients.f90 solver.f90 + f2py2.7 --opt="-O3" --f90flags="-ffree-line-length-none" -c -m pyflare2 \ + nuclear_data_NOBP.f90 nuclear_data_IFBA.f90 nuclear_data_WABA.f90 \ + nuclear_data_GAD.f90 nuclear_data.f90 material_data.f90 \ + geometry.f90 state.f90 utilities.f90 coefficients.f90 solver.f90 #=============================================================================== # Rules @@ -108,19 +115,29 @@ pyflare: # Dependencies #=============================================================================== -coefficients.o: group_data.o +coefficients.o: material_data.o coefficients.o: geometry.o -flare.o: group_data.o +flare.o: material_data.o flare.o: geometry.o flare.o: coefficients.o flare.o: state.o flare.o: solver.o +flare.o: utilities.o solver.o: coefficients.o solver.o: geometry.o solver.o: state.o +solver.o: material_data.o state.o: geometry.o +material_data.o: nuclear_data.o + +nuclear_data.o: nuclear_data_NOBP.o +nuclear_data.o: nuclear_data_IFBA.o +nuclear_data.o: nuclear_data_WABA.o +nuclear_data.o: nuclear_data_GAD.o + +utilities.o: geometry.o diff --git a/src/coefficients.f90 b/src/coefficients.f90 index 6a9f8b5..67fdd43 100644 --- a/src/coefficients.f90 +++ b/src/coefficients.f90 @@ -7,37 +7,28 @@ !==============================================================================! module coefficients - use group_data, only: D1, D2, R1, A2, F1, F2, S12 - use geometry, only: pattern, delta, number_bundles, number_neighbors + use material_data + use geometry, only: pattern, delta, number_assemblies, number_neighbors implicit none !> Coefficients - double precision, allocatable :: wpp(:), wqp(:), wleak(:), kinf(:) + double precision, allocatable :: wpp(:), wqp(:), wleak(:) !> Model parameters (with defaults) double precision :: mixing_factor=0.88, alpha1=0.3, alpha2=0.6 contains - !> @name Python interface - !> @{ - - - !> @} - !============================================================================ !> @brief Initialize coefficients. !============================================================================ subroutine initialize_coefficients() - if (allocated(wleak)) deallocate(wleak) if (allocated(wpp)) deallocate(wpp) if (allocated(wqp)) deallocate(wqp) - if (allocated(kinf)) deallocate(kinf) - - allocate( wleak(number_bundles), wpp(number_bundles), & - wqp(number_bundles), kinf(number_bundles) ) + allocate(wleak(number_assemblies), wpp(number_assemblies), & + wqp(number_assemblies)) end subroutine initialize_coefficients !============================================================================ @@ -50,7 +41,6 @@ subroutine set_model(g, a1, a2) alpha2 = a2 end subroutine set_model - !============================================================================ !> @brief Compute coefficients. !> @@ -60,38 +50,32 @@ end subroutine set_model !============================================================================ subroutine build_coefficients() integer :: i, j, k, n, id - double precision :: g, aI, aII ! flare model parameters - double precision :: M, w - - ! Now, compute the coefficients, wpp and wqp. - g = mixing_factor - aI = alpha1 - aII = alpha2 + double precision :: g1, g2, aI, aII ! flare model parameters + double precision :: w, gp, delta2 -! print *, " g = ", mixing_factor -! print *, " alpha1 = ", alpha1 -! print *, " alpha2 = ", alpha2 + ! Now, compute the coefficients, wpp and wqp. + g1 = 0.5 * (1.0 - mixing_factor) / delta + g2 = mixing_factor / delta**2 + aI = 1.0 - alpha1 + aII = 1.0 - alpha2 + delta2 = delta**2 - do i = 1, number_bundles + do i = 1, number_assemblies ! Bundle id id = pattern(i) - ! Compute the migration area - M = sqrt(D1(id)/R1(id) + D2(id)/A2(id)) - ! Compute k-infinity - kinf(i) = (F1(id) + F2(id) * S12(id)/A2(id)) / R1(id) ! Compute a single probability - w = (1 - g) * 0.5 * M / delta + g * M**2 / delta**2 + w = g1 * sqrt(M2(id)) + g2 * M2(id) ! Subtract leakage to actual neigbors - wpp(i) = 1.0 - number_neighbors(i) * w + wpp(i) = 1.0 - number_neighbors(i) * w ! Build coefficients - if (number_neighbors(i) .eq. 3) then + if (number_neighbors(i) .eq. 3) then ! account for one external surface - wpp(i) = wpp(i) - w * (1.0 - aI) - wleak(i) = w * (1.0 - aI) + wleak(i) = w * aI + wpp(i) = wpp(i) - wleak(i) elseif (number_neighbors(i) .eq. 2) then ! account for two external surfaces - wpp(i) = wpp(i) - 2.0 * w * (1.0 - aII) - wleak(i) = 2.0 * w * (1.0 -aII) + wleak(i) = 2.0 * w * aII + wpp(i) = wpp(i) - wleak(i) elseif (number_neighbors(i) .eq. 4) then ! I'm internal and there is no leakage wleak(i) = 0.0 @@ -99,9 +83,9 @@ subroutine build_coefficients() stop 'number of neighbors is off!!' end if ! My leakage to another - wqp(i) = w + wqp(i) = w end do - + end subroutine build_coefficients end module coefficients diff --git a/src/flare.f90 b/src/flare.f90 index 1d400a6..00e0941 100644 --- a/src/flare.f90 +++ b/src/flare.f90 @@ -10,26 +10,35 @@ !> Progress in Nuclear Energy, 7, pp 127-149 (1981) !==============================================================================! program flare - - use group_data + use material_data use geometry use coefficients use state use solver + use utilities implicit none +!#include "f90papi.h" + ! temporary variables for reading in character(80) :: inputfile - integer :: io, uinp = 5, i, j + integer :: io, uinp = 5, i + +! INTEGER :: check +! REAL*4 :: real_time, proc_time, mflops +! INTEGER*8 :: flpins + + namelist /material_options/ number_materials, material_source + namelist /geometry_options/ number_assemblies, stencil_dimension, delta + namelist /solver_options/ verbose, max_inners, max_outers, ktol, stol, & + number_burnup_steps, burnup_option, & + reactor_power, reactor_height, assembly_mass, & + extra_p, Tin, mdCp, Res_g, Res_c, Res_h, & + Res_f, number_pins + namelist /model_options/ mixing_factor, alpha1, alpha2 - namelist /specs/ delta, number_materials, number_bundles, stencil_dimension - namelist /options/ mixing_factor, alpha1, alpha2, verbose - print *, "==========================" - print *, "= a FLARE implementation =" - print *, "=== for 2-d neutronics ===" - print *, "==========================" !============================================================================! ! INPUT !============================================================================! @@ -44,8 +53,19 @@ program flare end if ! Read namelists - read (uinp, nml=specs) - read (uinp, nml=options) + read (uinp, nml=material_options) + read (uinp, nml=geometry_options) + read (uinp, nml=solver_options) + read (uinp, nml=model_options) + + if (verbose > 0) then + print *, "" + print *, "==========================" + print *, "= a FLARE implementation =" + print *, "=== for 2-d neutronics ===" + print *, "==========================" + print *, "" + end if ! Initialize geometry and read in stencil call initialize_geometry() @@ -54,22 +74,47 @@ program flare read (uinp, *) stencil(i, :) end do - ! Read in cross section data - call allocate_group_data(number_materials) - read (uinp,'(a)') ! read the comment line - read (uinp, *) D1 - read (uinp,'(a)') ! read the comment line - read (uinp, *) D2 - read (uinp,'(a)') ! read the comment line - read (uinp, *) R1 - read (uinp,'(a)') ! read the comment line - read (uinp, *) A2 - read (uinp,'(a)') ! read the comment line - read (uinp, *) F1 - read (uinp,'(a)') ! read the comment line - read (uinp, *) F2 - read (uinp,'(a)') ! read the comment line - read (uinp, *) S12 + ! Read in cross section data. If a cycle is to be run, then the number + ! of materials specified must be at least as great as the number of + ! assemblies. This allows a database of different materials (i.e., + ! potential assemblies) to be + ! defined of which only a subset is used in a given pattern. If, instead, + ! assemblies could be assigned identical materials, then there is no + ! good way to redefine those materials after the burnup of each assembly + ! diverges in a cycle. + call allocate_material_data(number_materials) + + if (material_source == MODEL_MATERIAL) then + ! read parameters to compute data from the built-in fits + do i = 1, number_materials + read (uinp,'(a)') + read (uinp, *) B(i), E(i), BP(i) + !print *, "id=",i, "burnup=", B(i), "enrichment=", E(i), "bp=", BP(i) + end do + else + ! otherwise, read two-group data directly + read (uinp,'(a)') ! read the comment line + read (uinp, *) D1 + read (uinp,'(a)') ! read the comment line + read (uinp, *) D2 + read (uinp,'(a)') ! read the comment line + read (uinp, *) A1 + read (uinp,'(a)') ! read the comment line + read (uinp, *) A2 + read (uinp,'(a)') ! read the comment line + read (uinp, *) F1 + read (uinp,'(a)') ! read the comment line + read (uinp, *) F2 + read (uinp,'(a)') ! read the comment line + read (uinp, *) S12 + end if + call compute_flare_parameters() + + if (number_burnup_steps > 0) then + allocate(burnup_steps(number_burnup_steps)) + read (uinp,'(a)') ! read the comment line + read (uinp, *) burnup_steps + end if !============================================================================! ! SETUP @@ -78,19 +123,45 @@ program flare call initialize_state() call build_geometry() call initialize_coefficients() + call initialize_solver() !============================================================================! ! SOLVE !============================================================================! +! i = 2 +! call PAPIf_num_counters(j) +! if (i .GT. j) then +! stop "Not enough hardware counters!" +! end if +! call PAPIf_flops( real_time, proc_time, flpins, mflops, check ) +! if ( check .LT. PAPI_OK ) then +! print *, 'Error starting PAPI ', check, PAPI_OK +! stop +! end if do i = 1, 1 - call solve() + !B(:) = 0.0 + call burn() end do + +! call PAPIf_flops( real_time, proc_time, flpins, mflops, check ) +! print *, 'Real_time: ', real_time, ' Proc_time: ', proc_time, & +! ' Total flpins: ', flpins, ' MFLOPS: ', mflops + !============================================================================! ! POST PROCESS, etc. !============================================================================! + !if (verbose == 1) then call print_state() - call print_peaking() + + call print_map(assembly_peaking, "ASSEMBLY_PEAKING", GEOMETRY_INDEXED) + call print_map(B, "ASSEMBLY_BURNUP", MATERIAL_INDEXED) + call print_map(assembly_temperature, "MODERATOR_TEMPERATURE", GEOMETRY_INDEXED) + call print_map(fuel_temperature, "FUEL_TEMPERATURE", GEOMETRY_INDEXED) + !call print_map(BP, "ASSEMBLY_BP", MATERIAL_INDEXED) + !end if + + call deallocate_geometry() end program flare diff --git a/src/geometry.f90 b/src/geometry.f90 index b9e8386..939b073 100644 --- a/src/geometry.f90 +++ b/src/geometry.f90 @@ -35,55 +35,50 @@ module geometry !> Stencil integer, allocatable :: stencil(:, :) - !> Loading pattern integer, allocatable :: pattern(:) - !> Neighbor list integer, allocatable :: neighbors(:, :) - !> Number of neighbors for each bundle integer, allocatable :: number_neighbors(:) - + !> Number of assemblies for each row + integer, allocatable :: number_per_row(:) !> Number of assemblies - integer :: number_bundles - + integer :: number_assemblies !> Stencil dimension integer :: stencil_dimension - !> Size of assemblies (cm) double precision :: delta contains - !============================================================================ + !============================================================================! !> @brief Initialize geometry. !> !> This *must* be called before build_geometry. - !============================================================================ + !============================================================================! subroutine initialize_geometry() - - if (.not. allocated(stencil)) & + if (.not. allocated(stencil)) then allocate(stencil(stencil_dimension, stencil_dimension)) - if (.not. allocated(pattern)) allocate(pattern(number_bundles)) - end subroutine + end if + if (.not. allocated(pattern)) allocate(pattern(number_assemblies)) + end subroutine initialize_geometry - !============================================================================ + !============================================================================! !> @brief Deallocate geometry. !> !> This must be called before loading a new core configuration. - !============================================================================ + !============================================================================! subroutine deallocate_geometry() - if (allocated(stencil)) deallocate(stencil) if (allocated(pattern)) deallocate(pattern) if (allocated(neighbors)) deallocate(neighbors) if (allocated(number_neighbors)) deallocate(number_neighbors) - - end subroutine + if (allocated(number_per_row)) deallocate(number_per_row) + end subroutine deallocate_geometry - !============================================================================ + !============================================================================! !> @brief Build the neighbor list and related items. !> !> The stencil becomes the cardinal index map. Neighbors are defined by @@ -91,12 +86,13 @@ subroutine deallocate_geometry() !> each of which has an index j. This index can be used to index into !> pattern, the value of which defines the material index. !> - !============================================================================ + !============================================================================! subroutine build_geometry() integer :: i, j, k, n - integer :: number_per_row(stencil_dimension) ! number bundles per row integer :: number_per_col(stencil_dimension) ! number bundles per row + allocate(number_per_row(stencil_dimension)) + ! go through the stencil once and record dimensions n = size(stencil, 1) number_per_row = 0 @@ -122,19 +118,11 @@ subroutine build_geometry() end do end do -! print *, "stencil = " -! do i = 1, n -! print *, stencil(i, :) -! end do -! -! print *, "pattern = " -! print *, pattern - ! Subtract the first element, since we handle it explicitly below. number_per_row(1) = number_per_row(1) - 1 ! My neighbors. - allocate(neighbors(number_bundles, 4)) + allocate(neighbors(number_assemblies, 4)) neighbors = -1 ! Central node is always adjacent to node 2 all four times. @@ -177,13 +165,8 @@ subroutine build_geometry() end do end do -! print *, "neighbors = " -! do i = 1, number_bundles -! print *, neighbors(i, :) -! end do - - allocate(number_neighbors(number_bundles)) - do i = 1, number_bundles + allocate(number_neighbors(number_assemblies)) + do i = 1, number_assemblies k = 0 do j = 1, 4 if (neighbors(i, j) .gt. 0) k = k + 1 @@ -191,12 +174,15 @@ subroutine build_geometry() number_neighbors(i) = k end do + ! Add back to the first element for use in printing + number_per_row(1) = number_per_row(1) + 1 + end subroutine build_geometry !> @name Python Interface !> @{ - !============================================================================ + !============================================================================! !> @brief Set the stencil. !> !> Note, the second argument is IMPLICIT when called from Python. That is @@ -206,21 +192,21 @@ end subroutine build_geometry !> @endcode !> @param s A 2-D integer array specifying fuel and reflector regions. !> @param n Length of one dimension of the stencil array (IMPLICIT) - !============================================================================ + !============================================================================! subroutine set_stencil(s, n) integer, intent(in) :: n, s(n, n) if (.not. allocated(stencil)) allocate(stencil(n, n)) stencil(:, :) = s(:, :) end subroutine set_stencil - !============================================================================ + !============================================================================! !> @brief Print the pattern using default array formatting. - !============================================================================ + !============================================================================! subroutine print_stencil() print *, stencil end subroutine print_stencil - !============================================================================ + !============================================================================! !> @brief Set the pattern. !> !> Note, the second argument is IMPLICIT when called from Python. That is @@ -230,16 +216,16 @@ end subroutine print_stencil !> @endcode !> @param p An integer array specifying assembly locations. !> @param n Length of the pattern array (IMPLICIT) - !============================================================================ + !============================================================================! subroutine set_pattern(p, n) integer, intent(in) :: n, p(n) if (.not. allocated(pattern)) allocate(pattern(n)) pattern(:) = p(:) end subroutine set_pattern - !============================================================================ + !============================================================================! !> @brief Print the pattern using default array formatting. - !============================================================================ + !============================================================================! subroutine print_pattern() print *, pattern end subroutine print_pattern @@ -247,4 +233,3 @@ end subroutine print_pattern !> @} end module geometry - diff --git a/src/group_data.f90 b/src/group_data.f90 deleted file mode 100644 index 23cac65..0000000 --- a/src/group_data.f90 +++ /dev/null @@ -1,55 +0,0 @@ -!==============================================================================! -! MODULE: group_data -! -!> @author Jeremy Roberts -!> -!> @brief Response function and related data -!==============================================================================! -module group_data - - !> Number of materials (nominally, the number of bundles) - integer :: number_materials - !> Group 1 diffusion coefficient - double precision, allocatable, dimension(:) :: D1 - !> Group 2 diffusion coefficient - double precision, allocatable, dimension(:) :: D2 - !> Group 1 diffusion coefficient - double precision, allocatable, dimension(:) :: A1 - !> Group 2 diffusion coefficient - double precision, allocatable, dimension(:) :: A2 - !> Group 1 diffusion coefficient - double precision, allocatable, dimension(:) :: F1 - !> Group 2 diffusion coefficient - double precision, allocatable, dimension(:) :: F2 - !> Group 1 to 2 scattering cross section - double precision, allocatable, dimension(:) :: S12 - !> Group 1 removal cross section - double precision, allocatable, dimension(:) :: R1 - !> Group 1 energy release per fission - double precision, allocatable, dimension(:) :: K1 - !> Group 2 energy release per fission - double precision, allocatable, dimension(:) :: K2 - -contains - - !============================================================================= - !> @brief Allocate the group constants. - !============================================================================= - subroutine allocate_group_data(n) - integer, intent(in) :: n - - allocate(D1(n), D2(n), A1(n), A2(n), F1(n), F2(n), & - S12(n), R1(n), K1(n), K2(n)) - ! D1 = 1.0 - end subroutine allocate_group_data - - !============================================================================= - !> @brief Deallocate the group constants. - !============================================================================= - subroutine deallocate_group_data() - - if (allocated(D1)) deallocate(D1, D2, A1, A2, F1, F2, S12, R1, K1, K2) - - end subroutine deallocate_group_data - -end module group_data diff --git a/src/material_data.f90 b/src/material_data.f90 new file mode 100644 index 0000000..d2c5531 --- /dev/null +++ b/src/material_data.f90 @@ -0,0 +1,128 @@ +!==============================================================================! +! MODULE: material_data +! +!> @author Jeremy Roberts +!> @brief Two-group and related material data for each possible assembly +!==============================================================================! +module material_data + + use nuclear_data, only: NOBP, IFBA, WABA, GAD, & + set_flare_data, set_two_group_data + + !> Number of materials + integer :: number_materials + + !> @name Material source options + !> @{ + !> Use the data model based on fits to CASMO output + integer, parameter :: MODEL_MATERIAL = 1 + !> Use input data from the user + integer, parameter :: USER_MATERIAL = 2 + !> Use tabulated data from a database (not implemented) + integer, parameter :: DB_MATERIAL = 3 + !> Material source option (default is the internal model) + integer :: material_source = MODEL_MATERIAL + !> @} + + !> @name Two-group cross-section data + !> @{ + !> Group 1 diffusion coefficient + double precision, allocatable, dimension(:) :: D1 + !> Group 2 diffusion coefficient + double precision, allocatable, dimension(:) :: D2 + !> Group 1 absorption cross section + double precision, allocatable, dimension(:) :: A1 + !> Group 2 absorption cross section + double precision, allocatable, dimension(:) :: A2 + !> Group 1 nu times fission cross section + double precision, allocatable, dimension(:) :: F1 + !> Group 2 nu times fission cross section + double precision, allocatable, dimension(:) :: F2 + !> Group 1 to 2 scattering cross section + double precision, allocatable, dimension(:) :: S12 + !> Average number of fission neutrons + double precision, allocatable, dimension(:) :: NU + !> @} + + !> @name Data needed for FLARE model + !> @{ + !> Infinite multiplication factor + double precision, allocatable, dimension(:) :: KINF + !> Migration area + double precision, allocatable, dimension(:) :: M2 + !> @} + + !> Energy release per fission (J) + double precision, allocatable, dimension(:) :: KAPPA + + !> @name Data required for the internal model (for each unique assembly) + !> @{ + !> Burnup (GWd/MTU), which can *change* during cycle depletions + double precision, allocatable, dimension(:) :: B + !> Enrichment (initial weight-percent) + double precision, allocatable, dimension(:) :: E + !> Burnable poison type (none, ifba, waba, or gad) + integer, allocatable, dimension(:) :: BP + !> @} + +contains + + !============================================================================= + !> @brief Allocate the group constants. + !============================================================================= + subroutine allocate_material_data(n) + integer, intent(in) :: n + allocate(D1(n), D2(n), A1(n), A2(n), F1(n), F2(n), & + S12(n), NU(n), KINF(n), M2(n), KAPPA(n)) + if (material_source == MODEL_MATERIAL) then + allocate(B(n), E(n), BP(n)) + end if + end subroutine allocate_material_data + + !============================================================================= + !> @brief Deallocate the group constants. + !============================================================================= + subroutine deallocate_material_data() + if (allocated(D1)) then + deallocate(D1, D2, A1, A2, F1, F2, S12, NU, KINF, M2, KAPPA) + end if + if (allocated(B)) then + deallocate(B, E, BP) + end if + end subroutine deallocate_material_data + + !============================================================================= + !> @brief Compute FLARE constants + !============================================================================= + subroutine compute_flare_parameters() + integer :: i + if (material_source == MODEL_MATERIAL) then + do i = 1, number_materials + call set_flare_data(B(i), E(i), BP(i), KINF(i), M2(i), KAPPA(i)) + end do + KINF = KINF * 0.99_8 + else + do i = 1, number_materials + KINF(i) = (F1(i) + F2(i) * S12(i)/A2(i)) / (A1(i)+S12(i)) + M2(i) = D1(i)/(A1(i)+S12(i)) + D2(i)/A2(i) + end do + KAPPA = 3.22e-11_8 ! roughly 200 MeV/fission + end if + end subroutine compute_flare_parameters + + !============================================================================= + !> @brief Compute two-group constants from model (useful for testing) + !============================================================================= + subroutine compute_two_group_data() + integer :: i + if (material_source == MODEL_MATERIAL) then + do i = 1, number_materials + call set_two_group_data(B(i), E(i), BP(i), D1(i), D2(i), A1(i), A2(i), & + F1(i), F2(i), S12(i), NU(i)) + end do + else + stop "Internal data model not used, so cross sections not computed!" + end if + end subroutine compute_two_group_data + +end module material_data diff --git a/src/nuclear_data.f90 b/src/nuclear_data.f90 new file mode 100644 index 0000000..b5d614f --- /dev/null +++ b/src/nuclear_data.f90 @@ -0,0 +1,303 @@ +!==============================================================================! +! MODULE: nuclear_data +! +!> @author Jeremy Roberts, Nick Horelik, and Nathan Gibson +!> @brief Group constant container and functions +! +! This module was adapted from the original C code generated by +! N. Horelik as part of his and N. Gibson's project for a class +! at MIT (poropy itself was born out of J. Roberts' project for the +! same class). +! +! The data consists of standard, two-group data typically produced +! by the lattice physics code CASMO. Data was +! generated for a standard 17x17 PWR with varying enrichment, +! burnup, and a few different burnable poison (IFBA, WABA, and GAD). +! The data was fit to functional forms, the results of which are included +! here as a crude but instructive and very fast set of data. +!==============================================================================! +module nuclear_data + +use nuclear_data_NOBP +use nuclear_data_IFBA +use nuclear_data_WABA +use nuclear_data_GAD + +!> No burnable poison +integer, parameter :: NOBP = 0 +!> Integrated Fuel Burnable Absorber (IFBA) +integer, parameter :: IFBA = 1 +!> Wet Annular Burnable Absorber (WABA) +integer, parameter :: WABA = 2 +!> Gadolinia (GAD) +integer, parameter :: GAD = 3 + +! Burnup cutoffs for parts of each fit +double precision, parameter :: XE_CUTOFF = 0.1 +double precision, parameter :: IFBA_CUTOFF = 30.0 +double precision, parameter :: GAD_CUTOFF = 15.0 +double precision, parameter :: WABA_CUTOFF = 22.5 + +contains + +!------------------------------------------------------------------------------! +!> Set the minimal coefficient set based on burnup, enrichment, and poison +subroutine set_flare_data(B, E, BP, KINF, M2, KAPPA) + !> Burnup + double precision, intent(in) :: B + !> Enrichment + double precision, intent(in) :: E + !> Burnable poison option + integer, intent(in) :: BP + !> Infinite multiplication factor + double precision, intent(out) :: KINF + !> Migration area + double precision, intent(out) :: M2 + !> Energy release per fission + double precision, intent(out) :: KAPPA + + ! Set the data for no burnable poison, as all other values are + ! defined as corrections to this data + call set_flare_data_nobp(B, E, KINF, M2, KAPPA) + + ! Correct the data for the burnable poison, if any + if (BP == IFBA) then + call set_flare_data_ifba(B, E, KINF, M2, KAPPA) + elseif (BP == WABA) then + call set_flare_data_waba(B, E, KINF, M2, KAPPA) + elseif (BP == GAD) then + call set_flare_data_gad(B, E, KINF, M2, KAPPA) + end if + +end subroutine set_flare_data + +!------------------------------------------------------------------------------! +subroutine set_flare_data_nobp(B, E, KINF, M2, KAPPA) + double precision, intent(in) :: B, E + double precision, intent(out) :: KINF, M2, KAPPA + ! Cutoff breaks the data into more easily-represented segments + if (B < XE_CUTOFF) then + KINF = get_K_INF_XE_0(B, E) + M2 = get_M2_XE_0(B, E) + KAPPA = get_KAPPA_0(B, E) + else + KINF = get_K_INF_XE_1(B, E) + M2 = get_M2_XE_1(B, E) + KAPPA = get_KAPPA_1(B, E) + end if +end subroutine set_flare_data_nobp + +!------------------------------------------------------------------------------! +subroutine set_flare_data_ifba(B, E, KINF, M2, KAPPA) + double precision, intent(in) :: B, E + double precision, intent(out) :: KINF, M2, KAPPA + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + KINF = KINF - get_K_INF_XE_IFBA_DIFF_0(B, E) + M2 = M2 - get_M2_XE_IFBA_DIFF_0(B, E) + KAPPA = KAPPA - get_KAPPA_IFBA_DIFF_0(B, E) + elseif (B < IFBA_CUTOFF) then + KINF = KINF - get_K_INF_XE_IFBA_DIFF_1(B, E) + M2 = M2 - get_M2_XE_IFBA_DIFF_1(B, E) + KAPPA = KAPPA - get_KAPPA_IFBA_DIFF_1(B, E) + else + KINF = KINF - get_K_INF_XE_IFBA_DIFF_2(B, E) + M2 = M2 - get_M2_XE_IFBA_DIFF_2(B, E) + KAPPA = KAPPA - get_KAPPA_IFBA_DIFF_2(B, E) + end if +end subroutine set_flare_data_ifba + +!------------------------------------------------------------------------------! +subroutine set_flare_data_waba(B, E, KINF, M2, KAPPA) + double precision, intent(in) :: B, E + double precision, intent(out) :: KINF, M2, KAPPA + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + KINF = KINF - get_K_INF_XE_WABA_DIFF_0(B, E) + M2 = M2 - get_M2_XE_WABA_DIFF_0(B, E) + KAPPA = KAPPA - get_KAPPA_WABA_DIFF_0(B, E) + elseif (B < WABA_CUTOFF) then + KINF = KINF - get_K_INF_XE_WABA_DIFF_1(B, E) + M2 = M2 - get_M2_XE_WABA_DIFF_1(B, E) + KAPPA = KAPPA - get_KAPPA_WABA_DIFF_1(B, E) + else + KINF = KINF - get_K_INF_XE_WABA_DIFF_2(B, E) + M2 = M2 - get_M2_XE_WABA_DIFF_2(B, E) + KAPPA = KAPPA - get_KAPPA_WABA_DIFF_2(B, E) + end if +end subroutine set_flare_data_waba + +!------------------------------------------------------------------------------! +subroutine set_flare_data_gad(B, E, KINF, M2, KAPPA) + double precision, intent(in) :: B, E + double precision, intent(out) :: KINF, M2, KAPPA + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + KINF = KINF - get_K_INF_XE_GAD_DIFF_0(B, E) + M2 = M2 - get_M2_XE_GAD_DIFF_0(B, E) + KAPPA = KAPPA - get_KAPPA_GAD_DIFF_0(B, E) + elseif (B < GAD_CUTOFF) then + KINF = KINF - get_K_INF_XE_GAD_DIFF_1(B, E) + M2 = M2 - get_M2_XE_GAD_DIFF_1(B, E) + KAPPA = KAPPA - get_KAPPA_GAD_DIFF_1(B, E) + else + KINF = KINF - get_K_INF_XE_GAD_DIFF_2(B, E) + M2 = M2 - get_M2_XE_GAD_DIFF_2(B, E) + KAPPA = KAPPA - get_KAPPA_GAD_DIFF_2(B, E) + end if +end subroutine set_flare_data_gad + +!------------------------------------------------------------------------------! +!> Set the two-group data based on burnup, enrichment, and burnable poison +subroutine set_two_group_data(B, E, BP, D1, D2, A1, A2, F1, F2, S12, NU) + double precision, intent(in) :: B, E + integer, intent(in) :: BP + double precision, intent(out) :: D1, D2, A1, A2, F1, F2, S12, NU + + ! Set the data for no burnable poison, as all other values are + ! defined as corrections to this data + call set_two_group_data_nobp(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + + ! Correct the data for the burnable poison, if any + if (BP == IFBA) then + call set_two_group_data_ifba(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + elseif (BP == WABA) then + call set_two_group_data_waba(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + elseif (BP == GAD) then + call set_two_group_data_gad(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + end if + +end subroutine set_two_group_data + +!------------------------------------------------------------------------------! +subroutine set_two_group_data_nobp(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + double precision, intent(in) :: B, E + double precision, intent(out) :: D1, D2, A1, A2, F1, F2, S12, NU + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + D1 = get_DIFF1_0(B, E) + D2 = get_DIFF2_0(B, E) + A1 = get_ABS1_0(B, E) + A2 = get_ABS2_0(B, E) + F1 = get_NUFISS1_0(B, E) + F2 = get_NUFISS2_0(B, E) + NU = get_NU_0(B, E) + S12 = get_REMOV1_0(B, E) ! casmo definition + else + D1 = get_DIFF1_1(B, E) ! D1 + D2 = get_DIFF2_1(B, E) ! D2 + A1 = get_ABS1_1(B, E) ! A1 + A2 = get_ABS2_1(B, E) ! A2 + F1 = get_NUFISS1_1(B, E) ! F1 + F2 = get_NUFISS2_1(B, E) ! F2 + NU = get_NU_1(B, E) + S12 = get_REMOV1_1(B, E) ! casmo definition + end if +end subroutine set_two_group_data_nobp + +!------------------------------------------------------------------------------! +subroutine set_two_group_data_ifba(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + double precision, intent(in) :: B, E + double precision, intent(out) :: D1, D2, A1, A2, F1, F2, S12, NU + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + D1 = D1 - get_DIFF1_IFBA_DIFF_0(B, E) + D2 = D2 - get_DIFF2_IFBA_DIFF_0(B, E) + A1 = A1 - get_ABS1_IFBA_DIFF_0(B, E) + A2 = A2 - get_ABS2_IFBA_DIFF_0(B, E) + F1 = F1 - get_NUFISS1_IFBA_DIFF_0(B, E) + F2 = F2 - get_NUFISS2_IFBA_DIFF_0(B, E) + NU = NU - get_NU_IFBA_DIFF_0(B, E) + S12 = S12 - get_REMOV1_IFBA_DIFF_0(B, E) + elseif (B < IFBA_CUTOFF) then + D1 = D1 - get_DIFF1_IFBA_DIFF_1(B, E) + D2 = D2 - get_DIFF2_IFBA_DIFF_1(B, E) + A1 = A1 - get_ABS1_IFBA_DIFF_1(B, E) + A2 = A2 - get_ABS2_IFBA_DIFF_1(B, E) + F1 = F1 - get_NUFISS1_IFBA_DIFF_1(B, E) + F2 = F2 - get_NUFISS2_IFBA_DIFF_1(B, E) + NU = NU - get_NU_IFBA_DIFF_1(B, E) + S12 = S12 - get_REMOV1_IFBA_DIFF_1(B, E) + else + D1 = D1 - get_DIFF1_IFBA_DIFF_2(B, E) + D2 = D2 - get_DIFF2_IFBA_DIFF_2(B, E) + A1 = A1 - get_ABS1_IFBA_DIFF_2(B, E) + A2 = A2 - get_ABS2_IFBA_DIFF_2(B, E) + F1 = F1 - get_NUFISS1_IFBA_DIFF_2(B, E) + F2 = F2 - get_NUFISS2_IFBA_DIFF_2(B, E) + NU = NU - get_NU_IFBA_DIFF_2(B, E) + S12 = S12 - get_REMOV1_IFBA_DIFF_2(B, E) + end if +end subroutine set_two_group_data_ifba + +!------------------------------------------------------------------------------! +subroutine set_two_group_data_waba(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + double precision, intent(in) :: B, E + double precision, intent(out) :: D1, D2, A1, A2, F1, F2, S12, NU + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + D1 = D1 - get_DIFF1_WABA_DIFF_0(B, E) + D2 = D2 - get_DIFF2_WABA_DIFF_0(B, E) + A1 = A1 - get_ABS1_WABA_DIFF_0(B, E) + A2 = A2 - get_ABS2_WABA_DIFF_0(B, E) + F1 = F1 - get_NUFISS1_WABA_DIFF_0(B, E) + F2 = F2 - get_NUFISS2_WABA_DIFF_0(B, E) + NU = NU - get_NU_WABA_DIFF_0(B, E) + S12 = S12 - get_REMOV1_WABA_DIFF_0(B, E) + elseif (B < WABA_CUTOFF) then + D1 = D1 - get_DIFF1_WABA_DIFF_1(B, E) + D2 = D2 - get_DIFF2_WABA_DIFF_1(B, E) + A1 = A1 - get_ABS1_WABA_DIFF_1(B, E) + A2 = A2 - get_ABS2_WABA_DIFF_1(B, E) + F1 = F1 - get_NUFISS1_WABA_DIFF_1(B, E) + F2 = F2 - get_NUFISS2_WABA_DIFF_1(B, E) + NU = NU - get_NU_WABA_DIFF_1(B, E) + S12 = S12 - get_REMOV1_WABA_DIFF_1(B, E) + else + D1 = D1 - get_DIFF1_WABA_DIFF_2(B, E) + D2 = D2 - get_DIFF2_WABA_DIFF_2(B, E) + A1 = A1 - get_ABS1_WABA_DIFF_2(B, E) + A2 = A2 - get_ABS2_WABA_DIFF_2(B, E) + F1 = F1 - get_NUFISS1_WABA_DIFF_2(B, E) + F2 = F2 - get_NUFISS2_WABA_DIFF_2(B, E) + NU = NU - get_NU_WABA_DIFF_2(B, E) + S12 = S12 - get_REMOV1_WABA_DIFF_2(B, E) + end if +end subroutine set_two_group_data_waba + +!------------------------------------------------------------------------------! +subroutine set_two_group_data_gad(B, E, D1, D2, A1, A2, F1, F2, S12, NU) + double precision, intent(in) :: B, E + double precision, intent(out) :: D1, D2, A1, A2, F1, F2, S12, NU + ! Cutoffs break the data into more easily-represented segments + if (B < XE_CUTOFF) then + D1 = D1 - get_DIFF1_GAD_DIFF_0(B, E) + D2 = D2 - get_DIFF2_GAD_DIFF_0(B, E) + A1 = A1 - get_ABS1_GAD_DIFF_0(B, E) + A2 = A2 - get_ABS2_GAD_DIFF_0(B, E) + F1 = F1 - get_NUFISS1_GAD_DIFF_0(B, E) + F2 = F2 - get_NUFISS2_GAD_DIFF_0(B, E) + NU = NU - get_NU_GAD_DIFF_0(B, E) + S12 = S12 - get_REMOV1_GAD_DIFF_0(B, E) + elseif (B < GAD_CUTOFF) then + D1 = D1 - get_DIFF1_GAD_DIFF_1(B, E) + D2 = D2 - get_DIFF2_GAD_DIFF_1(B, E) + A1 = A1 - get_ABS1_GAD_DIFF_1(B, E) + A2 = A2 - get_ABS2_GAD_DIFF_1(B, E) + F1 = F1 - get_NUFISS1_GAD_DIFF_1(B, E) + F2 = F2 - get_NUFISS2_GAD_DIFF_1(B, E) + NU = NU - get_NU_GAD_DIFF_1(B, E) + S12 = S12 - get_REMOV1_GAD_DIFF_1(B, E) + else + D1 = D1 - get_DIFF1_GAD_DIFF_2(B, E) + D2 = D2 - get_DIFF2_GAD_DIFF_2(B, E) + A1 = A1 - get_ABS1_GAD_DIFF_2(B, E) + A2 = A2 - get_ABS2_GAD_DIFF_2(B, E) + F1 = F1 - get_NUFISS1_GAD_DIFF_2(B, E) + F2 = F2 - get_NUFISS2_GAD_DIFF_2(B, E) + NU = NU - get_NU_GAD_DIFF_2(B, E) + S12 = S12 - get_REMOV1_GAD_DIFF_2(B, E) + end if +end subroutine set_two_group_data_gad + +end module nuclear_data diff --git a/src/nuclear_data_GAD.f90 b/src/nuclear_data_GAD.f90 new file mode 100644 index 0000000..51a2272 --- /dev/null +++ b/src/nuclear_data_GAD.f90 @@ -0,0 +1,2202 @@ +module nuclear_data_GAD + +contains + +double precision function get_SM2_NO_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD24 = (/ & + -8.24044451776e-08, & + 1.67983708937e-06, & + -1.46313057294e-05, & + 7.07608291245e-05, & + -6.57545841109e-05, & + 4.78042183882e-09, & + -9.39996182708e-08, & + 8.28484477669e-07, & + -4.44891751793e-06, & + 6.92550344878e-06 & + /) + get_SM2_NO_XE_GAD_DIFF_0 = (cGAD24(0)*E**(4) + cGAD24(1)*E**(3) + cGAD24(2)*E**(2) + cGAD24(3)*E + cGAD24(4))*B + (cGAD24(5)*E**(4) + cGAD24(6)*E**(3) + cGAD24(7)*E**(2) + cGAD24(8)*E + cGAD24(9)) + +end function get_SM2_NO_XE_GAD_DIFF_0 + +double precision function get_SM2_NO_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD25 = (/ & + -3.59500993127e-11, & + 4.95050446799e-10, & + -2.05664952637e-09, & + 1.52318683388e-09, & + 6.71162151387e-09, & + 2.21855476065e-09, & + -3.51405926452e-08, & + 1.96298907783e-07, & + -4.43660869817e-07, & + 2.11506814988e-07, & + -3.62831163516e-08, & + 6.07492146290e-07, & + -3.71439778723e-06, & + 9.92998624498e-06, & + -8.32717115148e-06, & + 2.16361222888e-07, & + -3.73328576306e-06, & + 2.39580103388e-05, & + -7.05095831492e-05, & + 7.38639345896e-05, & + -4.66232773253e-07, & + 8.04378698758e-06, & + -5.18769830108e-05, & + 1.61107449847e-04, & + -2.08171645550e-04, & + 2.24419972449e-07, & + -3.77862704066e-06, & + 2.27690912285e-05, & + -5.72122576893e-05, & + 8.53631385069e-05 & + /) + get_SM2_NO_XE_GAD_DIFF_1 = (cGAD25(0)*E**(4) + cGAD25(1)*E**(3) + cGAD25(2)*E**(2) + cGAD25(3)*E + cGAD25(4))*B**(5) + (cGAD25(5)*E**(4) + cGAD25(6)*E**(3) + cGAD25(7)*E**(2) + cGAD25(8)*E + cGAD25(9))*B**(4) + (cGAD25(10)*E**(4) + cGAD25(11)*E**(3) + cGAD25(12)*E**(2) + cGAD25(13)*E + cGAD25(14))*B**(3) + (cGAD25(15)*E**(4) + cGAD25(16)*E**(3) + cGAD25(17)*E**(2) + cGAD25(18)*E + cGAD25(19))*B**(2) + (cGAD25(20)*E**(4) + cGAD25(21)*E**(3) + cGAD25(22)*E**(2) + cGAD25(23)*E + cGAD25(24))*B + (cGAD25(25)*E**(4) + cGAD25(26)*E**(3) + cGAD25(27)*E**(2) + cGAD25(28)*E + cGAD25(29)) + +end function get_SM2_NO_XE_GAD_DIFF_1 + +double precision function get_SM2_NO_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD26 = (/ & + -6.05991861993e-13, & + 1.03226284232e-11, & + -6.45651222251e-11, & + 1.75632726204e-10, & + -1.75398081475e-10, & + 1.33731283624e-10, & + -2.28141761251e-09, & + 1.42896878604e-08, & + -3.89198617976e-08, & + 3.89070028682e-08, & + -1.12655131891e-08, & + 1.92545805863e-07, & + -1.20815077897e-06, & + 3.29580190756e-06, & + -3.29904957626e-06, & + 4.48721101905e-07, & + -7.68754453459e-06, & + 4.83447710229e-05, & + -1.32150907285e-04, & + 1.32506990589e-04, & + -8.36667643190e-06, & + 1.43768514408e-04, & + -9.06675034162e-04, & + 2.48462607864e-03, & + -2.49632608791e-03, & + 5.78638377408e-05, & + -9.98108953923e-04, & + 6.31795335457e-03, & + -1.73706737554e-02, & + 1.74833202505e-02 & + /) + get_SM2_NO_XE_GAD_DIFF_2 = (cGAD26(0)*E**(4) + cGAD26(1)*E**(3) + cGAD26(2)*E**(2) + cGAD26(3)*E + cGAD26(4))*B**(5) + (cGAD26(5)*E**(4) + cGAD26(6)*E**(3) + cGAD26(7)*E**(2) + cGAD26(8)*E + cGAD26(9))*B**(4) + (cGAD26(10)*E**(4) + cGAD26(11)*E**(3) + cGAD26(12)*E**(2) + cGAD26(13)*E + cGAD26(14))*B**(3) + (cGAD26(15)*E**(4) + cGAD26(16)*E**(3) + cGAD26(17)*E**(2) + cGAD26(18)*E + cGAD26(19))*B**(2) + (cGAD26(20)*E**(4) + cGAD26(21)*E**(3) + cGAD26(22)*E**(2) + cGAD26(23)*E + cGAD26(24))*B + (cGAD26(25)*E**(4) + cGAD26(26)*E**(3) + cGAD26(27)*E**(2) + cGAD26(28)*E + cGAD26(29)) + +end function get_SM2_NO_XE_GAD_DIFF_2 + +double precision function get_M2_NO_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD27 = (/ & + -5.46299226143e-03, & + 9.18998970296e-02, & + -6.00714854856e-01, & + 1.89485148157e+00, & + -2.77667080398e+00, & + 5.09895526475e-03, & + -9.52657803366e-02, & + 7.35901309338e-01, & + -3.19667999274e+00, & + 9.59088957256e+00 & + /) + get_M2_NO_XE_GAD_DIFF_0 = (cGAD27(0)*E**(4) + cGAD27(1)*E**(3) + cGAD27(2)*E**(2) + cGAD27(3)*E + cGAD27(4))*B + (cGAD27(5)*E**(4) + cGAD27(6)*E**(3) + cGAD27(7)*E**(2) + cGAD27(8)*E + cGAD27(9)) + +end function get_M2_NO_XE_GAD_DIFF_0 + +double precision function get_M2_NO_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD28 = (/ & + 3.89135399546e-05, & + -5.97391234469e-04, & + 3.19589141108e-03, & + -6.62899898589e-03, & + 3.68126079098e-03, & + -1.25788733472e-03, & + 1.97658853264e-02, & + -1.09669251319e-01, & + 2.42956125041e-01, & + -1.59363920285e-01, & + 1.30408633828e-02, & + -2.10702932460e-01, & + 1.22093020070e+00, & + -2.91937682032e+00, & + 2.27267815430e+00, & + -4.60608805118e-02, & + 7.68224996189e-01, & + -4.68397216510e+00, & + 1.22890797613e+01, & + -1.18527771432e+01, & + 3.35846419388e-02, & + -5.74647370161e-01, & + 3.67528280218e+00, & + -1.08657672178e+01, & + 1.65803170095e+01 & + /) + get_M2_NO_XE_GAD_DIFF_1 = (cGAD28(0)*E**(4) + cGAD28(1)*E**(3) + cGAD28(2)*E**(2) + cGAD28(3)*E + cGAD28(4))*B**(4) + (cGAD28(5)*E**(4) + cGAD28(6)*E**(3) + cGAD28(7)*E**(2) + cGAD28(8)*E + cGAD28(9))*B**(3) + (cGAD28(10)*E**(4) + cGAD28(11)*E**(3) + cGAD28(12)*E**(2) + cGAD28(13)*E + cGAD28(14))*B**(2) + (cGAD28(15)*E**(4) + cGAD28(16)*E**(3) + cGAD28(17)*E**(2) + cGAD28(18)*E + cGAD28(19))*B + (cGAD28(20)*E**(4) + cGAD28(21)*E**(3) + cGAD28(22)*E**(2) + cGAD28(23)*E + cGAD28(24)) + +end function get_M2_NO_XE_GAD_DIFF_1 + +double precision function get_M2_NO_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD29 = (/ & + 1.30492601174e-08, & + -1.80347607109e-07, & + 9.44741766736e-07, & + -2.21510836399e-06, & + 1.96154351854e-06, & + -2.54647821777e-06, & + 3.54526950030e-05, & + -1.87086339140e-04, & + 4.41971368481e-04, & + -3.94673979150e-04, & + 1.75724894271e-04, & + -2.45657644976e-03, & + 1.30132015083e-02, & + -3.08588830521e-02, & + 2.77027969728e-02, & + -4.98532939081e-03, & + 6.96549539714e-02, & + -3.68520986745e-01, & + 8.72293184988e-01, & + -7.84048990936e-01, & + 4.85866801043e-02, & + -6.75430023168e-01, & + 3.55005705787e+00, & + -8.32549922268e+00, & + 7.39736995585e+00 & + /) + get_M2_NO_XE_GAD_DIFF_2 = (cGAD29(0)*E**(4) + cGAD29(1)*E**(3) + cGAD29(2)*E**(2) + cGAD29(3)*E + cGAD29(4))*B**(4) + (cGAD29(5)*E**(4) + cGAD29(6)*E**(3) + cGAD29(7)*E**(2) + cGAD29(8)*E + cGAD29(9))*B**(3) + (cGAD29(10)*E**(4) + cGAD29(11)*E**(3) + cGAD29(12)*E**(2) + cGAD29(13)*E + cGAD29(14))*B**(2) + (cGAD29(15)*E**(4) + cGAD29(16)*E**(3) + cGAD29(17)*E**(2) + cGAD29(18)*E + cGAD29(19))*B + (cGAD29(20)*E**(4) + cGAD29(21)*E**(3) + cGAD29(22)*E**(2) + cGAD29(23)*E + cGAD29(24)) + +end function get_M2_NO_XE_GAD_DIFF_2 + +double precision function get_M2_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD30 = (/ & + -8.19461992187e-03, & + 1.39976584857e-01, & + -9.11720256309e-01, & + 2.76878482267e+00, & + -3.66894073798e+00, & + 6.64686217832e-03, & + -1.21027823649e-01, & + 8.92647984349e-01, & + -3.59427839169e+00, & + 9.87062618430e+00 & + /) + get_M2_XE_GAD_DIFF_0 = (cGAD30(0)*E**(4) + cGAD30(1)*E**(3) + cGAD30(2)*E**(2) + cGAD30(3)*E + cGAD30(4))*B + (cGAD30(5)*E**(4) + cGAD30(6)*E**(3) + cGAD30(7)*E**(2) + cGAD30(8)*E + cGAD30(9)) + +end function get_M2_XE_GAD_DIFF_0 + +double precision function get_M2_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD31 = (/ & + 1.60548330223e-05, & + -2.83504150318e-04, & + 1.84870698864e-03, & + -5.23832801568e-03, & + 5.37920897173e-03, & + -5.69329443584e-04, & + 1.01459927358e-02, & + -6.68726151239e-02, & + 1.91922058310e-01, & + -2.00190409333e-01, & + 6.91164068170e-03, & + -1.24597403438e-01, & + 8.32181571597e-01, & + -2.42639600757e+00, & + 2.58137214400e+00, & + -3.33647473908e-02, & + 6.09931232163e-01, & + -4.13615322189e+00, & + 1.22692761808e+01, & + -1.33237757661e+01, & + 5.58737744872e-02, & + -1.03638211273e+00, & + 7.10795818605e+00, & + -2.11725523727e+01, & + 2.25364695966e+01, & + -2.24097348523e-02, & + 4.17750877133e-01, & + -2.81727554601e+00, & + 7.59548729294e+00, & + -2.51244192833e+00 & + /) + get_M2_XE_GAD_DIFF_1 = (cGAD31(0)*E**(4) + cGAD31(1)*E**(3) + cGAD31(2)*E**(2) + cGAD31(3)*E + cGAD31(4))*B**(5) + (cGAD31(5)*E**(4) + cGAD31(6)*E**(3) + cGAD31(7)*E**(2) + cGAD31(8)*E + cGAD31(9))*B**(4) + (cGAD31(10)*E**(4) + cGAD31(11)*E**(3) + cGAD31(12)*E**(2) + cGAD31(13)*E + cGAD31(14))*B**(3) + (cGAD31(15)*E**(4) + cGAD31(16)*E**(3) + cGAD31(17)*E**(2) + cGAD31(18)*E + cGAD31(19))*B**(2) + (cGAD31(20)*E**(4) + cGAD31(21)*E**(3) + cGAD31(22)*E**(2) + cGAD31(23)*E + cGAD31(24))*B + (cGAD31(25)*E**(4) + cGAD31(26)*E**(3) + cGAD31(27)*E**(2) + cGAD31(28)*E + cGAD31(29)) + +end function get_M2_XE_GAD_DIFF_1 + +double precision function get_M2_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD32 = (/ & + -4.12967781622e-10, & + 5.03216754307e-09, & + -2.30186006455e-08, & + 4.66123201113e-08, & + -3.51348500159e-08, & + 9.13457167327e-08, & + -1.09441887863e-06, & + 4.89268542224e-06, & + -9.60525417305e-06, & + 6.94538336038e-06, & + -7.77621723145e-06, & + 9.14309877323e-05, & + -3.98048156106e-04, & + 7.52527108626e-04, & + -5.15765766457e-04, & + 3.17842429573e-04, & + -3.66303945365e-03, & + 1.54789736681e-02, & + -2.79663221164e-02, & + 1.78930594080e-02, & + -6.26449678667e-03, & + 7.09404085226e-02, & + -2.91366851221e-01, & + 5.01751982854e-01, & + -2.97521997021e-01, & + 4.82534626573e-02, & + -5.42891315012e-01, & + 2.19842687402e+00, & + -3.66601399224e+00, & + 2.02490844453e+00 & + /) + get_M2_XE_GAD_DIFF_2 = (cGAD32(0)*E**(4) + cGAD32(1)*E**(3) + cGAD32(2)*E**(2) + cGAD32(3)*E + cGAD32(4))*B**(5) + (cGAD32(5)*E**(4) + cGAD32(6)*E**(3) + cGAD32(7)*E**(2) + cGAD32(8)*E + cGAD32(9))*B**(4) + (cGAD32(10)*E**(4) + cGAD32(11)*E**(3) + cGAD32(12)*E**(2) + cGAD32(13)*E + cGAD32(14))*B**(3) + (cGAD32(15)*E**(4) + cGAD32(16)*E**(3) + cGAD32(17)*E**(2) + cGAD32(18)*E + cGAD32(19))*B**(2) + (cGAD32(20)*E**(4) + cGAD32(21)*E**(3) + cGAD32(22)*E**(2) + cGAD32(23)*E + cGAD32(24))*B + (cGAD32(25)*E**(4) + cGAD32(26)*E**(3) + cGAD32(27)*E**(2) + cGAD32(28)*E + cGAD32(29)) + +end function get_M2_XE_GAD_DIFF_2 + +double precision function get_NUFISS1_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD33 = (/ & + -9.10324195862e-08, & + 1.67504671184e-06, & + -1.19842852046e-05, & + 4.17571105830e-05, & + -6.29944174825e-05, & + -1.36595949221e-07, & + 4.97987305105e-07, & + 1.10166750252e-05, & + -8.09348755726e-05, & + 1.00175437082e-04 & + /) + get_NUFISS1_GAD_DIFF_0 = (cGAD33(0)*E**(4) + cGAD33(1)*E**(3) + cGAD33(2)*E**(2) + cGAD33(3)*E + cGAD33(4))*B + (cGAD33(5)*E**(4) + cGAD33(6)*E**(3) + cGAD33(7)*E**(2) + cGAD33(8)*E + cGAD33(9)) + +end function get_NUFISS1_GAD_DIFF_0 + +double precision function get_NUFISS1_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD34 = (/ & + -1.43439482502e-10, & + 2.77126444490e-09, & + -1.94093024344e-08, & + 5.75750392037e-08, & + -5.96122388635e-08, & + 4.55133229904e-09, & + -9.07405891683e-08, & + 6.53969452479e-07, & + -1.99312529598e-06, & + 2.11862635971e-06, & + -5.30240571859e-08, & + 1.08176418855e-06, & + -7.98557013794e-06, & + 2.50014253158e-05, & + -2.74664793386e-05, & + 3.41151921517e-07, & + -6.73904037806e-06, & + 4.89591690092e-05, & + -1.53570012646e-04, & + 1.73379917740e-04, & + -1.23390737432e-06, & + 2.28493177233e-05, & + -1.58081536083e-04, & + 4.83033624968e-04, & + -5.50604129539e-04, & + 5.28854640653e-07, & + -1.16120008215e-05, & + 9.33153503773e-05, & + -3.26676126148e-04, & + 3.69639618573e-04 & + /) + get_NUFISS1_GAD_DIFF_1 = (cGAD34(0)*E**(4) + cGAD34(1)*E**(3) + cGAD34(2)*E**(2) + cGAD34(3)*E + cGAD34(4))*B**(5) + (cGAD34(5)*E**(4) + cGAD34(6)*E**(3) + cGAD34(7)*E**(2) + cGAD34(8)*E + cGAD34(9))*B**(4) + (cGAD34(10)*E**(4) + cGAD34(11)*E**(3) + cGAD34(12)*E**(2) + cGAD34(13)*E + cGAD34(14))*B**(3) + (cGAD34(15)*E**(4) + cGAD34(16)*E**(3) + cGAD34(17)*E**(2) + cGAD34(18)*E + cGAD34(19))*B**(2) + (cGAD34(20)*E**(4) + cGAD34(21)*E**(3) + cGAD34(22)*E**(2) + cGAD34(23)*E + cGAD34(24))*B + (cGAD34(25)*E**(4) + cGAD34(26)*E**(3) + cGAD34(27)*E**(2) + cGAD34(28)*E + cGAD34(29)) + +end function get_NUFISS1_GAD_DIFF_1 + +double precision function get_NUFISS1_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD35 = (/ & + -3.64641868952e-13, & + 6.29295644951e-12, & + -3.98404764994e-11, & + 1.09684358025e-10, & + -1.10813420540e-10, & + 7.77508280922e-11, & + -1.34816518824e-09, & + 8.57074861177e-09, & + -2.36838098850e-08, & + 2.40063129778e-08, & + -6.28464960179e-09, & + 1.09606052112e-07, & + -7.00320034433e-07, & + 1.94392521121e-06, & + -1.97844215334e-06, & + 2.38222995572e-07, & + -4.18420781820e-06, & + 2.68940003756e-05, & + -7.50348082564e-05, & + 7.67229857406e-05, & + -4.18577978726e-06, & + 7.41743899883e-05, & + -4.80098906313e-04, & + 1.34663512890e-03, & + -1.38223627028e-03, & + 2.68784007125e-05, & + -4.82460462189e-04, & + 3.15511199033e-03, & + -8.91339603616e-03, & + 9.15517471998e-03 & + /) + get_NUFISS1_GAD_DIFF_2 = (cGAD35(0)*E**(4) + cGAD35(1)*E**(3) + cGAD35(2)*E**(2) + cGAD35(3)*E + cGAD35(4))*B**(5) + (cGAD35(5)*E**(4) + cGAD35(6)*E**(3) + cGAD35(7)*E**(2) + cGAD35(8)*E + cGAD35(9))*B**(4) + (cGAD35(10)*E**(4) + cGAD35(11)*E**(3) + cGAD35(12)*E**(2) + cGAD35(13)*E + cGAD35(14))*B**(3) + (cGAD35(15)*E**(4) + cGAD35(16)*E**(3) + cGAD35(17)*E**(2) + cGAD35(18)*E + cGAD35(19))*B**(2) + (cGAD35(20)*E**(4) + cGAD35(21)*E**(3) + cGAD35(22)*E**(2) + cGAD35(23)*E + cGAD35(24))*B + (cGAD35(25)*E**(4) + cGAD35(26)*E**(3) + cGAD35(27)*E**(2) + cGAD35(28)*E + cGAD35(29)) + +end function get_NUFISS1_GAD_DIFF_2 + +double precision function get_K2_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD36 = (/ & + -2.73162891283e-05, & + 5.77892111697e-04, & + -5.27133066214e-03, & + 2.64517946622e-02, & + -7.20620924215e-02, & + -3.91621562645e-05, & + 9.26954334439e-04, & + -6.49794548596e-03, & + -5.19995199945e-03, & + 3.19195329763e-01 & + /) + get_K2_GAD_DIFF_0 = (cGAD36(0)*E**(4) + cGAD36(1)*E**(3) + cGAD36(2)*E**(2) + cGAD36(3)*E + cGAD36(4))*B + (cGAD36(5)*E**(4) + cGAD36(6)*E**(3) + cGAD36(7)*E**(2) + cGAD36(8)*E + cGAD36(9)) + +end function get_K2_GAD_DIFF_0 + +double precision function get_K2_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD37 = (/ & + 1.02965761694e-06, & + -1.82105943560e-05, & + 1.18890882625e-04, & + -3.37108082808e-04, & + 3.46188332038e-04, & + -3.63686996132e-05, & + 6.49125057139e-04, & + -4.28327331336e-03, & + 1.22997846222e-02, & + -1.28267134742e-02, & + 4.40729679661e-04, & + -7.95493147362e-03, & + 5.31749551747e-02, & + -1.55081348450e-01, & + 1.64888127966e-01, & + -2.14329787838e-03, & + 3.91883865393e-02, & + -2.65737754230e-01, & + 7.87967085575e-01, & + -8.54982797720e-01, & + 3.75048113980e-03, & + -6.94338822312e-02, & + 4.75898634038e-01, & + -1.41969487761e+00, & + 1.52001776555e+00, & + -1.73963045345e-03, & + 3.28146967578e-02, & + -2.28186836237e-01, & + 6.68695455668e-01, & + -4.31445882052e-01 & + /) + get_K2_GAD_DIFF_1 = (cGAD37(0)*E**(4) + cGAD37(1)*E**(3) + cGAD37(2)*E**(2) + cGAD37(3)*E + cGAD37(4))*B**(5) + (cGAD37(5)*E**(4) + cGAD37(6)*E**(3) + cGAD37(7)*E**(2) + cGAD37(8)*E + cGAD37(9))*B**(4) + (cGAD37(10)*E**(4) + cGAD37(11)*E**(3) + cGAD37(12)*E**(2) + cGAD37(13)*E + cGAD37(14))*B**(3) + (cGAD37(15)*E**(4) + cGAD37(16)*E**(3) + cGAD37(17)*E**(2) + cGAD37(18)*E + cGAD37(19))*B**(2) + (cGAD37(20)*E**(4) + cGAD37(21)*E**(3) + cGAD37(22)*E**(2) + cGAD37(23)*E + cGAD37(24))*B + (cGAD37(25)*E**(4) + cGAD37(26)*E**(3) + cGAD37(27)*E**(2) + cGAD37(28)*E + cGAD37(29)) + +end function get_K2_GAD_DIFF_1 + +double precision function get_K2_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD38 = (/ & + -3.59281601243e-11, & + 4.37322301264e-10, & + -1.96248410387e-09, & + 3.80721504046e-09, & + -2.64743995551e-09, & + 8.38814022027e-09, & + -1.02761141387e-07, & + 4.65284383640e-07, & + -9.14197149303e-07, & + 6.47699707935e-07, & + -7.55644209328e-07, & + 9.31711049035e-06, & + -4.25690699872e-05, & + 8.47397751156e-05, & + -6.12309946951e-05, & + 3.26427188609e-05, & + -4.04823177973e-04, & + 1.86446016476e-03, & + -3.75496727690e-03, & + 2.76391195529e-03, & + -6.73523239203e-04, & + 8.39457080598e-03, & + -3.89002850854e-02, & + 7.89709185655e-02, & + -5.89320198561e-02, & + 5.32310738489e-03, & + -6.67874214935e-02, & + 3.11569742308e-01, & + -6.35247661425e-01, & + 4.79067949548e-01 & + /) + get_K2_GAD_DIFF_2 = (cGAD38(0)*E**(4) + cGAD38(1)*E**(3) + cGAD38(2)*E**(2) + cGAD38(3)*E + cGAD38(4))*B**(5) + (cGAD38(5)*E**(4) + cGAD38(6)*E**(3) + cGAD38(7)*E**(2) + cGAD38(8)*E + cGAD38(9))*B**(4) + (cGAD38(10)*E**(4) + cGAD38(11)*E**(3) + cGAD38(12)*E**(2) + cGAD38(13)*E + cGAD38(14))*B**(3) + (cGAD38(15)*E**(4) + cGAD38(16)*E**(3) + cGAD38(17)*E**(2) + cGAD38(18)*E + cGAD38(19))*B**(2) + (cGAD38(20)*E**(4) + cGAD38(21)*E**(3) + cGAD38(22)*E**(2) + cGAD38(23)*E + cGAD38(24))*B + (cGAD38(25)*E**(4) + cGAD38(26)*E**(3) + cGAD38(27)*E**(2) + cGAD38(28)*E + cGAD38(29)) + +end function get_K2_GAD_DIFF_2 + +double precision function get_K1_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD39 = (/ & + -6.18323638300e-09, & + 4.74475156601e-05, & + -6.01550180456e-04, & + 2.77892773863e-03, & + -5.90603683487e-03, & + -2.91369930236e-05, & + 4.26977612584e-04, & + -2.30028393737e-03, & + 5.69535960069e-03, & + 5.84997829516e-03 & + /) + get_K1_GAD_DIFF_0 = (cGAD39(0)*E**(4) + cGAD39(1)*E**(3) + cGAD39(2)*E**(2) + cGAD39(3)*E + cGAD39(4))*B + (cGAD39(5)*E**(4) + cGAD39(6)*E**(3) + cGAD39(7)*E**(2) + cGAD39(8)*E + cGAD39(9)) + +end function get_K1_GAD_DIFF_0 + +double precision function get_K1_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD40 = (/ & + 2.37842927033e-08, & + -4.45212823601e-07, & + 3.06631173056e-06, & + -9.15580434665e-06, & + 9.90373395517e-06, & + -7.66315858052e-07, & + 1.46847467757e-05, & + -1.03373092594e-04, & + 3.15310550321e-04, & + -3.48606031733e-04, & + 7.88778739341e-06, & + -1.57509712815e-04, & + 1.14876098319e-03, & + -3.61813178392e-03, & + 4.12656486421e-03, & + -2.60586723718e-05, & + 5.77350466423e-04, & + -4.54037758885e-03, & + 1.51446302624e-02, & + -1.80536295366e-02, & + 6.62662587290e-06, & + -3.83452846215e-04, & + 4.18875930070e-03, & + -1.63051117107e-02, & + 1.93428534615e-02, & + -1.63381814293e-05, & + 3.70932140182e-04, & + -3.00379015714e-03, & + 1.06348498096e-02, & + -2.19983142784e-03 & + /) + get_K1_GAD_DIFF_1 = (cGAD40(0)*E**(4) + cGAD40(1)*E**(3) + cGAD40(2)*E**(2) + cGAD40(3)*E + cGAD40(4))*B**(5) + (cGAD40(5)*E**(4) + cGAD40(6)*E**(3) + cGAD40(7)*E**(2) + cGAD40(8)*E + cGAD40(9))*B**(4) + (cGAD40(10)*E**(4) + cGAD40(11)*E**(3) + cGAD40(12)*E**(2) + cGAD40(13)*E + cGAD40(14))*B**(3) + (cGAD40(15)*E**(4) + cGAD40(16)*E**(3) + cGAD40(17)*E**(2) + cGAD40(18)*E + cGAD40(19))*B**(2) + (cGAD40(20)*E**(4) + cGAD40(21)*E**(3) + cGAD40(22)*E**(2) + cGAD40(23)*E + cGAD40(24))*B + (cGAD40(25)*E**(4) + cGAD40(26)*E**(3) + cGAD40(27)*E**(2) + cGAD40(28)*E + cGAD40(29)) + +end function get_K1_GAD_DIFF_1 + +double precision function get_K1_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD41 = (/ & + -1.74904752274e-11, & + 2.89198184403e-10, & + -1.77250825008e-09, & + 4.75860736367e-09, & + -4.71175412942e-09, & + 3.84918899473e-09, & + -6.37056298352e-08, & + 3.90985739400e-07, & + -1.05140765982e-06, & + 1.04294914540e-06, & + -3.22696610439e-07, & + 5.34591362716e-06, & + -3.28572988374e-05, & + 8.85180310206e-05, & + -8.79923370069e-05, & + 1.27637096035e-05, & + -2.11609539014e-04, & + 1.30224832286e-03, & + -3.51398443654e-03, & + 3.50027045525e-03, & + -2.35980785330e-04, & + 3.91373829198e-03, & + -2.41041770994e-02, & + 6.50914923249e-02, & + -6.48742959910e-02, & + 1.62463840244e-03, & + -2.69549832541e-02, & + 1.66215687029e-01, & + -4.49065795267e-01, & + 4.46200336458e-01 & + /) + get_K1_GAD_DIFF_2 = (cGAD41(0)*E**(4) + cGAD41(1)*E**(3) + cGAD41(2)*E**(2) + cGAD41(3)*E + cGAD41(4))*B**(5) + (cGAD41(5)*E**(4) + cGAD41(6)*E**(3) + cGAD41(7)*E**(2) + cGAD41(8)*E + cGAD41(9))*B**(4) + (cGAD41(10)*E**(4) + cGAD41(11)*E**(3) + cGAD41(12)*E**(2) + cGAD41(13)*E + cGAD41(14))*B**(3) + (cGAD41(15)*E**(4) + cGAD41(16)*E**(3) + cGAD41(17)*E**(2) + cGAD41(18)*E + cGAD41(19))*B**(2) + (cGAD41(20)*E**(4) + cGAD41(21)*E**(3) + cGAD41(22)*E**(2) + cGAD41(23)*E + cGAD41(24))*B + (cGAD41(25)*E**(4) + cGAD41(26)*E**(3) + cGAD41(27)*E**(2) + cGAD41(28)*E + cGAD41(29)) + +end function get_K1_GAD_DIFF_2 + +double precision function get_NUFISS2_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD42 = (/ & + 1.82100978106e-05, & + -2.54939650107e-04, & + 1.21203967094e-03, & + -1.89124978708e-03, & + -1.52975164994e-03, & + -2.36743077116e-05, & + 3.89715513894e-04, & + -2.50583391400e-03, & + 9.54714695957e-03, & + -4.82160764418e-03 & + /) + get_NUFISS2_GAD_DIFF_0 = (cGAD42(0)*E**(4) + cGAD42(1)*E**(3) + cGAD42(2)*E**(2) + cGAD42(3)*E + cGAD42(4))*B + (cGAD42(5)*E**(4) + cGAD42(6)*E**(3) + cGAD42(7)*E**(2) + cGAD42(8)*E + cGAD42(9)) + +end function get_NUFISS2_GAD_DIFF_0 + +double precision function get_NUFISS2_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD43 = (/ & + 2.92509755382e-08, & + -5.61220470417e-07, & + 3.93937302522e-06, & + -1.19123771820e-05, & + 1.29584925378e-05, & + -9.15599732908e-07, & + 1.80529373987e-05, & + -1.29827915431e-04, & + 4.01486360971e-04, & + -4.46175797056e-04, & + 9.26924448645e-06, & + -1.90841423209e-04, & + 1.42198814995e-03, & + -4.53435658428e-03, & + 5.18262844673e-03, & + -3.45024400339e-05, & + 7.64703925209e-04, & + -6.00446843330e-03, & + 1.99065132035e-02, & + -2.34193856866e-02, & + 4.55679942617e-05, & + -1.12327866663e-03, & + 9.38048213212e-03, & + -3.21141036352e-02, & + 3.65572369550e-02, & + -3.01810721261e-05, & + 6.97259287384e-04, & + -5.77388604643e-03, & + 2.24070491358e-02, & + -2.16657560068e-02 & + /) + get_NUFISS2_GAD_DIFF_1 = (cGAD43(0)*E**(4) + cGAD43(1)*E**(3) + cGAD43(2)*E**(2) + cGAD43(3)*E + cGAD43(4))*B**(5) + (cGAD43(5)*E**(4) + cGAD43(6)*E**(3) + cGAD43(7)*E**(2) + cGAD43(8)*E + cGAD43(9))*B**(4) + (cGAD43(10)*E**(4) + cGAD43(11)*E**(3) + cGAD43(12)*E**(2) + cGAD43(13)*E + cGAD43(14))*B**(3) + (cGAD43(15)*E**(4) + cGAD43(16)*E**(3) + cGAD43(17)*E**(2) + cGAD43(18)*E + cGAD43(19))*B**(2) + (cGAD43(20)*E**(4) + cGAD43(21)*E**(3) + cGAD43(22)*E**(2) + cGAD43(23)*E + cGAD43(24))*B + (cGAD43(25)*E**(4) + cGAD43(26)*E**(3) + cGAD43(27)*E**(2) + cGAD43(28)*E + cGAD43(29)) + +end function get_NUFISS2_GAD_DIFF_1 + +double precision function get_NUFISS2_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD44 = (/ & + -3.04412565727e-12, & + 3.43564475101e-11, & + -1.33732050770e-10, & + 1.93652657043e-10, & + -4.74697298468e-11, & + 6.78149750061e-10, & + -7.63159943457e-09, & + 2.96854213067e-08, & + -4.32561326839e-08, & + 1.09556912773e-08, & + -5.92381611192e-08, & + 6.69579254573e-07, & + -2.63890124482e-06, & + 4.00396940377e-06, & + -1.27243965866e-06, & + 2.53293444159e-06, & + -2.89556150244e-05, & + 1.16881472211e-04, & + -1.88450987583e-04, & + 7.72925354090e-05, & + -5.26598496143e-05, & + 6.11914347925e-04, & + -2.54260729589e-03, & + 4.35546539912e-03, & + -2.10885233279e-03, & + 4.17304993178e-04, & + -4.94327547304e-03, & + 2.12608672153e-02, & + -3.89294937096e-02, & + 1.98612887892e-02 & + /) + get_NUFISS2_GAD_DIFF_2 = (cGAD44(0)*E**(4) + cGAD44(1)*E**(3) + cGAD44(2)*E**(2) + cGAD44(3)*E + cGAD44(4))*B**(5) + (cGAD44(5)*E**(4) + cGAD44(6)*E**(3) + cGAD44(7)*E**(2) + cGAD44(8)*E + cGAD44(9))*B**(4) + (cGAD44(10)*E**(4) + cGAD44(11)*E**(3) + cGAD44(12)*E**(2) + cGAD44(13)*E + cGAD44(14))*B**(3) + (cGAD44(15)*E**(4) + cGAD44(16)*E**(3) + cGAD44(17)*E**(2) + cGAD44(18)*E + cGAD44(19))*B**(2) + (cGAD44(20)*E**(4) + cGAD44(21)*E**(3) + cGAD44(22)*E**(2) + cGAD44(23)*E + cGAD44(24))*B + (cGAD44(25)*E**(4) + cGAD44(26)*E**(3) + cGAD44(27)*E**(2) + cGAD44(28)*E + cGAD44(29)) + +end function get_NUFISS2_GAD_DIFF_2 + +double precision function get_BOR1_NO_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD45 = (/ & + -3.18700932044e-08, & + 4.47397274441e-07, & + -2.21617944392e-06, & + 4.26671839006e-06, & + -1.60855839233e-06, & + 1.36709908395e-09, & + 2.78423332892e-08, & + -6.52031292652e-07, & + 4.74489778678e-06, & + -1.68821937993e-05 & + /) + get_BOR1_NO_XE_GAD_DIFF_0 = (cGAD45(0)*E**(4) + cGAD45(1)*E**(3) + cGAD45(2)*E**(2) + cGAD45(3)*E + cGAD45(4))*B + (cGAD45(5)*E**(4) + cGAD45(6)*E**(3) + cGAD45(7)*E**(2) + cGAD45(8)*E + cGAD45(9)) + +end function get_BOR1_NO_XE_GAD_DIFF_0 + +double precision function get_BOR1_NO_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD46 = (/ & + -3.33344344226e-11, & + 5.91299070189e-10, & + -3.86230718743e-09, & + 1.09230426684e-08, & + -1.11438704277e-08, & + 1.20644780779e-09, & + -2.15864359599e-08, & + 1.42483871893e-07, & + -4.08205724431e-07, & + 4.23325368514e-07, & + -1.49708100887e-08, & + 2.70788271867e-07, & + -1.81057521713e-06, & + 5.27012563167e-06, & + -5.57788825354e-06, & + 7.39279217633e-08, & + -1.35472336836e-06, & + 9.19173793469e-06, & + -2.72188356174e-05, & + 2.94351198404e-05, & + -1.26388595526e-07, & + 2.34753002281e-06, & + -1.60983001726e-05, & + 4.78864403292e-05, & + -5.10674001918e-05, & + 4.93255044457e-08, & + -9.28976051086e-07, & + 6.31079711933e-06, & + -1.71170027500e-05, & + 7.96743201456e-06 & + /) + get_BOR1_NO_XE_GAD_DIFF_1 = (cGAD46(0)*E**(4) + cGAD46(1)*E**(3) + cGAD46(2)*E**(2) + cGAD46(3)*E + cGAD46(4))*B**(5) + (cGAD46(5)*E**(4) + cGAD46(6)*E**(3) + cGAD46(7)*E**(2) + cGAD46(8)*E + cGAD46(9))*B**(4) + (cGAD46(10)*E**(4) + cGAD46(11)*E**(3) + cGAD46(12)*E**(2) + cGAD46(13)*E + cGAD46(14))*B**(3) + (cGAD46(15)*E**(4) + cGAD46(16)*E**(3) + cGAD46(17)*E**(2) + cGAD46(18)*E + cGAD46(19))*B**(2) + (cGAD46(20)*E**(4) + cGAD46(21)*E**(3) + cGAD46(22)*E**(2) + cGAD46(23)*E + cGAD46(24))*B + (cGAD46(25)*E**(4) + cGAD46(26)*E**(3) + cGAD46(27)*E**(2) + cGAD46(28)*E + cGAD46(29)) + +end function get_BOR1_NO_XE_GAD_DIFF_1 + +double precision function get_BOR1_NO_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD47 = (/ & + 2.57173144281e-16, & + -3.86265827258e-15, & + 2.52155648771e-14, & + -7.52401986092e-14, & + 8.08448350425e-14, & + -7.99533270400e-15, & + 7.24035264019e-14, & + -9.92852468697e-13, & + 4.90362675879e-12, & + -6.71775857128e-12, & + -4.78536961391e-12, & + 8.16716366135e-11, & + -4.32758239953e-10, & + 9.10629482305e-10, & + -6.90537236840e-10, & + 4.83547659939e-10, & + -7.99759544218e-09, & + 4.53428290393e-08, & + -1.08742891610e-07, & + 9.65873983874e-08, & + -1.62777705710e-08, & + 2.67859728900e-07, & + -1.55573654803e-06, & + 3.88001753503e-06, & + -3.59625135987e-06, & + 1.72688309845e-07, & + -2.84503043884e-06, & + 1.67360363215e-05, & + -4.25621206525e-05, & + 4.09658240681e-05 & + /) + get_BOR1_NO_XE_GAD_DIFF_2 = (cGAD47(0)*E**(4) + cGAD47(1)*E**(3) + cGAD47(2)*E**(2) + cGAD47(3)*E + cGAD47(4))*B**(5) + (cGAD47(5)*E**(4) + cGAD47(6)*E**(3) + cGAD47(7)*E**(2) + cGAD47(8)*E + cGAD47(9))*B**(4) + (cGAD47(10)*E**(4) + cGAD47(11)*E**(3) + cGAD47(12)*E**(2) + cGAD47(13)*E + cGAD47(14))*B**(3) + (cGAD47(15)*E**(4) + cGAD47(16)*E**(3) + cGAD47(17)*E**(2) + cGAD47(18)*E + cGAD47(19))*B**(2) + (cGAD47(20)*E**(4) + cGAD47(21)*E**(3) + cGAD47(22)*E**(2) + cGAD47(23)*E + cGAD47(24))*B + (cGAD47(25)*E**(4) + cGAD47(26)*E**(3) + cGAD47(27)*E**(2) + cGAD47(28)*E + cGAD47(29)) + +end function get_BOR1_NO_XE_GAD_DIFF_2 + +double precision function get_BOR2_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD48 = (/ & + -2.27597318031e-02, & + 3.68404736469e-01, & + -2.20442158847e+00, & + 5.69813866382e+00, & + -4.97933945899e+00, & + 9.56071739652e-03, & + -1.63108923390e-01, & + 1.13801772696e+00, & + -4.68933019474e+00, & + 1.19674168013e+01 & + /) + get_BOR2_XE_GAD_DIFF_0 = (cGAD48(0)*E**(4) + cGAD48(1)*E**(3) + cGAD48(2)*E**(2) + cGAD48(3)*E + cGAD48(4))*B + (cGAD48(5)*E**(4) + cGAD48(6)*E**(3) + cGAD48(7)*E**(2) + cGAD48(8)*E + cGAD48(9)) + +end function get_BOR2_XE_GAD_DIFF_0 + +double precision function get_BOR2_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD49 = (/ & + 8.95840171642e-05, & + -1.21936230184e-03, & + 5.23277237134e-03, & + -6.02059433641e-03, & + -4.02619750228e-03, & + -3.04400122190e-03, & + 4.33000454102e-02, & + -2.02811704775e-01, & + 3.10768551269e-01, & + -4.79140549463e-04, & + 3.31990251794e-02, & + -4.94240114404e-01, & + 2.51377983413e+00, & + -4.71125089499e+00, & + 1.77020579338e+00, & + -1.23086184224e-01, & + 1.91577484737e+00, & + -1.05232481095e+01, & + 2.31580793402e+01, & + -1.51296947892e+01, & + 9.54605124911e-02, & + -1.52753513048e+00, & + 8.87474019556e+00, & + -2.27426669441e+01, & + 2.57662311096e+01 & + /) + get_BOR2_XE_GAD_DIFF_1 = (cGAD49(0)*E**(4) + cGAD49(1)*E**(3) + cGAD49(2)*E**(2) + cGAD49(3)*E + cGAD49(4))*B**(4) + (cGAD49(5)*E**(4) + cGAD49(6)*E**(3) + cGAD49(7)*E**(2) + cGAD49(8)*E + cGAD49(9))*B**(3) + (cGAD49(10)*E**(4) + cGAD49(11)*E**(3) + cGAD49(12)*E**(2) + cGAD49(13)*E + cGAD49(14))*B**(2) + (cGAD49(15)*E**(4) + cGAD49(16)*E**(3) + cGAD49(17)*E**(2) + cGAD49(18)*E + cGAD49(19))*B + (cGAD49(20)*E**(4) + cGAD49(21)*E**(3) + cGAD49(22)*E**(2) + cGAD49(23)*E + cGAD49(24)) + +end function get_BOR2_XE_GAD_DIFF_1 + +double precision function get_BOR2_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD50 = (/ & + -1.65892303397e-08, & + 3.95106691377e-07, & + -2.94453178604e-06, & + 8.90177322112e-06, & + -9.51879120771e-06, & + 2.23301234840e-06, & + -5.93292179775e-05, & + 4.60795380045e-04, & + -1.42308341112e-03, & + 1.54322775630e-03, & + -7.11593398193e-05, & + 2.66744972189e-03, & + -2.27980157331e-02, & + 7.34677605259e-02, & + -8.16570307570e-02, & + -7.61716176684e-04, & + -2.94400433345e-02, & + 3.61101678489e-01, & + -1.30338169743e+00, & + 1.52238481215e+00, & + 3.38233259361e-02, & + -1.37316513939e-01, & + -9.75959735426e-01, & + 5.84747324053e+00, & + -7.31620068465e+00 & + /) + get_BOR2_XE_GAD_DIFF_2 = (cGAD50(0)*E**(4) + cGAD50(1)*E**(3) + cGAD50(2)*E**(2) + cGAD50(3)*E + cGAD50(4))*B**(4) + (cGAD50(5)*E**(4) + cGAD50(6)*E**(3) + cGAD50(7)*E**(2) + cGAD50(8)*E + cGAD50(9))*B**(3) + (cGAD50(10)*E**(4) + cGAD50(11)*E**(3) + cGAD50(12)*E**(2) + cGAD50(13)*E + cGAD50(14))*B**(2) + (cGAD50(15)*E**(4) + cGAD50(16)*E**(3) + cGAD50(17)*E**(2) + cGAD50(18)*E + cGAD50(19))*B + (cGAD50(20)*E**(4) + cGAD50(21)*E**(3) + cGAD50(22)*E**(2) + cGAD50(23)*E + cGAD50(24)) + +end function get_BOR2_XE_GAD_DIFF_2 + +double precision function get_REMOV1_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD51 = (/ & + -1.36590053589e-06, & + 1.93655777575e-05, & + -9.64709214242e-05, & + 1.77639496488e-04, & + -1.62310435252e-05, & + 8.65061464511e-07, & + -1.05812662104e-05, & + 2.57638668205e-05, & + 1.93888206151e-04, & + -1.25921415784e-03 & + /) + get_REMOV1_GAD_DIFF_0 = (cGAD51(0)*E**(4) + cGAD51(1)*E**(3) + cGAD51(2)*E**(2) + cGAD51(3)*E + cGAD51(4))*B + (cGAD51(5)*E**(4) + cGAD51(6)*E**(3) + cGAD51(7)*E**(2) + cGAD51(8)*E + cGAD51(9)) + +end function get_REMOV1_GAD_DIFF_0 + +double precision function get_REMOV1_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD52 = (/ & + -3.18943506021e-09, & + 5.62493415126e-08, & + -3.65240463368e-07, & + 1.02726449296e-06, & + -1.04350225067e-06, & + 1.15859022638e-07, & + -2.05949863800e-06, & + 1.35027490011e-05, & + -3.84399133379e-05, & + 3.96568358820e-05, & + -1.44047825052e-06, & + 2.58696382636e-05, & + -1.71693730895e-04, & + 4.96217696456e-04, & + -5.22018158940e-04, & + 7.10394922735e-06, & + -1.29247348022e-04, & + 8.70242607147e-04, & + -2.55769578041e-03, & + 2.74772454937e-03, & + -1.20941370549e-05, & + 2.23162943890e-04, & + -1.51909509588e-03, & + 4.48547957993e-03, & + -4.75599950577e-03, & + 5.08919739750e-06, & + -9.39263024388e-05, & + 6.26122263512e-04, & + -1.67307217736e-03, & + 8.42718315212e-04 & + /) + get_REMOV1_GAD_DIFF_1 = (cGAD52(0)*E**(4) + cGAD52(1)*E**(3) + cGAD52(2)*E**(2) + cGAD52(3)*E + cGAD52(4))*B**(5) + (cGAD52(5)*E**(4) + cGAD52(6)*E**(3) + cGAD52(7)*E**(2) + cGAD52(8)*E + cGAD52(9))*B**(4) + (cGAD52(10)*E**(4) + cGAD52(11)*E**(3) + cGAD52(12)*E**(2) + cGAD52(13)*E + cGAD52(14))*B**(3) + (cGAD52(15)*E**(4) + cGAD52(16)*E**(3) + cGAD52(17)*E**(2) + cGAD52(18)*E + cGAD52(19))*B**(2) + (cGAD52(20)*E**(4) + cGAD52(21)*E**(3) + cGAD52(22)*E**(2) + cGAD52(23)*E + cGAD52(24))*B + (cGAD52(25)*E**(4) + cGAD52(26)*E**(3) + cGAD52(27)*E**(2) + cGAD52(28)*E + cGAD52(29)) + +end function get_REMOV1_GAD_DIFF_1 + +double precision function get_REMOV1_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD53 = (/ & + -1.81244860861e-13, & + 3.31827999576e-12, & + -2.16500318521e-11, & + 6.05956016087e-11, & + -6.19491717283e-11, & + 3.98878082087e-11, & + -7.32626001509e-10, & + 4.78527069378e-09, & + -1.33927036756e-08, & + 1.36859797049e-08, & + -3.52562605346e-09, & + 6.46607431622e-08, & + -4.21566576088e-07, & + 1.17734070154e-06, & + -1.20076879623e-06, & + 1.56203462170e-07, & + -2.84720780229e-06, & + 1.84777458790e-05, & + -5.14035581702e-05, & + 5.22670709666e-05, & + -3.38842129865e-06, & + 6.12522408219e-05, & + -3.95284148350e-04, & + 1.09517251283e-03, & + -1.11158134376e-03, & + 2.78223686686e-05, & + -4.98767760298e-04, & + 3.19973116341e-03, & + -8.83084853489e-03, & + 9.01766435036e-03 & + /) + get_REMOV1_GAD_DIFF_2 = (cGAD53(0)*E**(4) + cGAD53(1)*E**(3) + cGAD53(2)*E**(2) + cGAD53(3)*E + cGAD53(4))*B**(5) + (cGAD53(5)*E**(4) + cGAD53(6)*E**(3) + cGAD53(7)*E**(2) + cGAD53(8)*E + cGAD53(9))*B**(4) + (cGAD53(10)*E**(4) + cGAD53(11)*E**(3) + cGAD53(12)*E**(2) + cGAD53(13)*E + cGAD53(14))*B**(3) + (cGAD53(15)*E**(4) + cGAD53(16)*E**(3) + cGAD53(17)*E**(2) + cGAD53(18)*E + cGAD53(19))*B**(2) + (cGAD53(20)*E**(4) + cGAD53(21)*E**(3) + cGAD53(22)*E**(2) + cGAD53(23)*E + cGAD53(24))*B + (cGAD53(25)*E**(4) + cGAD53(26)*E**(3) + cGAD53(27)*E**(2) + cGAD53(28)*E + cGAD53(29)) + +end function get_REMOV1_GAD_DIFF_2 + +double precision function get_DIFF2_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD54 = (/ & + 5.00807866306e-05, & + -8.14040233815e-04, & + 4.89389242473e-03, & + -1.27649495906e-02, & + 1.13160659094e-02, & + -1.41139213783e-05, & + 2.41909106128e-04, & + -1.61347721442e-03, & + 5.24505009114e-03, & + -3.43563517280e-03 & + /) + get_DIFF2_GAD_DIFF_0 = (cGAD54(0)*E**(4) + cGAD54(1)*E**(3) + cGAD54(2)*E**(2) + cGAD54(3)*E + cGAD54(4))*B + (cGAD54(5)*E**(4) + cGAD54(6)*E**(3) + cGAD54(7)*E**(2) + cGAD54(8)*E + cGAD54(9)) + +end function get_DIFF2_GAD_DIFF_0 + +double precision function get_DIFF2_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD55 = (/ & + -4.03184633326e-08, & + 6.64419016857e-07, & + -3.98382927761e-06, & + 1.01878626982e-05, & + -9.23103700944e-06, & + 1.53438973339e-06, & + -2.54694735458e-05, & + 1.54175111671e-04, & + -3.99230055474e-04, & + 3.67653042652e-04, & + -2.05593039727e-05, & + 3.44043782261e-04, & + -2.10563177593e-03, & + 5.53461206624e-03, & + -5.20212035536e-03, & + 1.14685919895e-04, & + -1.93518831230e-03, & + 1.19852151723e-02, & + -3.20521609738e-02, & + 3.09424572462e-02, & + -2.39763791083e-04, & + 4.07207812961e-03, & + -2.54720740860e-02, & + 6.92478529910e-02, & + -6.93861216347e-02, & + 1.21340952595e-04, & + -2.05513030563e-03, & + 1.27569116170e-02, & + -3.38519860264e-02, & + 3.53357259282e-02 & + /) + get_DIFF2_GAD_DIFF_1 = (cGAD55(0)*E**(4) + cGAD55(1)*E**(3) + cGAD55(2)*E**(2) + cGAD55(3)*E + cGAD55(4))*B**(5) + (cGAD55(5)*E**(4) + cGAD55(6)*E**(3) + cGAD55(7)*E**(2) + cGAD55(8)*E + cGAD55(9))*B**(4) + (cGAD55(10)*E**(4) + cGAD55(11)*E**(3) + cGAD55(12)*E**(2) + cGAD55(13)*E + cGAD55(14))*B**(3) + (cGAD55(15)*E**(4) + cGAD55(16)*E**(3) + cGAD55(17)*E**(2) + cGAD55(18)*E + cGAD55(19))*B**(2) + (cGAD55(20)*E**(4) + cGAD55(21)*E**(3) + cGAD55(22)*E**(2) + cGAD55(23)*E + cGAD55(24))*B + (cGAD55(25)*E**(4) + cGAD55(26)*E**(3) + cGAD55(27)*E**(2) + cGAD55(28)*E + cGAD55(29)) + +end function get_DIFF2_GAD_DIFF_1 + +double precision function get_DIFF2_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD56 = (/ & + -1.40798030684e-12, & + 2.42047383672e-11, & + -1.49340362240e-10, & + 3.97714336132e-10, & + -3.92592223511e-10, & + 2.53690793032e-10, & + -4.44623344704e-09, & + 2.77048057070e-08, & + -7.41487436520e-08, & + 7.35651028969e-08, & + -1.67961742810e-08, & + 3.04235514929e-07, & + -1.92877880923e-06, & + 5.21073030357e-06, & + -5.21863070999e-06, & + 4.97881726524e-07, & + -9.57395142621e-06, & + 6.25864840463e-05, & + -1.71922891611e-04, & + 1.75053159056e-04, & + -6.15492501572e-06, & + 1.33957447837e-04, & + -9.26707455321e-04, & + 2.61691261705e-03, & + -2.73786059352e-03, & + 1.98740536131e-05, & + -6.17534586156e-04, & + 4.80438643172e-03, & + -1.41324379133e-02, & + 1.50814830662e-02 & + /) + get_DIFF2_GAD_DIFF_2 = (cGAD56(0)*E**(4) + cGAD56(1)*E**(3) + cGAD56(2)*E**(2) + cGAD56(3)*E + cGAD56(4))*B**(5) + (cGAD56(5)*E**(4) + cGAD56(6)*E**(3) + cGAD56(7)*E**(2) + cGAD56(8)*E + cGAD56(9))*B**(4) + (cGAD56(10)*E**(4) + cGAD56(11)*E**(3) + cGAD56(12)*E**(2) + cGAD56(13)*E + cGAD56(14))*B**(3) + (cGAD56(15)*E**(4) + cGAD56(16)*E**(3) + cGAD56(17)*E**(2) + cGAD56(18)*E + cGAD56(19))*B**(2) + (cGAD56(20)*E**(4) + cGAD56(21)*E**(3) + cGAD56(22)*E**(2) + cGAD56(23)*E + cGAD56(24))*B + (cGAD56(25)*E**(4) + cGAD56(26)*E**(3) + cGAD56(27)*E**(2) + cGAD56(28)*E + cGAD56(29)) + +end function get_DIFF2_GAD_DIFF_2 + +double precision function get_DIFF1_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD57 = (/ & + 2.73159614912e-04, & + -4.01847496449e-03, & + 2.16815106111e-02, & + -5.03130099668e-02, & + 4.03776296706e-02, & + 8.19457319726e-05, & + -1.42889603600e-03, & + 9.36847097817e-03, & + -2.89300172839e-02, & + 4.77097580057e-02 & + /) + get_DIFF1_GAD_DIFF_0 = (cGAD57(0)*E**(4) + cGAD57(1)*E**(3) + cGAD57(2)*E**(2) + cGAD57(3)*E + cGAD57(4))*B + (cGAD57(5)*E**(4) + cGAD57(6)*E**(3) + cGAD57(7)*E**(2) + cGAD57(8)*E + cGAD57(9)) + +end function get_DIFF1_GAD_DIFF_0 + +double precision function get_DIFF1_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD58 = (/ & + 3.39584013061e-08, & + -6.39763008492e-07, & + 4.40103592901e-06, & + -1.29913184127e-05, & + 1.36859753118e-05, & + -9.32059057194e-07, & + 1.86726547325e-05, & + -1.34987330971e-04, & + 4.15407999982e-04, & + -4.53821186016e-04, & + 6.07366306194e-06, & + -1.48041351075e-04, & + 1.21422380443e-03, & + -4.08813748029e-03, & + 4.78872108023e-03, & + 1.68548760463e-05, & + 7.47562687659e-06, & + -1.90929320790e-03, & + 1.02819059321e-02, & + -1.50952248181e-02, & + -2.05487553784e-04, & + 2.75082149430e-03, & + -1.27739721483e-02, & + 2.36836339341e-02, & + -1.55777777337e-02, & + 2.44665888361e-04, & + -3.60560506230e-03, & + 1.94983690704e-02, & + -4.74913606550e-02, & + 5.77904561116e-02 & + /) + get_DIFF1_GAD_DIFF_1 = (cGAD58(0)*E**(4) + cGAD58(1)*E**(3) + cGAD58(2)*E**(2) + cGAD58(3)*E + cGAD58(4))*B**(5) + (cGAD58(5)*E**(4) + cGAD58(6)*E**(3) + cGAD58(7)*E**(2) + cGAD58(8)*E + cGAD58(9))*B**(4) + (cGAD58(10)*E**(4) + cGAD58(11)*E**(3) + cGAD58(12)*E**(2) + cGAD58(13)*E + cGAD58(14))*B**(3) + (cGAD58(15)*E**(4) + cGAD58(16)*E**(3) + cGAD58(17)*E**(2) + cGAD58(18)*E + cGAD58(19))*B**(2) + (cGAD58(20)*E**(4) + cGAD58(21)*E**(3) + cGAD58(22)*E**(2) + cGAD58(23)*E + cGAD58(24))*B + (cGAD58(25)*E**(4) + cGAD58(26)*E**(3) + cGAD58(27)*E**(2) + cGAD58(28)*E + cGAD58(29)) + +end function get_DIFF1_GAD_DIFF_1 + +double precision function get_DIFF1_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD59 = (/ & + -2.62068323950e-11, & + 4.11397407712e-10, & + -2.39112893482e-09, & + 6.08919165632e-09, & + -5.72812671192e-09, & + 5.49026944209e-09, & + -8.61165871125e-08, & + 5.00083859368e-07, & + -1.27197049931e-06, & + 1.19444812455e-06, & + -4.35219582964e-07, & + 6.81864155511e-06, & + -3.95532364937e-05, & + 1.00473541268e-04, & + -9.41804505092e-05, & + 1.62090801194e-05, & + -2.53558129087e-04, & + 1.46902930134e-03, & + -3.72701597654e-03, & + 3.48799829665e-03, & + -2.82628133288e-04, & + 4.41292411581e-03, & + -2.55376160316e-02, & + 6.47351088921e-02, & + -6.05209032229e-02, & + 1.89074954325e-03, & + -2.94741891311e-02, & + 1.70527013085e-01, & + -4.32525103462e-01, & + 4.01729977091e-01 & + /) + get_DIFF1_GAD_DIFF_2 = (cGAD59(0)*E**(4) + cGAD59(1)*E**(3) + cGAD59(2)*E**(2) + cGAD59(3)*E + cGAD59(4))*B**(5) + (cGAD59(5)*E**(4) + cGAD59(6)*E**(3) + cGAD59(7)*E**(2) + cGAD59(8)*E + cGAD59(9))*B**(4) + (cGAD59(10)*E**(4) + cGAD59(11)*E**(3) + cGAD59(12)*E**(2) + cGAD59(13)*E + cGAD59(14))*B**(3) + (cGAD59(15)*E**(4) + cGAD59(16)*E**(3) + cGAD59(17)*E**(2) + cGAD59(18)*E + cGAD59(19))*B**(2) + (cGAD59(20)*E**(4) + cGAD59(21)*E**(3) + cGAD59(22)*E**(2) + cGAD59(23)*E + cGAD59(24))*B + (cGAD59(25)*E**(4) + cGAD59(26)*E**(3) + cGAD59(27)*E**(2) + cGAD59(28)*E + cGAD59(29)) + +end function get_DIFF1_GAD_DIFF_2 + +double precision function get_BOR1_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD60 = (/ & + 1.36622739750e-04, & + -3.40609750837e-03, & + 3.04543890702e-02, & + -1.23465027453e-01, & + 2.12282447443e-01, & + -3.59664198857e-04, & + 7.34080177227e-03, & + -6.20461625357e-02, & + 2.94367993817e-01, & + -8.57081317287e-01 & + /) + get_BOR1_XE_GAD_DIFF_0 = (cGAD60(0)*E**(4) + cGAD60(1)*E**(3) + cGAD60(2)*E**(2) + cGAD60(3)*E + cGAD60(4))*B + (cGAD60(5)*E**(4) + cGAD60(6)*E**(3) + cGAD60(7)*E**(2) + cGAD60(8)*E + cGAD60(9)) + +end function get_BOR1_XE_GAD_DIFF_0 + +double precision function get_BOR1_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD61 = (/ & + -3.58871152748e-06, & + 5.32400828183e-05, & + -2.68804000898e-04, & + 4.92496511088e-04, & + -1.63481529959e-04, & + 1.21919798143e-04, & + -1.86846479870e-03, & + 9.97279378880e-03, & + -2.05590052283e-02, & + 1.10426654537e-02, & + -1.33005998605e-03, & + 2.11079424006e-02, & + -1.19297991498e-01, & + 2.74214554689e-01, & + -1.97064874931e-01, & + 4.91841310997e-03, & + -8.09267892837e-02, & + 4.85212244390e-01, & + -1.24442631291e+00, & + 1.15318736661e+00, & + -3.56319216768e-03, & + 6.01831400549e-02, & + -3.79049601394e-01, & + 1.10088528885e+00, & + -1.56960301454e+00 & + /) + get_BOR1_XE_GAD_DIFF_1 = (cGAD61(0)*E**(4) + cGAD61(1)*E**(3) + cGAD61(2)*E**(2) + cGAD61(3)*E + cGAD61(4))*B**(4) + (cGAD61(5)*E**(4) + cGAD61(6)*E**(3) + cGAD61(7)*E**(2) + cGAD61(8)*E + cGAD61(9))*B**(3) + (cGAD61(10)*E**(4) + cGAD61(11)*E**(3) + cGAD61(12)*E**(2) + cGAD61(13)*E + cGAD61(14))*B**(2) + (cGAD61(15)*E**(4) + cGAD61(16)*E**(3) + cGAD61(17)*E**(2) + cGAD61(18)*E + cGAD61(19))*B + (cGAD61(20)*E**(4) + cGAD61(21)*E**(3) + cGAD61(22)*E**(2) + cGAD61(23)*E + cGAD61(24)) + +end function get_BOR1_XE_GAD_DIFF_1 + +double precision function get_BOR1_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD62 = (/ & + 4.10625443332e-12, & + -2.22638838846e-09, & + 2.03335096647e-08, & + -6.20007561463e-08, & + 6.52613119564e-08, & + -1.53177962144e-08, & + 6.65659986953e-07, & + -5.37662217275e-06, & + 1.58873657947e-05, & + -1.64592398848e-05, & + 1.99371543271e-06, & + -6.18023499735e-05, & + 4.73284948778e-04, & + -1.38663498806e-03, & + 1.43789369550e-03, & + -7.78686502355e-05, & + 2.15192462219e-03, & + -1.62147107960e-02, & + 4.79488342108e-02, & + -5.09147397169e-02, & + 8.76283180612e-04, & + -2.34693543450e-02, & + 1.76658554221e-01, & + -5.30077999535e-01, & + 6.08303930432e-01 & + /) + get_BOR1_XE_GAD_DIFF_2 = (cGAD62(0)*E**(4) + cGAD62(1)*E**(3) + cGAD62(2)*E**(2) + cGAD62(3)*E + cGAD62(4))*B**(4) + (cGAD62(5)*E**(4) + cGAD62(6)*E**(3) + cGAD62(7)*E**(2) + cGAD62(8)*E + cGAD62(9))*B**(3) + (cGAD62(10)*E**(4) + cGAD62(11)*E**(3) + cGAD62(12)*E**(2) + cGAD62(13)*E + cGAD62(14))*B**(2) + (cGAD62(15)*E**(4) + cGAD62(16)*E**(3) + cGAD62(17)*E**(2) + cGAD62(18)*E + cGAD62(19))*B + (cGAD62(20)*E**(4) + cGAD62(21)*E**(3) + cGAD62(22)*E**(2) + cGAD62(23)*E + cGAD62(24)) + +end function get_BOR1_XE_GAD_DIFF_2 + +double precision function get_XE_YIELD_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD63 = (/ & + 1.36549430502e-06, & + -2.06945419736e-05, & + 1.07067453523e-04, & + -1.85293898238e-04, & + -4.92456641265e-05, & + -1.36593680100e-07, & + 2.84716506323e-06, & + -2.22785733106e-05, & + 8.40047210507e-05, & + -1.67419520593e-04 & + /) + get_XE_YIELD_GAD_DIFF_0 = (cGAD63(0)*E**(4) + cGAD63(1)*E**(3) + cGAD63(2)*E**(2) + cGAD63(3)*E + cGAD63(4))*B + (cGAD63(5)*E**(4) + cGAD63(6)*E**(3) + cGAD63(7)*E**(2) + cGAD63(8)*E + cGAD63(9)) + +end function get_XE_YIELD_GAD_DIFF_0 + +double precision function get_XE_YIELD_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD64 = (/ & + -4.36900766310e-10, & + 2.74567245831e-10, & + 5.70200951485e-08, & + -3.67964967210e-07, & + 6.51426461232e-07, & + 1.80071826178e-08, & + -9.15275097489e-08, & + -1.24229748144e-06, & + 1.02488557927e-05, & + -2.00495925005e-05, & + -2.56281044579e-07, & + 2.39849927791e-06, & + 2.25961066584e-06, & + -7.57988620266e-05, & + 1.86396805814e-04, & + 1.25556780211e-06, & + -1.63150638810e-05, & + 5.46318170648e-05, & + 6.30145504384e-05, & + -4.66772710664e-04, & + -9.62353071266e-07, & + 1.57496271107e-05, & + -9.18568148062e-05, & + 2.26835358968e-04, & + -2.36602061272e-04 & + /) + get_XE_YIELD_GAD_DIFF_1 = (cGAD64(0)*E**(4) + cGAD64(1)*E**(3) + cGAD64(2)*E**(2) + cGAD64(3)*E + cGAD64(4))*B**(4) + (cGAD64(5)*E**(4) + cGAD64(6)*E**(3) + cGAD64(7)*E**(2) + cGAD64(8)*E + cGAD64(9))*B**(3) + (cGAD64(10)*E**(4) + cGAD64(11)*E**(3) + cGAD64(12)*E**(2) + cGAD64(13)*E + cGAD64(14))*B**(2) + (cGAD64(15)*E**(4) + cGAD64(16)*E**(3) + cGAD64(17)*E**(2) + cGAD64(18)*E + cGAD64(19))*B + (cGAD64(20)*E**(4) + cGAD64(21)*E**(3) + cGAD64(22)*E**(2) + cGAD64(23)*E + cGAD64(24)) + +end function get_XE_YIELD_GAD_DIFF_1 + +double precision function get_XE_YIELD_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD65 = (/ & + -1.09673066820e-11, & + 1.77537024182e-10, & + -1.06596533352e-09, & + 2.80800165900e-09, & + -2.75673397451e-09, & + 1.78039846758e-09, & + -2.88445392568e-08, & + 1.73555269189e-07, & + -4.59082352509e-07, & + 4.55030564019e-07, & + -1.00769190241e-07, & + 1.63002331138e-06, & + -9.80430985736e-06, & + 2.59920200821e-05, & + -2.60737777745e-05, & + 2.34946577393e-06, & + -3.77580807761e-05, & + 2.25546491298e-04, & + -5.94411374551e-04, & + 6.02492828170e-04, & + -1.89537638531e-05, & + 3.01070117172e-04, & + -1.76851567481e-03, & + 4.54000859568e-03, & + -4.55200657278e-03 & + /) + get_XE_YIELD_GAD_DIFF_2 = (cGAD65(0)*E**(4) + cGAD65(1)*E**(3) + cGAD65(2)*E**(2) + cGAD65(3)*E + cGAD65(4))*B**(4) + (cGAD65(5)*E**(4) + cGAD65(6)*E**(3) + cGAD65(7)*E**(2) + cGAD65(8)*E + cGAD65(9))*B**(3) + (cGAD65(10)*E**(4) + cGAD65(11)*E**(3) + cGAD65(12)*E**(2) + cGAD65(13)*E + cGAD65(14))*B**(2) + (cGAD65(15)*E**(4) + cGAD65(16)*E**(3) + cGAD65(17)*E**(2) + cGAD65(18)*E + cGAD65(19))*B + (cGAD65(20)*E**(4) + cGAD65(21)*E**(3) + cGAD65(22)*E**(2) + cGAD65(23)*E + cGAD65(24)) + +end function get_XE_YIELD_GAD_DIFF_2 + +double precision function get_NU_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD66 = (/ & + 5.00815124707e-04, & + -7.76415958953e-03, & + 4.44524447390e-02, & + -1.10291682911e-01, & + 9.66245764480e-02, & + -1.77550842864e-04, & + 2.86205913015e-03, & + -1.73648477285e-02, & + 4.77562415460e-02, & + -5.48545969721e-02 & + /) + get_NU_GAD_DIFF_0 = (cGAD66(0)*E**(4) + cGAD66(1)*E**(3) + cGAD66(2)*E**(2) + cGAD66(3)*E + cGAD66(4))*B + (cGAD66(5)*E**(4) + cGAD66(6)*E**(3) + cGAD66(7)*E**(2) + cGAD66(8)*E + cGAD66(9)) + +end function get_NU_GAD_DIFF_0 + +double precision function get_NU_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD67 = (/ & + -6.46042393283e-08, & + 1.08239553775e-06, & + -6.68448338075e-06, & + 1.79045108964e-05, & + -1.73708077618e-05, & + 2.50146538042e-06, & + -4.22393366540e-05, & + 2.63578085052e-04, & + -7.16071917673e-04, & + 7.08688258585e-04, & + -3.42114253182e-05, & + 5.82659212877e-04, & + -3.67967450524e-03, & + 1.01712185871e-02, & + -1.03329494703e-02, & + 1.96554809252e-04, & + -3.37355560516e-03, & + 2.15675736019e-02, & + -6.08214593415e-02, & + 6.39922265079e-02, & + -4.31725397417e-04, & + 7.40526326828e-03, & + -4.75194407003e-02, & + 1.35753348025e-01, & + -1.48297317092e-01, & + 2.03562329569e-04, & + -3.38831745264e-03, & + 2.08325653237e-02, & + -5.51462007843e-02, & + 4.80539563328e-02 & + /) + get_NU_GAD_DIFF_1 = (cGAD67(0)*E**(4) + cGAD67(1)*E**(3) + cGAD67(2)*E**(2) + cGAD67(3)*E + cGAD67(4))*B**(5) + (cGAD67(5)*E**(4) + cGAD67(6)*E**(3) + cGAD67(7)*E**(2) + cGAD67(8)*E + cGAD67(9))*B**(4) + (cGAD67(10)*E**(4) + cGAD67(11)*E**(3) + cGAD67(12)*E**(2) + cGAD67(13)*E + cGAD67(14))*B**(3) + (cGAD67(15)*E**(4) + cGAD67(16)*E**(3) + cGAD67(17)*E**(2) + cGAD67(18)*E + cGAD67(19))*B**(2) + (cGAD67(20)*E**(4) + cGAD67(21)*E**(3) + cGAD67(22)*E**(2) + cGAD67(23)*E + cGAD67(24))*B + (cGAD67(25)*E**(4) + cGAD67(26)*E**(3) + cGAD67(27)*E**(2) + cGAD67(28)*E + cGAD67(29)) + +end function get_NU_GAD_DIFF_1 + +double precision function get_NU_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD68 = (/ & + 1.09407552085e-11, & + -1.62714278168e-10, & + 8.97625233636e-10, & + -2.17912122212e-09, & + 1.99725142849e-09, & + -2.15249077860e-09, & + 3.19017546746e-08, & + -1.75746020557e-07, & + 4.27001855517e-07, & + -3.93766941603e-07, & + 1.44447195034e-07, & + -2.10922485823e-06, & + 1.14873049008e-05, & + -2.77300640758e-05, & + 2.57889251547e-05, & + -3.50497387539e-06, & + 4.80656685655e-05, & + -2.46641704365e-04, & + 5.68573279841e-04, & + -5.39454847419e-04, & + 7.37499426856e-06, & + 4.91690856110e-05, & + -1.08496740734e-03, & + 4.26229970612e-03, & + -3.75827456161e-03, & + 4.21256710963e-04, & + -8.20150664237e-03, & + 5.61702977852e-02, & + -1.62643461588e-01, & + 1.56299487171e-01 & + /) + get_NU_GAD_DIFF_2 = (cGAD68(0)*E**(4) + cGAD68(1)*E**(3) + cGAD68(2)*E**(2) + cGAD68(3)*E + cGAD68(4))*B**(5) + (cGAD68(5)*E**(4) + cGAD68(6)*E**(3) + cGAD68(7)*E**(2) + cGAD68(8)*E + cGAD68(9))*B**(4) + (cGAD68(10)*E**(4) + cGAD68(11)*E**(3) + cGAD68(12)*E**(2) + cGAD68(13)*E + cGAD68(14))*B**(3) + (cGAD68(15)*E**(4) + cGAD68(16)*E**(3) + cGAD68(17)*E**(2) + cGAD68(18)*E + cGAD68(19))*B**(2) + (cGAD68(20)*E**(4) + cGAD68(21)*E**(3) + cGAD68(22)*E**(2) + cGAD68(23)*E + cGAD68(24))*B + (cGAD68(25)*E**(4) + cGAD68(26)*E**(3) + cGAD68(27)*E**(2) + cGAD68(28)*E + cGAD68(29)) + +end function get_NU_GAD_DIFF_2 + +double precision function get_BOR2_NO_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD69 = (/ & + -9.10616698381e-08, & + 1.18989376455e-06, & + -5.07423979412e-06, & + 5.40142986523e-06, & + 1.30134303070e-05, & + 1.00157794080e-07, & + -1.84048152730e-06, & + 1.45681704604e-05, & + -7.42379931279e-05, & + 2.28146399251e-04 & + /) + get_BOR2_NO_XE_GAD_DIFF_0 = (cGAD69(0)*E**(4) + cGAD69(1)*E**(3) + cGAD69(2)*E**(2) + cGAD69(3)*E + cGAD69(4))*B + (cGAD69(5)*E**(4) + cGAD69(6)*E**(3) + cGAD69(7)*E**(2) + cGAD69(8)*E + cGAD69(9)) + +end function get_BOR2_NO_XE_GAD_DIFF_0 + +double precision function get_BOR2_NO_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD70 = (/ & + 1.40492401998e-09, & + -2.38539703581e-08, & + 1.48572162612e-07, & + -3.98909831506e-07, & + 3.84807966796e-07, & + -5.15064867406e-08, & + 8.81093785109e-07, & + -5.53865107541e-06, & + 1.50423922865e-05, & + -1.47192848975e-05, & + 6.56214024706e-07, & + -1.13245314606e-05, & + 7.19726323506e-05, & + -1.98225285325e-04, & + 1.97554199120e-04, & + -3.41976193956e-06, & + 5.95761325105e-05, & + -3.83191476837e-04, & + 1.07219543921e-03, & + -1.09288087836e-03, & + 6.54324878131e-06, & + -1.14860107167e-04, & + 7.45485498457e-04, & + -2.10943250030e-03, & + 2.18639319641e-03, & + -3.06181461929e-06, & + 5.38424675794e-05, & + -3.48170779034e-04, & + 9.55882096905e-04, & + -8.39434604093e-04 & + /) + get_BOR2_NO_XE_GAD_DIFF_1 = (cGAD70(0)*E**(4) + cGAD70(1)*E**(3) + cGAD70(2)*E**(2) + cGAD70(3)*E + cGAD70(4))*B**(5) + (cGAD70(5)*E**(4) + cGAD70(6)*E**(3) + cGAD70(7)*E**(2) + cGAD70(8)*E + cGAD70(9))*B**(4) + (cGAD70(10)*E**(4) + cGAD70(11)*E**(3) + cGAD70(12)*E**(2) + cGAD70(13)*E + cGAD70(14))*B**(3) + (cGAD70(15)*E**(4) + cGAD70(16)*E**(3) + cGAD70(17)*E**(2) + cGAD70(18)*E + cGAD70(19))*B**(2) + (cGAD70(20)*E**(4) + cGAD70(21)*E**(3) + cGAD70(22)*E**(2) + cGAD70(23)*E + cGAD70(24))*B + (cGAD70(25)*E**(4) + cGAD70(26)*E**(3) + cGAD70(27)*E**(2) + cGAD70(28)*E + cGAD70(29)) + +end function get_BOR2_NO_XE_GAD_DIFF_1 + +double precision function get_BOR2_NO_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD71 = (/ & + 6.06505529012e-14, & + -1.15819945811e-12, & + 7.80202884639e-12, & + -2.24052982690e-11, & + 2.33822392629e-11, & + -1.28455476065e-11, & + 2.48123537146e-10, & + -1.68246826109e-09, & + 4.85157820225e-09, & + -5.07696884034e-09, & + 1.03567845632e-09, & + -2.02820000119e-08, & + 1.38583203614e-07, & + -4.01503848844e-07, & + 4.21488103322e-07, & + -3.94900613282e-08, & + 7.86027314218e-07, & + -5.41691330938e-06, & + 1.57715090185e-05, & + -1.66104801327e-05, & + 7.06419665108e-07, & + -1.43397370399e-05, & + 9.97686109779e-05, & + -2.91820053718e-04, & + 3.08005345693e-04, & + -4.72332390527e-06, & + 9.83024085263e-05, & + -6.92081541232e-04, & + 2.03382821376e-03, & + -2.13717199961e-03 & + /) + get_BOR2_NO_XE_GAD_DIFF_2 = (cGAD71(0)*E**(4) + cGAD71(1)*E**(3) + cGAD71(2)*E**(2) + cGAD71(3)*E + cGAD71(4))*B**(5) + (cGAD71(5)*E**(4) + cGAD71(6)*E**(3) + cGAD71(7)*E**(2) + cGAD71(8)*E + cGAD71(9))*B**(4) + (cGAD71(10)*E**(4) + cGAD71(11)*E**(3) + cGAD71(12)*E**(2) + cGAD71(13)*E + cGAD71(14))*B**(3) + (cGAD71(15)*E**(4) + cGAD71(16)*E**(3) + cGAD71(17)*E**(2) + cGAD71(18)*E + cGAD71(19))*B**(2) + (cGAD71(20)*E**(4) + cGAD71(21)*E**(3) + cGAD71(22)*E**(2) + cGAD71(23)*E + cGAD71(24))*B + (cGAD71(25)*E**(4) + cGAD71(26)*E**(3) + cGAD71(27)*E**(2) + cGAD71(28)*E + cGAD71(29)) + +end function get_BOR2_NO_XE_GAD_DIFF_2 + +double precision function get_KAPPA_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD72 = (/ & + -3.64209350145e-15, & + 5.80306573582e-14, & + -3.44905915001e-13, & + 9.09847333221e-13, & + -9.09444693040e-13, & + 2.00315789807e-15, & + -3.22447731460e-14, & + 1.92696521031e-13, & + -5.05209084530e-13, & + 4.81935419275e-13 & + /) + get_KAPPA_GAD_DIFF_0 = (cGAD72(0)*E**(4) + cGAD72(1)*E**(3) + cGAD72(2)*E**(2) + cGAD72(3)*E + cGAD72(4))*B + (cGAD72(5)*E**(4) + cGAD72(6)*E**(3) + cGAD72(7)*E**(2) + cGAD72(8)*E + cGAD72(9)) + +end function get_KAPPA_GAD_DIFF_0 + +double precision function get_KAPPA_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD73 = (/ & + -9.58612938922e-19, & + 1.51598171962e-17, & + -8.87959186260e-17, & + 2.27837386400e-16, & + -2.15509326685e-16, & + 3.63598459952e-17, & + -5.76118048925e-16, & + 3.38399074945e-15, & + -8.71775546162e-15, & + 8.29272604247e-15, & + -4.88281211538e-16, & + 7.75844292807e-15, & + -4.57562023234e-14, & + 1.18577246825e-13, & + -1.13802193321e-13, & + 2.76119667076e-15, & + -4.40575885817e-14, & + 2.61373141503e-13, & + -6.83349733476e-13, & + 6.65347869533e-13, & + -5.86545057075e-15, & + 9.41444421398e-14, & + -5.62832475971e-13, & + 1.48826372725e-12, & + -1.48014089794e-12, & + 2.61586086595e-15, & + -4.21430933397e-14, & + 2.52242574483e-13, & + -6.62841076204e-13, & + 6.36817182461e-13 & + /) + get_KAPPA_GAD_DIFF_1 = (cGAD73(0)*E**(4) + cGAD73(1)*E**(3) + cGAD73(2)*E**(2) + cGAD73(3)*E + cGAD73(4))*B**(5) + (cGAD73(5)*E**(4) + cGAD73(6)*E**(3) + cGAD73(7)*E**(2) + cGAD73(8)*E + cGAD73(9))*B**(4) + (cGAD73(10)*E**(4) + cGAD73(11)*E**(3) + cGAD73(12)*E**(2) + cGAD73(13)*E + cGAD73(14))*B**(3) + (cGAD73(15)*E**(4) + cGAD73(16)*E**(3) + cGAD73(17)*E**(2) + cGAD73(18)*E + cGAD73(19))*B**(2) + (cGAD73(20)*E**(4) + cGAD73(21)*E**(3) + cGAD73(22)*E**(2) + cGAD73(23)*E + cGAD73(24))*B + (cGAD73(25)*E**(4) + cGAD73(26)*E**(3) + cGAD73(27)*E**(2) + cGAD73(28)*E + cGAD73(29)) + +end function get_KAPPA_GAD_DIFF_1 + +double precision function get_KAPPA_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD74 = (/ & + 1.96574288707e-22, & + -3.09594721342e-21, & + 1.80045405909e-20, & + -4.57790366194e-20, & + 4.30315564134e-20, & + -5.05439707946e-20, & + 7.99486017331e-19, & + -4.67415701668e-18, & + 1.19611830845e-17, & + -1.13244786944e-17, & + 4.79514266811e-18, & + -7.60642277564e-17, & + 4.46329174517e-16, & + -1.14737820526e-15, & + 1.09217957177e-15, & + -2.03887147430e-16, & + 3.23888384750e-15, & + -1.90442892233e-14, & + 4.90975807579e-14, & + -4.69279241147e-14, & + 3.75136498940e-15, & + -5.95812711684e-14, & + 3.50374379838e-13, & + -9.03921217707e-13, & + 8.66503166713e-13, & + -2.36077077731e-14, & + 3.74324121413e-13, & + -2.19672948618e-12, & + 5.65178375141e-12, & + -5.41899195879e-12 & + /) + get_KAPPA_GAD_DIFF_2 = (cGAD74(0)*E**(4) + cGAD74(1)*E**(3) + cGAD74(2)*E**(2) + cGAD74(3)*E + cGAD74(4))*B**(5) + (cGAD74(5)*E**(4) + cGAD74(6)*E**(3) + cGAD74(7)*E**(2) + cGAD74(8)*E + cGAD74(9))*B**(4) + (cGAD74(10)*E**(4) + cGAD74(11)*E**(3) + cGAD74(12)*E**(2) + cGAD74(13)*E + cGAD74(14))*B**(3) + (cGAD74(15)*E**(4) + cGAD74(16)*E**(3) + cGAD74(17)*E**(2) + cGAD74(18)*E + cGAD74(19))*B**(2) + (cGAD74(20)*E**(4) + cGAD74(21)*E**(3) + cGAD74(22)*E**(2) + cGAD74(23)*E + cGAD74(24))*B + (cGAD74(25)*E**(4) + cGAD74(26)*E**(3) + cGAD74(27)*E**(2) + cGAD74(28)*E + cGAD74(29)) + +end function get_KAPPA_GAD_DIFF_2 + +double precision function get_ABS1_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD75 = (/ & + -3.73284674586e-06, & + 5.86692193189e-05, & + -3.38258596094e-04, & + 8.31716189631e-04, & + -6.60080164125e-04, & + 1.36350660201e-07, & + -2.19978493355e-06, & + 1.07340485931e-05, & + 2.25744593190e-05, & + -8.12694225076e-04 & + /) + get_ABS1_GAD_DIFF_0 = (cGAD75(0)*E**(4) + cGAD75(1)*E**(3) + cGAD75(2)*E**(2) + cGAD75(3)*E + cGAD75(4))*B + (cGAD75(5)*E**(4) + cGAD75(6)*E**(3) + cGAD75(7)*E**(2) + cGAD75(8)*E + cGAD75(9)) + +end function get_ABS1_GAD_DIFF_0 + +double precision function get_ABS1_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD76 = (/ & + -1.46126057810e-09, & + 2.62882139178e-08, & + -1.75418359519e-07, & + 5.10989175849e-07, & + -5.42188483565e-07, & + 4.85788458673e-08, & + -8.84467051566e-07, & + 5.98288595454e-06, & + -1.77000970451e-05, & + 1.91163264473e-05, & + -5.45347866215e-07, & + 1.00776035846e-05, & + -6.93227932587e-05, & + 2.09038424742e-04, & + -2.30839877962e-04, & + 2.39055287780e-06, & + -4.49795064644e-05, & + 3.15434283808e-04, & + -9.70659486451e-04, & + 1.09462770302e-03, & + -3.47131147013e-06, & + 6.71330986554e-05, & + -4.80998015481e-04, & + 1.49063067927e-03, & + -1.60227127972e-03, & + 2.45793536933e-07, & + -1.01284459886e-05, & + 1.03319780679e-04, & + -3.61432195851e-04, & + -2.86844294210e-04 & + /) + get_ABS1_GAD_DIFF_1 = (cGAD76(0)*E**(4) + cGAD76(1)*E**(3) + cGAD76(2)*E**(2) + cGAD76(3)*E + cGAD76(4))*B**(5) + (cGAD76(5)*E**(4) + cGAD76(6)*E**(3) + cGAD76(7)*E**(2) + cGAD76(8)*E + cGAD76(9))*B**(4) + (cGAD76(10)*E**(4) + cGAD76(11)*E**(3) + cGAD76(12)*E**(2) + cGAD76(13)*E + cGAD76(14))*B**(3) + (cGAD76(15)*E**(4) + cGAD76(16)*E**(3) + cGAD76(17)*E**(2) + cGAD76(18)*E + cGAD76(19))*B**(2) + (cGAD76(20)*E**(4) + cGAD76(21)*E**(3) + cGAD76(22)*E**(2) + cGAD76(23)*E + cGAD76(24))*B + (cGAD76(25)*E**(4) + cGAD76(26)*E**(3) + cGAD76(27)*E**(2) + cGAD76(28)*E + cGAD76(29)) + +end function get_ABS1_GAD_DIFF_1 + +double precision function get_ABS1_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD77 = (/ & + 3.00834268484e-13, & + -4.31955290796e-12, & + 2.29529350946e-11, & + -5.33541832980e-11, & + 4.56842299918e-11, & + -8.09845149376e-11, & + 1.18795470822e-09, & + -6.46731364281e-09, & + 1.54574444043e-08, & + -1.36718423094e-08, & + 8.16749862070e-09, & + -1.21626962162e-07, & + 6.73110035023e-07, & + -1.63812802051e-06, & + 1.47847645401e-06, & + -3.85270829200e-07, & + 5.80098934999e-06, & + -3.24827091995e-05, & + 8.00552926291e-05, & + -7.32756840326e-05, & + 8.45034419153e-06, & + -1.28287307063e-04, & + 7.24523905198e-04, & + -1.80201606108e-03, & + 1.66794677349e-03, & + -6.79923874205e-05, & + 1.03808828496e-03, & + -5.89481315083e-03, & + 1.47395176418e-02, & + -1.38190068611e-02 & + /) + get_ABS1_GAD_DIFF_2 = (cGAD77(0)*E**(4) + cGAD77(1)*E**(3) + cGAD77(2)*E**(2) + cGAD77(3)*E + cGAD77(4))*B**(5) + (cGAD77(5)*E**(4) + cGAD77(6)*E**(3) + cGAD77(7)*E**(2) + cGAD77(8)*E + cGAD77(9))*B**(4) + (cGAD77(10)*E**(4) + cGAD77(11)*E**(3) + cGAD77(12)*E**(2) + cGAD77(13)*E + cGAD77(14))*B**(3) + (cGAD77(15)*E**(4) + cGAD77(16)*E**(3) + cGAD77(17)*E**(2) + cGAD77(18)*E + cGAD77(19))*B**(2) + (cGAD77(20)*E**(4) + cGAD77(21)*E**(3) + cGAD77(22)*E**(2) + cGAD77(23)*E + cGAD77(24))*B + (cGAD77(25)*E**(4) + cGAD77(26)*E**(3) + cGAD77(27)*E**(2) + cGAD77(28)*E + cGAD77(29)) + +end function get_ABS1_GAD_DIFF_2 + +double precision function get_ABS2_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD78 = (/ & + -2.91400594348e-05, & + 4.55314453563e-04, & + -2.62123488420e-03, & + 6.47503382044e-03, & + -4.72333954492e-03, & + 2.69523267681e-05, & + -4.28202089819e-04, & + 2.48961610763e-03, & + -5.33740113012e-03, & + -2.19860323429e-02 & + /) + get_ABS2_GAD_DIFF_0 = (cGAD78(0)*E**(4) + cGAD78(1)*E**(3) + cGAD78(2)*E**(2) + cGAD78(3)*E + cGAD78(4))*B + (cGAD78(5)*E**(4) + cGAD78(6)*E**(3) + cGAD78(7)*E**(2) + cGAD78(8)*E + cGAD78(9)) + +end function get_ABS2_GAD_DIFF_0 + +double precision function get_ABS2_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD79 = (/ & + -8.71165902672e-08, & + 1.57627512266e-06, & + -1.05279089205e-05, & + 3.05173157711e-05, & + -3.19969535601e-05, & + 3.03469290544e-06, & + -5.55297450606e-05, & + 3.75608577150e-04, & + -1.10484486838e-03, & + 1.17878082852e-03, & + -3.60425529238e-05, & + 6.69089415653e-04, & + -4.59885956879e-03, & + 1.37810889132e-02, & + -1.50438476534e-02, & + 1.70200244912e-04, & + -3.21688051567e-03, & + 2.25373406492e-02, & + -6.90080221738e-02, & + 7.73922319399e-02, & + -2.86030166143e-04, & + 5.51362920761e-03, & + -3.93122500956e-02, & + 1.22089416865e-01, & + -1.37083371896e-01, & + 1.30542655338e-04, & + -2.54299516719e-03, & + 1.82893713386e-02, & + -5.63554828578e-02, & + 3.75959234414e-02 & + /) + get_ABS2_GAD_DIFF_1 = (cGAD79(0)*E**(4) + cGAD79(1)*E**(3) + cGAD79(2)*E**(2) + cGAD79(3)*E + cGAD79(4))*B**(5) + (cGAD79(5)*E**(4) + cGAD79(6)*E**(3) + cGAD79(7)*E**(2) + cGAD79(8)*E + cGAD79(9))*B**(4) + (cGAD79(10)*E**(4) + cGAD79(11)*E**(3) + cGAD79(12)*E**(2) + cGAD79(13)*E + cGAD79(14))*B**(3) + (cGAD79(15)*E**(4) + cGAD79(16)*E**(3) + cGAD79(17)*E**(2) + cGAD79(18)*E + cGAD79(19))*B**(2) + (cGAD79(20)*E**(4) + cGAD79(21)*E**(3) + cGAD79(22)*E**(2) + cGAD79(23)*E + cGAD79(24))*B + (cGAD79(25)*E**(4) + cGAD79(26)*E**(3) + cGAD79(27)*E**(2) + cGAD79(28)*E + cGAD79(29)) + +end function get_ABS2_GAD_DIFF_1 + +double precision function get_ABS2_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD80 = (/ & + 3.52900048637e-12, & + -3.89944208375e-11, & + 1.48649513549e-10, & + -2.14324277229e-10, & + 7.83635587941e-11, & + -6.92835796754e-10, & + 7.11542415873e-09, & + -2.34472565698e-08, & + 2.18573312035e-08, & + 7.89026055080e-09, & + 5.26184784307e-08, & + -4.94236048423e-07, & + 1.29049864106e-06, & + 7.26326426797e-08, & + -2.59713089605e-06, & + -1.94808962254e-06, & + 1.66040823272e-05, & + -2.98545239996e-05, & + -6.60274222308e-05, & + 1.68905279058e-04, & + 3.54153801836e-05, & + -2.76572351640e-04, & + 2.78627545846e-04, & + 2.12451895508e-03, & + -4.08510438333e-03, & + -2.56215538111e-04, & + 1.90434222087e-03, & + -9.93618005369e-04, & + -1.91261659105e-02, & + 3.21643555571e-02 & + /) + get_ABS2_GAD_DIFF_2 = (cGAD80(0)*E**(4) + cGAD80(1)*E**(3) + cGAD80(2)*E**(2) + cGAD80(3)*E + cGAD80(4))*B**(5) + (cGAD80(5)*E**(4) + cGAD80(6)*E**(3) + cGAD80(7)*E**(2) + cGAD80(8)*E + cGAD80(9))*B**(4) + (cGAD80(10)*E**(4) + cGAD80(11)*E**(3) + cGAD80(12)*E**(2) + cGAD80(13)*E + cGAD80(14))*B**(3) + (cGAD80(15)*E**(4) + cGAD80(16)*E**(3) + cGAD80(17)*E**(2) + cGAD80(18)*E + cGAD80(19))*B**(2) + (cGAD80(20)*E**(4) + cGAD80(21)*E**(3) + cGAD80(22)*E**(2) + cGAD80(23)*E + cGAD80(24))*B + (cGAD80(25)*E**(4) + cGAD80(26)*E**(3) + cGAD80(27)*E**(2) + cGAD80(28)*E + cGAD80(29)) + +end function get_ABS2_GAD_DIFF_2 + +double precision function get_XE2_MAC_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD81 = (/ & + -1.00161883090e-06, & + 1.63779800206e-05, & + -1.00507812900e-04, & + 2.80140021047e-04, & + -3.14738769555e-04, & + 3.36898961911e-07, & + -5.06380037476e-06, & + 2.44726231611e-05, & + -5.26200138461e-06, & + 4.28665391772e-05 & + /) + get_XE2_MAC_GAD_DIFF_0 = (cGAD81(0)*E**(4) + cGAD81(1)*E**(3) + cGAD81(2)*E**(2) + cGAD81(3)*E + cGAD81(4))*B + (cGAD81(5)*E**(4) + cGAD81(6)*E**(3) + cGAD81(7)*E**(2) + cGAD81(8)*E + cGAD81(9)) + +end function get_XE2_MAC_GAD_DIFF_0 + +double precision function get_XE2_MAC_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD82 = (/ & + 1.39054551172e-09, & + -2.62317243694e-08, & + 1.83273934913e-07, & + -5.58818186948e-07, & + 6.21232416266e-07, & + -4.17207154316e-08, & + 8.05138535047e-07, & + -5.74835274189e-06, & + 1.78915266025e-05, & + -2.02664833281e-05, & + 4.13331420634e-07, & + -8.24276352389e-06, & + 6.06163984675e-05, & + -1.93804340957e-04, & + 2.24801232463e-04, & + -1.54079244336e-06, & + 3.24096427193e-05, & + -2.48773625737e-04, & + 8.23232627768e-04, & + -9.80037224183e-04, & + 1.86510732778e-06, & + -4.35254746045e-05, & + 3.57457465730e-04, & + -1.22963452613e-03, & + 1.46072272553e-03, & + -6.76295829668e-07, & + 1.76008396975e-05, & + -1.57778976019e-04, & + 6.19058207338e-04, & + -7.11942705016e-04 & + /) + get_XE2_MAC_GAD_DIFF_1 = (cGAD82(0)*E**(4) + cGAD82(1)*E**(3) + cGAD82(2)*E**(2) + cGAD82(3)*E + cGAD82(4))*B**(5) + (cGAD82(5)*E**(4) + cGAD82(6)*E**(3) + cGAD82(7)*E**(2) + cGAD82(8)*E + cGAD82(9))*B**(4) + (cGAD82(10)*E**(4) + cGAD82(11)*E**(3) + cGAD82(12)*E**(2) + cGAD82(13)*E + cGAD82(14))*B**(3) + (cGAD82(15)*E**(4) + cGAD82(16)*E**(3) + cGAD82(17)*E**(2) + cGAD82(18)*E + cGAD82(19))*B**(2) + (cGAD82(20)*E**(4) + cGAD82(21)*E**(3) + cGAD82(22)*E**(2) + cGAD82(23)*E + cGAD82(24))*B + (cGAD82(25)*E**(4) + cGAD82(26)*E**(3) + cGAD82(27)*E**(2) + cGAD82(28)*E + cGAD82(29)) + +end function get_XE2_MAC_GAD_DIFF_1 + +double precision function get_XE2_MAC_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD83 = (/ & + -2.23879595584e-12, & + 3.73441497941e-11, & + -2.29738053531e-10, & + 6.16438900965e-10, & + -6.08481954856e-10, & + 5.00732462578e-10, & + -8.35740559096e-09, & + 5.14503752375e-08, & + -1.38150134523e-07, & + 1.36447436390e-07, & + -4.28936083679e-08, & + 7.16409626937e-07, & + -4.41419107716e-06, & + 1.18630292406e-05, & + -1.17257288856e-05, & + 1.74597426656e-06, & + -2.91841198551e-05, & + 1.79999493648e-04, & + -4.84250787980e-04, & + 4.79084703594e-04, & + -3.34882757333e-05, & + 5.60224609079e-04, & + -3.45916913388e-03, & + 9.31686085858e-03, & + -9.22558082028e-03, & + 2.39864019702e-04, & + -4.01654161452e-03, & + 2.48355249342e-02, & + -6.69841522359e-02, & + 6.63483338374e-02 & + /) + get_XE2_MAC_GAD_DIFF_2 = (cGAD83(0)*E**(4) + cGAD83(1)*E**(3) + cGAD83(2)*E**(2) + cGAD83(3)*E + cGAD83(4))*B**(5) + (cGAD83(5)*E**(4) + cGAD83(6)*E**(3) + cGAD83(7)*E**(2) + cGAD83(8)*E + cGAD83(9))*B**(4) + (cGAD83(10)*E**(4) + cGAD83(11)*E**(3) + cGAD83(12)*E**(2) + cGAD83(13)*E + cGAD83(14))*B**(3) + (cGAD83(15)*E**(4) + cGAD83(16)*E**(3) + cGAD83(17)*E**(2) + cGAD83(18)*E + cGAD83(19))*B**(2) + (cGAD83(20)*E**(4) + cGAD83(21)*E**(3) + cGAD83(22)*E**(2) + cGAD83(23)*E + cGAD83(24))*B + (cGAD83(25)*E**(4) + cGAD83(26)*E**(3) + cGAD83(27)*E**(2) + cGAD83(28)*E + cGAD83(29)) + +end function get_XE2_MAC_GAD_DIFF_2 + +double precision function get_K_INF_NO_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD84 = (/ & + -3.64182306797e-05, & + 7.23522908089e-04, & + -6.22051069915e-03, & + 3.00214175922e-02, & + -8.06703174401e-02, & + -8.37713053730e-05, & + 1.69047695341e-03, & + -1.14974651004e-02, & + 8.48389342671e-03, & + 3.34391442643e-01 & + /) + get_K_INF_NO_XE_GAD_DIFF_0 = (cGAD84(0)*E**(4) + cGAD84(1)*E**(3) + cGAD84(2)*E**(2) + cGAD84(3)*E + cGAD84(4))*B + (cGAD84(5)*E**(4) + cGAD84(6)*E**(3) + cGAD84(7)*E**(2) + cGAD84(8)*E + cGAD84(9)) + +end function get_K_INF_NO_XE_GAD_DIFF_0 + +double precision function get_K_INF_NO_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD85 = (/ & + 1.13880363142e-06, & + -2.01571751913e-05, & + 1.31716823959e-04, & + -3.73856812663e-04, & + 3.84390864933e-04, & + -4.01529542045e-05, & + 7.17268953266e-04, & + -4.73719299402e-03, & + 1.36167850537e-02, & + -1.42159781400e-02, & + 4.85502548132e-04, & + -8.77117679194e-03, & + 5.86873738167e-02, & + -1.71329186864e-01, & + 1.82351152353e-01, & + -2.35326209190e-03, & + 4.30766122157e-02, & + -2.92433500884e-01, & + 8.68072157252e-01, & + -9.42804837741e-01, & + 4.10154389401e-03, & + -7.60443770501e-02, & + 5.21954351131e-01, & + -1.55915868011e+00, & + 1.67049796561e+00, & + -1.94301822776e-03, & + 3.66032261271e-02, & + -2.54542165722e-01, & + 7.48273778650e-01, & + -4.90562465949e-01 & + /) + get_K_INF_NO_XE_GAD_DIFF_1 = (cGAD85(0)*E**(4) + cGAD85(1)*E**(3) + cGAD85(2)*E**(2) + cGAD85(3)*E + cGAD85(4))*B**(5) + (cGAD85(5)*E**(4) + cGAD85(6)*E**(3) + cGAD85(7)*E**(2) + cGAD85(8)*E + cGAD85(9))*B**(4) + (cGAD85(10)*E**(4) + cGAD85(11)*E**(3) + cGAD85(12)*E**(2) + cGAD85(13)*E + cGAD85(14))*B**(3) + (cGAD85(15)*E**(4) + cGAD85(16)*E**(3) + cGAD85(17)*E**(2) + cGAD85(18)*E + cGAD85(19))*B**(2) + (cGAD85(20)*E**(4) + cGAD85(21)*E**(3) + cGAD85(22)*E**(2) + cGAD85(23)*E + cGAD85(24))*B + (cGAD85(25)*E**(4) + cGAD85(26)*E**(3) + cGAD85(27)*E**(2) + cGAD85(28)*E + cGAD85(29)) + +end function get_K_INF_NO_XE_GAD_DIFF_1 + +double precision function get_K_INF_NO_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD86 = (/ & + -5.75514386269e-11, & + 7.95076609799e-10, & + -4.15933873542e-09, & + 9.70740530245e-09, & + -8.48003031960e-09, & + 1.33299726575e-08, & + -1.84531673038e-07, & + 9.67741087048e-07, & + -2.26517712014e-06, & + 1.98513212053e-06, & + -1.18840597457e-06, & + 1.64765398121e-05, & + -8.65836972508e-05, & + 2.03211642938e-04, & + -1.78698555435e-04, & + 5.06586652129e-05, & + -7.02636887383e-04, & + 3.69534974036e-03, & + -8.68618066011e-03, & + 7.65957192742e-03, & + -1.02666982895e-03, & + 1.42226728346e-02, & + -7.47000796839e-02, & + 1.75347581071e-01, & + -1.54598808837e-01, & + 7.89795044120e-03, & + -1.09196562003e-01, & + 5.71845366638e-01, & + -1.33512913650e+00, & + 1.17178214136e+00 & + /) + get_K_INF_NO_XE_GAD_DIFF_2 = (cGAD86(0)*E**(4) + cGAD86(1)*E**(3) + cGAD86(2)*E**(2) + cGAD86(3)*E + cGAD86(4))*B**(5) + (cGAD86(5)*E**(4) + cGAD86(6)*E**(3) + cGAD86(7)*E**(2) + cGAD86(8)*E + cGAD86(9))*B**(4) + (cGAD86(10)*E**(4) + cGAD86(11)*E**(3) + cGAD86(12)*E**(2) + cGAD86(13)*E + cGAD86(14))*B**(3) + (cGAD86(15)*E**(4) + cGAD86(16)*E**(3) + cGAD86(17)*E**(2) + cGAD86(18)*E + cGAD86(19))*B**(2) + (cGAD86(20)*E**(4) + cGAD86(21)*E**(3) + cGAD86(22)*E**(2) + cGAD86(23)*E + cGAD86(24))*B + (cGAD86(25)*E**(4) + cGAD86(26)*E**(3) + cGAD86(27)*E**(2) + cGAD86(28)*E + cGAD86(29)) + +end function get_K_INF_NO_XE_GAD_DIFF_2 + +double precision function get_XE2_MIC_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD87 = (/ & + -2.27677999403e+02, & + 3.77032473542e+03, & + -2.35524878302e+04, & + 6.55936649671e+04, & + -6.33962284347e+04, & + 2.59492653242e+02, & + -4.91977737461e+03, & + 3.85503989305e+04, & + -1.61114528234e+05, & + 4.12623258682e+05 & + /) + get_XE2_MIC_GAD_DIFF_0 = (cGAD87(0)*E**(4) + cGAD87(1)*E**(3) + cGAD87(2)*E**(2) + cGAD87(3)*E + cGAD87(4))*B + (cGAD87(5)*E**(4) + cGAD87(6)*E**(3) + cGAD87(7)*E**(2) + cGAD87(8)*E + cGAD87(9)) + +end function get_XE2_MIC_GAD_DIFF_0 + +double precision function get_XE2_MIC_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD88 = (/ & + 2.63198949801e+00, & + -4.10613427078e+01, & + 2.25207829187e+02, & + -4.90355127165e+02, & + 3.15198009136e+02, & + -8.40304130604e+01, & + 1.33739544040e+03, & + -7.55481042667e+03, & + 1.72567448800e+04, & + -1.21971324902e+04, & + 8.53261019084e+02, & + -1.39151681670e+04, & + 8.14977760360e+04, & + -1.97336227019e+05, & + 1.55615109077e+05, & + -2.91537887130e+03, & + 4.89467408262e+04, & + -2.99761182465e+05, & + 7.83027422776e+05, & + -7.20045150018e+05, & + 2.03848882361e+03, & + -3.52062505427e+04, & + 2.26810112102e+05, & + -6.61375653794e+05, & + 8.85447752258e+05 & + /) + get_XE2_MIC_GAD_DIFF_1 = (cGAD88(0)*E**(4) + cGAD88(1)*E**(3) + cGAD88(2)*E**(2) + cGAD88(3)*E + cGAD88(4))*B**(4) + (cGAD88(5)*E**(4) + cGAD88(6)*E**(3) + cGAD88(7)*E**(2) + cGAD88(8)*E + cGAD88(9))*B**(3) + (cGAD88(10)*E**(4) + cGAD88(11)*E**(3) + cGAD88(12)*E**(2) + cGAD88(13)*E + cGAD88(14))*B**(2) + (cGAD88(15)*E**(4) + cGAD88(16)*E**(3) + cGAD88(17)*E**(2) + cGAD88(18)*E + cGAD88(19))*B + (cGAD88(20)*E**(4) + cGAD88(21)*E**(3) + cGAD88(22)*E**(2) + cGAD88(23)*E + cGAD88(24)) + +end function get_XE2_MIC_GAD_DIFF_1 + +double precision function get_XE2_MIC_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD89 = (/ & + 3.09041913985e-04, & + -3.13424731859e-03, & + 1.05605543381e-02, & + -1.18229527575e-02, & + 5.29580744223e-04, & + -5.64913382937e-02, & + 5.67636392297e-01, & + -1.87595299159e+00, & + 1.96757239901e+00, & + 1.42479010554e-01, & + 3.91638870216e+00, & + -4.02470908160e+01, & + 1.39540450506e+02, & + -1.69754901297e+02, & + 2.85577920205e+01, & + -1.20027653541e+02, & + 1.28731017427e+03, & + -4.84460283094e+03, & + 7.23427653432e+03, & + -3.39589739050e+03, & + 1.30538278429e+03, & + -1.44935214851e+04, & + 5.76407073577e+04, & + -9.58862463520e+04, & + 6.50287238846e+04 & + /) + get_XE2_MIC_GAD_DIFF_2 = (cGAD89(0)*E**(4) + cGAD89(1)*E**(3) + cGAD89(2)*E**(2) + cGAD89(3)*E + cGAD89(4))*B**(4) + (cGAD89(5)*E**(4) + cGAD89(6)*E**(3) + cGAD89(7)*E**(2) + cGAD89(8)*E + cGAD89(9))*B**(3) + (cGAD89(10)*E**(4) + cGAD89(11)*E**(3) + cGAD89(12)*E**(2) + cGAD89(13)*E + cGAD89(14))*B**(2) + (cGAD89(15)*E**(4) + cGAD89(16)*E**(3) + cGAD89(17)*E**(2) + cGAD89(18)*E + cGAD89(19))*B + (cGAD89(20)*E**(4) + cGAD89(21)*E**(3) + cGAD89(22)*E**(2) + cGAD89(23)*E + cGAD89(24)) + +end function get_XE2_MIC_GAD_DIFF_2 + +double precision function get_SM2_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD90 = (/ & + 9.10481406962e+00, & + -2.07230039371e+02, & + 1.85417625781e+03, & + -8.07042028286e+03, & + 1.59289305353e+04, & + 1.45690370451e+00, & + -1.63538826617e+01, & + 2.66343921468e+01, & + 2.56558981477e+02, & + 1.00627979326e+03 & + /) + get_SM2_XE_GAD_DIFF_0 = (cGAD90(0)*E**(4) + cGAD90(1)*E**(3) + cGAD90(2)*E**(2) + cGAD90(3)*E + cGAD90(4))*B + (cGAD90(5)*E**(4) + cGAD90(6)*E**(3) + cGAD90(7)*E**(2) + cGAD90(8)*E + cGAD90(9)) + +end function get_SM2_XE_GAD_DIFF_0 + +double precision function get_SM2_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD91 = (/ & + 7.70040204278e-02, & + -1.39875555140e+00, & + 9.19759237159e+00, & + -2.46762301013e+01, & + 1.93414468755e+01, & + -2.34953859122e+00, & + 4.33371083027e+01, & + -2.90989966962e+02, & + 8.03581859921e+02, & + -6.53486386063e+02, & + 2.25120917727e+01, & + -4.23866686385e+02, & + 2.92948336473e+03, & + -8.43360047776e+03, & + 7.25013520629e+03, & + -7.15495790416e+01, & + 1.38454153052e+03, & + -9.96046246050e+03, & + 3.05384393808e+04, & + -2.90564475297e+04, & + 4.59442899171e+01, & + -9.15167333953e+02, & + 6.88741866388e+03, & + -2.30079916441e+04, & + 2.98090383427e+04 & + /) + get_SM2_XE_GAD_DIFF_1 = (cGAD91(0)*E**(4) + cGAD91(1)*E**(3) + cGAD91(2)*E**(2) + cGAD91(3)*E + cGAD91(4))*B**(4) + (cGAD91(5)*E**(4) + cGAD91(6)*E**(3) + cGAD91(7)*E**(2) + cGAD91(8)*E + cGAD91(9))*B**(3) + (cGAD91(10)*E**(4) + cGAD91(11)*E**(3) + cGAD91(12)*E**(2) + cGAD91(13)*E + cGAD91(14))*B**(2) + (cGAD91(15)*E**(4) + cGAD91(16)*E**(3) + cGAD91(17)*E**(2) + cGAD91(18)*E + cGAD91(19))*B + (cGAD91(20)*E**(4) + cGAD91(21)*E**(3) + cGAD91(22)*E**(2) + cGAD91(23)*E + cGAD91(24)) + +end function get_SM2_XE_GAD_DIFF_1 + +double precision function get_SM2_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cGAD92 = (/ & + 1.63558322376e-06, & + 2.22437935177e-05, & + -3.54960203699e-04, & + 1.38023007520e-03, & + -1.66897546628e-03, & + -4.57772382533e-04, & + -1.64867811457e-03, & + 5.11487797847e-02, & + -2.17979684370e-01, & + 2.73272835949e-01, & + 4.37230800240e-02, & + -1.04500191947e-01, & + -2.11888752806e+00, & + 1.11164654444e+01, & + -1.48509082263e+01, & + -1.67610132632e+00, & + 1.01677931482e+01, & + 1.60069600993e+01, & + -1.95840663910e+02, & + 2.96744328235e+02, & + 2.15500205536e+01, & + -1.78697200054e+02, & + 2.95019553102e+02, & + 7.68391853206e+02, & + -1.57860386195e+03 & + /) + get_SM2_XE_GAD_DIFF_2 = (cGAD92(0)*E**(4) + cGAD92(1)*E**(3) + cGAD92(2)*E**(2) + cGAD92(3)*E + cGAD92(4))*B**(4) + (cGAD92(5)*E**(4) + cGAD92(6)*E**(3) + cGAD92(7)*E**(2) + cGAD92(8)*E + cGAD92(9))*B**(3) + (cGAD92(10)*E**(4) + cGAD92(11)*E**(3) + cGAD92(12)*E**(2) + cGAD92(13)*E + cGAD92(14))*B**(2) + (cGAD92(15)*E**(4) + cGAD92(16)*E**(3) + cGAD92(17)*E**(2) + cGAD92(18)*E + cGAD92(19))*B + (cGAD92(20)*E**(4) + cGAD92(21)*E**(3) + cGAD92(22)*E**(2) + cGAD92(23)*E + cGAD92(24)) + +end function get_SM2_XE_GAD_DIFF_2 + +double precision function get_K_INF_XE_GAD_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cGAD93 = (/ & + -2.73198429101e-05, & + 6.02230351014e-04, & + -5.59873829176e-03, & + 2.81648507295e-02, & + -7.66068915481e-02, & + -5.73594485794e-05, & + 1.17780339559e-03, & + -7.74321536672e-03, & + -2.29236476207e-03, & + 3.27788502351e-01 & + /) + get_K_INF_XE_GAD_DIFF_0 = (cGAD93(0)*E**(4) + cGAD93(1)*E**(3) + cGAD93(2)*E**(2) + cGAD93(3)*E + cGAD93(4))*B + (cGAD93(5)*E**(4) + cGAD93(6)*E**(3) + cGAD93(7)*E**(2) + cGAD93(8)*E + cGAD93(9)) + +end function get_K_INF_XE_GAD_DIFF_0 + +double precision function get_K_INF_XE_GAD_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD94 = (/ & + 1.05017449870e-06, & + -1.86004508044e-05, & + 1.21610528392e-04, & + -3.45312264166e-04, & + 3.55125713966e-04, & + -3.70231032485e-05, & + 6.61895436329e-04, & + -4.37455934089e-03, & + 1.25816819957e-02, & + -1.31411794258e-02, & + 4.47264849328e-04, & + -8.08905488375e-03, & + 5.41747552923e-02, & + -1.58284658181e-01, & + 1.68588096154e-01, & + -2.16272319298e-03, & + 3.96495168504e-02, & + -2.69530015430e-01, & + 8.01010296670e-01, & + -8.70858565612e-01, & + 3.74745016375e-03, & + -6.96412161518e-02, & + 4.78917809898e-01, & + -1.43263023084e+00, & + 1.53578860706e+00, & + -1.75719809877e-03, & + 3.31905861962e-02, & + -2.31133892915e-01, & + 6.78959186252e-01, & + -4.33066836646e-01 & + /) + get_K_INF_XE_GAD_DIFF_1 = (cGAD94(0)*E**(4) + cGAD94(1)*E**(3) + cGAD94(2)*E**(2) + cGAD94(3)*E + cGAD94(4))*B**(5) + (cGAD94(5)*E**(4) + cGAD94(6)*E**(3) + cGAD94(7)*E**(2) + cGAD94(8)*E + cGAD94(9))*B**(4) + (cGAD94(10)*E**(4) + cGAD94(11)*E**(3) + cGAD94(12)*E**(2) + cGAD94(13)*E + cGAD94(14))*B**(3) + (cGAD94(15)*E**(4) + cGAD94(16)*E**(3) + cGAD94(17)*E**(2) + cGAD94(18)*E + cGAD94(19))*B**(2) + (cGAD94(20)*E**(4) + cGAD94(21)*E**(3) + cGAD94(22)*E**(2) + cGAD94(23)*E + cGAD94(24))*B + (cGAD94(25)*E**(4) + cGAD94(26)*E**(3) + cGAD94(27)*E**(2) + cGAD94(28)*E + cGAD94(29)) + +end function get_K_INF_XE_GAD_DIFF_1 + +double precision function get_K_INF_XE_GAD_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cGAD95 = (/ & + -4.19809212490e-11, & + 5.40590210698e-10, & + -2.61175172737e-09, & + 5.57856429963e-09, & + -4.41053172102e-09, & + 9.68710408829e-09, & + -1.25052701580e-07, & + 6.06368714614e-07, & + -1.30185412094e-06, & + 1.03640103904e-06, & + -8.62267273591e-07, & + 1.11574449068e-05, & + -5.42965276171e-05, & + 1.17207878116e-04, & + -9.40543897133e-05, & + 3.68464286953e-05, & + -4.77673587780e-04, & + 2.33120804206e-03, & + -5.05536892481e-03, & + 4.08836625766e-03, & + -7.53573227663e-04, & + 9.78269040103e-03, & + -4.78122098560e-02, & + 1.03858475097e-01, & + -8.43390322380e-02, & + 5.90635460424e-03, & + -7.68923291758e-02, & + 3.76546201575e-01, & + -8.16741064010e-01, & + 6.62949456446e-01 & + /) + get_K_INF_XE_GAD_DIFF_2 = (cGAD95(0)*E**(4) + cGAD95(1)*E**(3) + cGAD95(2)*E**(2) + cGAD95(3)*E + cGAD95(4))*B**(5) + (cGAD95(5)*E**(4) + cGAD95(6)*E**(3) + cGAD95(7)*E**(2) + cGAD95(8)*E + cGAD95(9))*B**(4) + (cGAD95(10)*E**(4) + cGAD95(11)*E**(3) + cGAD95(12)*E**(2) + cGAD95(13)*E + cGAD95(14))*B**(3) + (cGAD95(15)*E**(4) + cGAD95(16)*E**(3) + cGAD95(17)*E**(2) + cGAD95(18)*E + cGAD95(19))*B**(2) + (cGAD95(20)*E**(4) + cGAD95(21)*E**(3) + cGAD95(22)*E**(2) + cGAD95(23)*E + cGAD95(24))*B + (cGAD95(25)*E**(4) + cGAD95(26)*E**(3) + cGAD95(27)*E**(2) + cGAD95(28)*E + cGAD95(29)) + +end function get_K_INF_XE_GAD_DIFF_2 + + +end module nuclear_data_GAD diff --git a/src/nuclear_data_IFBA.f90 b/src/nuclear_data_IFBA.f90 new file mode 100644 index 0000000..36b17b6 --- /dev/null +++ b/src/nuclear_data_IFBA.f90 @@ -0,0 +1,2092 @@ +module nuclear_data_IFBA + +contains + +double precision function get_SM2_NO_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA24 = (/ & + -4.49810502987e-07, & + 8.83425439828e-06, & + -6.65638745515e-05, & + 1.98676617087e-04, & + 6.64380326169e-04, & + 1.82102717003e-24, & + -2.94763711704e-23, & + 1.82496398920e-22, & + -5.68500841413e-22, & + 1.37340773249e-21 & + /) + get_SM2_NO_XE_IFBA_DIFF_0 = (cIFBA24(0)*E**(4) + cIFBA24(1)*E**(3) + cIFBA24(2)*E**(2) + cIFBA24(3)*E + cIFBA24(4))*B + (cIFBA24(5)*E**(4) + cIFBA24(6)*E**(3) + cIFBA24(7)*E**(2) + cIFBA24(8)*E + cIFBA24(9)) + +end function get_SM2_NO_XE_IFBA_DIFF_0 + +double precision function get_SM2_NO_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA25 = (/ & + -1.34778251768e-13, & + 2.77607972796e-12, & + -2.19202174689e-11, & + 7.99168441655e-11, & + -1.44143512165e-10, & + 5.96274516341e-12, & + -1.42114885231e-10, & + 1.27409467186e-09, & + -5.21965032163e-09, & + 1.11034075124e-08, & + 6.24574014974e-11, & + 1.25232807674e-10, & + -1.19439697980e-08, & + 8.44784784037e-08, & + -2.80422346920e-07, & + -4.88315858367e-09, & + 6.96624960589e-08, & + -3.14295357994e-07, & + 2.85595819966e-07, & + 2.53917988477e-06, & + 4.24575153858e-08, & + -6.84026132914e-07, & + 3.99847818552e-06, & + -9.93640221562e-06, & + -5.50008054251e-06, & + -5.59663801107e-08, & + 9.02454740208e-07, & + -5.59694945491e-06, & + 1.87224691905e-05, & + -1.85305502008e-05 & + /) + get_SM2_NO_XE_IFBA_DIFF_1 = (cIFBA25(0)*E**(4) + cIFBA25(1)*E**(3) + cIFBA25(2)*E**(2) + cIFBA25(3)*E + cIFBA25(4))*B**(5) + (cIFBA25(5)*E**(4) + cIFBA25(6)*E**(3) + cIFBA25(7)*E**(2) + cIFBA25(8)*E + cIFBA25(9))*B**(4) + (cIFBA25(10)*E**(4) + cIFBA25(11)*E**(3) + cIFBA25(12)*E**(2) + cIFBA25(13)*E + cIFBA25(14))*B**(3) + (cIFBA25(15)*E**(4) + cIFBA25(16)*E**(3) + cIFBA25(17)*E**(2) + cIFBA25(18)*E + cIFBA25(19))*B**(2) + (cIFBA25(20)*E**(4) + cIFBA25(21)*E**(3) + cIFBA25(22)*E**(2) + cIFBA25(23)*E + cIFBA25(24))*B + (cIFBA25(25)*E**(4) + cIFBA25(26)*E**(3) + cIFBA25(27)*E**(2) + cIFBA25(28)*E + cIFBA25(29)) + +end function get_SM2_NO_XE_IFBA_DIFF_1 + +double precision function get_SM2_NO_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cIFBA26 = (/ & + 1.14772712182e-11, & + -1.67778787884e-10, & + 9.16558088330e-10, & + -2.16810671324e-09, & + 1.85026609649e-09, & + -1.50080325687e-09, & + 2.14993303433e-08, & + -1.15846103875e-07, & + 2.71036450315e-07, & + -2.28588779392e-07, & + 5.57306635911e-08, & + -7.55545280237e-07, & + 3.88103780442e-06, & + -8.67620254243e-06, & + 7.14018630431e-06, & + -5.14653842321e-07, & + 5.66050692927e-06, & + -2.18639173642e-05, & + 2.84588094111e-05, & + -1.88165067775e-05 & + /) + get_SM2_NO_XE_IFBA_DIFF_2 = (cIFBA26(0)*E**(4) + cIFBA26(1)*E**(3) + cIFBA26(2)*E**(2) + cIFBA26(3)*E + cIFBA26(4))*B**(3) + (cIFBA26(5)*E**(4) + cIFBA26(6)*E**(3) + cIFBA26(7)*E**(2) + cIFBA26(8)*E + cIFBA26(9))*B**(2) + (cIFBA26(10)*E**(4) + cIFBA26(11)*E**(3) + cIFBA26(12)*E**(2) + cIFBA26(13)*E + cIFBA26(14))*B + (cIFBA26(15)*E**(4) + cIFBA26(16)*E**(3) + cIFBA26(17)*E**(2) + cIFBA26(18)*E + cIFBA26(19)) + +end function get_SM2_NO_XE_IFBA_DIFF_2 + +double precision function get_M2_NO_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA27 = (/ & + 1.82111982949e-02, & + -2.98663556892e-01, & + 1.88303588778e+00, & + -5.28758938057e+00, & + 1.52187653147e+00, & + 2.36738608312e-03, & + -5.10143436609e-02, & + 4.57768774013e-01, & + -2.27452321960e+00, & + 7.33656640674e+00 & + /) + get_M2_NO_XE_IFBA_DIFF_0 = (cIFBA27(0)*E**(4) + cIFBA27(1)*E**(3) + cIFBA27(2)*E**(2) + cIFBA27(3)*E + cIFBA27(4))*B + (cIFBA27(5)*E**(4) + cIFBA27(6)*E**(3) + cIFBA27(7)*E**(2) + cIFBA27(8)*E + cIFBA27(9)) + +end function get_M2_NO_XE_IFBA_DIFF_0 + +double precision function get_M2_NO_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA28 = (/ & + 1.92626680121e-07, & + -3.62459748177e-06, & + 2.68099994004e-05, & + -9.43107951177e-05, & + 1.37051503114e-04, & + -1.36136708827e-05, & + 2.56755067995e-04, & + -1.91384991370e-03, & + 6.85476515429e-03, & + -1.03385288388e-02, & + 3.10061590651e-04, & + -5.86363371487e-03, & + 4.42146326376e-02, & + -1.63142183408e-01, & + 2.63217549466e-01, & + -2.42323127023e-03, & + 4.57982603085e-02, & + -3.50664738998e-01, & + 1.36452075049e+00, & + -2.54635258458e+00, & + 3.09920111549e-03, & + -5.80351943755e-02, & + 4.63011240359e-01, & + -2.14648747311e+00, & + 6.90083586622e+00 & + /) + get_M2_NO_XE_IFBA_DIFF_1 = (cIFBA28(0)*E**(4) + cIFBA28(1)*E**(3) + cIFBA28(2)*E**(2) + cIFBA28(3)*E + cIFBA28(4))*B**(4) + (cIFBA28(5)*E**(4) + cIFBA28(6)*E**(3) + cIFBA28(7)*E**(2) + cIFBA28(8)*E + cIFBA28(9))*B**(3) + (cIFBA28(10)*E**(4) + cIFBA28(11)*E**(3) + cIFBA28(12)*E**(2) + cIFBA28(13)*E + cIFBA28(14))*B**(2) + (cIFBA28(15)*E**(4) + cIFBA28(16)*E**(3) + cIFBA28(17)*E**(2) + cIFBA28(18)*E + cIFBA28(19))*B + (cIFBA28(20)*E**(4) + cIFBA28(21)*E**(3) + cIFBA28(22)*E**(2) + cIFBA28(23)*E + cIFBA28(24)) + +end function get_M2_NO_XE_IFBA_DIFF_1 + +double precision function get_M2_NO_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA29 = (/ & + -2.06728992916e-08, & + 3.30024046487e-07, & + -1.96174750618e-06, & + 5.15631476528e-06, & + -5.04348629617e-06, & + 4.26761531500e-06, & + -6.80574074364e-05, & + 4.03986109449e-04, & + -1.06048382834e-03, & + 1.03594304107e-03, & + -3.26525961793e-04, & + 5.20374650423e-03, & + -3.08531007139e-02, & + 8.09033482663e-02, & + -7.89410168697e-02, & + 1.09862888740e-02, & + -1.75051147681e-01, & + 1.03696222039e+00, & + -2.71700438488e+00, & + 2.64896701695e+00, & + -1.36562921686e-01, & + 2.17643546151e+00, & + -1.28830886408e+01, & + 3.37366000320e+01, & + -3.28488857429e+01 & + /) + get_M2_NO_XE_IFBA_DIFF_2 = (cIFBA29(0)*E**(4) + cIFBA29(1)*E**(3) + cIFBA29(2)*E**(2) + cIFBA29(3)*E + cIFBA29(4))*B**(4) + (cIFBA29(5)*E**(4) + cIFBA29(6)*E**(3) + cIFBA29(7)*E**(2) + cIFBA29(8)*E + cIFBA29(9))*B**(3) + (cIFBA29(10)*E**(4) + cIFBA29(11)*E**(3) + cIFBA29(12)*E**(2) + cIFBA29(13)*E + cIFBA29(14))*B**(2) + (cIFBA29(15)*E**(4) + cIFBA29(16)*E**(3) + cIFBA29(17)*E**(2) + cIFBA29(18)*E + cIFBA29(19))*B + (cIFBA29(20)*E**(4) + cIFBA29(21)*E**(3) + cIFBA29(22)*E**(2) + cIFBA29(23)*E + cIFBA29(24)) + +end function get_M2_NO_XE_IFBA_DIFF_2 + +double precision function get_M2_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA30 = (/ & + 2.36738151395e-02, & + -3.98448847769e-01, & + 2.52552726926e+00, & + -6.79834847755e+00, & + 8.43532122958e-01, & + 2.36738608312e-03, & + -5.10143436609e-02, & + 4.57768774013e-01, & + -2.27452321960e+00, & + 7.33656640674e+00 & + /) + get_M2_XE_IFBA_DIFF_0 = (cIFBA30(0)*E**(4) + cIFBA30(1)*E**(3) + cIFBA30(2)*E**(2) + cIFBA30(3)*E + cIFBA30(4))*B + (cIFBA30(5)*E**(4) + cIFBA30(6)*E**(3) + cIFBA30(7)*E**(2) + cIFBA30(8)*E + cIFBA30(9)) + +end function get_M2_XE_IFBA_DIFF_0 + +double precision function get_M2_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA31 = (/ & + 1.52938715987e-07, & + -3.00547463814e-06, & + 2.31776208626e-05, & + -8.47112119213e-05, & + 1.27230147902e-04, & + -1.06607040385e-05, & + 2.10807916625e-04, & + -1.64515768706e-03, & + 6.14649379005e-03, & + -9.61202957520e-03, & + 2.37530733508e-04, & + -4.73619167000e-03, & + 3.76303074149e-02, & + -1.45773530423e-01, & + 2.45204764496e-01, & + -1.73021069444e-03, & + 3.49660721845e-02, & + -2.87074662504e-01, & + 1.19539460381e+00, & + -2.36618609372e+00, & + 2.00098562475e-03, & + -4.04676250588e-02, & + 3.56672438970e-01, & + -1.84647649114e+00, & + 6.52066528766e+00 & + /) + get_M2_XE_IFBA_DIFF_1 = (cIFBA31(0)*E**(4) + cIFBA31(1)*E**(3) + cIFBA31(2)*E**(2) + cIFBA31(3)*E + cIFBA31(4))*B**(4) + (cIFBA31(5)*E**(4) + cIFBA31(6)*E**(3) + cIFBA31(7)*E**(2) + cIFBA31(8)*E + cIFBA31(9))*B**(3) + (cIFBA31(10)*E**(4) + cIFBA31(11)*E**(3) + cIFBA31(12)*E**(2) + cIFBA31(13)*E + cIFBA31(14))*B**(2) + (cIFBA31(15)*E**(4) + cIFBA31(16)*E**(3) + cIFBA31(17)*E**(2) + cIFBA31(18)*E + cIFBA31(19))*B + (cIFBA31(20)*E**(4) + cIFBA31(21)*E**(3) + cIFBA31(22)*E**(2) + cIFBA31(23)*E + cIFBA31(24)) + +end function get_M2_XE_IFBA_DIFF_1 + +double precision function get_M2_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA32 = (/ & + -9.47210632170e-09, & + 1.66361443261e-07, & + -1.06415794534e-06, & + 2.95169271082e-06, & + -2.98580495410e-06, & + 1.55415971563e-06, & + -2.78449484160e-05, & + 1.80550846124e-04, & + -5.05902364568e-04, & + 5.14812722602e-04, & + -8.55348289437e-05, & + 1.58875074383e-03, & + -1.05466677991e-02, & + 3.00700043937e-02, & + -3.09228525858e-02, & + 1.71702780932e-03, & + -3.45577904235e-02, & + 2.40528113272e-01, & + -7.09281035157e-01, & + 7.44546108496e-01, & + -8.05874431385e-03, & + 2.12466232981e-01, & + -1.66909238505e+00, & + 5.31277690748e+00, & + -5.80255913801e+00 & + /) + get_M2_XE_IFBA_DIFF_2 = (cIFBA32(0)*E**(4) + cIFBA32(1)*E**(3) + cIFBA32(2)*E**(2) + cIFBA32(3)*E + cIFBA32(4))*B**(4) + (cIFBA32(5)*E**(4) + cIFBA32(6)*E**(3) + cIFBA32(7)*E**(2) + cIFBA32(8)*E + cIFBA32(9))*B**(3) + (cIFBA32(10)*E**(4) + cIFBA32(11)*E**(3) + cIFBA32(12)*E**(2) + cIFBA32(13)*E + cIFBA32(14))*B**(2) + (cIFBA32(15)*E**(4) + cIFBA32(16)*E**(3) + cIFBA32(17)*E**(2) + cIFBA32(18)*E + cIFBA32(19))*B + (cIFBA32(20)*E**(4) + cIFBA32(21)*E**(3) + cIFBA32(22)*E**(2) + cIFBA32(23)*E + cIFBA32(24)) + +end function get_M2_XE_IFBA_DIFF_2 + +double precision function get_NUFISS1_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA33 = (/ & + -5.28117278147e-06, & + 8.83594847487e-05, & + -5.53925837901e-04, & + 1.58820101632e-03, & + -1.72408971137e-03, & + 4.18853059964e-07, & + -7.05372753575e-06, & + 4.60352143869e-05, & + -1.40292133147e-04, & + 1.20503295444e-04 & + /) + get_NUFISS1_IFBA_DIFF_0 = (cIFBA33(0)*E**(4) + cIFBA33(1)*E**(3) + cIFBA33(2)*E**(2) + cIFBA33(3)*E + cIFBA33(4))*B + (cIFBA33(5)*E**(4) + cIFBA33(6)*E**(3) + cIFBA33(7)*E**(2) + cIFBA33(8)*E + cIFBA33(9)) + +end function get_NUFISS1_IFBA_DIFF_0 + +double precision function get_NUFISS1_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA34 = (/ & + -3.48991117394e-12, & + 5.77427670649e-11, & + -3.53818739342e-10, & + 9.51122142595e-10, & + -9.49546727473e-10, & + 2.70687938870e-10, & + -4.51555010149e-09, & + 2.79413837784e-08, & + -7.59925415338e-08, & + 7.69211424646e-08, & + -7.14300010400e-09, & + 1.20408977464e-07, & + -7.54951029960e-07, & + 2.08775267029e-06, & + -2.15815401044e-06, & + 7.52600990293e-08, & + -1.28560036790e-06, & + 8.21281847917e-06, & + -2.33211251932e-05, & + 2.50224926281e-05, & + -2.94698794671e-07, & + 5.09166780289e-06, & + -3.32643686109e-05, & + 9.83323719523e-05, & + -1.12679094882e-04, & + 3.20832050070e-07, & + -5.63890440251e-06, & + 3.85738520367e-05, & + -1.22741062436e-04, & + 1.08214961091e-04 & + /) + get_NUFISS1_IFBA_DIFF_1 = (cIFBA34(0)*E**(4) + cIFBA34(1)*E**(3) + cIFBA34(2)*E**(2) + cIFBA34(3)*E + cIFBA34(4))*B**(5) + (cIFBA34(5)*E**(4) + cIFBA34(6)*E**(3) + cIFBA34(7)*E**(2) + cIFBA34(8)*E + cIFBA34(9))*B**(4) + (cIFBA34(10)*E**(4) + cIFBA34(11)*E**(3) + cIFBA34(12)*E**(2) + cIFBA34(13)*E + cIFBA34(14))*B**(3) + (cIFBA34(15)*E**(4) + cIFBA34(16)*E**(3) + cIFBA34(17)*E**(2) + cIFBA34(18)*E + cIFBA34(19))*B**(2) + (cIFBA34(20)*E**(4) + cIFBA34(21)*E**(3) + cIFBA34(22)*E**(2) + cIFBA34(23)*E + cIFBA34(24))*B + (cIFBA34(25)*E**(4) + cIFBA34(26)*E**(3) + cIFBA34(27)*E**(2) + cIFBA34(28)*E + cIFBA34(29)) + +end function get_NUFISS1_IFBA_DIFF_1 + +double precision function get_NUFISS1_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: cIFBA35 = (/ & + 5.91211161748e-10, & + -1.04589916195e-08, & + 6.61847784470e-08, & + -1.73945925412e-07, & + 1.55302051869e-07, & + -5.84449011482e-08, & + 1.07443630454e-06, & + -7.06857444017e-06, & + 1.92844495265e-05, & + -1.72695666924e-05, & + 1.22859159987e-06, & + -2.41434583882e-05, & + 1.69720675086e-04, & + -4.99261705968e-04, & + 4.51806863218e-04 & + /) + get_NUFISS1_IFBA_DIFF_2 = (cIFBA35(0)*E**(4) + cIFBA35(1)*E**(3) + cIFBA35(2)*E**(2) + cIFBA35(3)*E + cIFBA35(4))*B**(2) + (cIFBA35(5)*E**(4) + cIFBA35(6)*E**(3) + cIFBA35(7)*E**(2) + cIFBA35(8)*E + cIFBA35(9))*B + (cIFBA35(10)*E**(4) + cIFBA35(11)*E**(3) + cIFBA35(12)*E**(2) + cIFBA35(13)*E + cIFBA35(14)) + +end function get_NUFISS1_IFBA_DIFF_2 + +double precision function get_K2_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA36 = (/ & + 4.55283166405e-04, & + -9.14204824075e-03, & + 7.29896642140e-02, & + -2.58556208930e-01, & + -4.55614035822e-02, & + -4.55267325364e-05, & + 8.42792644830e-04, & + -4.31309449378e-03, & + -1.48936025776e-02, & + 2.71179243961e-01 & + /) + get_K2_IFBA_DIFF_0 = (cIFBA36(0)*E**(4) + cIFBA36(1)*E**(3) + cIFBA36(2)*E**(2) + cIFBA36(3)*E + cIFBA36(4))*B + (cIFBA36(5)*E**(4) + cIFBA36(6)*E**(3) + cIFBA36(7)*E**(2) + cIFBA36(8)*E + cIFBA36(9)) + +end function get_K2_IFBA_DIFF_0 + +double precision function get_K2_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA37 = (/ & + 5.97397552550e-09, & + -1.19146431884e-07, & + 9.53924224211e-07, & + -3.70329011629e-06, & + 6.02684452275e-06, & + -3.80457550103e-07, & + 7.72056736413e-06, & + -6.35419863598e-05, & + 2.57316028927e-04, & + -4.46573431486e-04, & + 7.02167597956e-06, & + -1.47095026268e-04, & + 1.27590663721e-03, & + -5.60095708457e-03, & + 1.10063182504e-02, & + -2.73919785376e-05, & + 6.39077383500e-04, & + -6.58443462065e-03, & + 3.65234904390e-02, & + -9.91856031800e-02, & + -9.87645835192e-05, & + 1.88435446361e-03, & + -1.19991945513e-02, & + 1.19348296393e-02, & + 2.22344629935e-01 & + /) + get_K2_IFBA_DIFF_1 = (cIFBA37(0)*E**(4) + cIFBA37(1)*E**(3) + cIFBA37(2)*E**(2) + cIFBA37(3)*E + cIFBA37(4))*B**(4) + (cIFBA37(5)*E**(4) + cIFBA37(6)*E**(3) + cIFBA37(7)*E**(2) + cIFBA37(8)*E + cIFBA37(9))*B**(3) + (cIFBA37(10)*E**(4) + cIFBA37(11)*E**(3) + cIFBA37(12)*E**(2) + cIFBA37(13)*E + cIFBA37(14))*B**(2) + (cIFBA37(15)*E**(4) + cIFBA37(16)*E**(3) + cIFBA37(17)*E**(2) + cIFBA37(18)*E + cIFBA37(19))*B + (cIFBA37(20)*E**(4) + cIFBA37(21)*E**(3) + cIFBA37(22)*E**(2) + cIFBA37(23)*E + cIFBA37(24)) + +end function get_K2_IFBA_DIFF_1 + +double precision function get_K2_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA38 = (/ & + -1.25860472352e-09, & + 1.99585239235e-08, & + -1.16791070996e-07, & + 2.99823946196e-07, & + -2.84823300958e-07, & + 2.60675069943e-07, & + -4.14015154126e-06, & + 2.42522274860e-05, & + -6.23084357879e-05, & + 5.92069540843e-05, & + -1.98399383731e-05, & + 3.15784998792e-04, & + -1.85291205861e-03, & + 4.76808485921e-03, & + -4.53609473735e-03, & + 6.55393883846e-04, & + -1.04594877910e-02, & + 6.15097556109e-02, & + -1.58691185721e-01, & + 1.51378322652e-01, & + -7.89941551391e-03, & + 1.26417564463e-01, & + -7.45041658165e-01, & + 1.92818702428e+00, & + -1.84851658444e+00 & + /) + get_K2_IFBA_DIFF_2 = (cIFBA38(0)*E**(4) + cIFBA38(1)*E**(3) + cIFBA38(2)*E**(2) + cIFBA38(3)*E + cIFBA38(4))*B**(4) + (cIFBA38(5)*E**(4) + cIFBA38(6)*E**(3) + cIFBA38(7)*E**(2) + cIFBA38(8)*E + cIFBA38(9))*B**(3) + (cIFBA38(10)*E**(4) + cIFBA38(11)*E**(3) + cIFBA38(12)*E**(2) + cIFBA38(13)*E + cIFBA38(14))*B**(2) + (cIFBA38(15)*E**(4) + cIFBA38(16)*E**(3) + cIFBA38(17)*E**(2) + cIFBA38(18)*E + cIFBA38(19))*B + (cIFBA38(20)*E**(4) + cIFBA38(21)*E**(3) + cIFBA38(22)*E**(2) + cIFBA38(23)*E + cIFBA38(24)) + +end function get_K2_IFBA_DIFF_2 + +double precision function get_K1_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA39 = (/ & + -1.27482887564e-04, & + 2.13927952437e-03, & + -1.31132064985e-02, & + 3.44486084536e-02, & + -4.82439183713e-02, & + -7.28416336041e-06, & + 1.16546598823e-04, & + -7.05689977267e-04, & + 2.04102890545e-03, & + 6.00096259304e-03 & + /) + get_K1_IFBA_DIFF_0 = (cIFBA39(0)*E**(4) + cIFBA39(1)*E**(3) + cIFBA39(2)*E**(2) + cIFBA39(3)*E + cIFBA39(4))*B + (cIFBA39(5)*E**(4) + cIFBA39(6)*E**(3) + cIFBA39(7)*E**(2) + cIFBA39(8)*E + cIFBA39(9)) + +end function get_K1_IFBA_DIFF_0 + +double precision function get_K1_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA40 = (/ & + -1.54383405036e-10, & + 2.66397561457e-09, & + -1.72001193132e-08, & + 4.95911318995e-08, & + -5.48712905638e-08, & + 1.17399076810e-08, & + -2.05196592769e-07, & + 1.34629918143e-06, & + -3.96695469901e-06, & + 4.53897971637e-06, & + -3.01217230849e-07, & + 5.36018657172e-06, & + -3.59975473246e-05, & + 1.09681987298e-04, & + -1.32830631149e-04, & + 2.98306461856e-06, & + -5.44334797644e-05, & + 3.78545596197e-04, & + -1.21914493138e-03, & + 1.64939706677e-03, & + -9.38701228688e-06, & + 1.75593814300e-04, & + -1.27592725294e-03, & + 4.50381210225e-03, & + -8.02961066466e-03, & + 2.24162877703e-06, & + -3.50251383846e-05, & + 1.99290925112e-04, & + -3.38836499736e-04, & + 8.06094639544e-03 & + /) + get_K1_IFBA_DIFF_1 = (cIFBA40(0)*E**(4) + cIFBA40(1)*E**(3) + cIFBA40(2)*E**(2) + cIFBA40(3)*E + cIFBA40(4))*B**(5) + (cIFBA40(5)*E**(4) + cIFBA40(6)*E**(3) + cIFBA40(7)*E**(2) + cIFBA40(8)*E + cIFBA40(9))*B**(4) + (cIFBA40(10)*E**(4) + cIFBA40(11)*E**(3) + cIFBA40(12)*E**(2) + cIFBA40(13)*E + cIFBA40(14))*B**(3) + (cIFBA40(15)*E**(4) + cIFBA40(16)*E**(3) + cIFBA40(17)*E**(2) + cIFBA40(18)*E + cIFBA40(19))*B**(2) + (cIFBA40(20)*E**(4) + cIFBA40(21)*E**(3) + cIFBA40(22)*E**(2) + cIFBA40(23)*E + cIFBA40(24))*B + (cIFBA40(25)*E**(4) + cIFBA40(26)*E**(3) + cIFBA40(27)*E**(2) + cIFBA40(28)*E + cIFBA40(29)) + +end function get_K1_IFBA_DIFF_1 + +double precision function get_K1_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cIFBA41 = (/ & + -4.15032998075e-09, & + 6.85388311671e-08, & + -4.17133534125e-07, & + 1.10818448469e-06, & + -1.08824640337e-06, & + 6.46784838056e-07, & + -1.07009393396e-05, & + 6.51982651302e-05, & + -1.73063117960e-04, & + 1.69252578718e-04, & + -3.24423487323e-05, & + 5.39050894146e-04, & + -3.29756166887e-03, & + 8.77036554914e-03, & + -8.53538824095e-03, & + 5.19546599455e-04, & + -8.69658096097e-03, & + 5.36793686608e-02, & + -1.44152305777e-01, & + 1.39645993384e-01 & + /) + get_K1_IFBA_DIFF_2 = (cIFBA41(0)*E**(4) + cIFBA41(1)*E**(3) + cIFBA41(2)*E**(2) + cIFBA41(3)*E + cIFBA41(4))*B**(3) + (cIFBA41(5)*E**(4) + cIFBA41(6)*E**(3) + cIFBA41(7)*E**(2) + cIFBA41(8)*E + cIFBA41(9))*B**(2) + (cIFBA41(10)*E**(4) + cIFBA41(11)*E**(3) + cIFBA41(12)*E**(2) + cIFBA41(13)*E + cIFBA41(14))*B + (cIFBA41(15)*E**(4) + cIFBA41(16)*E**(3) + cIFBA41(17)*E**(2) + cIFBA41(18)*E + cIFBA41(19)) + +end function get_K1_IFBA_DIFF_2 + +double precision function get_NUFISS2_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA42 = (/ & + -1.27475137205e-04, & + 2.12458670963e-03, & + -1.29259894823e-02, & + 2.86826981508e-02, & + -3.09602363175e-02, & + -1.82172872771e-06, & + 2.79335664644e-05, & + -2.46490446732e-04, & + 2.00743028112e-03, & + 8.31364958614e-04 & + /) + get_NUFISS2_IFBA_DIFF_0 = (cIFBA42(0)*E**(4) + cIFBA42(1)*E**(3) + cIFBA42(2)*E**(2) + cIFBA42(3)*E + cIFBA42(4))*B + (cIFBA42(5)*E**(4) + cIFBA42(6)*E**(3) + cIFBA42(7)*E**(2) + cIFBA42(8)*E + cIFBA42(9)) + +end function get_NUFISS2_IFBA_DIFF_0 + +double precision function get_NUFISS2_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA43 = (/ & + 1.17708078191e-10, & + -1.78070097157e-09, & + 9.64204473727e-09, & + -2.10611894090e-08, & + 1.27188777030e-08, & + -1.02141890677e-08, & + 1.54844550539e-07, & + -8.38976815011e-07, & + 1.81942746034e-06, & + -1.02847191713e-06, & + 3.18551484438e-07, & + -4.85455312108e-06, & + 2.64318759016e-05, & + -5.71368965687e-05, & + 2.92798222096e-05, & + -4.21473003946e-06, & + 6.50282818231e-05, & + -3.59691974912e-04, & + 7.87309637978e-04, & + -3.45913260028e-04, & + 2.04021315762e-05, & + -3.25101709262e-04, & + 1.88867839566e-03, & + -4.46855942834e-03, & + 1.60290604026e-03, & + -2.01938263152e-05, & + 3.51541503755e-04, & + -2.35807565005e-03, & + 8.02731574705e-03, & + -5.51220826901e-03 & + /) + get_NUFISS2_IFBA_DIFF_1 = (cIFBA43(0)*E**(4) + cIFBA43(1)*E**(3) + cIFBA43(2)*E**(2) + cIFBA43(3)*E + cIFBA43(4))*B**(5) + (cIFBA43(5)*E**(4) + cIFBA43(6)*E**(3) + cIFBA43(7)*E**(2) + cIFBA43(8)*E + cIFBA43(9))*B**(4) + (cIFBA43(10)*E**(4) + cIFBA43(11)*E**(3) + cIFBA43(12)*E**(2) + cIFBA43(13)*E + cIFBA43(14))*B**(3) + (cIFBA43(15)*E**(4) + cIFBA43(16)*E**(3) + cIFBA43(17)*E**(2) + cIFBA43(18)*E + cIFBA43(19))*B**(2) + (cIFBA43(20)*E**(4) + cIFBA43(21)*E**(3) + cIFBA43(22)*E**(2) + cIFBA43(23)*E + cIFBA43(24))*B + (cIFBA43(25)*E**(4) + cIFBA43(26)*E**(3) + cIFBA43(27)*E**(2) + cIFBA43(28)*E + cIFBA43(29)) + +end function get_NUFISS2_IFBA_DIFF_1 + +double precision function get_NUFISS2_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: cIFBA44 = (/ & + 1.61196142219e-08, & + -2.31496864059e-07, & + 1.15450134359e-06, & + -2.18423361192e-06, & + 8.46787218288e-07, & + -1.78305377143e-06, & + 2.66561164732e-05, & + -1.42074369167e-04, & + 3.02338793073e-04, & + -1.49221584760e-04, & + 4.43918022293e-05, & + -6.87276016248e-04, & + 3.92300680025e-03, & + -9.60595115598e-03, & + 5.38276977870e-03 & + /) + get_NUFISS2_IFBA_DIFF_2 = (cIFBA44(0)*E**(4) + cIFBA44(1)*E**(3) + cIFBA44(2)*E**(2) + cIFBA44(3)*E + cIFBA44(4))*B**(2) + (cIFBA44(5)*E**(4) + cIFBA44(6)*E**(3) + cIFBA44(7)*E**(2) + cIFBA44(8)*E + cIFBA44(9))*B + (cIFBA44(10)*E**(4) + cIFBA44(11)*E**(3) + cIFBA44(12)*E**(2) + cIFBA44(13)*E + cIFBA44(14)) + +end function get_NUFISS2_IFBA_DIFF_2 + +double precision function get_BOR1_NO_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA45 = (/ & + 1.09262484486e-07, & + -1.64136198318e-06, & + 8.97841892901e-06, & + -2.18210589408e-05, & + 3.34204218364e-05, & + -3.46010067690e-08, & + 5.78140197340e-07, & + -3.73348261436e-06, & + 1.18920734766e-05, & + -1.90042883962e-05 & + /) + get_BOR1_NO_XE_IFBA_DIFF_0 = (cIFBA45(0)*E**(4) + cIFBA45(1)*E**(3) + cIFBA45(2)*E**(2) + cIFBA45(3)*E + cIFBA45(4))*B + (cIFBA45(5)*E**(4) + cIFBA45(6)*E**(3) + cIFBA45(7)*E**(2) + cIFBA45(8)*E + cIFBA45(9)) + +end function get_BOR1_NO_XE_IFBA_DIFF_0 + +double precision function get_BOR1_NO_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA46 = (/ & + 1.34110936187e-14, & + -3.13118878608e-13, & + 2.58628566455e-12, & + -9.23049427214e-12, & + 1.22746887345e-11, & + -1.20847546714e-12, & + 2.84896063636e-11, & + -2.38603029622e-10, & + 8.67832121753e-10, & + -1.18450193778e-09, & + 3.51198307329e-11, & + -8.72663900385e-10, & + 7.63515829049e-09, & + -2.90395904230e-08, & + 4.18024058139e-08, & + -3.59567865797e-10, & + 1.03419490331e-08, & + -9.99198740881e-08, & + 4.15939330085e-07, & + -6.63426153860e-07, & + 5.76581251854e-10, & + -3.50706674338e-08, & + 4.49122175145e-07, & + -2.29792966741e-06, & + 4.56344512385e-06, & + 1.56045101329e-09, & + 9.60432792355e-10, & + -3.14513255218e-07, & + 2.95096462991e-06, & + -1.00283250160e-05 & + /) + get_BOR1_NO_XE_IFBA_DIFF_1 = (cIFBA46(0)*E**(4) + cIFBA46(1)*E**(3) + cIFBA46(2)*E**(2) + cIFBA46(3)*E + cIFBA46(4))*B**(5) + (cIFBA46(5)*E**(4) + cIFBA46(6)*E**(3) + cIFBA46(7)*E**(2) + cIFBA46(8)*E + cIFBA46(9))*B**(4) + (cIFBA46(10)*E**(4) + cIFBA46(11)*E**(3) + cIFBA46(12)*E**(2) + cIFBA46(13)*E + cIFBA46(14))*B**(3) + (cIFBA46(15)*E**(4) + cIFBA46(16)*E**(3) + cIFBA46(17)*E**(2) + cIFBA46(18)*E + cIFBA46(19))*B**(2) + (cIFBA46(20)*E**(4) + cIFBA46(21)*E**(3) + cIFBA46(22)*E**(2) + cIFBA46(23)*E + cIFBA46(24))*B + (cIFBA46(25)*E**(4) + cIFBA46(26)*E**(3) + cIFBA46(27)*E**(2) + cIFBA46(28)*E + cIFBA46(29)) + +end function get_BOR1_NO_XE_IFBA_DIFF_1 + +double precision function get_BOR1_NO_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA47 = (/ & + 2.94300320736e-14, & + -4.67652435195e-13, & + 2.75343906486e-12, & + -7.11228176556e-12, & + 6.79982673454e-12, & + -7.97670848188e-12, & + 1.26635568991e-10, & + -7.44866013179e-10, & + 1.92193286792e-09, & + -1.83520778344e-09, & + 8.50821788859e-10, & + -1.34979494190e-08, & + 7.93349030994e-08, & + -2.04532262790e-07, & + 1.95113460792e-07, & + -4.45701255334e-08, & + 7.06749767629e-07, & + -4.15179648437e-06, & + 1.06973097706e-05, & + -1.01973303650e-05, & + 1.14559724859e-06, & + -1.81610841920e-05, & + 1.06655873863e-04, & + -2.74702002145e-04, & + 2.61725912154e-04, & + -1.15523293615e-05, & + 1.83132090567e-04, & + -1.07544122275e-03, & + 2.76956961047e-03, & + -2.63765181013e-03 & + /) + get_BOR1_NO_XE_IFBA_DIFF_2 = (cIFBA47(0)*E**(4) + cIFBA47(1)*E**(3) + cIFBA47(2)*E**(2) + cIFBA47(3)*E + cIFBA47(4))*B**(5) + (cIFBA47(5)*E**(4) + cIFBA47(6)*E**(3) + cIFBA47(7)*E**(2) + cIFBA47(8)*E + cIFBA47(9))*B**(4) + (cIFBA47(10)*E**(4) + cIFBA47(11)*E**(3) + cIFBA47(12)*E**(2) + cIFBA47(13)*E + cIFBA47(14))*B**(3) + (cIFBA47(15)*E**(4) + cIFBA47(16)*E**(3) + cIFBA47(17)*E**(2) + cIFBA47(18)*E + cIFBA47(19))*B**(2) + (cIFBA47(20)*E**(4) + cIFBA47(21)*E**(3) + cIFBA47(22)*E**(2) + cIFBA47(23)*E + cIFBA47(24))*B + (cIFBA47(25)*E**(4) + cIFBA47(26)*E**(3) + cIFBA47(27)*E**(2) + cIFBA47(28)*E + cIFBA47(29)) + +end function get_BOR1_NO_XE_IFBA_DIFF_2 + +double precision function get_BOR2_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA48 = (/ & + -7.28454215506e-02, & + 1.00527027165e+00, & + -4.74665461981e+00, & + 8.31915808180e+00, & + -1.48640164075e+01, & + 1.82110067051e-02, & + -2.88462356408e-01, & + 1.80551186229e+00, & + -6.27699409791e+00, & + 1.57636487386e+01 & + /) + get_BOR2_XE_IFBA_DIFF_0 = (cIFBA48(0)*E**(4) + cIFBA48(1)*E**(3) + cIFBA48(2)*E**(2) + cIFBA48(3)*E + cIFBA48(4))*B + (cIFBA48(5)*E**(4) + cIFBA48(6)*E**(3) + cIFBA48(7)*E**(2) + cIFBA48(8)*E + cIFBA48(9)) + +end function get_BOR2_XE_IFBA_DIFF_0 + +double precision function get_BOR2_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA49 = (/ & + 1.18071218118e-06, & + -1.98487595324e-05, & + 1.27419216918e-04, & + -3.75387539930e-04, & + 4.36712787474e-04, & + -7.76411816838e-05, & + 1.31357150006e-03, & + -8.52610379502e-03, & + 2.56350921431e-02, & + -3.09993991891e-02, & + 1.59654322801e-03, & + -2.71984039632e-02, & + 1.79191699085e-01, & + -5.56536634913e-01, & + 7.21946741535e-01, & + -1.04547042476e-02, & + 1.79005703700e-01, & + -1.20505213720e+00, & + 3.98770084449e+00, & + -6.09113873275e+00, & + 1.02963517661e-02, & + -1.66372654984e-01, & + 1.11046821130e+00, & + -4.55296202853e+00, & + 1.40422551989e+01 & + /) + get_BOR2_XE_IFBA_DIFF_1 = (cIFBA49(0)*E**(4) + cIFBA49(1)*E**(3) + cIFBA49(2)*E**(2) + cIFBA49(3)*E + cIFBA49(4))*B**(4) + (cIFBA49(5)*E**(4) + cIFBA49(6)*E**(3) + cIFBA49(7)*E**(2) + cIFBA49(8)*E + cIFBA49(9))*B**(3) + (cIFBA49(10)*E**(4) + cIFBA49(11)*E**(3) + cIFBA49(12)*E**(2) + cIFBA49(13)*E + cIFBA49(14))*B**(2) + (cIFBA49(15)*E**(4) + cIFBA49(16)*E**(3) + cIFBA49(17)*E**(2) + cIFBA49(18)*E + cIFBA49(19))*B + (cIFBA49(20)*E**(4) + cIFBA49(21)*E**(3) + cIFBA49(22)*E**(2) + cIFBA49(23)*E + cIFBA49(24)) + +end function get_BOR2_XE_IFBA_DIFF_1 + +double precision function get_BOR2_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA50 = (/ & + -8.15264913513e-08, & + 1.37192038619e-06, & + -8.70038469636e-06, & + 2.46539314907e-05, & + -2.62587140660e-05, & + 1.07720188534e-05, & + -1.86525501362e-04, & + 1.22362492492e-03, & + -3.60151098308e-03, & + 3.98971828144e-03, & + -3.43253598357e-04, & + 6.60271703114e-03, & + -4.82049508972e-02, & + 1.57290091310e-01, & + -1.91115613295e-01, & + -4.22555887820e-03, & + 2.88591406169e-02, & + 1.36210323952e-01, & + -1.41748397802e+00, & + 2.67191220969e+00, & + 2.28234983706e-01, & + -3.13999109429e+00, & + 1.46920633230e+01, & + -2.49649287641e+01, & + 8.40586402176e+00 & + /) + get_BOR2_XE_IFBA_DIFF_2 = (cIFBA50(0)*E**(4) + cIFBA50(1)*E**(3) + cIFBA50(2)*E**(2) + cIFBA50(3)*E + cIFBA50(4))*B**(4) + (cIFBA50(5)*E**(4) + cIFBA50(6)*E**(3) + cIFBA50(7)*E**(2) + cIFBA50(8)*E + cIFBA50(9))*B**(3) + (cIFBA50(10)*E**(4) + cIFBA50(11)*E**(3) + cIFBA50(12)*E**(2) + cIFBA50(13)*E + cIFBA50(14))*B**(2) + (cIFBA50(15)*E**(4) + cIFBA50(16)*E**(3) + cIFBA50(17)*E**(2) + cIFBA50(18)*E + cIFBA50(19))*B + (cIFBA50(20)*E**(4) + cIFBA50(21)*E**(3) + cIFBA50(22)*E**(2) + cIFBA50(23)*E + cIFBA50(24)) + +end function get_BOR2_XE_IFBA_DIFF_2 + +double precision function get_REMOV1_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA51 = (/ & + 3.27798350920e-05, & + -5.21077994935e-04, & + 3.06280242530e-03, & + -7.96018832349e-03, & + 8.93851314980e-03, & + -2.73175928420e-06, & + 4.59177493174e-05, & + -2.99872667733e-04, & + 9.75459242916e-04, & + -1.53096752648e-03 & + /) + get_REMOV1_IFBA_DIFF_0 = (cIFBA51(0)*E**(4) + cIFBA51(1)*E**(3) + cIFBA51(2)*E**(2) + cIFBA51(3)*E + cIFBA51(4))*B + (cIFBA51(5)*E**(4) + cIFBA51(6)*E**(3) + cIFBA51(7)*E**(2) + cIFBA51(8)*E + cIFBA51(9)) + +end function get_REMOV1_IFBA_DIFF_0 + +double precision function get_REMOV1_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA52 = (/ & + -1.06431903529e-12, & + 8.85222280293e-12, & + 7.94352124550e-12, & + -2.25356476102e-10, & + 4.86801680897e-10, & + 5.47210905751e-11, & + -1.25860339673e-10, & + -4.96092133970e-09, & + 3.29570962150e-08, & + -5.93547088546e-08, & + -1.22369740355e-09, & + -5.26542326004e-09, & + 2.29146922875e-07, & + -1.33176910441e-06, & + 2.36837844800e-06, & + 2.38882491604e-08, & + -2.45945072968e-08, & + -2.91027633088e-06, & + 1.99886681736e-05, & + -3.97618516712e-05, & + -2.33495518025e-07, & + 1.72315377587e-06, & + 9.08144757248e-06, & + -1.15173689885e-04, & + 2.95106122590e-04, & + 3.03544193496e-07, & + -2.88894851135e-06, & + -8.89527970657e-06, & + 2.10462243007e-04, & + -7.59064191927e-04 & + /) + get_REMOV1_IFBA_DIFF_1 = (cIFBA52(0)*E**(4) + cIFBA52(1)*E**(3) + cIFBA52(2)*E**(2) + cIFBA52(3)*E + cIFBA52(4))*B**(5) + (cIFBA52(5)*E**(4) + cIFBA52(6)*E**(3) + cIFBA52(7)*E**(2) + cIFBA52(8)*E + cIFBA52(9))*B**(4) + (cIFBA52(10)*E**(4) + cIFBA52(11)*E**(3) + cIFBA52(12)*E**(2) + cIFBA52(13)*E + cIFBA52(14))*B**(3) + (cIFBA52(15)*E**(4) + cIFBA52(16)*E**(3) + cIFBA52(17)*E**(2) + cIFBA52(18)*E + cIFBA52(19))*B**(2) + (cIFBA52(20)*E**(4) + cIFBA52(21)*E**(3) + cIFBA52(22)*E**(2) + cIFBA52(23)*E + cIFBA52(24))*B + (cIFBA52(25)*E**(4) + cIFBA52(26)*E**(3) + cIFBA52(27)*E**(2) + cIFBA52(28)*E + cIFBA52(29)) + +end function get_REMOV1_IFBA_DIFF_1 + +double precision function get_REMOV1_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA53 = (/ & + 1.66572318793e-12, & + -2.83231147310e-11, & + 1.77570747237e-10, & + -4.85977433349e-10, & + 4.89941848553e-10, & + -4.77004007610e-10, & + 8.09864995918e-09, & + -5.07120288919e-08, & + 1.38650761047e-07, & + -1.39656774237e-07, & + 5.33356565477e-08, & + -9.04249807419e-07, & + 5.65537879020e-06, & + -1.54463694818e-05, & + 1.55435147639e-05, & + -2.91086707865e-06, & + 4.92823050140e-05, & + -3.07850712668e-04, & + 8.39927645973e-04, & + -8.44337403166e-04, & + 7.75504071702e-05, & + -1.31119218503e-03, & + 8.18075437877e-03, & + -2.22954474018e-02, & + 2.23870949288e-02, & + -8.06720681368e-04, & + 1.36221756323e-02, & + -8.48931419691e-02, & + 2.31114426837e-01, & + -2.31761681715e-01 & + /) + get_REMOV1_IFBA_DIFF_2 = (cIFBA53(0)*E**(4) + cIFBA53(1)*E**(3) + cIFBA53(2)*E**(2) + cIFBA53(3)*E + cIFBA53(4))*B**(5) + (cIFBA53(5)*E**(4) + cIFBA53(6)*E**(3) + cIFBA53(7)*E**(2) + cIFBA53(8)*E + cIFBA53(9))*B**(4) + (cIFBA53(10)*E**(4) + cIFBA53(11)*E**(3) + cIFBA53(12)*E**(2) + cIFBA53(13)*E + cIFBA53(14))*B**(3) + (cIFBA53(15)*E**(4) + cIFBA53(16)*E**(3) + cIFBA53(17)*E**(2) + cIFBA53(18)*E + cIFBA53(19))*B**(2) + (cIFBA53(20)*E**(4) + cIFBA53(21)*E**(3) + cIFBA53(22)*E**(2) + cIFBA53(23)*E + cIFBA53(24))*B + (cIFBA53(25)*E**(4) + cIFBA53(26)*E**(3) + cIFBA53(27)*E**(2) + cIFBA53(28)*E + cIFBA53(29)) + +end function get_REMOV1_IFBA_DIFF_2 + +double precision function get_DIFF2_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA54 = (/ & + 7.28361571570e-05, & + -1.03425940584e-03, & + 5.22654175150e-03, & + -1.10936592056e-02, & + 1.20617817243e-02, & + -7.28413561697e-06, & + 1.29658076600e-04, & + -9.29755345665e-04, & + 3.62622176524e-03, & + -4.61085101471e-03 & + /) + get_DIFF2_IFBA_DIFF_0 = (cIFBA54(0)*E**(4) + cIFBA54(1)*E**(3) + cIFBA54(2)*E**(2) + cIFBA54(3)*E + cIFBA54(4))*B + (cIFBA54(5)*E**(4) + cIFBA54(6)*E**(3) + cIFBA54(7)*E**(2) + cIFBA54(8)*E + cIFBA54(9)) + +end function get_DIFF2_IFBA_DIFF_0 + +double precision function get_DIFF2_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA55 = (/ & + -5.34010191429e-10, & + 9.18153418662e-09, & + -5.88161874287e-08, & + 1.66088471652e-07, & + -1.72660697626e-07, & + 3.75684011650e-08, & + -6.46367131405e-07, & + 4.15591007989e-06, & + -1.18283446626e-05, & + 1.23967871173e-05, & + -8.31495856754e-07, & + 1.43572942758e-05, & + -9.31356682465e-05, & + 2.69719073156e-04, & + -2.87302743593e-04, & + 5.52042723867e-06, & + -9.67352400165e-05, & + 6.45923485883e-04, & + -1.97951507374e-03, & + 2.20424858339e-03, & + -1.38445950380e-06, & + 3.46074477966e-05, & + -3.68169032774e-04, & + 2.18906457294e-03, & + -3.19790391740e-03 & + /) + get_DIFF2_IFBA_DIFF_1 = (cIFBA55(0)*E**(4) + cIFBA55(1)*E**(3) + cIFBA55(2)*E**(2) + cIFBA55(3)*E + cIFBA55(4))*B**(4) + (cIFBA55(5)*E**(4) + cIFBA55(6)*E**(3) + cIFBA55(7)*E**(2) + cIFBA55(8)*E + cIFBA55(9))*B**(3) + (cIFBA55(10)*E**(4) + cIFBA55(11)*E**(3) + cIFBA55(12)*E**(2) + cIFBA55(13)*E + cIFBA55(14))*B**(2) + (cIFBA55(15)*E**(4) + cIFBA55(16)*E**(3) + cIFBA55(17)*E**(2) + cIFBA55(18)*E + cIFBA55(19))*B + (cIFBA55(20)*E**(4) + cIFBA55(21)*E**(3) + cIFBA55(22)*E**(2) + cIFBA55(23)*E + cIFBA55(24)) + +end function get_DIFF2_IFBA_DIFF_1 + +double precision function get_DIFF2_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA56 = (/ & + -4.28111536833e-10, & + 6.93820313716e-09, & + -4.16293163393e-08, & + 1.09558669389e-07, & + -1.06708057514e-07, & + 8.49579567821e-08, & + -1.37664153623e-06, & + 8.25800190392e-06, & + -2.17278642950e-05, & + 2.11562573424e-05, & + -6.21158743866e-06, & + 1.00653233425e-04, & + -6.03759831602e-04, & + 1.58850933939e-03, & + -1.54656095271e-03, & + 1.98314076746e-04, & + -3.21442401855e-03, & + 1.92856178374e-02, & + -5.07537553761e-02, & + 4.94216215604e-02, & + -2.32636160474e-03, & + 3.77280983167e-02, & + -2.26457013513e-01, & + 5.96284432734e-01, & + -5.80889477324e-01 & + /) + get_DIFF2_IFBA_DIFF_2 = (cIFBA56(0)*E**(4) + cIFBA56(1)*E**(3) + cIFBA56(2)*E**(2) + cIFBA56(3)*E + cIFBA56(4))*B**(4) + (cIFBA56(5)*E**(4) + cIFBA56(6)*E**(3) + cIFBA56(7)*E**(2) + cIFBA56(8)*E + cIFBA56(9))*B**(3) + (cIFBA56(10)*E**(4) + cIFBA56(11)*E**(3) + cIFBA56(12)*E**(2) + cIFBA56(13)*E + cIFBA56(14))*B**(2) + (cIFBA56(15)*E**(4) + cIFBA56(16)*E**(3) + cIFBA56(17)*E**(2) + cIFBA56(18)*E + cIFBA56(19))*B + (cIFBA56(20)*E**(4) + cIFBA56(21)*E**(3) + cIFBA56(22)*E**(2) + cIFBA56(23)*E + cIFBA56(24)) + +end function get_DIFF2_IFBA_DIFF_2 + +double precision function get_DIFF1_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA57 = (/ & + 5.46319362745e-04, & + -9.05676860956e-03, & + 5.58630702854e-02, & + -1.51267222272e-01, & + 1.31391840962e-01, & + 1.27465895194e-04, & + -2.03216983046e-03, & + 1.22462051107e-02, & + -3.44573992975e-02, & + 4.98974013335e-02 & + /) + get_DIFF1_IFBA_DIFF_0 = (cIFBA57(0)*E**(4) + cIFBA57(1)*E**(3) + cIFBA57(2)*E**(2) + cIFBA57(3)*E + cIFBA57(4))*B + (cIFBA57(5)*E**(4) + cIFBA57(6)*E**(3) + cIFBA57(7)*E**(2) + cIFBA57(8)*E + cIFBA57(9)) + +end function get_DIFF1_IFBA_DIFF_0 + +double precision function get_DIFF1_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA58 = (/ & + -3.68047285501e-10, & + 5.98549783191e-09, & + -3.62861188908e-08, & + 9.77033190308e-08, & + -9.95919938695e-08, & + 2.74735300734e-08, & + -4.47434979241e-07, & + 2.72490650153e-06, & + -7.41201503632e-06, & + 7.71334191815e-06, & + -7.31999916828e-07, & + 1.19579640320e-05, & + -7.34365427945e-05, & + 2.03408833595e-04, & + -2.19758710260e-04, & + 8.22421563673e-06, & + -1.35261618391e-04, & + 8.43946062006e-04, & + -2.41831557281e-03, & + 2.81260768657e-03, & + -3.17650982484e-05, & + 5.30188926913e-04, & + -3.41840754816e-03, & + 1.05570860087e-02, & + -1.47600779834e-02, & + -1.90018056990e-05, & + 3.02041492146e-04, & + -1.62610430518e-03, & + 2.04706361742e-03, & + 1.35404955707e-02 & + /) + get_DIFF1_IFBA_DIFF_1 = (cIFBA58(0)*E**(4) + cIFBA58(1)*E**(3) + cIFBA58(2)*E**(2) + cIFBA58(3)*E + cIFBA58(4))*B**(5) + (cIFBA58(5)*E**(4) + cIFBA58(6)*E**(3) + cIFBA58(7)*E**(2) + cIFBA58(8)*E + cIFBA58(9))*B**(4) + (cIFBA58(10)*E**(4) + cIFBA58(11)*E**(3) + cIFBA58(12)*E**(2) + cIFBA58(13)*E + cIFBA58(14))*B**(3) + (cIFBA58(15)*E**(4) + cIFBA58(16)*E**(3) + cIFBA58(17)*E**(2) + cIFBA58(18)*E + cIFBA58(19))*B**(2) + (cIFBA58(20)*E**(4) + cIFBA58(21)*E**(3) + cIFBA58(22)*E**(2) + cIFBA58(23)*E + cIFBA58(24))*B + (cIFBA58(25)*E**(4) + cIFBA58(26)*E**(3) + cIFBA58(27)*E**(2) + cIFBA58(28)*E + cIFBA58(29)) + +end function get_DIFF1_IFBA_DIFF_1 + +double precision function get_DIFF1_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA59 = (/ & + 3.59621191479e-10, & + -5.66305584406e-09, & + 3.31021288783e-08, & + -8.51138391543e-08, & + 8.12557019771e-08, & + -9.92221725284e-08, & + 1.56568314972e-06, & + -9.17034727520e-06, & + 2.36248407334e-05, & + -2.25936138683e-05, & + 1.07635841596e-05, & + -1.70175751780e-04, & + 9.98643839799e-04, & + -2.57743202419e-03, & + 2.46902473992e-03, & + -5.73080669306e-04, & + 9.07737204601e-03, & + -5.33656477830e-02, & + 1.37972258172e-01, & + -1.32378367546e-01, & + 1.49467010134e-02, & + -2.37162754418e-01, & + 1.39666061057e+00, & + -3.61686502105e+00, & + 3.47545070025e+00, & + -1.52491068655e-01, & + 2.42352101504e+00, & + -1.42948516291e+01, & + 3.70751516571e+01, & + -3.56754061663e+01 & + /) + get_DIFF1_IFBA_DIFF_2 = (cIFBA59(0)*E**(4) + cIFBA59(1)*E**(3) + cIFBA59(2)*E**(2) + cIFBA59(3)*E + cIFBA59(4))*B**(5) + (cIFBA59(5)*E**(4) + cIFBA59(6)*E**(3) + cIFBA59(7)*E**(2) + cIFBA59(8)*E + cIFBA59(9))*B**(4) + (cIFBA59(10)*E**(4) + cIFBA59(11)*E**(3) + cIFBA59(12)*E**(2) + cIFBA59(13)*E + cIFBA59(14))*B**(3) + (cIFBA59(15)*E**(4) + cIFBA59(16)*E**(3) + cIFBA59(17)*E**(2) + cIFBA59(18)*E + cIFBA59(19))*B**(2) + (cIFBA59(20)*E**(4) + cIFBA59(21)*E**(3) + cIFBA59(22)*E**(2) + cIFBA59(23)*E + cIFBA59(24))*B + (cIFBA59(25)*E**(4) + cIFBA59(26)*E**(3) + cIFBA59(27)*E**(2) + cIFBA59(28)*E + cIFBA59(29)) + +end function get_DIFF1_IFBA_DIFF_2 + +double precision function get_BOR1_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA60 = (/ & + 5.46370928026e-04, & + -7.84353194853e-03, & + 3.50637973408e-02, & + -7.76223747303e-02, & + 7.15616467484e-01, & + -4.73485085648e-04, & + 8.63928115187e-03, & + -6.50247890446e-02, & + 2.70254136545e-01, & + -6.16036418602e-01 & + /) + get_BOR1_XE_IFBA_DIFF_0 = (cIFBA60(0)*E**(4) + cIFBA60(1)*E**(3) + cIFBA60(2)*E**(2) + cIFBA60(3)*E + cIFBA60(4))*B + (cIFBA60(5)*E**(4) + cIFBA60(6)*E**(3) + cIFBA60(7)*E**(2) + cIFBA60(8)*E + cIFBA60(9)) + +end function get_BOR1_XE_IFBA_DIFF_0 + +double precision function get_BOR1_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA61 = (/ & + 1.55895370694e-09, & + -2.73843529773e-08, & + 1.83362225301e-07, & + -5.59000881632e-07, & + 6.62128159376e-07, & + -1.38663480056e-07, & + 2.46852505272e-06, & + -1.68190139668e-05, & + 5.24590313104e-05, & + -6.40478982435e-05, & + 4.40774232120e-06, & + -7.97765824105e-05, & + 5.56306007155e-04, & + -1.79290466381e-03, & + 2.29375219635e-03, & + -5.96719126563e-05, & + 1.10215304982e-03, & + -7.93606509596e-03, & + 2.68952552197e-02, & + -3.72316187765e-02, & + 3.07480021198e-04, & + -5.80363498005e-03, & + 4.37384366124e-02, & + -1.61710033821e-01, & + 2.61688843014e-01, & + -2.53337302052e-04, & + 4.83084585336e-03, & + -4.04891003274e-02, & + 1.99119987379e-01, & + -5.25831041842e-01 & + /) + get_BOR1_XE_IFBA_DIFF_1 = (cIFBA61(0)*E**(4) + cIFBA61(1)*E**(3) + cIFBA61(2)*E**(2) + cIFBA61(3)*E + cIFBA61(4))*B**(5) + (cIFBA61(5)*E**(4) + cIFBA61(6)*E**(3) + cIFBA61(7)*E**(2) + cIFBA61(8)*E + cIFBA61(9))*B**(4) + (cIFBA61(10)*E**(4) + cIFBA61(11)*E**(3) + cIFBA61(12)*E**(2) + cIFBA61(13)*E + cIFBA61(14))*B**(3) + (cIFBA61(15)*E**(4) + cIFBA61(16)*E**(3) + cIFBA61(17)*E**(2) + cIFBA61(18)*E + cIFBA61(19))*B**(2) + (cIFBA61(20)*E**(4) + cIFBA61(21)*E**(3) + cIFBA61(22)*E**(2) + cIFBA61(23)*E + cIFBA61(24))*B + (cIFBA61(25)*E**(4) + cIFBA61(26)*E**(3) + cIFBA61(27)*E**(2) + cIFBA61(28)*E + cIFBA61(29)) + +end function get_BOR1_XE_IFBA_DIFF_1 + +double precision function get_BOR1_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: cIFBA62 = (/ & + -2.93828296355e-07, & + 4.98582645734e-06, & + -3.08161766673e-05, & + 8.06603258447e-05, & + -7.38805354035e-05, & + 3.11886140285e-05, & + -5.40818593759e-04, & + 3.41826296566e-03, & + -9.10675940185e-03, & + 8.22048216942e-03, & + -7.39798288424e-04, & + 1.33130976172e-02, & + -8.77483400052e-02, & + 2.44709303653e-01, & + -2.17050623628e-01 & + /) + get_BOR1_XE_IFBA_DIFF_2 = (cIFBA62(0)*E**(4) + cIFBA62(1)*E**(3) + cIFBA62(2)*E**(2) + cIFBA62(3)*E + cIFBA62(4))*B**(2) + (cIFBA62(5)*E**(4) + cIFBA62(6)*E**(3) + cIFBA62(7)*E**(2) + cIFBA62(8)*E + cIFBA62(9))*B + (cIFBA62(10)*E**(4) + cIFBA62(11)*E**(3) + cIFBA62(12)*E**(2) + cIFBA62(13)*E + cIFBA62(14)) + +end function get_BOR1_XE_IFBA_DIFF_2 + +double precision function get_XE_YIELD_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA63 = (/ & + 1.09265535029e-05, & + -1.74339247712e-04, & + 1.04676404752e-03, & + -2.84791739432e-03, & + 3.15393566150e-03, & + -1.82116295314e-06, & + 2.84101706236e-05, & + -1.66075767906e-04, & + 4.38927043468e-04, & + -4.80743551238e-04 & + /) + get_XE_YIELD_IFBA_DIFF_0 = (cIFBA63(0)*E**(4) + cIFBA63(1)*E**(3) + cIFBA63(2)*E**(2) + cIFBA63(3)*E + cIFBA63(4))*B + (cIFBA63(5)*E**(4) + cIFBA63(6)*E**(3) + cIFBA63(7)*E**(2) + cIFBA63(8)*E + cIFBA63(9)) + +end function get_XE_YIELD_IFBA_DIFF_0 + +double precision function get_XE_YIELD_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA64 = (/ & + 1.28755834315e-11, & + -2.11417509758e-10, & + 1.49536292393e-09, & + -5.86198881119e-09, & + 1.10802938666e-08, & + -6.03309642330e-10, & + 9.75501660967e-09, & + -7.19162929199e-08, & + 3.15327735041e-07, & + -6.85295493262e-07, & + 1.29592843184e-09, & + -3.14206135447e-09, & + 1.48903963296e-07, & + -2.57528341093e-06, & + 1.06003889883e-05, & + 1.61037066916e-07, & + -3.06232799819e-06, & + 2.06687957884e-05, & + -5.25757988711e-05, & + 9.44120621015e-06, & + -6.04313555494e-07, & + 1.09453753275e-05, & + -7.69622385135e-05, & + 2.57444588440e-04, & + -3.79271817990e-04 & + /) + get_XE_YIELD_IFBA_DIFF_1 = (cIFBA64(0)*E**(4) + cIFBA64(1)*E**(3) + cIFBA64(2)*E**(2) + cIFBA64(3)*E + cIFBA64(4))*B**(4) + (cIFBA64(5)*E**(4) + cIFBA64(6)*E**(3) + cIFBA64(7)*E**(2) + cIFBA64(8)*E + cIFBA64(9))*B**(3) + (cIFBA64(10)*E**(4) + cIFBA64(11)*E**(3) + cIFBA64(12)*E**(2) + cIFBA64(13)*E + cIFBA64(14))*B**(2) + (cIFBA64(15)*E**(4) + cIFBA64(16)*E**(3) + cIFBA64(17)*E**(2) + cIFBA64(18)*E + cIFBA64(19))*B + (cIFBA64(20)*E**(4) + cIFBA64(21)*E**(3) + cIFBA64(22)*E**(2) + cIFBA64(23)*E + cIFBA64(24)) + +end function get_XE_YIELD_IFBA_DIFF_1 + +double precision function get_XE_YIELD_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA65 = (/ & + -9.24495268177e-13, & + 1.96361301014e-11, & + -1.46895370391e-10, & + 4.58307672646e-10, & + -5.07400424531e-10, & + -4.74294336888e-13, & + -1.06877765473e-09, & + 1.31112656034e-08, & + -5.14680799345e-08, & + 6.59847568961e-08, & + 1.62570129618e-08, & + -1.75653778899e-07, & + 5.16695166636e-07, & + 7.34999031279e-09, & + -1.38947029861e-06, & + -1.08451554776e-06, & + 1.45324414666e-05, & + -6.92758871818e-05, & + 1.38341609870e-04, & + -8.76655956034e-05, & + 1.95711564459e-05, & + -2.77375476454e-04, & + 1.44261775212e-03, & + -3.30858494999e-03, & + 2.72060317289e-03 & + /) + get_XE_YIELD_IFBA_DIFF_2 = (cIFBA65(0)*E**(4) + cIFBA65(1)*E**(3) + cIFBA65(2)*E**(2) + cIFBA65(3)*E + cIFBA65(4))*B**(4) + (cIFBA65(5)*E**(4) + cIFBA65(6)*E**(3) + cIFBA65(7)*E**(2) + cIFBA65(8)*E + cIFBA65(9))*B**(3) + (cIFBA65(10)*E**(4) + cIFBA65(11)*E**(3) + cIFBA65(12)*E**(2) + cIFBA65(13)*E + cIFBA65(14))*B**(2) + (cIFBA65(15)*E**(4) + cIFBA65(16)*E**(3) + cIFBA65(17)*E**(2) + cIFBA65(18)*E + cIFBA65(19))*B + (cIFBA65(20)*E**(4) + cIFBA65(21)*E**(3) + cIFBA65(22)*E**(2) + cIFBA65(23)*E + cIFBA65(24)) + +end function get_XE_YIELD_IFBA_DIFF_2 + +double precision function get_NU_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA66 = (/ & + -2.36746590612e-03, & + 3.77580493690e-02, & + -2.23073611643e-01, & + 5.76769326762e-01, & + -5.39313110175e-01, & + 2.54956658462e-04, & + -4.00160647254e-03, & + 2.31049153661e-02, & + -5.75091665303e-02, & + 4.84856366119e-02 & + /) + get_NU_IFBA_DIFF_0 = (cIFBA66(0)*E**(4) + cIFBA66(1)*E**(3) + cIFBA66(2)*E**(2) + cIFBA66(3)*E + cIFBA66(4))*B + (cIFBA66(5)*E**(4) + cIFBA66(6)*E**(3) + cIFBA66(7)*E**(2) + cIFBA66(8)*E + cIFBA66(9)) + +end function get_NU_IFBA_DIFF_0 + +double precision function get_NU_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA67 = (/ & + 9.17913901995e-10, & + -1.44329989439e-08, & + 8.37128272690e-08, & + -2.10241014103e-07, & + 1.87593256249e-07, & + -7.13813314835e-08, & + 1.11959882440e-06, & + -6.46933795179e-06, & + 1.61304004714e-05, & + -1.41288210588e-05, & + 1.94894815630e-06, & + -3.05005155453e-05, & + 1.75555508421e-04, & + -4.33872932100e-04, & + 3.69865459109e-04, & + -2.24638954621e-05, & + 3.51740476149e-04, & + -2.02359378240e-03, & + 4.97403869824e-03, & + -4.10973983451e-03, & + 1.03034526970e-04, & + -1.63273839043e-03, & + 9.55668239972e-03, & + -2.40856980172e-02, & + 2.04579756633e-02, & + -1.61279442374e-04, & + 2.59885993543e-03, & + -1.57570386145e-02, & + 4.32606463311e-02, & + -4.86996660042e-02 & + /) + get_NU_IFBA_DIFF_1 = (cIFBA67(0)*E**(4) + cIFBA67(1)*E**(3) + cIFBA67(2)*E**(2) + cIFBA67(3)*E + cIFBA67(4))*B**(5) + (cIFBA67(5)*E**(4) + cIFBA67(6)*E**(3) + cIFBA67(7)*E**(2) + cIFBA67(8)*E + cIFBA67(9))*B**(4) + (cIFBA67(10)*E**(4) + cIFBA67(11)*E**(3) + cIFBA67(12)*E**(2) + cIFBA67(13)*E + cIFBA67(14))*B**(3) + (cIFBA67(15)*E**(4) + cIFBA67(16)*E**(3) + cIFBA67(17)*E**(2) + cIFBA67(18)*E + cIFBA67(19))*B**(2) + (cIFBA67(20)*E**(4) + cIFBA67(21)*E**(3) + cIFBA67(22)*E**(2) + cIFBA67(23)*E + cIFBA67(24))*B + (cIFBA67(25)*E**(4) + cIFBA67(26)*E**(3) + cIFBA67(27)*E**(2) + cIFBA67(28)*E + cIFBA67(29)) + +end function get_NU_IFBA_DIFF_1 + +double precision function get_NU_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA68 = (/ & + -4.08040503348e-10, & + 6.53763139445e-09, & + -3.88741058142e-08, & + 1.01704174144e-07, & + -9.87880363555e-08, & + 1.02356915801e-07, & + -1.64046529116e-06, & + 9.75764436783e-06, & + -2.55369441196e-05, & + 2.48135083347e-05, & + -1.00609130906e-05, & + 1.61323099993e-04, & + -9.60044240766e-04, & + 2.51384695247e-03, & + -2.44389213552e-03, & + 4.83992847954e-04, & + -7.76633549760e-03, & + 4.62532790112e-02, & + -1.21207881035e-01, & + 1.17924050436e-01, & + -1.13964084709e-02, & + 1.83063847314e-01, & + -1.09147715194e+00, & + 2.86359393318e+00, & + -2.78913139863e+00, & + 1.05142865042e-01, & + -1.69128149506e+00, & + 1.00990607385e+01, & + -2.65394335263e+01, & + 2.58922273844e+01 & + /) + get_NU_IFBA_DIFF_2 = (cIFBA68(0)*E**(4) + cIFBA68(1)*E**(3) + cIFBA68(2)*E**(2) + cIFBA68(3)*E + cIFBA68(4))*B**(5) + (cIFBA68(5)*E**(4) + cIFBA68(6)*E**(3) + cIFBA68(7)*E**(2) + cIFBA68(8)*E + cIFBA68(9))*B**(4) + (cIFBA68(10)*E**(4) + cIFBA68(11)*E**(3) + cIFBA68(12)*E**(2) + cIFBA68(13)*E + cIFBA68(14))*B**(3) + (cIFBA68(15)*E**(4) + cIFBA68(16)*E**(3) + cIFBA68(17)*E**(2) + cIFBA68(18)*E + cIFBA68(19))*B**(2) + (cIFBA68(20)*E**(4) + cIFBA68(21)*E**(3) + cIFBA68(22)*E**(2) + cIFBA68(23)*E + cIFBA68(24))*B + (cIFBA68(25)*E**(4) + cIFBA68(26)*E**(3) + cIFBA68(27)*E**(2) + cIFBA68(28)*E + cIFBA68(29)) + +end function get_NU_IFBA_DIFF_2 + +double precision function get_BOR2_NO_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA69 = (/ & + 1.81780368046e-07, & + -4.43818220568e-06, & + 4.14529947879e-05, & + -1.68037842742e-04, & + -2.98962833473e-06, & + -9.83630880490e-13, & + -2.42849495811e-07, & + 5.28317189758e-06, & + -5.18217978560e-05, & + 2.59178774046e-04 & + /) + get_BOR2_NO_XE_IFBA_DIFF_0 = (cIFBA69(0)*E**(4) + cIFBA69(1)*E**(3) + cIFBA69(2)*E**(2) + cIFBA69(3)*E + cIFBA69(4))*B + (cIFBA69(5)*E**(4) + cIFBA69(6)*E**(3) + cIFBA69(7)*E**(2) + cIFBA69(8)*E + cIFBA69(9)) + +end function get_BOR2_NO_XE_IFBA_DIFF_0 + +double precision function get_BOR2_NO_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA70 = (/ & + -7.54012057948e-13, & + 1.32082207212e-11, & + -8.75192757057e-11, & + 2.59720917542e-10, & + -2.90323285535e-10, & + 7.52151438141e-11, & + -1.32348783786e-09, & + 8.83600484137e-09, & + -2.65920170018e-08, & + 3.05174583060e-08, & + -2.69309932944e-09, & + 4.76794874783e-08, & + -3.21823214559e-07, & + 9.89030719024e-07, & + -1.18211862388e-06, & + 4.03362322746e-08, & + -7.20783369689e-07, & + 4.95100049513e-06, & + -1.57617471399e-05, & + 2.02700835817e-05, & + -2.16256450492e-07, & + 3.92105554512e-06, & + -2.77783911537e-05, & + 9.49209305673e-05, & + -1.44254443987e-04, & + 1.57379860248e-07, & + -2.86042082655e-06, & + 2.15503633989e-05, & + -9.67530946538e-05, & + 3.02570060072e-04 & + /) + get_BOR2_NO_XE_IFBA_DIFF_1 = (cIFBA70(0)*E**(4) + cIFBA70(1)*E**(3) + cIFBA70(2)*E**(2) + cIFBA70(3)*E + cIFBA70(4))*B**(5) + (cIFBA70(5)*E**(4) + cIFBA70(6)*E**(3) + cIFBA70(7)*E**(2) + cIFBA70(8)*E + cIFBA70(9))*B**(4) + (cIFBA70(10)*E**(4) + cIFBA70(11)*E**(3) + cIFBA70(12)*E**(2) + cIFBA70(13)*E + cIFBA70(14))*B**(3) + (cIFBA70(15)*E**(4) + cIFBA70(16)*E**(3) + cIFBA70(17)*E**(2) + cIFBA70(18)*E + cIFBA70(19))*B**(2) + (cIFBA70(20)*E**(4) + cIFBA70(21)*E**(3) + cIFBA70(22)*E**(2) + cIFBA70(23)*E + cIFBA70(24))*B + (cIFBA70(25)*E**(4) + cIFBA70(26)*E**(3) + cIFBA70(27)*E**(2) + cIFBA70(28)*E + cIFBA70(29)) + +end function get_BOR2_NO_XE_IFBA_DIFF_1 + +double precision function get_BOR2_NO_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA71 = (/ & + 6.07325451758e-13, & + -9.62185857690e-12, & + 5.65939363849e-11, & + -1.46477621888e-10, & + 1.40717433039e-10, & + -1.54736445725e-10, & + 2.45064252720e-09, & + -1.44087731414e-08, & + 3.72800499979e-08, & + -3.58038506440e-08, & + 1.55172796197e-08, & + -2.45654531756e-07, & + 1.44370350182e-06, & + -3.73378640850e-06, & + 3.58477014169e-06, & + -7.65346075276e-07, & + 1.21103726942e-05, & + -7.11343182829e-05, & + 1.83879695984e-04, & + -1.76469116357e-04, & + 1.85624755633e-05, & + -2.93564507394e-04, & + 1.72329559720e-03, & + -4.45198650504e-03, & + 4.27024447462e-03, & + -1.77129915332e-04, & + 2.79986624704e-03, & + -1.64259459693e-02, & + 4.24090443665e-02, & + -4.06459637415e-02 & + /) + get_BOR2_NO_XE_IFBA_DIFF_2 = (cIFBA71(0)*E**(4) + cIFBA71(1)*E**(3) + cIFBA71(2)*E**(2) + cIFBA71(3)*E + cIFBA71(4))*B**(5) + (cIFBA71(5)*E**(4) + cIFBA71(6)*E**(3) + cIFBA71(7)*E**(2) + cIFBA71(8)*E + cIFBA71(9))*B**(4) + (cIFBA71(10)*E**(4) + cIFBA71(11)*E**(3) + cIFBA71(12)*E**(2) + cIFBA71(13)*E + cIFBA71(14))*B**(3) + (cIFBA71(15)*E**(4) + cIFBA71(16)*E**(3) + cIFBA71(17)*E**(2) + cIFBA71(18)*E + cIFBA71(19))*B**(2) + (cIFBA71(20)*E**(4) + cIFBA71(21)*E**(3) + cIFBA71(22)*E**(2) + cIFBA71(23)*E + cIFBA71(24))*B + (cIFBA71(25)*E**(4) + cIFBA71(26)*E**(3) + cIFBA71(27)*E**(2) + cIFBA71(28)*E + cIFBA71(29)) + +end function get_BOR2_NO_XE_IFBA_DIFF_2 + +double precision function get_KAPPA_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA72 = (/ & + 9.10523059210e-15, & + -1.45926493888e-13, & + 8.69367435451e-13, & + -2.28623393180e-12, & + 2.26751587296e-12, & + 2.97156650715e-20, & + 4.80424690040e-17, & + -5.79406020039e-16, & + 3.28705850610e-15, & + -1.19600539452e-14 & + /) + get_KAPPA_IFBA_DIFF_0 = (cIFBA72(0)*E**(4) + cIFBA72(1)*E**(3) + cIFBA72(2)*E**(2) + cIFBA72(3)*E + cIFBA72(4))*B + (cIFBA72(5)*E**(4) + cIFBA72(6)*E**(3) + cIFBA72(7)*E**(2) + cIFBA72(8)*E + cIFBA72(9)) + +end function get_KAPPA_IFBA_DIFF_0 + +double precision function get_KAPPA_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA73 = (/ & + -7.18940914802e-22, & + 1.80811449073e-20, & + -1.47969016292e-19, & + 5.01736097651e-19, & + -6.23062503049e-19, & + 1.45976610421e-19, & + -2.84507707986e-18, & + 2.00832679404e-17, & + -6.17334049476e-17, & + 7.13346897599e-17, & + -7.04805241495e-18, & + 1.26171945244e-16, & + -8.35038817778e-16, & + 2.44076650239e-15, & + -2.71067695417e-15, & + 1.18678289081e-16, & + -2.03452447189e-15, & + 1.29828468765e-14, & + -3.68231201683e-14, & + 4.00382706434e-14, & + -6.80732927048e-16, & + 1.12929973444e-14, & + -6.98756008867e-14, & + 1.92557967295e-13, & + -2.05115213437e-13, & + 1.35425286931e-15, & + -2.16753251101e-14, & + 1.28564395271e-13, & + -3.33423829053e-13, & + 3.12534393755e-13 & + /) + get_KAPPA_IFBA_DIFF_1 = (cIFBA73(0)*E**(4) + cIFBA73(1)*E**(3) + cIFBA73(2)*E**(2) + cIFBA73(3)*E + cIFBA73(4))*B**(5) + (cIFBA73(5)*E**(4) + cIFBA73(6)*E**(3) + cIFBA73(7)*E**(2) + cIFBA73(8)*E + cIFBA73(9))*B**(4) + (cIFBA73(10)*E**(4) + cIFBA73(11)*E**(3) + cIFBA73(12)*E**(2) + cIFBA73(13)*E + cIFBA73(14))*B**(3) + (cIFBA73(15)*E**(4) + cIFBA73(16)*E**(3) + cIFBA73(17)*E**(2) + cIFBA73(18)*E + cIFBA73(19))*B**(2) + (cIFBA73(20)*E**(4) + cIFBA73(21)*E**(3) + cIFBA73(22)*E**(2) + cIFBA73(23)*E + cIFBA73(24))*B + (cIFBA73(25)*E**(4) + cIFBA73(26)*E**(3) + cIFBA73(27)*E**(2) + cIFBA73(28)*E + cIFBA73(29)) + +end function get_KAPPA_IFBA_DIFF_1 + +double precision function get_KAPPA_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA74 = (/ & + 8.68604110368e-22, & + -1.32889617660e-20, & + 7.49927881313e-20, & + -1.84892917703e-19, & + 1.67905808740e-19, & + -2.08550098717e-19, & + 3.18838845783e-18, & + -1.79771935453e-17, & + 4.42724187825e-17, & + -4.01418792354e-17, & + 1.91484353932e-17, & + -2.92135753462e-16, & + 1.64302176782e-15, & + -4.03376912446e-15, & + 3.64308364920e-15, & + -8.32153249697e-16, & + 1.26424151460e-14, & + -7.07432714859e-14, & + 1.72603644189e-13, & + -1.54683525529e-13, & + 1.68975763403e-14, & + -2.54749221638e-13, & + 1.41210032557e-12, & + -3.40494753495e-12, & + 3.00663168645e-12, & + -1.27457369369e-13, & + 1.89669271197e-12, & + -1.03414986331e-11, & + 2.44068243027e-11, & + -2.09534468696e-11 & + /) + get_KAPPA_IFBA_DIFF_2 = (cIFBA74(0)*E**(4) + cIFBA74(1)*E**(3) + cIFBA74(2)*E**(2) + cIFBA74(3)*E + cIFBA74(4))*B**(5) + (cIFBA74(5)*E**(4) + cIFBA74(6)*E**(3) + cIFBA74(7)*E**(2) + cIFBA74(8)*E + cIFBA74(9))*B**(4) + (cIFBA74(10)*E**(4) + cIFBA74(11)*E**(3) + cIFBA74(12)*E**(2) + cIFBA74(13)*E + cIFBA74(14))*B**(3) + (cIFBA74(15)*E**(4) + cIFBA74(16)*E**(3) + cIFBA74(17)*E**(2) + cIFBA74(18)*E + cIFBA74(19))*B**(2) + (cIFBA74(20)*E**(4) + cIFBA74(21)*E**(3) + cIFBA74(22)*E**(2) + cIFBA74(23)*E + cIFBA74(24))*B + (cIFBA74(25)*E**(4) + cIFBA74(26)*E**(3) + cIFBA74(27)*E**(2) + cIFBA74(28)*E + cIFBA74(29)) + +end function get_KAPPA_IFBA_DIFF_2 + +double precision function get_ABS1_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA75 = (/ & + -4.00606446720e-06, & + 6.67679543569e-05, & + -4.16997827797e-04, & + 1.17204434699e-03, & + -8.57340147361e-04, & + 1.64386068348e-07, & + -1.70993700602e-06, & + 3.77990951415e-07, & + 7.65150044494e-05, & + -9.37066570083e-04 & + /) + get_ABS1_IFBA_DIFF_0 = (cIFBA75(0)*E**(4) + cIFBA75(1)*E**(3) + cIFBA75(2)*E**(2) + cIFBA75(3)*E + cIFBA75(4))*B + (cIFBA75(5)*E**(4) + cIFBA75(6)*E**(3) + cIFBA75(7)*E**(2) + cIFBA75(8)*E + cIFBA75(9)) + +end function get_ABS1_IFBA_DIFF_0 + +double precision function get_ABS1_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA76 = (/ & + -5.70247495951e-12, & + 8.30837705311e-11, & + -4.26366493204e-10, & + 8.52083861477e-10, & + -4.06216887981e-10, & + 3.46465262497e-10, & + -4.86467905452e-09, & + 2.30572807497e-08, & + -3.62145715239e-08, & + -5.99978766386e-09, & + -5.68860243471e-09, & + 7.05831218298e-08, & + -2.33138630136e-07, & + -2.14575279852e-07, & + 1.76025474854e-06, & + 5.73044365733e-09, & + 1.68615350353e-07, & + -3.57263176754e-06, & + 2.20143896926e-05, & + -4.95070415595e-05, & + 2.77657956991e-07, & + -5.57820011362e-06, & + 4.60634700325e-05, & + -1.97847625866e-04, & + 4.36472444403e-04, & + -2.45544817069e-07, & + 3.94079204269e-06, & + -2.63552077565e-05, & + 1.23174282538e-04, & + -9.47154978994e-04 & + /) + get_ABS1_IFBA_DIFF_1 = (cIFBA76(0)*E**(4) + cIFBA76(1)*E**(3) + cIFBA76(2)*E**(2) + cIFBA76(3)*E + cIFBA76(4))*B**(5) + (cIFBA76(5)*E**(4) + cIFBA76(6)*E**(3) + cIFBA76(7)*E**(2) + cIFBA76(8)*E + cIFBA76(9))*B**(4) + (cIFBA76(10)*E**(4) + cIFBA76(11)*E**(3) + cIFBA76(12)*E**(2) + cIFBA76(13)*E + cIFBA76(14))*B**(3) + (cIFBA76(15)*E**(4) + cIFBA76(16)*E**(3) + cIFBA76(17)*E**(2) + cIFBA76(18)*E + cIFBA76(19))*B**(2) + (cIFBA76(20)*E**(4) + cIFBA76(21)*E**(3) + cIFBA76(22)*E**(2) + cIFBA76(23)*E + cIFBA76(24))*B + (cIFBA76(25)*E**(4) + cIFBA76(26)*E**(3) + cIFBA76(27)*E**(2) + cIFBA76(28)*E + cIFBA76(29)) + +end function get_ABS1_IFBA_DIFF_1 + +double precision function get_ABS1_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA77 = (/ & + 1.00459533234e-12, & + -1.59671698226e-11, & + 9.49317564029e-11, & + -2.49841587266e-10, & + 2.44869116380e-10, & + -2.55264661378e-10, & + 4.04963201779e-09, & + -2.40356130070e-08, & + 6.31592470322e-08, & + -6.18162835891e-08, & + 2.57517728558e-08, & + -4.07503019732e-07, & + 2.41280682719e-06, & + -6.32595636181e-06, & + 6.17886460002e-06, & + -1.28739585519e-06, & + 2.03066308971e-05, & + -1.19859761139e-04, & + 3.13321362731e-04, & + -3.05224433478e-04, & + 3.18491057704e-05, & + -5.00413949132e-04, & + 2.94239018192e-03, & + -7.66327986016e-03, & + 7.44116247197e-03, & + -3.10909742817e-04, & + 4.86258994264e-03, & + -2.84606824177e-02, & + 7.37868157868e-02, & + -7.13808340299e-02 & + /) + get_ABS1_IFBA_DIFF_2 = (cIFBA77(0)*E**(4) + cIFBA77(1)*E**(3) + cIFBA77(2)*E**(2) + cIFBA77(3)*E + cIFBA77(4))*B**(5) + (cIFBA77(5)*E**(4) + cIFBA77(6)*E**(3) + cIFBA77(7)*E**(2) + cIFBA77(8)*E + cIFBA77(9))*B**(4) + (cIFBA77(10)*E**(4) + cIFBA77(11)*E**(3) + cIFBA77(12)*E**(2) + cIFBA77(13)*E + cIFBA77(14))*B**(3) + (cIFBA77(15)*E**(4) + cIFBA77(16)*E**(3) + cIFBA77(17)*E**(2) + cIFBA77(18)*E + cIFBA77(19))*B**(2) + (cIFBA77(20)*E**(4) + cIFBA77(21)*E**(3) + cIFBA77(22)*E**(2) + cIFBA77(23)*E + cIFBA77(24))*B + (cIFBA77(25)*E**(4) + cIFBA77(26)*E**(3) + cIFBA77(27)*E**(2) + cIFBA77(28)*E + cIFBA77(29)) + +end function get_ABS1_IFBA_DIFF_2 + +double precision function get_ABS2_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA78 = (/ & + 1.36590170952e-04, & + -2.07059230270e-03, & + 1.10005417004e-02, & + -2.08656694358e-02, & + 3.44758607100e-02, & + 3.09581531634e-06, & + -4.69350917742e-05, & + 2.06196255246e-04, & + 5.21072262673e-04, & + -1.92799721309e-02 & + /) + get_ABS2_IFBA_DIFF_0 = (cIFBA78(0)*E**(4) + cIFBA78(1)*E**(3) + cIFBA78(2)*E**(2) + cIFBA78(3)*E + cIFBA78(4))*B + (cIFBA78(5)*E**(4) + cIFBA78(6)*E**(3) + cIFBA78(7)*E**(2) + cIFBA78(8)*E + cIFBA78(9)) + +end function get_ABS2_IFBA_DIFF_0 + +double precision function get_ABS2_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA79 = (/ & + 4.42382815390e-11, & + -8.56955430603e-10, & + 6.27867466522e-09, & + -2.05251267140e-08, & + 2.47928458610e-08, & + -3.07002569175e-09, & + 6.26720294667e-08, & + -4.84160263848e-07, & + 1.67437745017e-06, & + -2.16090260015e-06, & + 6.70001737028e-08, & + -1.51790609361e-06, & + 1.28834502133e-05, & + -4.89209664634e-05, & + 7.04703802690e-05, & + -3.96888828734e-07, & + 1.25470372267e-05, & + -1.32297261925e-04, & + 6.01037600368e-04, & + -1.06067711054e-03, & + -1.69860931963e-06, & + -2.60304173639e-06, & + 3.29299738219e-04, & + -2.54816382315e-03, & + 7.23240899138e-03, & + 1.01073533489e-05, & + -1.59893556625e-04, & + 8.73671988235e-04, & + -1.16818160237e-03, & + -1.76390528772e-02 & + /) + get_ABS2_IFBA_DIFF_1 = (cIFBA79(0)*E**(4) + cIFBA79(1)*E**(3) + cIFBA79(2)*E**(2) + cIFBA79(3)*E + cIFBA79(4))*B**(5) + (cIFBA79(5)*E**(4) + cIFBA79(6)*E**(3) + cIFBA79(7)*E**(2) + cIFBA79(8)*E + cIFBA79(9))*B**(4) + (cIFBA79(10)*E**(4) + cIFBA79(11)*E**(3) + cIFBA79(12)*E**(2) + cIFBA79(13)*E + cIFBA79(14))*B**(3) + (cIFBA79(15)*E**(4) + cIFBA79(16)*E**(3) + cIFBA79(17)*E**(2) + cIFBA79(18)*E + cIFBA79(19))*B**(2) + (cIFBA79(20)*E**(4) + cIFBA79(21)*E**(3) + cIFBA79(22)*E**(2) + cIFBA79(23)*E + cIFBA79(24))*B + (cIFBA79(25)*E**(4) + cIFBA79(26)*E**(3) + cIFBA79(27)*E**(2) + cIFBA79(28)*E + cIFBA79(29)) + +end function get_ABS2_IFBA_DIFF_1 + +double precision function get_ABS2_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA80 = (/ & + 2.22558340517e-10, & + -3.58718998897e-09, & + 2.14193870205e-08, & + -5.63194842397e-08, & + 5.49783594359e-08, & + -4.59306225595e-08, & + 7.40287468934e-07, & + -4.41997064325e-06, & + 1.16251074761e-05, & + -1.13550300022e-05, & + 3.52064390247e-06, & + -5.67390961197e-05, & + 3.38668075124e-04, & + -8.90695122552e-04, & + 8.70012655757e-04, & + -1.18717034233e-04, & + 1.91355281247e-03, & + -1.14192709064e-02, & + 3.00279453598e-02, & + -2.93047787763e-02, & + 1.48365521603e-03, & + -2.39348713799e-02, & + 1.42911626487e-01, & + -3.76166201274e-01, & + 3.66330236975e-01 & + /) + get_ABS2_IFBA_DIFF_2 = (cIFBA80(0)*E**(4) + cIFBA80(1)*E**(3) + cIFBA80(2)*E**(2) + cIFBA80(3)*E + cIFBA80(4))*B**(4) + (cIFBA80(5)*E**(4) + cIFBA80(6)*E**(3) + cIFBA80(7)*E**(2) + cIFBA80(8)*E + cIFBA80(9))*B**(3) + (cIFBA80(10)*E**(4) + cIFBA80(11)*E**(3) + cIFBA80(12)*E**(2) + cIFBA80(13)*E + cIFBA80(14))*B**(2) + (cIFBA80(15)*E**(4) + cIFBA80(16)*E**(3) + cIFBA80(17)*E**(2) + cIFBA80(18)*E + cIFBA80(19))*B + (cIFBA80(20)*E**(4) + cIFBA80(21)*E**(3) + cIFBA80(22)*E**(2) + cIFBA80(23)*E + cIFBA80(24)) + +end function get_ABS2_IFBA_DIFF_2 + +double precision function get_XE2_MAC_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA81 = (/ & + -1.18369442232e-05, & + 2.47739006403e-04, & + -2.52885115376e-03, & + 1.67631873036e-02, & + -8.81957301163e-04, & + 1.82176927955e-24, & + -6.19280680306e-23, & + 8.22252703191e-22, & + -6.45305356130e-21, & + 3.77819823685e-20 & + /) + get_XE2_MAC_IFBA_DIFF_0 = (cIFBA81(0)*E**(4) + cIFBA81(1)*E**(3) + cIFBA81(2)*E**(2) + cIFBA81(3)*E + cIFBA81(4))*B + (cIFBA81(5)*E**(4) + cIFBA81(6)*E**(3) + cIFBA81(7)*E**(2) + cIFBA81(8)*E + cIFBA81(9)) + +end function get_XE2_MAC_IFBA_DIFF_0 + +double precision function get_XE2_MAC_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA82 = (/ & + -3.14756168331e-13, & + 5.91880960791e-12, & + -4.65818432272e-11, & + 1.85079347095e-10, & + -3.31684324781e-10, & + 1.70609554447e-11, & + -3.44137644453e-10, & + 3.04520596400e-09, & + -1.38148767980e-08, & + 2.77912233661e-08, & + -1.45083313690e-10, & + 4.08157195626e-09, & + -5.39087249260e-08, & + 3.32865578188e-07, & + -8.24153930380e-07, & + -4.11054968734e-09, & + 5.69641569838e-08, & + -3.04131245868e-08, & + -2.44148235779e-06, & + 1.00859157186e-05, & + 5.20371473915e-08, & + -9.71238874605e-07, & + 5.70774213523e-06, & + -6.73647643741e-06, & + -3.93513439518e-05, & + -1.02823332616e-08, & + 5.61709220158e-07, & + -6.93128536582e-06, & + 4.83563625427e-05, & + -5.87948593998e-05 & + /) + get_XE2_MAC_IFBA_DIFF_1 = (cIFBA82(0)*E**(4) + cIFBA82(1)*E**(3) + cIFBA82(2)*E**(2) + cIFBA82(3)*E + cIFBA82(4))*B**(5) + (cIFBA82(5)*E**(4) + cIFBA82(6)*E**(3) + cIFBA82(7)*E**(2) + cIFBA82(8)*E + cIFBA82(9))*B**(4) + (cIFBA82(10)*E**(4) + cIFBA82(11)*E**(3) + cIFBA82(12)*E**(2) + cIFBA82(13)*E + cIFBA82(14))*B**(3) + (cIFBA82(15)*E**(4) + cIFBA82(16)*E**(3) + cIFBA82(17)*E**(2) + cIFBA82(18)*E + cIFBA82(19))*B**(2) + (cIFBA82(20)*E**(4) + cIFBA82(21)*E**(3) + cIFBA82(22)*E**(2) + cIFBA82(23)*E + cIFBA82(24))*B + (cIFBA82(25)*E**(4) + cIFBA82(26)*E**(3) + cIFBA82(27)*E**(2) + cIFBA82(28)*E + cIFBA82(29)) + +end function get_XE2_MAC_IFBA_DIFF_1 + +double precision function get_XE2_MAC_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cIFBA83 = (/ & + 3.67653881721e-11, & + -6.26425856985e-10, & + 3.92659432976e-09, & + -1.06437548387e-08, & + 1.05112829897e-08, & + -5.71266036876e-09, & + 9.77423273933e-08, & + -6.17182237272e-07, & + 1.69203747753e-06, & + -1.69868838545e-06, & + 2.77246796674e-07, & + -4.75328596168e-06, & + 3.01701596096e-05, & + -8.36254145899e-05, & + 8.60249610172e-05, & + -4.25334141296e-06, & + 7.26267451999e-05, & + -4.58839272292e-04, & + 1.27037176236e-03, & + -1.35675684920e-03 & + /) + get_XE2_MAC_IFBA_DIFF_2 = (cIFBA83(0)*E**(4) + cIFBA83(1)*E**(3) + cIFBA83(2)*E**(2) + cIFBA83(3)*E + cIFBA83(4))*B**(3) + (cIFBA83(5)*E**(4) + cIFBA83(6)*E**(3) + cIFBA83(7)*E**(2) + cIFBA83(8)*E + cIFBA83(9))*B**(2) + (cIFBA83(10)*E**(4) + cIFBA83(11)*E**(3) + cIFBA83(12)*E**(2) + cIFBA83(13)*E + cIFBA83(14))*B + (cIFBA83(15)*E**(4) + cIFBA83(16)*E**(3) + cIFBA83(17)*E**(2) + cIFBA83(18)*E + cIFBA83(19)) + +end function get_XE2_MAC_IFBA_DIFF_2 + +double precision function get_K_INF_NO_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA84 = (/ & + -5.46323939687e-05, & + 9.10540555425e-04, & + -6.11374120090e-03, & + 2.33684886144e-02, & + -7.39544528861e-02, & + -4.00685050639e-05, & + 7.55703819547e-04, & + -3.79310621040e-03, & + -1.61384516136e-02, & + 2.80477723103e-01 & + /) + get_K_INF_NO_XE_IFBA_DIFF_0 = (cIFBA84(0)*E**(4) + cIFBA84(1)*E**(3) + cIFBA84(2)*E**(2) + cIFBA84(3)*E + cIFBA84(4))*B + (cIFBA84(5)*E**(4) + cIFBA84(6)*E**(3) + cIFBA84(7)*E**(2) + cIFBA84(8)*E + cIFBA84(9)) + +end function get_K_INF_NO_XE_IFBA_DIFF_0 + +double precision function get_K_INF_NO_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA85 = (/ & + 5.87026264785e-09, & + -1.20886988892e-07, & + 9.97177775496e-07, & + -3.96804341056e-06, & + 6.58005109567e-06, & + -3.65984306352e-07, & + 7.69866924105e-06, & + -6.55740541627e-05, & + 2.73367496782e-04, & + -4.85285924466e-04, & + 6.47672414644e-06, & + -1.42061025360e-04, & + 1.28880143795e-03, & + -5.87780380773e-03, & + 1.19014766326e-02, & + -1.93113701408e-05, & + 5.20561480204e-04, & + -6.08504270210e-03, & + 3.69099273579e-02, & + -1.06269635283e-01, & + -1.42884663601e-04, & + 2.67352172887e-03, & + -1.72788071497e-02, & + 2.65154069969e-02, & + 2.28631724753e-01 & + /) + get_K_INF_NO_XE_IFBA_DIFF_1 = (cIFBA85(0)*E**(4) + cIFBA85(1)*E**(3) + cIFBA85(2)*E**(2) + cIFBA85(3)*E + cIFBA85(4))*B**(4) + (cIFBA85(5)*E**(4) + cIFBA85(6)*E**(3) + cIFBA85(7)*E**(2) + cIFBA85(8)*E + cIFBA85(9))*B**(3) + (cIFBA85(10)*E**(4) + cIFBA85(11)*E**(3) + cIFBA85(12)*E**(2) + cIFBA85(13)*E + cIFBA85(14))*B**(2) + (cIFBA85(15)*E**(4) + cIFBA85(16)*E**(3) + cIFBA85(17)*E**(2) + cIFBA85(18)*E + cIFBA85(19))*B + (cIFBA85(20)*E**(4) + cIFBA85(21)*E**(3) + cIFBA85(22)*E**(2) + cIFBA85(23)*E + cIFBA85(24)) + +end function get_K_INF_NO_XE_IFBA_DIFF_1 + +double precision function get_K_INF_NO_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA86 = (/ & + 3.93546027347e-10, & + -6.37284580893e-09, & + 3.87368697705e-08, & + -1.03601531819e-07, & + 1.03060184588e-07, & + -7.67836115039e-08, & + 1.23707932486e-06, & + -7.50020642492e-06, & + 2.00250392097e-05, & + -1.99248782596e-05, & + 5.46198384024e-06, & + -8.73305307156e-05, & + 5.26905042287e-04, & + -1.40026008430e-03, & + 1.38928547856e-03, & + -1.68669817923e-04, & + 2.67051905740e-03, & + -1.60017457488e-02, & + 4.21578927968e-02, & + -4.14252627958e-02, & + 1.92369346070e-03, & + -3.01785823494e-02, & + 1.79927970674e-01, & + -4.69562768892e-01, & + 4.51391944808e-01 & + /) + get_K_INF_NO_XE_IFBA_DIFF_2 = (cIFBA86(0)*E**(4) + cIFBA86(1)*E**(3) + cIFBA86(2)*E**(2) + cIFBA86(3)*E + cIFBA86(4))*B**(4) + (cIFBA86(5)*E**(4) + cIFBA86(6)*E**(3) + cIFBA86(7)*E**(2) + cIFBA86(8)*E + cIFBA86(9))*B**(3) + (cIFBA86(10)*E**(4) + cIFBA86(11)*E**(3) + cIFBA86(12)*E**(2) + cIFBA86(13)*E + cIFBA86(14))*B**(2) + (cIFBA86(15)*E**(4) + cIFBA86(16)*E**(3) + cIFBA86(17)*E**(2) + cIFBA86(18)*E + cIFBA86(19))*B + (cIFBA86(20)*E**(4) + cIFBA86(21)*E**(3) + cIFBA86(22)*E**(2) + cIFBA86(23)*E + cIFBA86(24)) + +end function get_K_INF_NO_XE_IFBA_DIFF_2 + +double precision function get_XE2_MIC_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA87 = (/ & + 3.64248749227e+02, & + -7.13916952974e+03, & + 5.53204236962e+04, & + -2.05333729642e+05, & + 8.33708100390e+04, & + 1.27480575000e+02, & + -2.14409919318e+03, & + 1.42464416995e+04, & + -5.15836414273e+04, & + 1.54594904035e+05 & + /) + get_XE2_MIC_IFBA_DIFF_0 = (cIFBA87(0)*E**(4) + cIFBA87(1)*E**(3) + cIFBA87(2)*E**(2) + cIFBA87(3)*E + cIFBA87(4))*B + (cIFBA87(5)*E**(4) + cIFBA87(6)*E**(3) + cIFBA87(7)*E**(2) + cIFBA87(8)*E + cIFBA87(9)) + +end function get_XE2_MIC_IFBA_DIFF_0 + +double precision function get_XE2_MIC_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA88 = (/ & + -4.24352823025e-04, & + 7.43342949470e-03, & + -4.92288974105e-02, & + 1.46810051230e-01, & + -1.66186528204e-01, & + 3.87580016178e-02, & + -6.86066704898e-01, & + 4.60588662022e+00, & + -1.40063381373e+01, & + 1.63582834886e+01, & + -1.21617625720e+00, & + 2.18562991687e+01, & + -1.49843587936e+02, & + 4.70461341135e+02, & + -5.79823880572e+02, & + 1.45392128201e+01, & + -2.68293307444e+02, & + 1.91231757673e+03, & + -6.39088933792e+03, & + 8.80118843995e+03, & + -4.22476438209e+01, & + 8.49105362566e+02, & + -6.84696598812e+03, & + 2.76542149242e+04, & + -5.26580515404e+04, & + -6.48040364399e+01, & + 1.05715211451e+03, & + -5.52983169999e+03, & + 1.96611672691e+03, & + 9.99820296980e+04 & + /) + get_XE2_MIC_IFBA_DIFF_1 = (cIFBA88(0)*E**(4) + cIFBA88(1)*E**(3) + cIFBA88(2)*E**(2) + cIFBA88(3)*E + cIFBA88(4))*B**(5) + (cIFBA88(5)*E**(4) + cIFBA88(6)*E**(3) + cIFBA88(7)*E**(2) + cIFBA88(8)*E + cIFBA88(9))*B**(4) + (cIFBA88(10)*E**(4) + cIFBA88(11)*E**(3) + cIFBA88(12)*E**(2) + cIFBA88(13)*E + cIFBA88(14))*B**(3) + (cIFBA88(15)*E**(4) + cIFBA88(16)*E**(3) + cIFBA88(17)*E**(2) + cIFBA88(18)*E + cIFBA88(19))*B**(2) + (cIFBA88(20)*E**(4) + cIFBA88(21)*E**(3) + cIFBA88(22)*E**(2) + cIFBA88(23)*E + cIFBA88(24))*B + (cIFBA88(25)*E**(4) + cIFBA88(26)*E**(3) + cIFBA88(27)*E**(2) + cIFBA88(28)*E + cIFBA88(29)) + +end function get_XE2_MIC_IFBA_DIFF_1 + +double precision function get_XE2_MIC_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cIFBA89 = (/ & + -2.57580422509e-05, & + 3.95636906402e-04, & + -2.40300462346e-03, & + 6.79200429401e-03, & + -7.48015375549e-03, & + 1.01999733596e-02, & + -1.59430232716e-01, & + 9.62702858437e-01, & + -2.64973735939e+00, & + 2.79823134960e+00, & + -1.40969641946e+00, & + 2.22181809522e+01, & + -1.33751286171e+02, & + 3.63206001484e+02, & + -3.75101456004e+02, & + 8.96163812836e+01, & + -1.41910135732e+03, & + 8.52587085560e+03, & + -2.29621236041e+04, & + 2.33866911747e+04, & + -2.67968771439e+03, & + 4.25559379308e+04, & + -2.55300720388e+05, & + 6.83761295676e+05, & + -6.89921241603e+05, & + 3.04172996591e+04, & + -4.83915968891e+05, & + 2.89963313818e+06, & + -7.73439987499e+06, & + 7.75642286224e+06 & + /) + get_XE2_MIC_IFBA_DIFF_2 = (cIFBA89(0)*E**(4) + cIFBA89(1)*E**(3) + cIFBA89(2)*E**(2) + cIFBA89(3)*E + cIFBA89(4))*B**(5) + (cIFBA89(5)*E**(4) + cIFBA89(6)*E**(3) + cIFBA89(7)*E**(2) + cIFBA89(8)*E + cIFBA89(9))*B**(4) + (cIFBA89(10)*E**(4) + cIFBA89(11)*E**(3) + cIFBA89(12)*E**(2) + cIFBA89(13)*E + cIFBA89(14))*B**(3) + (cIFBA89(15)*E**(4) + cIFBA89(16)*E**(3) + cIFBA89(17)*E**(2) + cIFBA89(18)*E + cIFBA89(19))*B**(2) + (cIFBA89(20)*E**(4) + cIFBA89(21)*E**(3) + cIFBA89(22)*E**(2) + cIFBA89(23)*E + cIFBA89(24))*B + (cIFBA89(25)*E**(4) + cIFBA89(26)*E**(3) + cIFBA89(27)*E**(2) + cIFBA89(28)*E + cIFBA89(29)) + +end function get_XE2_MIC_IFBA_DIFF_2 + +double precision function get_SM2_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA90 = (/ & + 2.02505231410e-03, & + -1.80005688143e+01, & + 3.57127414075e+02, & + -2.43480800440e+03, & + -8.24360652724e+02, & + 1.45690750313e+00, & + -2.52044593182e+01, & + 1.78353763509e+02, & + -7.79681351405e+02, & + 3.48846198870e+03 & + /) + get_SM2_XE_IFBA_DIFF_0 = (cIFBA90(0)*E**(4) + cIFBA90(1)*E**(3) + cIFBA90(2)*E**(2) + cIFBA90(3)*E + cIFBA90(4))*B + (cIFBA90(5)*E**(4) + cIFBA90(6)*E**(3) + cIFBA90(7)*E**(2) + cIFBA90(8)*E + cIFBA90(9)) + +end function get_SM2_XE_IFBA_DIFF_0 + +double precision function get_SM2_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA91 = (/ & + 2.54950405849e-05, & + -6.85593636100e-04, & + 6.72376777846e-03, & + -2.90984821068e-02, & + 4.89483369067e-02, & + -1.56040008329e-03, & + 4.36844456883e-02, & + -4.46502763945e-01, & + 2.03105479066e+00, & + -3.67155972361e+00, & + 2.92737529206e-02, & + -8.52685531459e-01, & + 9.22238632574e+00, & + -4.54016927712e+01, & + 9.32188678280e+01, & + -1.33679785634e-01, & + 4.31324900710e+00, & + -5.41615741395e+01, & + 3.23310739477e+02, & + -9.01491955791e+02, & + -7.09278555781e-01, & + 1.41345626007e+01, & + -8.70721160657e+01, & + 2.24225404555e+01, & + 2.53014582524e+03 & + /) + get_SM2_XE_IFBA_DIFF_1 = (cIFBA91(0)*E**(4) + cIFBA91(1)*E**(3) + cIFBA91(2)*E**(2) + cIFBA91(3)*E + cIFBA91(4))*B**(4) + (cIFBA91(5)*E**(4) + cIFBA91(6)*E**(3) + cIFBA91(7)*E**(2) + cIFBA91(8)*E + cIFBA91(9))*B**(3) + (cIFBA91(10)*E**(4) + cIFBA91(11)*E**(3) + cIFBA91(12)*E**(2) + cIFBA91(13)*E + cIFBA91(14))*B**(2) + (cIFBA91(15)*E**(4) + cIFBA91(16)*E**(3) + cIFBA91(17)*E**(2) + cIFBA91(18)*E + cIFBA91(19))*B + (cIFBA91(20)*E**(4) + cIFBA91(21)*E**(3) + cIFBA91(22)*E**(2) + cIFBA91(23)*E + cIFBA91(24)) + +end function get_SM2_XE_IFBA_DIFF_1 + +double precision function get_SM2_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA92 = (/ & + -1.14845488536e-05, & + 1.72946046545e-04, & + -9.70896817037e-04, & + 2.42981152627e-03, & + -2.29031062266e-03, & + 2.67625132977e-03, & + -4.05769465965e-02, & + 2.29122153134e-01, & + -5.75825935268e-01, & + 5.43996875274e-01, & + -2.26577779567e-01, & + 3.45329656133e+00, & + -1.95757130015e+01, & + 4.93027812472e+01, & + -4.65735025197e+01, & + 8.26288885160e+00, & + -1.26500613805e+02, & + 7.19222475462e+02, & + -1.81314063481e+03, & + 1.70817448616e+03, & + -1.09394156124e+02, & + 1.68255629561e+03, & + -9.59974486987e+03, & + 2.42530484414e+04, & + -2.27055118804e+04 & + /) + get_SM2_XE_IFBA_DIFF_2 = (cIFBA92(0)*E**(4) + cIFBA92(1)*E**(3) + cIFBA92(2)*E**(2) + cIFBA92(3)*E + cIFBA92(4))*B**(4) + (cIFBA92(5)*E**(4) + cIFBA92(6)*E**(3) + cIFBA92(7)*E**(2) + cIFBA92(8)*E + cIFBA92(9))*B**(3) + (cIFBA92(10)*E**(4) + cIFBA92(11)*E**(3) + cIFBA92(12)*E**(2) + cIFBA92(13)*E + cIFBA92(14))*B**(2) + (cIFBA92(15)*E**(4) + cIFBA92(16)*E**(3) + cIFBA92(17)*E**(2) + cIFBA92(18)*E + cIFBA92(19))*B + (cIFBA92(20)*E**(4) + cIFBA92(21)*E**(3) + cIFBA92(22)*E**(2) + cIFBA92(23)*E + cIFBA92(24)) + +end function get_SM2_XE_IFBA_DIFF_2 + +double precision function get_K_INF_XE_IFBA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cIFBA93 = (/ & + 3.09592562073e-04, & + -6.76243584932e-03, & + 5.87207330155e-02, & + -2.21750299752e-01, & + -9.54409127934e-02, & + -4.00685050639e-05, & + 7.55703819547e-04, & + -3.79310621040e-03, & + -1.61384516136e-02, & + 2.80477723103e-01 & + /) + get_K_INF_XE_IFBA_DIFF_0 = (cIFBA93(0)*E**(4) + cIFBA93(1)*E**(3) + cIFBA93(2)*E**(2) + cIFBA93(3)*E + cIFBA93(4))*B + (cIFBA93(5)*E**(4) + cIFBA93(6)*E**(3) + cIFBA93(7)*E**(2) + cIFBA93(8)*E + cIFBA93(9)) + +end function get_K_INF_XE_IFBA_DIFF_0 + +double precision function get_K_INF_XE_IFBA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA94 = (/ & + 5.84567052338e-09, & + -1.19372402635e-07, & + 9.75237271846e-07, & + -3.84332449962e-06, & + 6.31932119035e-06, & + -3.69925575284e-07, & + 7.68692638322e-06, & + -6.45916471566e-05, & + 2.65734908862e-04, & + -4.66485038334e-04, & + 6.76080584167e-06, & + -1.45209814193e-04, & + 1.28802275638e-03, & + -5.75243927698e-03, & + 1.14553628448e-02, & + -2.42999977721e-05, & + 5.98161846735e-04, & + -6.45142189533e-03, & + 3.69152030132e-02, & + -1.02571817870e-01, & + -1.17271998064e-04, & + 2.19113214357e-03, & + -1.39043812115e-02, & + 1.73675065385e-02, & + 2.24369511520e-01 & + /) + get_K_INF_XE_IFBA_DIFF_1 = (cIFBA94(0)*E**(4) + cIFBA94(1)*E**(3) + cIFBA94(2)*E**(2) + cIFBA94(3)*E + cIFBA94(4))*B**(4) + (cIFBA94(5)*E**(4) + cIFBA94(6)*E**(3) + cIFBA94(7)*E**(2) + cIFBA94(8)*E + cIFBA94(9))*B**(3) + (cIFBA94(10)*E**(4) + cIFBA94(11)*E**(3) + cIFBA94(12)*E**(2) + cIFBA94(13)*E + cIFBA94(14))*B**(2) + (cIFBA94(15)*E**(4) + cIFBA94(16)*E**(3) + cIFBA94(17)*E**(2) + cIFBA94(18)*E + cIFBA94(19))*B + (cIFBA94(20)*E**(4) + cIFBA94(21)*E**(3) + cIFBA94(22)*E**(2) + cIFBA94(23)*E + cIFBA94(24)) + +end function get_K_INF_XE_IFBA_DIFF_1 + +double precision function get_K_INF_XE_IFBA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cIFBA95 = (/ & + -1.42087478374e-10, & + 2.14984358552e-09, & + -1.15433775473e-08, & + 2.66115761378e-08, & + -2.18219297318e-08, & + 2.85914939659e-08, & + -4.37089775299e-07, & + 2.36195663171e-06, & + -5.47499749299e-06, & + 4.49094375956e-06, & + -2.08031682898e-06, & + 3.22736955667e-05, & + -1.76311417981e-04, & + 4.14229080415e-04, & + -3.44243751807e-04, & + 6.39216913917e-05, & + -1.00977729222e-03, & + 5.58795140917e-03, & + -1.34071152737e-02, & + 1.15106665185e-02, & + -6.85949445675e-04, & + 1.10241443450e-02, & + -6.12461646963e-02, & + 1.49458093537e-01, & + -1.36326713782e-01 & + /) + get_K_INF_XE_IFBA_DIFF_2 = (cIFBA95(0)*E**(4) + cIFBA95(1)*E**(3) + cIFBA95(2)*E**(2) + cIFBA95(3)*E + cIFBA95(4))*B**(4) + (cIFBA95(5)*E**(4) + cIFBA95(6)*E**(3) + cIFBA95(7)*E**(2) + cIFBA95(8)*E + cIFBA95(9))*B**(3) + (cIFBA95(10)*E**(4) + cIFBA95(11)*E**(3) + cIFBA95(12)*E**(2) + cIFBA95(13)*E + cIFBA95(14))*B**(2) + (cIFBA95(15)*E**(4) + cIFBA95(16)*E**(3) + cIFBA95(17)*E**(2) + cIFBA95(18)*E + cIFBA95(19))*B + (cIFBA95(20)*E**(4) + cIFBA95(21)*E**(3) + cIFBA95(22)*E**(2) + cIFBA95(23)*E + cIFBA95(24)) + +end function get_K_INF_XE_IFBA_DIFF_2 + + +end module nuclear_data_IFBA diff --git a/src/nuclear_data_NOBP.f90 b/src/nuclear_data_NOBP.f90 new file mode 100644 index 0000000..ee168bb --- /dev/null +++ b/src/nuclear_data_NOBP.f90 @@ -0,0 +1,1155 @@ +module nuclear_data_NOBP + +contains + +double precision function get_SM2_NO_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c0 = (/ & + -4.49810650009e-07, & + 8.83425672229e-06, & + -6.65638881746e-05, & + 1.98676652178e-04, & + 6.64380292657e-04, & + 1.45684307382e-24, & + -2.77286777595e-23, & + 2.43790494817e-22, & + -1.71083460889e-21, & + 1.65580523860e-20 & + /) + get_SM2_NO_XE_0 = (c0(0)*E**(4) + c0(1)*E**(3) + c0(2)*E**(2) + c0(3)*E + c0(4))*B + (c0(5)*E**(4) + c0(6)*E**(3) + c0(7)*E**(2) + c0(8)*E + c0(9)) + +end function get_SM2_NO_XE_0 + +double precision function get_SM2_NO_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c1 = (/ & + -3.76928530072e-13, & + 7.33276281017e-12, & + -6.44526827371e-11, & + 1.53285532914e-10, & + -3.52405422008e-10, & + 4.54204118976e-11, & + -8.41552502978e-10, & + 7.49991821636e-09, & + -1.48283977742e-08, & + 4.83407178199e-08, & + -2.42243791126e-09, & + 4.12353831043e-08, & + -3.34154977210e-07, & + 4.24396417432e-07, & + -2.36285317177e-06, & + 6.67509119080e-08, & + -1.16474316502e-06, & + 8.77563044815e-06, & + -1.22957898652e-05, & + 6.31440662551e-05, & + -2.05191608598e-07, & + 3.98202558550e-06, & + -3.63869544429e-05, & + 2.59706261794e-04, & + -5.15983919492e-05 & + /) + get_SM2_NO_XE_1 = (c1(0)*E**(4) + c1(1)*E**(3) + c1(2)*E**(2) + c1(3)*E + c1(4))*B**(4) + (c1(5)*E**(4) + c1(6)*E**(3) + c1(7)*E**(2) + c1(8)*E + c1(9))*B**(3) + (c1(10)*E**(4) + c1(11)*E**(3) + c1(12)*E**(2) + c1(13)*E + c1(14))*B**(2) + (c1(15)*E**(4) + c1(16)*E**(3) + c1(17)*E**(2) + c1(18)*E + c1(19))*B + (c1(20)*E**(4) + c1(21)*E**(3) + c1(22)*E**(2) + c1(23)*E + c1(24)) + +end function get_SM2_NO_XE_1 + +double precision function get_M2_NO_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c2 = (/ & + 1.82111370132e-02, & + -2.98662582369e-01, & + 1.88303014006e+00, & + -5.28757448368e+00, & + 1.52186221810e+00, & + -1.09260345321e-03, & + 2.56886763589e-02, & + -2.37975053179e-01, & + 7.61107045172e-01, & + 6.09675917517e+01 & + /) + get_M2_NO_XE_0 = (c2(0)*E**(4) + c2(1)*E**(3) + c2(2)*E**(2) + c2(3)*E + c2(4))*B + (c2(5)*E**(4) + c2(6)*E**(3) + c2(7)*E**(2) + c2(8)*E + c2(9)) + +end function get_M2_NO_XE_0 + +double precision function get_M2_NO_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c3 = (/ & + 3.47142730550e-09, & + -5.86245002062e-08, & + 3.70713302908e-07, & + -1.11666715410e-06, & + 1.68031677916e-06, & + -5.90314782390e-07, & + 1.01614914810e-05, & + -6.58820814505e-05, & + 2.03256024383e-04, & + -3.08588757620e-04, & + 3.12341151242e-05, & + -5.44754825567e-04, & + 3.61819389785e-03, & + -1.16590197721e-02, & + 1.92906463420e-02, & + -4.81785906119e-04, & + 8.30393464773e-03, & + -5.52714233120e-02, & + 1.93774003624e-01, & + -4.62067901024e-01, & + 3.48161622287e-04, & + 3.84380169660e-04, & + -7.02587352190e-02, & + 2.83881796852e-01, & + 6.10099766412e+01 & + /) + get_M2_NO_XE_1 = (c3(0)*E**(4) + c3(1)*E**(3) + c3(2)*E**(2) + c3(3)*E + c3(4))*B**(4) + (c3(5)*E**(4) + c3(6)*E**(3) + c3(7)*E**(2) + c3(8)*E + c3(9))*B**(3) + (c3(10)*E**(4) + c3(11)*E**(3) + c3(12)*E**(2) + c3(13)*E + c3(14))*B**(2) + (c3(15)*E**(4) + c3(16)*E**(3) + c3(17)*E**(2) + c3(18)*E + c3(19))*B + (c3(20)*E**(4) + c3(21)*E**(3) + c3(22)*E**(2) + c3(23)*E + c3(24)) + +end function get_M2_NO_XE_1 + +double precision function get_M2_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c4 = (/ & + 2.36741400303e-02, & + -3.98454054885e-01, & + 2.52555824103e+00, & + -6.79842947588e+00, & + 8.43610688663e-01, & + -1.09260345321e-03, & + 2.56886763589e-02, & + -2.37975053179e-01, & + 7.61107045172e-01, & + 6.09675917517e+01 & + /) + get_M2_XE_0 = (c4(0)*E**(4) + c4(1)*E**(3) + c4(2)*E**(2) + c4(3)*E + c4(4))*B + (c4(5)*E**(4) + c4(6)*E**(3) + c4(7)*E**(2) + c4(8)*E + c4(9)) + +end function get_M2_XE_0 + +double precision function get_M2_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c5 = (/ & + 4.06911920561e-09, & + -6.77012035605e-08, & + 4.20824061775e-07, & + -1.23007384584e-06, & + 1.74896404504e-06, & + -6.32207376949e-07, & + 1.07616073465e-05, & + -6.89094871793e-05, & + 2.08641792508e-04, & + -3.07425542979e-04, & + 2.99701234476e-05, & + -5.20937538175e-04, & + 3.44972313677e-03, & + -1.10908530876e-02, & + 1.83912507293e-02, & + -4.00264276184e-04, & + 6.92504204600e-03, & + -4.64818279012e-02, & + 1.67783906672e-01, & + -4.28117796396e-01, & + 1.46322533086e-04, & + 3.88319560935e-03, & + -9.46371918065e-02, & + 3.84242879538e-01, & + 6.06850530004e+01 & + /) + get_M2_XE_1 = (c5(0)*E**(4) + c5(1)*E**(3) + c5(2)*E**(2) + c5(3)*E + c5(4))*B**(4) + (c5(5)*E**(4) + c5(6)*E**(3) + c5(7)*E**(2) + c5(8)*E + c5(9))*B**(3) + (c5(10)*E**(4) + c5(11)*E**(3) + c5(12)*E**(2) + c5(13)*E + c5(14))*B**(2) + (c5(15)*E**(4) + c5(16)*E**(3) + c5(17)*E**(2) + c5(18)*E + c5(19))*B + (c5(20)*E**(4) + c5(21)*E**(3) + c5(22)*E**(2) + c5(23)*E + c5(24)) + +end function get_M2_XE_1 + +double precision function get_NUFISS1_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c6 = (/ & + -5.28115686208e-06, & + 8.83592328681e-05, & + -5.53924359729e-04, & + 1.58819720384e-03, & + -1.72408606530e-03, & + -8.48624277579e-06, & + 1.38999578250e-04, & + -8.66015286859e-04, & + 3.59587826743e-03, & + 3.80133406295e-04 & + /) + get_NUFISS1_0 = (c6(0)*E**(4) + c6(1)*E**(3) + c6(2)*E**(2) + c6(3)*E + c6(4))*B + (c6(5)*E**(4) + c6(6)*E**(3) + c6(7)*E**(2) + c6(8)*E + c6(9)) + +end function get_NUFISS1_0 + +double precision function get_NUFISS1_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c7 = (/ & + -5.21232210374e-09, & + 9.85274081292e-08, & + -6.91803304329e-07, & + 2.07293614222e-06, & + -1.78582989102e-06, & + 3.18817430786e-07, & + -6.30543949110e-06, & + 4.76452151641e-05, & + -1.66982814727e-04, & + 1.52608046711e-04, & + -1.67462066933e-06, & + 3.69520754632e-05, & + -3.18829350046e-04, & + 2.38450462037e-03, & + 1.28583870001e-03 & + /) + get_NUFISS1_1 = (c7(0)*E**(4) + c7(1)*E**(3) + c7(2)*E**(2) + c7(3)*E + c7(4))*B**(2) + (c7(5)*E**(4) + c7(6)*E**(3) + c7(7)*E**(2) + c7(8)*E + c7(9))*B + (c7(10)*E**(4) + c7(11)*E**(3) + c7(12)*E**(2) + c7(13)*E + c7(14)) + +end function get_NUFISS1_1 + +double precision function get_K2_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c8 = (/ & + 4.55266301703e-04, & + -9.14177792205e-03, & + 7.29880562325e-02, & + -2.58552003393e-01, & + -4.55654830311e-02, & + -2.09415606237e-04, & + 5.68480840817e-03, & + -5.88501912184e-02, & + 2.62769200352e-01, & + 5.54620384853e-01 & + /) + get_K2_0 = (c8(0)*E**(4) + c8(1)*E**(3) + c8(2)*E**(2) + c8(3)*E + c8(4))*B + (c8(5)*E**(4) + c8(6)*E**(3) + c8(7)*E**(2) + c8(8)*E + c8(9)) + +end function get_K2_0 + +double precision function get_K2_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c9 = (/ & + -3.05372821352e-07, & + 5.17029838595e-06, & + -3.00821341311e-05, & + 5.93191869535e-05, & + 2.18599290901e-05, & + 2.75694282809e-05, & + -5.09820163440e-04, & + 3.45891233262e-03, & + -9.26398027610e-03, & + 5.51662636378e-04, & + -3.84579307195e-04, & + 8.08434326162e-03, & + -6.87776067618e-02, & + 2.69815579333e-01, & + 5.32848926372e-01 & + /) + get_K2_1 = (c9(0)*E**(4) + c9(1)*E**(3) + c9(2)*E**(2) + c9(3)*E + c9(4))*B**(2) + (c9(5)*E**(4) + c9(6)*E**(3) + c9(7)*E**(2) + c9(8)*E + c9(9))*B + (c9(10)*E**(4) + c9(11)*E**(3) + c9(12)*E**(2) + c9(13)*E + c9(14)) + +end function get_K2_1 + +double precision function get_K1_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c10 = (/ & + -1.27482887564e-04, & + 2.13927952437e-03, & + -1.31132064986e-02, & + 3.44486084537e-02, & + -4.82439183713e-02, & + -3.38725728989e-04, & + 5.57404064546e-03, & + -3.53619288370e-02, & + 1.49434403827e-01, & + 2.53134543180e-03 & + /) + get_K1_0 = (c10(0)*E**(4) + c10(1)*E**(3) + c10(2)*E**(2) + c10(3)*E + c10(4))*B + (c10(5)*E**(4) + c10(6)*E**(3) + c10(7)*E**(2) + c10(8)*E + c10(9)) + +end function get_K1_0 + +double precision function get_K1_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c11 = (/ & + -2.08779823145e-07, & + 3.95171677710e-06, & + -2.78811455836e-05, & + 8.44538506360e-05, & + -7.19533393143e-05, & + 1.29051773846e-05, & + -2.55040371851e-04, & + 1.93607152447e-03, & + -6.85814232696e-03, & + 6.12476558632e-03, & + -6.76625163706e-05, & + 1.49048634847e-03, & + -1.32053456125e-02, & + 9.89647441614e-02, & + 4.05435674915e-02 & + /) + get_K1_1 = (c11(0)*E**(4) + c11(1)*E**(3) + c11(2)*E**(2) + c11(3)*E + c11(4))*B**(2) + (c11(5)*E**(4) + c11(6)*E**(3) + c11(7)*E**(2) + c11(8)*E + c11(9))*B + (c11(10)*E**(4) + c11(11)*E**(3) + c11(12)*E**(2) + c11(13)*E + c11(14)) + +end function get_K1_1 + +double precision function get_NUFISS2_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c12 = (/ & + -1.27476210006e-04, & + 2.12460370812e-03, & + -1.29260894173e-02, & + 2.86829564356e-02, & + -3.09604838766e-02, & + -1.09288421435e-05, & + 2.64702066003e-04, & + -3.49569773068e-03, & + 5.03164270374e-02, & + 1.77188706315e-03 & + /) + get_NUFISS2_0 = (c12(0)*E**(4) + c12(1)*E**(3) + c12(2)*E**(2) + c12(3)*E + c12(4))*B + (c12(5)*E**(4) + c12(6)*E**(3) + c12(7)*E**(2) + c12(8)*E + c12(9)) + +end function get_NUFISS2_0 + +double precision function get_NUFISS2_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c13 = (/ & + 4.74290910538e-11, & + -7.37176859244e-10, & + 3.60875319587e-09, & + -3.00158462414e-09, & + -1.79412787990e-08, & + -7.28948186031e-09, & + 1.21383821337e-07, & + -6.81842077140e-07, & + 1.08280268901e-06, & + 2.11763581737e-06, & + 2.68956219875e-07, & + -4.67105282989e-06, & + 2.84289297524e-05, & + -5.47459274777e-05, & + -1.04113748093e-04, & + -6.75254779857e-07, & + 3.03128475450e-06, & + 8.04233698123e-05, & + -9.44169919526e-04, & + 4.18086143604e-03, & + 1.40257754928e-06, & + 4.93340105271e-05, & + -2.01583588249e-03, & + 4.48102878772e-02, & + 9.10199008969e-03 & + /) + get_NUFISS2_1 = (c13(0)*E**(4) + c13(1)*E**(3) + c13(2)*E**(2) + c13(3)*E + c13(4))*B**(4) + (c13(5)*E**(4) + c13(6)*E**(3) + c13(7)*E**(2) + c13(8)*E + c13(9))*B**(3) + (c13(10)*E**(4) + c13(11)*E**(3) + c13(12)*E**(2) + c13(13)*E + c13(14))*B**(2) + (c13(15)*E**(4) + c13(16)*E**(3) + c13(17)*E**(2) + c13(18)*E + c13(19))*B + (c13(20)*E**(4) + c13(21)*E**(3) + c13(22)*E**(2) + c13(23)*E + c13(24)) + +end function get_NUFISS2_1 + +double precision function get_BOR1_NO_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c14 = (/ & + 1.09266174051e-07, & + -1.64142102012e-06, & + 8.97876947693e-06, & + -2.18219740765e-05, & + 3.34213078762e-05, & + 5.46337578789e-08, & + -9.91175867129e-07, & + 7.15524195172e-06, & + -3.02238611059e-05, & + 2.45939910787e-04 & + /) + get_BOR1_NO_XE_0 = (c14(0)*E**(4) + c14(1)*E**(3) + c14(2)*E**(2) + c14(3)*E + c14(4))*B + (c14(5)*E**(4) + c14(6)*E**(3) + c14(7)*E**(2) + c14(8)*E + c14(9)) + +end function get_BOR1_NO_XE_0 + +double precision function get_BOR1_NO_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c15 = (/ & + 1.01047259144e-13, & + -1.71626815723e-12, & + 1.08732251095e-11, & + -3.07835915262e-11, & + 3.29839767286e-11, & + -1.52993055214e-11, & + 2.59300064136e-10, & + -1.63865216179e-09, & + 4.63595377612e-09, & + -5.01520021242e-09, & + 7.88822080310e-10, & + -1.33824401636e-08, & + 8.46066058908e-08, & + -2.39572235281e-07, & + 2.62475416827e-07, & + -1.52554039501e-08, & + 2.63394243928e-07, & + -1.70550425324e-06, & + 5.01077877601e-06, & + -5.85464694193e-06, & + 6.46105400061e-08, & + -1.19287258907e-06, & + 8.60237355306e-06, & + -3.47227862624e-05, & + 2.52815513691e-04 & + /) + get_BOR1_NO_XE_1 = (c15(0)*E**(4) + c15(1)*E**(3) + c15(2)*E**(2) + c15(3)*E + c15(4))*B**(4) + (c15(5)*E**(4) + c15(6)*E**(3) + c15(7)*E**(2) + c15(8)*E + c15(9))*B**(3) + (c15(10)*E**(4) + c15(11)*E**(3) + c15(12)*E**(2) + c15(13)*E + c15(14))*B**(2) + (c15(15)*E**(4) + c15(16)*E**(3) + c15(17)*E**(2) + c15(18)*E + c15(19))*B + (c15(20)*E**(4) + c15(21)*E**(3) + c15(22)*E**(2) + c15(23)*E + c15(24)) + +end function get_BOR1_NO_XE_1 + +double precision function get_BOR2_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c16 = (/ & + -7.28426337013e-02, & + 1.00522591818e+00, & + -4.74639281369e+00, & + 8.31847873065e+00, & + -1.48633626414e+01, & + 1.63848029432e-02, & + -3.19217795815e-01, & + 2.89892169653e+00, & + -1.69159833494e+01, & + 4.52119085912e+02 & + /) + get_BOR2_XE_0 = (c16(0)*E**(4) + c16(1)*E**(3) + c16(2)*E**(2) + c16(3)*E + c16(4))*B + (c16(5)*E**(4) + c16(6)*E**(3) + c16(7)*E**(2) + c16(8)*E + c16(9)) + +end function get_BOR2_XE_0 + +double precision function get_BOR2_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c17 = (/ & + -1.04646810948e-08, & + 1.71399082417e-07, & + -9.59794345469e-07, & + 2.02753841129e-06, & + -1.35477162464e-06, & + 1.38005891418e-06, & + -2.38269234861e-05, & + 1.43541160545e-04, & + -3.41774129782e-04, & + 2.89801213355e-04, & + -2.95729900999e-05, & + 5.50500691661e-04, & + -3.51361165227e-03, & + 8.96532764234e-03, & + -1.14982341691e-02, & + -1.09217730495e-03, & + 2.08538983001e-02, & + -1.61059832232e-01, & + 5.79510327628e-01, & + -4.24271423897e-01, & + 8.66704689804e-03, & + -2.05857982877e-01, & + 2.32083823996e+00, & + -1.57909467448e+01, & + 4.50235530622e+02 & + /) + get_BOR2_XE_1 = (c17(0)*E**(4) + c17(1)*E**(3) + c17(2)*E**(2) + c17(3)*E + c17(4))*B**(4) + (c17(5)*E**(4) + c17(6)*E**(3) + c17(7)*E**(2) + c17(8)*E + c17(9))*B**(3) + (c17(10)*E**(4) + c17(11)*E**(3) + c17(12)*E**(2) + c17(13)*E + c17(14))*B**(2) + (c17(15)*E**(4) + c17(16)*E**(3) + c17(17)*E**(2) + c17(18)*E + c17(19))*B + (c17(20)*E**(4) + c17(21)*E**(3) + c17(22)*E**(2) + c17(23)*E + c17(24)) + +end function get_BOR2_XE_1 + +double precision function get_REMOV1_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c18 = (/ & + 3.27795907001e-05, & + -5.21074137193e-04, & + 3.06277985797e-03, & + -7.96013035459e-03, & + 8.93845797355e-03, & + 5.09923183417e-06, & + -9.25628502113e-05, & + 6.69858318466e-04, & + -2.85625696867e-03, & + 2.05351912513e-02 & + /) + get_REMOV1_0 = (c18(0)*E**(4) + c18(1)*E**(3) + c18(2)*E**(2) + c18(3)*E + c18(4))*B + (c18(5)*E**(4) + c18(6)*E**(3) + c18(7)*E**(2) + c18(8)*E + c18(9)) + +end function get_REMOV1_0 + +double precision function get_REMOV1_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c19 = (/ & + 9.40657765025e-12, & + -1.60753904865e-10, & + 1.02915643010e-09, & + -2.96652595720e-09, & + 3.25830081169e-09, & + -1.47884666396e-09, & + 2.51800617050e-08, & + -1.60639542501e-07, & + 4.62688990367e-07, & + -5.14679525361e-07, & + 7.83272645417e-08, & + -1.33319491182e-06, & + 8.50332151224e-06, & + -2.45477435932e-05, & + 2.79229562382e-05, & + -1.51675973445e-06, & + 2.62077013141e-05, & + -1.70729639555e-04, & + 5.11042239808e-04, & + -6.34902402688e-04, & + 6.25500150533e-06, & + -1.14720660828e-04, & + 8.22960452830e-04, & + -3.32194901242e-03, & + 2.12409051783e-02 & + /) + get_REMOV1_1 = (c19(0)*E**(4) + c19(1)*E**(3) + c19(2)*E**(2) + c19(3)*E + c19(4))*B**(4) + (c19(5)*E**(4) + c19(6)*E**(3) + c19(7)*E**(2) + c19(8)*E + c19(9))*B**(3) + (c19(10)*E**(4) + c19(11)*E**(3) + c19(12)*E**(2) + c19(13)*E + c19(14))*B**(2) + (c19(15)*E**(4) + c19(16)*E**(3) + c19(17)*E**(2) + c19(18)*E + c19(19))*B + (c19(20)*E**(4) + c19(21)*E**(3) + c19(22)*E**(2) + c19(23)*E + c19(24)) + +end function get_REMOV1_1 + +double precision function get_DIFF2_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c20 = (/ & + 7.28449868776e-05, & + -1.03440091678e-03, & + 5.22738340717e-03, & + -1.10958601666e-02, & + 1.20639163837e-02, & + -1.27510832387e-05, & + 2.53308340666e-04, & + -2.17784501246e-03, & + 7.70359640390e-03, & + 3.72064027347e-01 & + /) + get_DIFF2_0 = (c20(0)*E**(4) + c20(1)*E**(3) + c20(2)*E**(2) + c20(3)*E + c20(4))*B + (c20(5)*E**(4) + c20(6)*E**(3) + c20(7)*E**(2) + c20(8)*E + c20(9)) + +end function get_DIFF2_0 + +double precision function get_DIFF2_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: c21 = (/ & + 2.68328863608e-06, & + -3.92624734243e-05, & + 3.63164340157e-05, & + -2.13951387211e-04, & + 3.69092881568e-01, & + 1.08224570273e-07, & + -1.99889103116e-06, & + 1.57812907830e-05, & + -4.23638711631e-05, & + -1.96774949102e-05, & + -1.15355797539e-05, & + 2.36576519403e-04, & + -1.93482200693e-03, & + 7.36894179019e-03, & + 3.64937297609e-03, & + -1.00082722932e-04, & + 2.17902690573e-03, & + -1.86978105104e-02, & + 8.13944500507e-02, & + -2.25769818424e-01 & + /) + get_DIFF2_1 = (c21(0)*E**(4) + c21(1)*E**(3) + c21(2)*E**(2) + c21(3)*E + c21(4))*exp(B*(c21(5)*E**(4) + c21(6)*E**(3) + c21(7)*E**(2) + c21(8)*E + c21(9))) + (c21(10)*E**(4) + c21(11)*E**(3) + c21(12)*E**(2) + c21(13)*E + c21(14))*exp(B*(c21(15)*E**(4) + c21(16)*E**(3) + c21(17)*E**(2) + c21(18)*E + c21(19))) + +end function get_DIFF2_1 + +double precision function get_DIFF1_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c22 = (/ & + 5.46388907325e-04, & + -9.05787999315e-03, & + 5.58696611103e-02, & + -1.51284406713e-01, & + 1.31408458841e-01, & + -1.82150913032e-05, & + 4.49266216344e-04, & + -4.30032124641e-03, & + 2.33430291955e-02, & + 1.39922043742e+00 & + /) + get_DIFF1_0 = (c22(0)*E**(4) + c22(1)*E**(3) + c22(2)*E**(2) + c22(3)*E + c22(4))*B + (c22(5)*E**(4) + c22(6)*E**(3) + c22(7)*E**(2) + c22(8)*E + c22(9)) + +end function get_DIFF1_0 + +double precision function get_DIFF1_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c23 = (/ & + 4.68951327282e-11, & + -6.52055424002e-10, & + 3.13417883613e-09, & + -5.59161472598e-09, & + 2.11726059161e-09, & + -6.38242037836e-09, & + 8.76151256819e-08, & + -4.13053937421e-07, & + 7.00524477507e-07, & + -1.84689000076e-07, & + 2.22352078499e-07, & + -2.76610719888e-06, & + 1.07043802594e-05, & + -8.36002410479e-06, & + -1.53660285964e-05, & + -7.76652147193e-07, & + -8.09202037424e-06, & + 2.05957725021e-04, & + -1.11770093408e-03, & + 1.91507181414e-03, & + 8.56773158680e-06, & + 3.32955627415e-05, & + -1.87296504056e-03, & + 1.70272953640e-02, & + 1.40332443961e+00 & + /) + get_DIFF1_1 = (c23(0)*E**(4) + c23(1)*E**(3) + c23(2)*E**(2) + c23(3)*E + c23(4))*B**(4) + (c23(5)*E**(4) + c23(6)*E**(3) + c23(7)*E**(2) + c23(8)*E + c23(9))*B**(3) + (c23(10)*E**(4) + c23(11)*E**(3) + c23(12)*E**(2) + c23(13)*E + c23(14))*B**(2) + (c23(15)*E**(4) + c23(16)*E**(3) + c23(17)*E**(2) + c23(18)*E + c23(19))*B + (c23(20)*E**(4) + c23(21)*E**(3) + c23(22)*E**(2) + c23(23)*E + c23(24)) + +end function get_DIFF1_1 + +double precision function get_BOR1_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c24 = (/ & + 5.46230070659e-04, & + -7.84127029818e-03, & + 3.50503206536e-02, & + -7.75870666695e-02, & + 7.15582159686e-01, & + 2.98659774567e-03, & + -5.34673825547e-02, & + 3.78537397204e-01, & + -1.53859292850e+00, & + 1.17822457239e+01 & + /) + get_BOR1_XE_0 = (c24(0)*E**(4) + c24(1)*E**(3) + c24(2)*E**(2) + c24(3)*E + c24(4))*B + (c24(5)*E**(4) + c24(6)*E**(3) + c24(7)*E**(2) + c24(8)*E + c24(9)) + +end function get_BOR1_XE_0 + +double precision function get_BOR1_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c25 = (/ & + 4.46908167637e-09, & + -7.62839064342e-08, & + 4.85677224340e-07, & + -1.38241340925e-06, & + 1.48963938288e-06, & + -6.89099367860e-07, & + 1.17179549177e-05, & + -7.43011180885e-05, & + 2.11016449147e-04, & + -2.29313126216e-04, & + 3.61583955364e-05, & + -6.14667894928e-04, & + 3.89418747417e-03, & + -1.10542091171e-02, & + 1.21509063933e-02, & + -7.11648925444e-04, & + 1.23035464294e-02, & + -7.97816920897e-02, & + 2.34808743377e-01, & + -2.74981832835e-01, & + 3.19697854568e-03, & + -5.88035696830e-02, & + 4.21855148867e-01, & + -1.68507048173e+00, & + 1.20425084327e+01 & + /) + get_BOR1_XE_1 = (c25(0)*E**(4) + c25(1)*E**(3) + c25(2)*E**(2) + c25(3)*E + c25(4))*B**(4) + (c25(5)*E**(4) + c25(6)*E**(3) + c25(7)*E**(2) + c25(8)*E + c25(9))*B**(3) + (c25(10)*E**(4) + c25(11)*E**(3) + c25(12)*E**(2) + c25(13)*E + c25(14))*B**(2) + (c25(15)*E**(4) + c25(16)*E**(3) + c25(17)*E**(2) + c25(18)*E + c25(19))*B + (c25(20)*E**(4) + c25(21)*E**(3) + c25(22)*E**(2) + c25(23)*E + c25(24)) + +end function get_BOR1_XE_1 + +double precision function get_XE_YIELD_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c26 = (/ & + 1.09271767908e-05, & + -1.74349205052e-04, & + 1.04682307615e-03, & + -2.84807124364e-03, & + 3.15408438073e-03, & + -1.27481108898e-06, & + 1.95471964718e-05, & + -1.08870058616e-04, & + 2.47833539475e-04, & + 6.54778642278e-02 & + /) + get_XE_YIELD_0 = (c26(0)*E**(4) + c26(1)*E**(3) + c26(2)*E**(2) + c26(3)*E + c26(4))*B + (c26(5)*E**(4) + c26(6)*E**(3) + c26(7)*E**(2) + c26(8)*E + c26(9)) + +end function get_XE_YIELD_0 + +double precision function get_XE_YIELD_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: c27 = (/ & + -1.60372721757e-13, & + 1.97789310996e-12, & + -5.21393985802e-12, & + -1.96979445334e-11, & + 8.97778497187e-11, & + 2.12088472059e-11, & + -2.26906191793e-10, & + 1.06714887770e-10, & + 6.12762671683e-09, & + -1.99573437781e-08, & + -4.93528699638e-10, & + -9.37873661919e-10, & + 9.93860121403e-08, & + -7.38862739024e-07, & + 1.78725743834e-06, & + -2.11522173873e-08, & + 6.84749202997e-07, & + -7.61545014165e-06, & + 3.78458108060e-05, & + -7.80498721994e-05, & + 4.68611427437e-07, & + -1.25391002666e-05, & + 1.28581932188e-04, & + -6.38096360720e-04, & + 1.49499374857e-03, & + 2.36081037131e-06, & + -4.28054942233e-05, & + 2.95122856686e-04, & + -9.33951419569e-04, & + 6.68069911302e-02 & + /) + get_XE_YIELD_1 = (c27(0)*E**(4) + c27(1)*E**(3) + c27(2)*E**(2) + c27(3)*E + c27(4))*B**(5) + (c27(5)*E**(4) + c27(6)*E**(3) + c27(7)*E**(2) + c27(8)*E + c27(9))*B**(4) + (c27(10)*E**(4) + c27(11)*E**(3) + c27(12)*E**(2) + c27(13)*E + c27(14))*B**(3) + (c27(15)*E**(4) + c27(16)*E**(3) + c27(17)*E**(2) + c27(18)*E + c27(19))*B**(2) + (c27(20)*E**(4) + c27(21)*E**(3) + c27(22)*E**(2) + c27(23)*E + c27(24))*B + (c27(25)*E**(4) + c27(26)*E**(3) + c27(27)*E**(2) + c27(28)*E + c27(29)) + +end function get_XE_YIELD_1 + +double precision function get_NU_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c28 = (/ & + -2.36738388085e-03, & + 3.77567325122e-02, & + -2.23065765681e-01, & + 5.76748772887e-01, & + -5.39293140310e-01, & + 1.09269357726e-04, & + -1.82115451413e-03, & + 1.14208104824e-02, & + -3.23948845462e-02, & + 2.49581911256e+00 & + /) + get_NU_0 = (c28(0)*E**(4) + c28(1)*E**(3) + c28(2)*E**(2) + c28(3)*E + c28(4))*B + (c28(5)*E**(4) + c28(6)*E**(3) + c28(7)*E**(2) + c28(8)*E + c28(9)) + +end function get_NU_0 + +double precision function get_NU_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: c29 = (/ & + -7.54904007328e-12, & + 1.07250831441e-10, & + -4.53762205474e-10, & + 1.44360374036e-10, & + 2.22658421525e-09, & + 1.05044078360e-09, & + -1.42594303292e-08, & + 5.07368404734e-08, & + 6.30955822409e-08, & + -5.22183861387e-07, & + -2.67220098106e-08, & + 1.95033461820e-07, & + 1.57841073031e-06, & + -1.91009812227e-05, & + 5.37954340856e-05, & + -1.06270885023e-06, & + 2.86213612931e-05, & + -2.92031169824e-04, & + 1.38788012767e-03, & + -2.78976855125e-03, & + 2.80901670408e-05, & + -6.53898345135e-04, & + 6.09427166181e-03, & + -2.82586741348e-02, & + 6.29520687515e-02, & + 4.66192133207e-05, & + -9.87981478793e-04, & + 7.81359372811e-03, & + -2.79493731345e-02, & + 2.49910967805e+00 & + /) + get_NU_1 = (c29(0)*E**(4) + c29(1)*E**(3) + c29(2)*E**(2) + c29(3)*E + c29(4))*B**(5) + (c29(5)*E**(4) + c29(6)*E**(3) + c29(7)*E**(2) + c29(8)*E + c29(9))*B**(4) + (c29(10)*E**(4) + c29(11)*E**(3) + c29(12)*E**(2) + c29(13)*E + c29(14))*B**(3) + (c29(15)*E**(4) + c29(16)*E**(3) + c29(17)*E**(2) + c29(18)*E + c29(19))*B**(2) + (c29(20)*E**(4) + c29(21)*E**(3) + c29(22)*E**(2) + c29(23)*E + c29(24))*B + (c29(25)*E**(4) + c29(26)*E**(3) + c29(27)*E**(2) + c29(28)*E + c29(29)) + +end function get_NU_1 + +double precision function get_BOR2_NO_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c30 = (/ & + 1.81927801363e-07, & + -4.44053750462e-06, & + 4.14669571644e-05, & + -1.68074232905e-04, & + -2.95445243250e-06, & + 1.82116306721e-07, & + -4.32217646726e-06, & + 4.80295072742e-05, & + -3.25436096168e-04, & + 9.49329566252e-03 & + /) + get_BOR2_NO_XE_0 = (c30(0)*E**(4) + c30(1)*E**(3) + c30(2)*E**(2) + c30(3)*E + c30(4))*B + (c30(5)*E**(4) + c30(6)*E**(3) + c30(7)*E**(2) + c30(8)*E + c30(9)) + +end function get_BOR2_NO_XE_0 + +double precision function get_BOR2_NO_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c31 = (/ & + -7.79589614344e-14, & + 1.18461494075e-12, & + -4.92572682786e-12, & + 4.02598646748e-13, & + 1.47672803904e-11, & + 9.62778664147e-12, & + -1.69458709272e-10, & + 9.19340567095e-10, & + -1.35500606647e-09, & + 1.00952021602e-10, & + 1.60032641742e-10, & + -1.97795369026e-09, & + 1.29742068538e-08, & + -5.54045965574e-08, & + 1.11575832658e-08, & + -3.01125475180e-08, & + 5.72081331330e-07, & + -4.29690584009e-06, & + 1.48754972386e-05, & + -1.18230780581e-05, & + 1.51959429755e-07, & + -3.92332973297e-06, & + 4.68739212014e-05, & + -3.28431001364e-04, & + 9.47748022095e-03 & + /) + get_BOR2_NO_XE_1 = (c31(0)*E**(4) + c31(1)*E**(3) + c31(2)*E**(2) + c31(3)*E + c31(4))*B**(4) + (c31(5)*E**(4) + c31(6)*E**(3) + c31(7)*E**(2) + c31(8)*E + c31(9))*B**(3) + (c31(10)*E**(4) + c31(11)*E**(3) + c31(12)*E**(2) + c31(13)*E + c31(14))*B**(2) + (c31(15)*E**(4) + c31(16)*E**(3) + c31(17)*E**(2) + c31(18)*E + c31(19))*B + (c31(20)*E**(4) + c31(21)*E**(3) + c31(22)*E**(2) + c31(23)*E + c31(24)) + +end function get_BOR2_NO_XE_1 + +double precision function get_KAPPA_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c32 = (/ & + 9.10570820506e-15, & + -1.45934156779e-13, & + 8.69413066724e-13, & + -2.28635341269e-12, & + 2.26763190825e-12, & + 5.46006961162e-16, & + -8.71184365586e-15, & + 5.21622009682e-14, & + -1.40924173034e-13, & + 3.26032569422e-11 & + /) + get_KAPPA_0 = (c32(0)*E**(4) + c32(1)*E**(3) + c32(2)*E**(2) + c32(3)*E + c32(4))*B + (c32(5)*E**(4) + c32(6)*E**(3) + c32(7)*E**(2) + c32(8)*E + c32(9)) + +end function get_KAPPA_0 + +double precision function get_KAPPA_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c33 = (/ & + 2.20445747690e-18, & + -3.32922395458e-17, & + 1.64749626722e-16, & + -2.05568932321e-16, & + -4.09581963564e-16, & + -1.59229706364e-16, & + 2.55803957118e-15, & + -1.41959330947e-14, & + 2.48353888686e-14, & + 3.27870820890e-14, & + 1.67532669987e-15, & + -2.99950062323e-14, & + 2.05583963461e-13, & + -6.52469805530e-13, & + 3.33109959097e-11 & + /) + get_KAPPA_1 = (c33(0)*E**(4) + c33(1)*E**(3) + c33(2)*E**(2) + c33(3)*E + c33(4))*B**(2) + (c33(5)*E**(4) + c33(6)*E**(3) + c33(7)*E**(2) + c33(8)*E + c33(9))*B + (c33(10)*E**(4) + c33(11)*E**(3) + c33(12)*E**(2) + c33(13)*E + c33(14)) + +end function get_KAPPA_1 + +double precision function get_ABS1_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c34 = (/ & + -4.00610977729e-06, & + 6.67686543196e-05, & + -4.17001847617e-04, & + 1.17205451093e-03, & + -8.57349671919e-04, & + -3.84249527629e-06, & + 6.21573739453e-05, & + -3.75031247445e-04, & + 1.56963793140e-03, & + 6.57839472069e-03 & + /) + get_ABS1_0 = (c34(0)*E**(4) + c34(1)*E**(3) + c34(2)*E**(2) + c34(3)*E + c34(4))*B + (c34(5)*E**(4) + c34(6)*E**(3) + c34(7)*E**(2) + c34(8)*E + c34(9)) + +end function get_ABS1_0 + +double precision function get_ABS1_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c35 = (/ & + -2.37865623753e-09, & + 4.47107437071e-08, & + -3.28213270679e-07, & + 1.17451354236e-06, & + -2.08560777104e-06, & + 1.29409964692e-07, & + -2.51989460300e-06, & + 1.95317552069e-05, & + -8.04442079717e-05, & + 2.01661417740e-04, & + -6.17953200499e-07, & + 1.13410573807e-05, & + -7.86825344468e-05, & + 7.94713913275e-04, & + 7.40213956063e-03 & + /) + get_ABS1_1 = (c35(0)*E**(4) + c35(1)*E**(3) + c35(2)*E**(2) + c35(3)*E + c35(4))*B**(2) + (c35(5)*E**(4) + c35(6)*E**(3) + c35(7)*E**(2) + c35(8)*E + c35(9))*B + (c35(10)*E**(4) + c35(11)*E**(3) + c35(12)*E**(2) + c35(13)*E + c35(14)) + +end function get_ABS1_1 + +double precision function get_ABS2_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c36 = (/ & + 1.36588291976e-04, & + -2.07056242734e-03, & + 1.10003654624e-02, & + -2.08652123974e-02, & + 3.44754211405e-02, & + -6.00810787307e-06, & + 1.35878135845e-04, & + -1.65605536297e-03, & + 2.32586580400e-02, & + 2.67476672046e-02 & + /) + get_ABS2_0 = (c36(0)*E**(4) + c36(1)*E**(3) + c36(2)*E**(2) + c36(3)*E + c36(4))*B + (c36(5)*E**(4) + c36(6)*E**(3) + c36(7)*E**(2) + c36(8)*E + c36(9)) + +end function get_ABS2_0 + +double precision function get_ABS2_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: c37 = (/ & + 6.91033722625e-06, & + -3.38795073380e-04, & + 3.54770153048e-03, & + 7.00258542531e-03, & + 6.11454119202e-02, & + -2.51986393542e-06, & + 1.21158297627e-05, & + 4.23699097100e-04, & + -4.49586549271e-03, & + 8.40770574311e-03, & + -1.42754403645e-06, & + 2.83622152648e-04, & + -4.09308146600e-03, & + 1.41469354321e-02, & + -3.14075643878e-02, & + 1.02586576004e-03, & + -1.68896187334e-02, & + 9.55161242255e-02, & + -1.79204951639e-01, & + -1.00128850589e-01 & + /) + get_ABS2_1 = (c37(0)*E**(4) + c37(1)*E**(3) + c37(2)*E**(2) + c37(3)*E + c37(4))*exp(B*(c37(5)*E**(4) + c37(6)*E**(3) + c37(7)*E**(2) + c37(8)*E + c37(9))) + (c37(10)*E**(4) + c37(11)*E**(3) + c37(12)*E**(2) + c37(13)*E + c37(14))*exp(B*(c37(15)*E**(4) + c37(16)*E**(3) + c37(17)*E**(2) + c37(18)*E + c37(19))) + +end function get_ABS2_1 + +double precision function get_XE2_MAC_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c38 = (/ & + -1.18369021591e-05, & + 2.47738341948e-04, & + -2.52884726066e-03, & + 1.67631772781e-02, & + -8.81947727264e-04, & + 2.18508503431e-23, & + -5.57946952825e-22, & + 6.72996846455e-21, & + -5.89187783253e-20, & + 5.50370358268e-19 & + /) + get_XE2_MAC_0 = (c38(0)*E**(4) + c38(1)*E**(3) + c38(2)*E**(2) + c38(3)*E + c38(4))*B + (c38(5)*E**(4) + c38(6)*E**(3) + c38(7)*E**(2) + c38(8)*E + c38(9)) + +end function get_XE2_MAC_0 + +double precision function get_XE2_MAC_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: c39 = (/ & + 8.43446921529e-06, & + -1.00075181334e-04, & + 4.45582653817e-04, & + 5.73758969654e-06, & + 1.76034956779e-03, & + 2.10108419257e-05, & + -4.58678106265e-04, & + 3.75356446818e-03, & + -1.44756397621e-02, & + 1.59148271812e-02, & + -9.85498814970e-06, & + 1.28667337238e-04, & + -7.24112651816e-04, & + 1.77027818778e-03, & + -2.01312588378e-03, & + -2.02464760905e-04, & + 6.96273288218e-03, & + -8.19502485605e-02, & + 4.25362570077e-01, & + -8.72730567624e-01 & + /) + get_XE2_MAC_1 = (c39(0)*E**(4) + c39(1)*E**(3) + c39(2)*E**(2) + c39(3)*E + c39(4))*exp(B*(c39(5)*E**(4) + c39(6)*E**(3) + c39(7)*E**(2) + c39(8)*E + c39(9))) + (c39(10)*E**(4) + c39(11)*E**(3) + c39(12)*E**(2) + c39(13)*E + c39(14))*exp(B*(c39(15)*E**(4) + c39(16)*E**(3) + c39(17)*E**(2) + c39(18)*E + c39(19))) + +end function get_XE2_MAC_1 + +double precision function get_K_INF_NO_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c40 = (/ & + -5.46297205248e-05, & + 9.10497384286e-04, & + -6.11348245820e-03, & + 2.33678067677e-02, & + -7.39537865285e-02, & + -5.46326876652e-04, & + 1.12329744251e-02, & + -9.40697599613e-02, & + 4.11841320240e-01, & + 5.57512550155e-01 & + /) + get_K_INF_NO_XE_0 = (c40(0)*E**(4) + c40(1)*E**(3) + c40(2)*E**(2) + c40(3)*E + c40(4))*B + (c40(5)*E**(4) + c40(6)*E**(3) + c40(7)*E**(2) + c40(8)*E + c40(9)) + +end function get_K_INF_NO_XE_0 + +double precision function get_K_INF_NO_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c41 = (/ & + -5.37013678191e-07, & + 9.53450733827e-06, & + -6.05729568170e-05, & + 1.50016546173e-04, & + -5.19361200396e-05, & + 4.26293452125e-05, & + -8.06439888012e-04, & + 5.68957649383e-03, & + -1.69681328793e-02, & + 7.08148923869e-03, & + -4.86103944877e-04, & + 1.02936858528e-02, & + -8.80807748341e-02, & + 3.91804234713e-01, & + 5.77096510952e-01 & + /) + get_K_INF_NO_XE_1 = (c41(0)*E**(4) + c41(1)*E**(3) + c41(2)*E**(2) + c41(3)*E + c41(4))*B**(2) + (c41(5)*E**(4) + c41(6)*E**(3) + c41(7)*E**(2) + c41(8)*E + c41(9))*B + (c41(10)*E**(4) + c41(11)*E**(3) + c41(12)*E**(2) + c41(13)*E + c41(14)) + +end function get_K_INF_NO_XE_1 + +double precision function get_XE2_MIC_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c42 = (/ & + 3.64252048087e+02, & + -7.13922145523e+03, & + 5.53207263072e+04, & + -2.05334502210e+05, & + 8.33715370377e+04, & + 1.27494522066e+02, & + -2.66879748403e+03, & + 2.67914682913e+04, & + -2.05893025804e+05, & + 1.83178913786e+06 & + /) + get_XE2_MIC_0 = (c42(0)*E**(4) + c42(1)*E**(3) + c42(2)*E**(2) + c42(3)*E + c42(4))*B + (c42(5)*E**(4) + c42(6)*E**(3) + c42(7)*E**(2) + c42(8)*E + c42(9)) + +end function get_XE2_MIC_0 + +double precision function get_XE2_MIC_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c43 = (/ & + -1.96325402899e-04, & + 3.01305131267e-03, & + -1.56754243209e-02, & + 2.80964548748e-02, & + 2.06907553195e-03, & + 3.05177784436e-02, & + -4.87840692790e-01, & + 2.73263993824e+00, & + -5.78549234823e+00, & + 1.52212778024e+00, & + -1.17886921344e+00, & + 1.89676466577e+01, & + -1.08330741338e+02, & + 2.41109300293e+02, & + -6.30578318965e+01, & + 3.98361449442e+00, & + -1.03532423788e+01, & + -5.13017166507e+02, & + 4.09828846202e+03, & + -7.81531090635e+03, & + 2.27226028574e+01, & + -1.04070243926e+03, & + 1.79475254105e+04, & + -1.88050399740e+05, & + 1.79923583293e+06 & + /) + get_XE2_MIC_1 = (c43(0)*E**(4) + c43(1)*E**(3) + c43(2)*E**(2) + c43(3)*E + c43(4))*B**(4) + (c43(5)*E**(4) + c43(6)*E**(3) + c43(7)*E**(2) + c43(8)*E + c43(9))*B**(3) + (c43(10)*E**(4) + c43(11)*E**(3) + c43(12)*E**(2) + c43(13)*E + c43(14))*B**(2) + (c43(15)*E**(4) + c43(16)*E**(3) + c43(17)*E**(2) + c43(18)*E + c43(19))*B + (c43(20)*E**(4) + c43(21)*E**(3) + c43(22)*E**(2) + c43(23)*E + c43(24)) + +end function get_XE2_MIC_1 + +double precision function get_SM2_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c44 = (/ & + 2.07717395854e-03, & + -1.80014014128e+01, & + 3.57132365551e+02, & + -2.43482098702e+03, & + -8.24347979378e+02, & + 3.46010497147e+00, & + -7.04889073791e+01, & + 6.83051390581e+02, & + -5.34564167485e+03, & + 5.45164294715e+04 & + /) + get_SM2_XE_0 = (c44(0)*E**(4) + c44(1)*E**(3) + c44(2)*E**(2) + c44(3)*E + c44(4))*B + (c44(5)*E**(4) + c44(6)*E**(3) + c44(7)*E**(2) + c44(8)*E + c44(9)) + +end function get_SM2_XE_0 + +double precision function get_SM2_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: c45 = (/ & + -7.01953975485e-07, & + 5.58242650782e-06, & + 4.35500940604e-05, & + -5.09858739432e-04, & + 1.39556659239e-03, & + 1.19098391242e-04, & + -1.54217589956e-03, & + 1.94320929050e-03, & + 4.01419922501e-02, & + -1.69334104650e-01, & + 1.99566397653e-03, & + -4.70192970111e-02, & + 5.43760165241e-01, & + -3.07397489103e+00, & + 8.94739856128e+00, & + -4.02828933723e-01, & + 8.10841853607e+00, & + -6.55811748992e+01, & + 2.54973603168e+02, & + -3.90205323799e+02, & + 1.55907335701e+00, & + -4.06092140421e+01, & + 5.24653222921e+02, & + -5.08694023581e+03, & + 5.38380127726e+04 & + /) + get_SM2_XE_1 = (c45(0)*E**(4) + c45(1)*E**(3) + c45(2)*E**(2) + c45(3)*E + c45(4))*B**(4) + (c45(5)*E**(4) + c45(6)*E**(3) + c45(7)*E**(2) + c45(8)*E + c45(9))*B**(3) + (c45(10)*E**(4) + c45(11)*E**(3) + c45(12)*E**(2) + c45(13)*E + c45(14))*B**(2) + (c45(15)*E**(4) + c45(16)*E**(3) + c45(17)*E**(2) + c45(18)*E + c45(19))*B + (c45(20)*E**(4) + c45(21)*E**(3) + c45(22)*E**(2) + c45(23)*E + c45(24)) + +end function get_SM2_XE_1 + +double precision function get_K_INF_XE_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: c46 = (/ & + 3.09587459680e-04, & + -6.76235422969e-03, & + 5.87202485268e-02, & + -2.21749035360e-01, & + -9.54421365789e-02, & + -5.46326876652e-04, & + 1.12329744251e-02, & + -9.40697599613e-02, & + 4.11841320240e-01, & + 5.57512550155e-01 & + /) + get_K_INF_XE_0 = (c46(0)*E**(4) + c46(1)*E**(3) + c46(2)*E**(2) + c46(3)*E + c46(4))*B + (c46(5)*E**(4) + c46(6)*E**(3) + c46(7)*E**(2) + c46(8)*E + c46(9)) + +end function get_K_INF_XE_0 + +double precision function get_K_INF_XE_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: c47 = (/ & + -5.01113246943e-07, & + 8.90885190171e-06, & + -5.66675803644e-05, & + 1.40304234737e-04, & + -4.66438938206e-05, & + 3.97201275447e-05, & + -7.52500190387e-04, & + 5.31972391273e-03, & + -1.59203970918e-02, & + 6.47569248671e-03, & + -4.50759234143e-04, & + 9.54882312368e-03, & + -8.18157321749e-02, & + 3.68313178677e-01, & + 5.73870878092e-01 & + /) + get_K_INF_XE_1 = (c47(0)*E**(4) + c47(1)*E**(3) + c47(2)*E**(2) + c47(3)*E + c47(4))*B**(2) + (c47(5)*E**(4) + c47(6)*E**(3) + c47(7)*E**(2) + c47(8)*E + c47(9))*B + (c47(10)*E**(4) + c47(11)*E**(3) + c47(12)*E**(2) + c47(13)*E + c47(14)) + +end function get_K_INF_XE_1 + + +end module nuclear_data_NOBP diff --git a/src/nuclear_data_WABA.f90 b/src/nuclear_data_WABA.f90 new file mode 100644 index 0000000..7d4c543 --- /dev/null +++ b/src/nuclear_data_WABA.f90 @@ -0,0 +1,2007 @@ +module nuclear_data_WABA + +contains + +double precision function get_SM2_NO_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA24 = (/ & + -4.49810502987e-07, & + 8.83425439828e-06, & + -6.65638745515e-05, & + 1.98676617087e-04, & + 6.64380326169e-04, & + 9.10521334203e-25, & + -1.45926209261e-23, & + 8.69365693357e-23, & + -2.43622924732e-22, & + 4.94751120635e-22 & + /) + get_SM2_NO_XE_WABA_DIFF_0 = (cWABA24(0)*E**(4) + cWABA24(1)*E**(3) + cWABA24(2)*E**(2) + cWABA24(3)*E + cWABA24(4))*B + (cWABA24(5)*E**(4) + cWABA24(6)*E**(3) + cWABA24(7)*E**(2) + cWABA24(8)*E + cWABA24(9)) + +end function get_SM2_NO_XE_WABA_DIFF_0 + +double precision function get_SM2_NO_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA25 = (/ & + -2.14015643292e-11, & + 2.77800238927e-10, & + -1.18140000813e-09, & + 2.80465015279e-09, & + 4.11604392506e-11, & + 6.64994008430e-10, & + -7.91777407110e-09, & + 2.56911669016e-08, & + -4.87870991492e-08, & + -1.03233439636e-07, & + -6.10419996558e-09, & + 6.40021737725e-08, & + -8.61732692836e-08, & + -1.53715386129e-08, & + 2.75836504060e-06, & + 1.95858224468e-08, & + -2.01586281073e-07, & + -4.14232461984e-10, & + -5.60745540717e-07, & + -1.80426916576e-05, & + -5.30982246217e-09, & + 1.39222153462e-08, & + 8.42698614416e-07, & + -3.68992582895e-06, & + 8.20588946933e-07 & + /) + get_SM2_NO_XE_WABA_DIFF_1 = (cWABA25(0)*E**(4) + cWABA25(1)*E**(3) + cWABA25(2)*E**(2) + cWABA25(3)*E + cWABA25(4))*B**(4) + (cWABA25(5)*E**(4) + cWABA25(6)*E**(3) + cWABA25(7)*E**(2) + cWABA25(8)*E + cWABA25(9))*B**(3) + (cWABA25(10)*E**(4) + cWABA25(11)*E**(3) + cWABA25(12)*E**(2) + cWABA25(13)*E + cWABA25(14))*B**(2) + (cWABA25(15)*E**(4) + cWABA25(16)*E**(3) + cWABA25(17)*E**(2) + cWABA25(18)*E + cWABA25(19))*B + (cWABA25(20)*E**(4) + cWABA25(21)*E**(3) + cWABA25(22)*E**(2) + cWABA25(23)*E + cWABA25(24)) + +end function get_SM2_NO_XE_WABA_DIFF_1 + +double precision function get_SM2_NO_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA26 = (/ & + -7.69771032697e-14, & + 1.49536816251e-12, & + -7.71115497502e-12, & + 7.69699483740e-12, & + 1.22213578859e-12, & + 3.72079251091e-11, & + -6.61966107672e-10, & + 3.77238032001e-09, & + -7.34726681607e-09, & + 5.10788292634e-09, & + -4.32027292995e-09, & + 7.56168801977e-08, & + -4.48861172018e-07, & + 1.00472265528e-06, & + -8.13254873210e-07, & + 1.74387281307e-07, & + -3.05157452873e-06, & + 1.86300554536e-05, & + -4.45414393147e-05, & + 3.78965806757e-05, & + -2.12421406859e-06, & + 3.72774694363e-05, & + -2.31952479568e-04, & + 5.65430974562e-04, & + -5.32309602533e-04 & + /) + get_SM2_NO_XE_WABA_DIFF_2 = (cWABA26(0)*E**(4) + cWABA26(1)*E**(3) + cWABA26(2)*E**(2) + cWABA26(3)*E + cWABA26(4))*B**(4) + (cWABA26(5)*E**(4) + cWABA26(6)*E**(3) + cWABA26(7)*E**(2) + cWABA26(8)*E + cWABA26(9))*B**(3) + (cWABA26(10)*E**(4) + cWABA26(11)*E**(3) + cWABA26(12)*E**(2) + cWABA26(13)*E + cWABA26(14))*B**(2) + (cWABA26(15)*E**(4) + cWABA26(16)*E**(3) + cWABA26(17)*E**(2) + cWABA26(18)*E + cWABA26(19))*B + (cWABA26(20)*E**(4) + cWABA26(21)*E**(3) + cWABA26(22)*E**(2) + cWABA26(23)*E + cWABA26(24)) + +end function get_SM2_NO_XE_WABA_DIFF_2 + +double precision function get_M2_NO_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA27 = (/ & + 1.82102217694e-02, & + -2.98647893816e-01, & + 1.88294265276e+00, & + -5.28734536505e+00, & + 1.52163967125e+00, & + 2.00312101313e-03, & + -4.23694781105e-02, & + 3.70949180853e-01, & + -1.78203723578e+00, & + 4.68058588326e+00 & + /) + get_M2_NO_XE_WABA_DIFF_0 = (cWABA27(0)*E**(4) + cWABA27(1)*E**(3) + cWABA27(2)*E**(2) + cWABA27(3)*E + cWABA27(4))*B + (cWABA27(5)*E**(4) + cWABA27(6)*E**(3) + cWABA27(7)*E**(2) + cWABA27(8)*E + cWABA27(9)) + +end function get_M2_NO_XE_WABA_DIFF_0 + +double precision function get_M2_NO_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA28 = (/ & + 1.27689972590e-07, & + -2.22474891845e-06, & + 1.43503664139e-05, & + -4.04267814283e-05, & + 4.11528620810e-05, & + -6.41193028038e-06, & + 1.12682008225e-04, & + -7.35028993413e-04, & + 2.10420233462e-03, & + -2.19806607822e-03, & + 1.04481806090e-04, & + -1.85383759449e-03, & + 1.22291561251e-02, & + -3.55502498891e-02, & + 3.80640964174e-02, & + -5.25676898970e-04, & + 9.36358386701e-03, & + -6.13783738575e-02, & + 1.74464018378e-01, & + -1.75422867013e-01, & + -4.89716891229e-04, & + 1.02171223894e-02, & + -9.27434926568e-02, & + 4.39891020670e-01, & + -9.99277176473e-01, & + 2.96882019996e-03, & + -5.69483299319e-02, & + 4.51664656216e-01, & + -1.96859332540e+00, & + 4.76732552507e+00 & + /) + get_M2_NO_XE_WABA_DIFF_1 = (cWABA28(0)*E**(4) + cWABA28(1)*E**(3) + cWABA28(2)*E**(2) + cWABA28(3)*E + cWABA28(4))*B**(5) + (cWABA28(5)*E**(4) + cWABA28(6)*E**(3) + cWABA28(7)*E**(2) + cWABA28(8)*E + cWABA28(9))*B**(4) + (cWABA28(10)*E**(4) + cWABA28(11)*E**(3) + cWABA28(12)*E**(2) + cWABA28(13)*E + cWABA28(14))*B**(3) + (cWABA28(15)*E**(4) + cWABA28(16)*E**(3) + cWABA28(17)*E**(2) + cWABA28(18)*E + cWABA28(19))*B**(2) + (cWABA28(20)*E**(4) + cWABA28(21)*E**(3) + cWABA28(22)*E**(2) + cWABA28(23)*E + cWABA28(24))*B + (cWABA28(25)*E**(4) + cWABA28(26)*E**(3) + cWABA28(27)*E**(2) + cWABA28(28)*E + cWABA28(29)) + +end function get_M2_NO_XE_WABA_DIFF_1 + +double precision function get_M2_NO_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA29 = (/ & + 7.31398811181e-09, & + -1.28500574207e-07, & + 8.02403869322e-07, & + -2.01925761074e-06, & + 1.83636100906e-06, & + -1.51925036227e-06, & + 2.65811476691e-05, & + -1.66058647827e-04, & + 4.19545739388e-04, & + -3.83433200078e-04, & + 1.12478545945e-04, & + -1.96184459920e-03, & + 1.22693403902e-02, & + -3.10759053521e-02, & + 2.84720017873e-02, & + -3.45503390600e-03, & + 6.02101519118e-02, & + -3.77595784408e-01, & + 9.56815753818e-01, & + -8.73359783583e-01, & + 3.62299018586e-02, & + -6.34107112330e-01, & + 4.00763502507e+00, & + -1.01428690538e+01, & + 7.90744624875e+00 & + /) + get_M2_NO_XE_WABA_DIFF_2 = (cWABA29(0)*E**(4) + cWABA29(1)*E**(3) + cWABA29(2)*E**(2) + cWABA29(3)*E + cWABA29(4))*B**(4) + (cWABA29(5)*E**(4) + cWABA29(6)*E**(3) + cWABA29(7)*E**(2) + cWABA29(8)*E + cWABA29(9))*B**(3) + (cWABA29(10)*E**(4) + cWABA29(11)*E**(3) + cWABA29(12)*E**(2) + cWABA29(13)*E + cWABA29(14))*B**(2) + (cWABA29(15)*E**(4) + cWABA29(16)*E**(3) + cWABA29(17)*E**(2) + cWABA29(18)*E + cWABA29(19))*B + (cWABA29(20)*E**(4) + cWABA29(21)*E**(3) + cWABA29(22)*E**(2) + cWABA29(23)*E + cWABA29(24)) + +end function get_M2_NO_XE_WABA_DIFF_2 + +double precision function get_M2_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA30 = (/ & + 2.36753116611e-02, & + -3.98472839498e-01, & + 2.52567000912e+00, & + -6.79872186927e+00, & + 8.43894385050e-01, & + 2.00312101313e-03, & + -4.23694781105e-02, & + 3.70949180853e-01, & + -1.78203723578e+00, & + 4.68058588326e+00 & + /) + get_M2_XE_WABA_DIFF_0 = (cWABA30(0)*E**(4) + cWABA30(1)*E**(3) + cWABA30(2)*E**(2) + cWABA30(3)*E + cWABA30(4))*B + (cWABA30(5)*E**(4) + cWABA30(6)*E**(3) + cWABA30(7)*E**(2) + cWABA30(8)*E + cWABA30(9)) + +end function get_M2_XE_WABA_DIFF_0 + +double precision function get_M2_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA31 = (/ & + 2.93758297904e-08, & + -5.98627921329e-07, & + 4.38327674025e-06, & + -1.36275992971e-05, & + 1.45305111184e-05, & + -1.14246871446e-06, & + 2.53854649725e-05, & + -1.99092556089e-04, & + 6.60765705467e-04, & + -7.61450471796e-04, & + 5.89970102113e-06, & + -2.15893324813e-04, & + 2.14501675730e-03, & + -8.31624375363e-03, & + 1.08834108500e-02, & + 2.21671307969e-04, & + -3.12061032828e-03, & + 1.58491051398e-02, & + -3.49352151397e-02, & + 3.41760585901e-02, & + -2.42010013378e-03, & + 4.28116295757e-02, & + -2.95936958586e-01, & + 9.92346292140e-01, & + -1.54760895369e+00, & + 3.79707374148e-03, & + -7.13518918278e-02, & + 5.42143205945e-01, & + -2.20337232547e+00, & + 4.93793275308e+00 & + /) + get_M2_XE_WABA_DIFF_1 = (cWABA31(0)*E**(4) + cWABA31(1)*E**(3) + cWABA31(2)*E**(2) + cWABA31(3)*E + cWABA31(4))*B**(5) + (cWABA31(5)*E**(4) + cWABA31(6)*E**(3) + cWABA31(7)*E**(2) + cWABA31(8)*E + cWABA31(9))*B**(4) + (cWABA31(10)*E**(4) + cWABA31(11)*E**(3) + cWABA31(12)*E**(2) + cWABA31(13)*E + cWABA31(14))*B**(3) + (cWABA31(15)*E**(4) + cWABA31(16)*E**(3) + cWABA31(17)*E**(2) + cWABA31(18)*E + cWABA31(19))*B**(2) + (cWABA31(20)*E**(4) + cWABA31(21)*E**(3) + cWABA31(22)*E**(2) + cWABA31(23)*E + cWABA31(24))*B + (cWABA31(25)*E**(4) + cWABA31(26)*E**(3) + cWABA31(27)*E**(2) + cWABA31(28)*E + cWABA31(29)) + +end function get_M2_XE_WABA_DIFF_1 + +double precision function get_M2_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA32 = (/ & + -9.52143376130e-10, & + 9.78507721995e-09, & + -5.28162543382e-08, & + 2.95053746602e-07, & + -4.75982508966e-07, & + 2.27824522354e-10, & + 1.30117639402e-06, & + -1.05430541276e-05, & + 9.64890958355e-07, & + 3.24875955410e-05, & + 1.30929185042e-05, & + -3.17833391032e-04, & + 2.21176894584e-03, & + -4.15822624346e-03, & + 1.88099276163e-03, & + -7.91606003180e-04, & + 1.64114298611e-02, & + -1.11177112155e-01, & + 2.48022101199e-01, & + -1.77495852204e-01, & + 1.25128624725e-02, & + -2.46618872274e-01, & + 1.66581977959e+00, & + -3.95694899928e+00, & + 1.88230235411e+00 & + /) + get_M2_XE_WABA_DIFF_2 = (cWABA32(0)*E**(4) + cWABA32(1)*E**(3) + cWABA32(2)*E**(2) + cWABA32(3)*E + cWABA32(4))*B**(4) + (cWABA32(5)*E**(4) + cWABA32(6)*E**(3) + cWABA32(7)*E**(2) + cWABA32(8)*E + cWABA32(9))*B**(3) + (cWABA32(10)*E**(4) + cWABA32(11)*E**(3) + cWABA32(12)*E**(2) + cWABA32(13)*E + cWABA32(14))*B**(2) + (cWABA32(15)*E**(4) + cWABA32(16)*E**(3) + cWABA32(17)*E**(2) + cWABA32(18)*E + cWABA32(19))*B + (cWABA32(20)*E**(4) + cWABA32(21)*E**(3) + cWABA32(22)*E**(2) + cWABA32(23)*E + cWABA32(24)) + +end function get_M2_XE_WABA_DIFF_2 + +double precision function get_NUFISS1_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA33 = (/ & + -5.28107165934e-06, & + 8.83578658681e-05, & + -5.53916220197e-04, & + 1.58817589436e-03, & + -1.72406537402e-03, & + -5.47560074002e-08, & + 6.26002916448e-07, & + 1.18644949321e-07, & + -1.90198771505e-05, & + 4.18095847810e-05 & + /) + get_NUFISS1_WABA_DIFF_0 = (cWABA33(0)*E**(4) + cWABA33(1)*E**(3) + cWABA33(2)*E**(2) + cWABA33(3)*E + cWABA33(4))*B + (cWABA33(5)*E**(4) + cWABA33(6)*E**(3) + cWABA33(7)*E**(2) + cWABA33(8)*E + cWABA33(9)) + +end function get_NUFISS1_WABA_DIFF_0 + +double precision function get_NUFISS1_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA34 = (/ & + -1.50914178262e-12, & + -5.31983466335e-11, & + 6.28546678092e-10, & + -2.04943697569e-09, & + 2.20992116832e-09, & + 6.06903847774e-11, & + 3.18234076103e-09, & + -3.99769675658e-08, & + 1.50984482956e-07, & + -1.97826542155e-07, & + -5.36271762470e-09, & + 1.73462550549e-08, & + 3.20107640750e-07, & + -2.08954755790e-06, & + 3.85410233769e-06, & + 6.66096241898e-08, & + -7.43175143702e-07, & + 1.92005639559e-06, & + 4.85208313782e-06, & + -2.66262583315e-05, & + -6.53278290548e-09, & + -1.54527965990e-07, & + 4.80201662700e-06, & + -3.10460543828e-05, & + 5.59230617020e-05 & + /) + get_NUFISS1_WABA_DIFF_1 = (cWABA34(0)*E**(4) + cWABA34(1)*E**(3) + cWABA34(2)*E**(2) + cWABA34(3)*E + cWABA34(4))*B**(4) + (cWABA34(5)*E**(4) + cWABA34(6)*E**(3) + cWABA34(7)*E**(2) + cWABA34(8)*E + cWABA34(9))*B**(3) + (cWABA34(10)*E**(4) + cWABA34(11)*E**(3) + cWABA34(12)*E**(2) + cWABA34(13)*E + cWABA34(14))*B**(2) + (cWABA34(15)*E**(4) + cWABA34(16)*E**(3) + cWABA34(17)*E**(2) + cWABA34(18)*E + cWABA34(19))*B + (cWABA34(20)*E**(4) + cWABA34(21)*E**(3) + cWABA34(22)*E**(2) + cWABA34(23)*E + cWABA34(24)) + +end function get_NUFISS1_WABA_DIFF_1 + +double precision function get_NUFISS1_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA35 = (/ & + -7.68698988925e-12, & + 1.21048607470e-10, & + -6.99562602847e-10, & + 1.76168655441e-09, & + -1.63929704450e-09, & + 1.46695510142e-09, & + -2.32206835479e-08, & + 1.34907133067e-07, & + -3.41254083371e-07, & + 3.18409122068e-07, & + -1.00855412761e-07, & + 1.60785334240e-06, & + -9.41452825129e-06, & + 2.39959883975e-05, & + -2.25127405079e-05, & + 2.92069570798e-06, & + -4.69482985524e-05, & + 2.77561787434e-04, & + -7.15210717287e-04, & + 6.77275516531e-04, & + -2.95008554909e-05, & + 4.77405375881e-04, & + -2.84264534536e-03, & + 7.38437338320e-03, & + -7.11539995494e-03 & + /) + get_NUFISS1_WABA_DIFF_2 = (cWABA35(0)*E**(4) + cWABA35(1)*E**(3) + cWABA35(2)*E**(2) + cWABA35(3)*E + cWABA35(4))*B**(4) + (cWABA35(5)*E**(4) + cWABA35(6)*E**(3) + cWABA35(7)*E**(2) + cWABA35(8)*E + cWABA35(9))*B**(3) + (cWABA35(10)*E**(4) + cWABA35(11)*E**(3) + cWABA35(12)*E**(2) + cWABA35(13)*E + cWABA35(14))*B**(2) + (cWABA35(15)*E**(4) + cWABA35(16)*E**(3) + cWABA35(17)*E**(2) + cWABA35(18)*E + cWABA35(19))*B + (cWABA35(20)*E**(4) + cWABA35(21)*E**(3) + cWABA35(22)*E**(2) + cWABA35(23)*E + cWABA35(24)) + +end function get_NUFISS1_WABA_DIFF_2 + +double precision function get_K2_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA36 = (/ & + 4.55283166406e-04, & + -9.14204824075e-03, & + 7.29896642141e-02, & + -2.58556208930e-01, & + -4.55614035821e-02, & + -2.18579411817e-05, & + 4.89101885545e-04, & + -3.24346621934e-03, & + -4.02867177525e-03, & + 2.12452162762e-01 & + /) + get_K2_WABA_DIFF_0 = (cWABA36(0)*E**(4) + cWABA36(1)*E**(3) + cWABA36(2)*E**(2) + cWABA36(3)*E + cWABA36(4))*B + (cWABA36(5)*E**(4) + cWABA36(6)*E**(3) + cWABA36(7)*E**(2) + cWABA36(8)*E + cWABA36(9)) + +end function get_K2_WABA_DIFF_0 + +double precision function get_K2_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA37 = (/ & + 1.48052031769e-09, & + 3.37507242347e-08, & + -7.12769454735e-07, & + 4.00577314977e-06, & + -7.31203856760e-06, & + -5.57125226028e-07, & + 7.50203988689e-06, & + -3.10225542307e-05, & + 1.90888259271e-05, & + 9.11201727241e-05, & + 1.65407758646e-05, & + -2.69315488041e-04, & + 1.62880404662e-03, & + -4.32454143042e-03, & + 4.34359227707e-03, & + -1.19568171305e-04, & + 2.09545264244e-03, & + -1.42886242813e-02, & + 4.73462826125e-02, & + -7.56689588764e-02, & + 4.44052513813e-05, & + -6.38735742770e-04, & + 3.89135460330e-03, & + -2.29143573357e-02, & + 2.19941039721e-01 & + /) + get_K2_WABA_DIFF_1 = (cWABA37(0)*E**(4) + cWABA37(1)*E**(3) + cWABA37(2)*E**(2) + cWABA37(3)*E + cWABA37(4))*B**(4) + (cWABA37(5)*E**(4) + cWABA37(6)*E**(3) + cWABA37(7)*E**(2) + cWABA37(8)*E + cWABA37(9))*B**(3) + (cWABA37(10)*E**(4) + cWABA37(11)*E**(3) + cWABA37(12)*E**(2) + cWABA37(13)*E + cWABA37(14))*B**(2) + (cWABA37(15)*E**(4) + cWABA37(16)*E**(3) + cWABA37(17)*E**(2) + cWABA37(18)*E + cWABA37(19))*B + (cWABA37(20)*E**(4) + cWABA37(21)*E**(3) + cWABA37(22)*E**(2) + cWABA37(23)*E + cWABA37(24)) + +end function get_K2_WABA_DIFF_1 + +double precision function get_K2_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA38 = (/ & + -3.66222897341e-11, & + 5.68071326811e-10, & + -3.14126038770e-09, & + 7.15884989286e-09, & + -5.87527665541e-09, & + 8.67831485995e-09, & + -1.35607652922e-07, & + 7.55710768541e-07, & + -1.73303466393e-06, & + 1.42888432973e-06, & + -7.95152857074e-07, & + 1.25402517675e-05, & + -7.05992887866e-05, & + 1.63348746152e-04, & + -1.35758123566e-04, & + 3.49133859479e-05, & + -5.56622670044e-04, & + 3.17235282807e-03, & + -7.41902953823e-03, & + 6.23234419358e-03, & + -7.29183401551e-04, & + 1.17649872039e-02, & + -6.79600451059e-02, & + 1.60547292815e-01, & + -1.36353893503e-01, & + 5.78976613623e-03, & + -9.46863530401e-02, & + 5.55170082076e-01, & + -1.31805239886e+00, & + 1.12390036768e+00 & + /) + get_K2_WABA_DIFF_2 = (cWABA38(0)*E**(4) + cWABA38(1)*E**(3) + cWABA38(2)*E**(2) + cWABA38(3)*E + cWABA38(4))*B**(5) + (cWABA38(5)*E**(4) + cWABA38(6)*E**(3) + cWABA38(7)*E**(2) + cWABA38(8)*E + cWABA38(9))*B**(4) + (cWABA38(10)*E**(4) + cWABA38(11)*E**(3) + cWABA38(12)*E**(2) + cWABA38(13)*E + cWABA38(14))*B**(3) + (cWABA38(15)*E**(4) + cWABA38(16)*E**(3) + cWABA38(17)*E**(2) + cWABA38(18)*E + cWABA38(19))*B**(2) + (cWABA38(20)*E**(4) + cWABA38(21)*E**(3) + cWABA38(22)*E**(2) + cWABA38(23)*E + cWABA38(24))*B + (cWABA38(25)*E**(4) + cWABA38(26)*E**(3) + cWABA38(27)*E**(2) + cWABA38(28)*E + cWABA38(29)) + +end function get_K2_WABA_DIFF_2 + +double precision function get_K1_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA39 = (/ & + -1.27476909584e-04, & + 2.13918363385e-03, & + -1.31126356827e-02, & + 3.44471144608e-02, & + -4.82424681412e-02, & + -1.09259633423e-05, & + 1.68987895502e-04, & + -9.22290380311e-04, & + 1.28219077582e-03, & + 2.84378360923e-03 & + /) + get_K1_WABA_DIFF_0 = (cWABA39(0)*E**(4) + cWABA39(1)*E**(3) + cWABA39(2)*E**(2) + cWABA39(3)*E + cWABA39(4))*B + (cWABA39(5)*E**(4) + cWABA39(6)*E**(3) + cWABA39(7)*E**(2) + cWABA39(8)*E + cWABA39(9)) + +end function get_K1_WABA_DIFF_0 + +double precision function get_K1_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA40 = (/ & + 4.22189387030e-10, & + -7.83457568714e-09, & + 5.40254574896e-08, & + -1.63945906073e-07, & + 1.84129616351e-07, & + -2.79968021341e-08, & + 5.00739274866e-07, & + -3.34881397605e-06, & + 9.92146881838e-06, & + -1.09583580232e-05, & + 6.17779988859e-07, & + -1.07084525576e-05, & + 6.95455369522e-05, & + -2.00609991247e-04, & + 2.16286215972e-04, & + -5.52576720962e-06, & + 9.24645345059e-05, & + -5.76658603772e-04, & + 1.58158630488e-03, & + -1.57104218447e-03, & + 1.87158576839e-05, & + -3.01546355414e-04, & + 1.77390564444e-03, & + -4.32949211518e-03, & + 2.43654714128e-03, & + -1.64568743157e-05, & + 2.67644002092e-04, & + -1.56600768301e-03, & + 3.11385796849e-03, & + 7.82497644084e-04 & + /) + get_K1_WABA_DIFF_1 = (cWABA40(0)*E**(4) + cWABA40(1)*E**(3) + cWABA40(2)*E**(2) + cWABA40(3)*E + cWABA40(4))*B**(5) + (cWABA40(5)*E**(4) + cWABA40(6)*E**(3) + cWABA40(7)*E**(2) + cWABA40(8)*E + cWABA40(9))*B**(4) + (cWABA40(10)*E**(4) + cWABA40(11)*E**(3) + cWABA40(12)*E**(2) + cWABA40(13)*E + cWABA40(14))*B**(3) + (cWABA40(15)*E**(4) + cWABA40(16)*E**(3) + cWABA40(17)*E**(2) + cWABA40(18)*E + cWABA40(19))*B**(2) + (cWABA40(20)*E**(4) + cWABA40(21)*E**(3) + cWABA40(22)*E**(2) + cWABA40(23)*E + cWABA40(24))*B + (cWABA40(25)*E**(4) + cWABA40(26)*E**(3) + cWABA40(27)*E**(2) + cWABA40(28)*E + cWABA40(29)) + +end function get_K1_WABA_DIFF_1 + +double precision function get_K1_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA41 = (/ & + 1.96523840700e-03, & + -2.97359373744e-02, & + 1.66540093639e-01, & + -4.09969067306e-01, & + 3.65148904495e-01, & + 3.44853465294e-03, & + -5.27777990716e-02, & + 2.98719855491e-01, & + -7.39902512905e-01, & + 6.72979165470e-01, & + 2.08750945999e+00, & + -3.10632273161e+01, & + 1.68770850700e+02, & + -3.95620120653e+02, & + 3.37294477324e+02, & + -3.28960186197e+00, & + 5.14672453701e+01, & + -2.97977152991e+02, & + 7.57211618949e+02, & + -7.14453985449e+02 & + /) + get_K1_WABA_DIFF_2 = (cWABA41(0)*E**(4) + cWABA41(1)*E**(3) + cWABA41(2)*E**(2) + cWABA41(3)*E + cWABA41(4))*exp(B*(cWABA41(5)*E**(4) + cWABA41(6)*E**(3) + cWABA41(7)*E**(2) + cWABA41(8)*E + cWABA41(9))) + (cWABA41(10)*E**(4) + cWABA41(11)*E**(3) + cWABA41(12)*E**(2) + cWABA41(13)*E + cWABA41(14))*exp(B*(cWABA41(15)*E**(4) + cWABA41(16)*E**(3) + cWABA41(17)*E**(2) + cWABA41(18)*E + cWABA41(19))) + +end function get_K1_WABA_DIFF_2 + +double precision function get_NUFISS2_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA42 = (/ & + -1.27475137205e-04, & + 2.12458670963e-03, & + -1.29259894823e-02, & + 2.86826981508e-02, & + -3.09602363175e-02, & + -9.10483200146e-06, & + 1.34750710690e-04, & + -7.73175487928e-04, & + 1.85825925010e-03, & + -1.30529775100e-03 & + /) + get_NUFISS2_WABA_DIFF_0 = (cWABA42(0)*E**(4) + cWABA42(1)*E**(3) + cWABA42(2)*E**(2) + cWABA42(3)*E + cWABA42(4))*B + (cWABA42(5)*E**(4) + cWABA42(6)*E**(3) + cWABA42(7)*E**(2) + cWABA42(8)*E + cWABA42(9)) + +end function get_NUFISS2_WABA_DIFF_0 + +double precision function get_NUFISS2_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA43 = (/ & + 3.86192454068e-10, & + -5.90196386821e-09, & + 3.32057272307e-08, & + -8.08830624890e-08, & + 7.08043870466e-08, & + -1.68079446288e-08, & + 2.48557380150e-07, & + -1.33650401246e-06, & + 3.03300897056e-06, & + -2.30264784510e-06, & + 2.53727636939e-07, & + -3.51331649301e-06, & + 1.69589169606e-05, & + -3.07216716031e-05, & + 8.78454884984e-06, & + -1.83660632745e-06, & + 2.31031767988e-05, & + -8.98103245296e-05, & + 5.43880564094e-05, & + 2.80353772009e-04, & + 8.71731984297e-06, & + -1.15147039963e-04, & + 4.91335750832e-04, & + -4.29490282604e-04, & + -1.98634449318e-03, & + -2.06541170625e-05, & + 3.23233865148e-04, & + -1.90857999611e-03, & + 4.83549012930e-03, & + -4.03896134024e-03 & + /) + get_NUFISS2_WABA_DIFF_1 = (cWABA43(0)*E**(4) + cWABA43(1)*E**(3) + cWABA43(2)*E**(2) + cWABA43(3)*E + cWABA43(4))*B**(5) + (cWABA43(5)*E**(4) + cWABA43(6)*E**(3) + cWABA43(7)*E**(2) + cWABA43(8)*E + cWABA43(9))*B**(4) + (cWABA43(10)*E**(4) + cWABA43(11)*E**(3) + cWABA43(12)*E**(2) + cWABA43(13)*E + cWABA43(14))*B**(3) + (cWABA43(15)*E**(4) + cWABA43(16)*E**(3) + cWABA43(17)*E**(2) + cWABA43(18)*E + cWABA43(19))*B**(2) + (cWABA43(20)*E**(4) + cWABA43(21)*E**(3) + cWABA43(22)*E**(2) + cWABA43(23)*E + cWABA43(24))*B + (cWABA43(25)*E**(4) + cWABA43(26)*E**(3) + cWABA43(27)*E**(2) + cWABA43(28)*E + cWABA43(29)) + +end function get_NUFISS2_WABA_DIFF_1 + +double precision function get_NUFISS2_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA44 = (/ & + -7.59254401501e-10, & + 1.29629775520e-08, & + -8.91976709601e-08, & + 2.89849199517e-07, & + -3.48624072168e-07, & + 8.64385085660e-08, & + -1.40911681936e-06, & + 9.39516627613e-06, & + -3.05391998272e-05, & + 3.78306175128e-05, & + -3.05607803681e-06, & + 4.76047129820e-05, & + -3.03060094758e-04, & + 9.55649204955e-04, & + -1.21455139657e-03, & + 3.09822007434e-05, & + -4.91088042346e-04, & + 3.26117547003e-03, & + -1.08494453922e-02, & + 9.04122309171e-03 & + /) + get_NUFISS2_WABA_DIFF_2 = (cWABA44(0)*E**(4) + cWABA44(1)*E**(3) + cWABA44(2)*E**(2) + cWABA44(3)*E + cWABA44(4))*B**(3) + (cWABA44(5)*E**(4) + cWABA44(6)*E**(3) + cWABA44(7)*E**(2) + cWABA44(8)*E + cWABA44(9))*B**(2) + (cWABA44(10)*E**(4) + cWABA44(11)*E**(3) + cWABA44(12)*E**(2) + cWABA44(13)*E + cWABA44(14))*B + (cWABA44(15)*E**(4) + cWABA44(16)*E**(3) + cWABA44(17)*E**(2) + cWABA44(18)*E + cWABA44(19)) + +end function get_NUFISS2_WABA_DIFF_2 + +double precision function get_BOR1_NO_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA45 = (/ & + 1.09262267348e-07, & + -1.64135857007e-06, & + 8.97839903987e-06, & + -2.18210080263e-05, & + 3.34203735266e-05, & + -7.28400750664e-09, & + 1.27227883086e-07, & + -9.08763957343e-07, & + 3.51299962616e-06, & + 8.63120153414e-07 & + /) + get_BOR1_NO_XE_WABA_DIFF_0 = (cWABA45(0)*E**(4) + cWABA45(1)*E**(3) + cWABA45(2)*E**(2) + cWABA45(3)*E + cWABA45(4))*B + (cWABA45(5)*E**(4) + cWABA45(6)*E**(3) + cWABA45(7)*E**(2) + cWABA45(8)*E + cWABA45(9)) + +end function get_BOR1_NO_XE_WABA_DIFF_0 + +double precision function get_BOR1_NO_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA46 = (/ & + 1.18761665288e-11, & + -2.31492785929e-10, & + 1.63808056374e-09, & + -4.92091358014e-09, & + 5.07116370927e-09, & + -3.68845139626e-10, & + 7.39337033260e-09, & + -5.45362359046e-08, & + 1.74790371991e-07, & + -2.00243174545e-07, & + 2.58042931859e-09, & + -5.58144577666e-08, & + 4.51613144403e-07, & + -1.65424795747e-06, & + 2.35345578333e-06, & + -2.67477123659e-09, & + 6.36009232428e-08, & + -5.93919773459e-07, & + 2.84424741979e-06, & + 1.60771265020e-06 & + /) + get_BOR1_NO_XE_WABA_DIFF_1 = (cWABA46(0)*E**(4) + cWABA46(1)*E**(3) + cWABA46(2)*E**(2) + cWABA46(3)*E + cWABA46(4))*B**(3) + (cWABA46(5)*E**(4) + cWABA46(6)*E**(3) + cWABA46(7)*E**(2) + cWABA46(8)*E + cWABA46(9))*B**(2) + (cWABA46(10)*E**(4) + cWABA46(11)*E**(3) + cWABA46(12)*E**(2) + cWABA46(13)*E + cWABA46(14))*B + (cWABA46(15)*E**(4) + cWABA46(16)*E**(3) + cWABA46(17)*E**(2) + cWABA46(18)*E + cWABA46(19)) + +end function get_BOR1_NO_XE_WABA_DIFF_1 + +double precision function get_BOR1_NO_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA47 = (/ & + 2.08113275639e-10, & + -3.45014660494e-09, & + 1.96955329955e-08, & + -4.00999051309e-08, & + 2.39834348682e-08, & + -1.01471029160e-08, & + 1.75272751738e-07, & + -1.07826345563e-06, & + 2.44526062261e-06, & + 7.23884728255e-06 & + /) + get_BOR1_NO_XE_WABA_DIFF_2 = (cWABA47(0)*E**(4) + cWABA47(1)*E**(3) + cWABA47(2)*E**(2) + cWABA47(3)*E + cWABA47(4))*B + (cWABA47(5)*E**(4) + cWABA47(6)*E**(3) + cWABA47(7)*E**(2) + cWABA47(8)*E + cWABA47(9)) + +end function get_BOR1_NO_XE_WABA_DIFF_2 + +double precision function get_BOR2_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA48 = (/ & + -7.28498490320e-02, & + 1.00534145185e+00, & + -4.74707933025e+00, & + 8.32027230919e+00, & + -1.48651005510e+01, & + 1.81982455590e-03, & + -1.81906184061e-02, & + 3.44800561248e-02, & + 3.21381700608e-01, & + 1.02178765515e+01 & + /) + get_BOR2_XE_WABA_DIFF_0 = (cWABA48(0)*E**(4) + cWABA48(1)*E**(3) + cWABA48(2)*E**(2) + cWABA48(3)*E + cWABA48(4))*B + (cWABA48(5)*E**(4) + cWABA48(6)*E**(3) + cWABA48(7)*E**(2) + cWABA48(8)*E + cWABA48(9)) + +end function get_BOR2_XE_WABA_DIFF_0 + +double precision function get_BOR2_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA49 = (/ & + -2.20759749156e-06, & + 4.14031538462e-05, & + -2.99978541423e-04, & + 1.00055795660e-03, & + -1.30202364156e-03, & + 5.01510846754e-05, & + -1.01625138044e-03, & + 8.02187592605e-03, & + -2.94257577226e-02, & + 4.28385461230e-02, & + 9.38765710799e-05, & + 3.59672516788e-04, & + -2.04547262645e-02, & + 1.37982566614e-01, & + -2.97649091794e-01, & + -4.94023624700e-03, & + 7.77191346573e-02, & + -4.50147516187e-01, & + 1.14735440244e+00, & + -1.23202711804e+00, & + 7.83769354266e-03, & + -1.18569890192e-01, & + 6.50015848906e-01, & + -1.30908246194e+00, & + 1.18825021345e+01 & + /) + get_BOR2_XE_WABA_DIFF_1 = (cWABA49(0)*E**(4) + cWABA49(1)*E**(3) + cWABA49(2)*E**(2) + cWABA49(3)*E + cWABA49(4))*B**(4) + (cWABA49(5)*E**(4) + cWABA49(6)*E**(3) + cWABA49(7)*E**(2) + cWABA49(8)*E + cWABA49(9))*B**(3) + (cWABA49(10)*E**(4) + cWABA49(11)*E**(3) + cWABA49(12)*E**(2) + cWABA49(13)*E + cWABA49(14))*B**(2) + (cWABA49(15)*E**(4) + cWABA49(16)*E**(3) + cWABA49(17)*E**(2) + cWABA49(18)*E + cWABA49(19))*B + (cWABA49(20)*E**(4) + cWABA49(21)*E**(3) + cWABA49(22)*E**(2) + cWABA49(23)*E + cWABA49(24)) + +end function get_BOR2_XE_WABA_DIFF_1 + +double precision function get_BOR2_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA50 = (/ & + -1.50370085414e-08, & + 1.72532517452e-07, & + -7.41334405031e-07, & + 1.90363813706e-06, & + -1.95842549889e-06, & + 2.29183856787e-06, & + -2.22580701624e-05, & + 6.88669513780e-05, & + -1.57682388835e-04, & + 1.66814708904e-04, & + -1.03710608155e-04, & + 5.59701950518e-04, & + 1.79720194763e-03, & + -7.58283645817e-03, & + 7.05012652445e-03, & + 1.08875933429e-03, & + 1.77161830630e-02, & + -2.79012690672e-01, & + 8.53278932289e-01, & + -8.32871990738e-01, & + 6.06605298987e-03, & + -4.83757261245e-01, & + 4.89472811552e+00, & + -1.38565750334e+01, & + 1.77364675242e+01 & + /) + get_BOR2_XE_WABA_DIFF_2 = (cWABA50(0)*E**(4) + cWABA50(1)*E**(3) + cWABA50(2)*E**(2) + cWABA50(3)*E + cWABA50(4))*B**(4) + (cWABA50(5)*E**(4) + cWABA50(6)*E**(3) + cWABA50(7)*E**(2) + cWABA50(8)*E + cWABA50(9))*B**(3) + (cWABA50(10)*E**(4) + cWABA50(11)*E**(3) + cWABA50(12)*E**(2) + cWABA50(13)*E + cWABA50(14))*B**(2) + (cWABA50(15)*E**(4) + cWABA50(16)*E**(3) + cWABA50(17)*E**(2) + cWABA50(18)*E + cWABA50(19))*B + (cWABA50(20)*E**(4) + cWABA50(21)*E**(3) + cWABA50(22)*E**(2) + cWABA50(23)*E + cWABA50(24)) + +end function get_BOR2_XE_WABA_DIFF_2 + +double precision function get_REMOV1_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA51 = (/ & + 3.27795907001e-05, & + -5.21074137193e-04, & + 3.06277985796e-03, & + -7.96013035458e-03, & + 8.93845797355e-03, & + -2.36759069015e-06, & + 3.90712361539e-05, & + -2.46716019474e-04, & + 7.45110364630e-04, & + -2.95979524801e-04 & + /) + get_REMOV1_WABA_DIFF_0 = (cWABA51(0)*E**(4) + cWABA51(1)*E**(3) + cWABA51(2)*E**(2) + cWABA51(3)*E + cWABA51(4))*B + (cWABA51(5)*E**(4) + cWABA51(6)*E**(3) + cWABA51(7)*E**(2) + cWABA51(8)*E + cWABA51(9)) + +end function get_REMOV1_WABA_DIFF_0 + +double precision function get_REMOV1_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA52 = (/ & + -2.18046700708e-09, & + 3.38128732179e-08, & + -1.94708806054e-07, & + 5.02011231187e-07, & + -5.14124635276e-07, & + 7.01753957731e-08, & + -1.06518690739e-06, & + 5.89265284721e-06, & + -1.41089311684e-05, & + 1.29777335753e-05, & + -5.85292017904e-07, & + 8.60611324297e-06, & + -4.42090736000e-05, & + 8.64149328363e-05, & + -4.23437147914e-05, & + 2.00387100968e-07, & + -1.76204223719e-06, & + -6.41706744676e-06, & + 1.23199936985e-04, & + 3.23388518402e-04 & + /) + get_REMOV1_WABA_DIFF_1 = (cWABA52(0)*E**(4) + cWABA52(1)*E**(3) + cWABA52(2)*E**(2) + cWABA52(3)*E + cWABA52(4))*B**(3) + (cWABA52(5)*E**(4) + cWABA52(6)*E**(3) + cWABA52(7)*E**(2) + cWABA52(8)*E + cWABA52(9))*B**(2) + (cWABA52(10)*E**(4) + cWABA52(11)*E**(3) + cWABA52(12)*E**(2) + cWABA52(13)*E + cWABA52(14))*B + (cWABA52(15)*E**(4) + cWABA52(16)*E**(3) + cWABA52(17)*E**(2) + cWABA52(18)*E + cWABA52(19)) + +end function get_REMOV1_WABA_DIFF_1 + +double precision function get_REMOV1_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA53 = (/ & + 1.49477960331e-08, & + -2.48625017421e-07, & + 1.39020735038e-06, & + -2.59728648517e-06, & + 1.09762548931e-06, & + -8.11385054605e-07, & + 1.41640594760e-05, & + -8.73233043854e-05, & + 1.96102942308e-04, & + 6.16372718537e-04 & + /) + get_REMOV1_WABA_DIFF_2 = (cWABA53(0)*E**(4) + cWABA53(1)*E**(3) + cWABA53(2)*E**(2) + cWABA53(3)*E + cWABA53(4))*B + (cWABA53(5)*E**(4) + cWABA53(6)*E**(3) + cWABA53(7)*E**(2) + cWABA53(8)*E + cWABA53(9)) + +end function get_REMOV1_WABA_DIFF_2 + +double precision function get_DIFF2_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA54 = (/ & + 7.28351279695e-05, & + -1.03424302738e-03, & + 5.22644506369e-03, & + -1.10934083297e-02, & + 1.20615403329e-02, & + 3.64359955111e-06, & + -5.53838834971e-05, & + 2.87576046851e-04, & + -1.82927103741e-04, & + -9.77875006470e-03 & + /) + get_DIFF2_WABA_DIFF_0 = (cWABA54(0)*E**(4) + cWABA54(1)*E**(3) + cWABA54(2)*E**(2) + cWABA54(3)*E + cWABA54(4))*B + (cWABA54(5)*E**(4) + cWABA54(6)*E**(3) + cWABA54(7)*E**(2) + cWABA54(8)*E + cWABA54(9)) + +end function get_DIFF2_WABA_DIFF_0 + +double precision function get_DIFF2_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA55 = (/ & + -1.36318916701e-09, & + 1.28858372044e-08, & + -6.75645064115e-08, & + 3.66627995480e-07, & + -6.78460670216e-07, & + -6.15736943216e-08, & + 1.30080624543e-06, & + -8.42514979657e-06, & + 1.71966423557e-05, & + -3.87100676655e-06, & + 1.10119000915e-06, & + -2.06509431794e-05, & + 1.36126417511e-04, & + -3.60086017420e-04, & + 2.21088594202e-04, & + 1.69108358284e-07, & + 1.70142265889e-06, & + -5.55987137752e-05, & + 6.98572504018e-04, & + -1.05549726127e-02 & + /) + get_DIFF2_WABA_DIFF_1 = (cWABA55(0)*E**(4) + cWABA55(1)*E**(3) + cWABA55(2)*E**(2) + cWABA55(3)*E + cWABA55(4))*B**(3) + (cWABA55(5)*E**(4) + cWABA55(6)*E**(3) + cWABA55(7)*E**(2) + cWABA55(8)*E + cWABA55(9))*B**(2) + (cWABA55(10)*E**(4) + cWABA55(11)*E**(3) + cWABA55(12)*E**(2) + cWABA55(13)*E + cWABA55(14))*B + (cWABA55(15)*E**(4) + cWABA55(16)*E**(3) + cWABA55(17)*E**(2) + cWABA55(18)*E + cWABA55(19)) + +end function get_DIFF2_WABA_DIFF_1 + +double precision function get_DIFF2_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA56 = (/ & + 1.03203103631e-09, & + -1.57280338340e-08, & + 8.85324104008e-08, & + -2.18585869652e-07, & + 1.97884826655e-07, & + -1.57801871788e-07, & + 2.42591490360e-06, & + -1.37901891829e-05, & + 3.44487954640e-05, & + -3.16467916612e-05, & + 7.61441916602e-06, & + -1.18083191851e-04, & + 6.77682464115e-04, & + -1.71212893362e-03, & + 1.59722133200e-03, & + -1.09172117669e-04, & + 1.70344787252e-03, & + -9.83392731636e-03, & + 2.51094182367e-02, & + -3.36185883349e-02 & + /) + get_DIFF2_WABA_DIFF_2 = (cWABA56(0)*E**(4) + cWABA56(1)*E**(3) + cWABA56(2)*E**(2) + cWABA56(3)*E + cWABA56(4))*B**(3) + (cWABA56(5)*E**(4) + cWABA56(6)*E**(3) + cWABA56(7)*E**(2) + cWABA56(8)*E + cWABA56(9))*B**(2) + (cWABA56(10)*E**(4) + cWABA56(11)*E**(3) + cWABA56(12)*E**(2) + cWABA56(13)*E + cWABA56(14))*B + (cWABA56(15)*E**(4) + cWABA56(16)*E**(3) + cWABA56(17)*E**(2) + cWABA56(18)*E + cWABA56(19)) + +end function get_DIFF2_WABA_DIFF_2 + +double precision function get_DIFF1_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA57 = (/ & + 5.46313891844e-04, & + -9.05667858107e-03, & + 5.58625206263e-02, & + -1.51265747584e-01, & + 1.31390374999e-01, & + 1.09258277305e-04, & + -1.75298847909e-03, & + 1.05834964472e-02, & + -2.95457315152e-02, & + 4.74678926760e-02 & + /) + get_DIFF1_WABA_DIFF_0 = (cWABA57(0)*E**(4) + cWABA57(1)*E**(3) + cWABA57(2)*E**(2) + cWABA57(3)*E + cWABA57(4))*B + (cWABA57(5)*E**(4) + cWABA57(6)*E**(3) + cWABA57(7)*E**(2) + cWABA57(8)*E + cWABA57(9)) + +end function get_DIFF1_WABA_DIFF_0 + +double precision function get_DIFF1_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA58 = (/ & + -2.02355291669e-09, & + 2.13089127487e-07, & + -2.47968622080e-06, & + 1.00388797445e-05, & + -1.33763977156e-05, & + 2.49145257752e-07, & + -9.14812354245e-06, & + 9.19784448209e-05, & + -3.66247420435e-04, & + 5.22279094708e-04, & + -3.79348358790e-06, & + 9.25918380522e-05, & + -8.28097137313e-04, & + 3.37084079842e-03, & + -5.80989405977e-03, & + 2.13610383267e-06, & + -3.75523455383e-05, & + 4.07889348963e-04, & + -3.03470101666e-03, & + 2.15864135311e-02 & + /) + get_DIFF1_WABA_DIFF_1 = (cWABA58(0)*E**(4) + cWABA58(1)*E**(3) + cWABA58(2)*E**(2) + cWABA58(3)*E + cWABA58(4))*B**(3) + (cWABA58(5)*E**(4) + cWABA58(6)*E**(3) + cWABA58(7)*E**(2) + cWABA58(8)*E + cWABA58(9))*B**(2) + (cWABA58(10)*E**(4) + cWABA58(11)*E**(3) + cWABA58(12)*E**(2) + cWABA58(13)*E + cWABA58(14))*B + (cWABA58(15)*E**(4) + cWABA58(16)*E**(3) + cWABA58(17)*E**(2) + cWABA58(18)*E + cWABA58(19)) + +end function get_DIFF1_WABA_DIFF_1 + +double precision function get_DIFF1_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA59 = (/ & + 1.45010459724e-08, & + -2.36011920635e-07, & + 1.41941975763e-06, & + -3.74728550894e-06, & + 3.65660479891e-06, & + -1.93194356560e-06, & + 3.14925103671e-05, & + -1.89688691628e-04, & + 5.01758524791e-04, & + -4.90603087987e-04, & + 7.99179096150e-05, & + -1.30473035098e-03, & + 7.87015660819e-03, & + -2.08659803667e-02, & + 2.04683713304e-02, & + -9.93839645922e-04, & + 1.62463101593e-02, & + -9.80680097524e-02, & + 2.60468172427e-01, & + -2.50353414488e-01 & + /) + get_DIFF1_WABA_DIFF_2 = (cWABA59(0)*E**(4) + cWABA59(1)*E**(3) + cWABA59(2)*E**(2) + cWABA59(3)*E + cWABA59(4))*B**(3) + (cWABA59(5)*E**(4) + cWABA59(6)*E**(3) + cWABA59(7)*E**(2) + cWABA59(8)*E + cWABA59(9))*B**(2) + (cWABA59(10)*E**(4) + cWABA59(11)*E**(3) + cWABA59(12)*E**(2) + cWABA59(13)*E + cWABA59(14))*B + (cWABA59(15)*E**(4) + cWABA59(16)*E**(3) + cWABA59(17)*E**(2) + cWABA59(18)*E + cWABA59(19)) + +end function get_DIFF1_WABA_DIFF_2 + +double precision function get_BOR1_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA60 = (/ & + 5.46334347992e-04, & + -7.84294011761e-03, & + 3.50602435633e-02, & + -7.76129925705e-02, & + 7.15607282412e-01, & + -3.09576791038e-04, & + 5.64038832450e-03, & + -4.27984850080e-02, & + 1.86698004926e-01, & + -3.61500734837e-01 & + /) + get_BOR1_XE_WABA_DIFF_0 = (cWABA60(0)*E**(4) + cWABA60(1)*E**(3) + cWABA60(2)*E**(2) + cWABA60(3)*E + cWABA60(4))*B + (cWABA60(5)*E**(4) + cWABA60(6)*E**(3) + cWABA60(7)*E**(2) + cWABA60(8)*E + cWABA60(9)) + +end function get_BOR1_XE_WABA_DIFF_0 + +double precision function get_BOR1_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA61 = (/ & + 9.59637396533e-10, & + -1.31415535441e-07, & + 1.79124975028e-06, & + -8.55679144126e-06, & + 1.36452299577e-05, & + 3.69258131338e-07, & + -2.16574594360e-06, & + -2.13581930792e-05, & + 1.96065178213e-04, & + -4.04847188838e-04, & + -1.69040388980e-05, & + 2.54160226850e-04, & + -1.33736562121e-03, & + 2.67188922113e-03, & + -9.94872217497e-04, & + 2.02124067308e-04, & + -3.50108017962e-03, & + 2.33823197257e-02, & + -7.35638484765e-02, & + 9.51885324612e-02, & + -4.36036688178e-04, & + 7.73716692466e-03, & + -5.55193662390e-02, & + 2.19130738068e-01, & + -3.81720601157e-01 & + /) + get_BOR1_XE_WABA_DIFF_1 = (cWABA61(0)*E**(4) + cWABA61(1)*E**(3) + cWABA61(2)*E**(2) + cWABA61(3)*E + cWABA61(4))*B**(4) + (cWABA61(5)*E**(4) + cWABA61(6)*E**(3) + cWABA61(7)*E**(2) + cWABA61(8)*E + cWABA61(9))*B**(3) + (cWABA61(10)*E**(4) + cWABA61(11)*E**(3) + cWABA61(12)*E**(2) + cWABA61(13)*E + cWABA61(14))*B**(2) + (cWABA61(15)*E**(4) + cWABA61(16)*E**(3) + cWABA61(17)*E**(2) + cWABA61(18)*E + cWABA61(19))*B + (cWABA61(20)*E**(4) + cWABA61(21)*E**(3) + cWABA61(22)*E**(2) + cWABA61(23)*E + cWABA61(24)) + +end function get_BOR1_XE_WABA_DIFF_1 + +double precision function get_BOR1_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA62 = (/ & + 5.83890908841e-10, & + -8.98337639740e-09, & + 5.29676475687e-08, & + -1.48037371159e-07, & + 1.57219035836e-07, & + -1.20728697450e-07, & + 1.86785599949e-06, & + -1.10103706608e-05, & + 3.05195074565e-05, & + -3.20177098528e-05, & + 8.96801119912e-06, & + -1.40224050754e-04, & + 8.31978230928e-04, & + -2.30384005512e-03, & + 2.39533903476e-03, & + -2.73928791458e-04, & + 4.34257670970e-03, & + -2.61192304468e-02, & + 7.31981730135e-02, & + -7.60929038575e-02, & + 2.71100107711e-03, & + -4.32791141126e-02, & + 2.62982960338e-01, & + -7.50583019602e-01, & + 8.68753159968e-01 & + /) + get_BOR1_XE_WABA_DIFF_2 = (cWABA62(0)*E**(4) + cWABA62(1)*E**(3) + cWABA62(2)*E**(2) + cWABA62(3)*E + cWABA62(4))*B**(4) + (cWABA62(5)*E**(4) + cWABA62(6)*E**(3) + cWABA62(7)*E**(2) + cWABA62(8)*E + cWABA62(9))*B**(3) + (cWABA62(10)*E**(4) + cWABA62(11)*E**(3) + cWABA62(12)*E**(2) + cWABA62(13)*E + cWABA62(14))*B**(2) + (cWABA62(15)*E**(4) + cWABA62(16)*E**(3) + cWABA62(17)*E**(2) + cWABA62(18)*E + cWABA62(19))*B + (cWABA62(20)*E**(4) + cWABA62(21)*E**(3) + cWABA62(22)*E**(2) + cWABA62(23)*E + cWABA62(24)) + +end function get_BOR1_XE_WABA_DIFF_2 + +double precision function get_XE_YIELD_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA63 = (/ & + 1.09260288774e-05, & + -1.74330786811e-04, & + 1.04671343239e-03, & + -2.84778429975e-03, & + 3.15380591197e-03, & + -1.82106700754e-06, & + 2.95255726116e-05, & + -1.79061972997e-04, & + 4.86457567475e-04, & + -5.34477996064e-04 & + /) + get_XE_YIELD_WABA_DIFF_0 = (cWABA63(0)*E**(4) + cWABA63(1)*E**(3) + cWABA63(2)*E**(2) + cWABA63(3)*E + cWABA63(4))*B + (cWABA63(5)*E**(4) + cWABA63(6)*E**(3) + cWABA63(7)*E**(2) + cWABA63(8)*E + cWABA63(9)) + +end function get_XE_YIELD_WABA_DIFF_0 + +double precision function get_XE_YIELD_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA64 = (/ & + 5.85336148979e-10, & + -9.90860671619e-09, & + 6.33915359674e-08, & + -1.83495115065e-07, & + 2.07130347644e-07, & + -2.39291509235e-08, & + 4.07346838639e-07, & + -2.62862403315e-06, & + 7.72102642787e-06, & + -8.95311737018e-06, & + 2.95847196415e-07, & + -5.07133370233e-06, & + 3.31254148581e-05, & + -9.96295197793e-05, & + 1.21508458628e-04, & + -1.08598752725e-06, & + 1.85551375242e-05, & + -1.21512513972e-04, & + 3.74066321081e-04, & + -5.00999687138e-04, & + 5.25819295779e-07, & + -8.59522720982e-06, & + 5.10011287522e-05, & + -1.24798904551e-04, & + 7.10349588279e-05 & + /) + get_XE_YIELD_WABA_DIFF_1 = (cWABA64(0)*E**(4) + cWABA64(1)*E**(3) + cWABA64(2)*E**(2) + cWABA64(3)*E + cWABA64(4))*B**(4) + (cWABA64(5)*E**(4) + cWABA64(6)*E**(3) + cWABA64(7)*E**(2) + cWABA64(8)*E + cWABA64(9))*B**(3) + (cWABA64(10)*E**(4) + cWABA64(11)*E**(3) + cWABA64(12)*E**(2) + cWABA64(13)*E + cWABA64(14))*B**(2) + (cWABA64(15)*E**(4) + cWABA64(16)*E**(3) + cWABA64(17)*E**(2) + cWABA64(18)*E + cWABA64(19))*B + (cWABA64(20)*E**(4) + cWABA64(21)*E**(3) + cWABA64(22)*E**(2) + cWABA64(23)*E + cWABA64(24)) + +end function get_XE_YIELD_WABA_DIFF_1 + +double precision function get_XE_YIELD_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA65 = (/ & + -6.42049075728e-12, & + 1.04389080068e-10, & + -6.21748053028e-10, & + 1.60342749069e-09, & + -1.51771569715e-09, & + 1.14253422645e-09, & + -1.86960644761e-08, & + 1.12398068200e-07, & + -2.93782947296e-07, & + 2.83474415830e-07, & + -7.10134041398e-08, & + 1.16410329494e-06, & + -7.03521966297e-06, & + 1.86046884651e-05, & + -1.83917223848e-05, & + 1.81002153933e-06, & + -2.94020509256e-05, & + 1.76347870877e-04, & + -4.66042587180e-04, & + 4.72592408643e-04, & + -1.61656587428e-05, & + 2.56451893719e-04, & + -1.49023533750e-03, & + 3.78474407174e-03, & + -3.84852123231e-03 & + /) + get_XE_YIELD_WABA_DIFF_2 = (cWABA65(0)*E**(4) + cWABA65(1)*E**(3) + cWABA65(2)*E**(2) + cWABA65(3)*E + cWABA65(4))*B**(4) + (cWABA65(5)*E**(4) + cWABA65(6)*E**(3) + cWABA65(7)*E**(2) + cWABA65(8)*E + cWABA65(9))*B**(3) + (cWABA65(10)*E**(4) + cWABA65(11)*E**(3) + cWABA65(12)*E**(2) + cWABA65(13)*E + cWABA65(14))*B**(2) + (cWABA65(15)*E**(4) + cWABA65(16)*E**(3) + cWABA65(17)*E**(2) + cWABA65(18)*E + cWABA65(19))*B + (cWABA65(20)*E**(4) + cWABA65(21)*E**(3) + cWABA65(22)*E**(2) + cWABA65(23)*E + cWABA65(24)) + +end function get_XE_YIELD_WABA_DIFF_2 + +double precision function get_NU_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA66 = (/ & + -2.36746590612e-03, & + 3.77580493690e-02, & + -2.23073611643e-01, & + 5.76769326762e-01, & + -5.39313110175e-01, & + 1.63895143641e-04, & + -2.66845669532e-03, & + 1.60100149863e-02, & + -4.15503257566e-02, & + 3.62385611857e-02 & + /) + get_NU_WABA_DIFF_0 = (cWABA66(0)*E**(4) + cWABA66(1)*E**(3) + cWABA66(2)*E**(2) + cWABA66(3)*E + cWABA66(4))*B + (cWABA66(5)*E**(4) + cWABA66(6)*E**(3) + cWABA66(7)*E**(2) + cWABA66(8)*E + cWABA66(9)) + +end function get_NU_WABA_DIFF_0 + +double precision function get_NU_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA67 = (/ & + 4.03843951402e-09, & + -6.18959673851e-08, & + 3.48320630570e-07, & + -8.46591545296e-07, & + 7.35532319758e-07, & + -2.15840941537e-07, & + 3.31351836299e-06, & + -1.86519493485e-05, & + 4.51857039752e-05, & + -3.87508295288e-05, & + 4.02591195778e-06, & + -6.18652180950e-05, & + 3.47426281592e-04, & + -8.32833683956e-04, & + 6.90039425206e-04, & + -2.98668703525e-05, & + 4.59019351286e-04, & + -2.55873130827e-03, & + 5.96628952437e-03, & + -4.46721969312e-03, & + 7.95671215064e-05, & + -1.23905505312e-03, & + 6.95364606314e-03, & + -1.58829865187e-02, & + 9.63034422516e-03, & + -7.72476377916e-05, & + 1.25287653044e-03, & + -7.63871617533e-03, & + 2.11147116462e-02, & + -2.52020918159e-02 & + /) + get_NU_WABA_DIFF_1 = (cWABA67(0)*E**(4) + cWABA67(1)*E**(3) + cWABA67(2)*E**(2) + cWABA67(3)*E + cWABA67(4))*B**(5) + (cWABA67(5)*E**(4) + cWABA67(6)*E**(3) + cWABA67(7)*E**(2) + cWABA67(8)*E + cWABA67(9))*B**(4) + (cWABA67(10)*E**(4) + cWABA67(11)*E**(3) + cWABA67(12)*E**(2) + cWABA67(13)*E + cWABA67(14))*B**(3) + (cWABA67(15)*E**(4) + cWABA67(16)*E**(3) + cWABA67(17)*E**(2) + cWABA67(18)*E + cWABA67(19))*B**(2) + (cWABA67(20)*E**(4) + cWABA67(21)*E**(3) + cWABA67(22)*E**(2) + cWABA67(23)*E + cWABA67(24))*B + (cWABA67(25)*E**(4) + cWABA67(26)*E**(3) + cWABA67(27)*E**(2) + cWABA67(28)*E + cWABA67(29)) + +end function get_NU_WABA_DIFF_1 + +double precision function get_NU_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA68 = (/ & + -3.78518368911e-11, & + 6.22463299005e-10, & + -3.78378871082e-09, & + 1.00463693405e-08, & + -9.78927268614e-09, & + 1.00902129096e-08, & + -1.65339503480e-07, & + 1.00224185510e-06, & + -2.65689291111e-06, & + 2.58930434748e-06, & + -1.02190714776e-06, & + 1.66862889744e-05, & + -1.00835983383e-04, & + 2.66697427446e-04, & + -2.59618170755e-04, & + 4.89711967106e-05, & + -7.97172057053e-04, & + 4.80306763355e-03, & + -1.26686393396e-02, & + 1.23009666051e-02, & + -1.10467019060e-03, & + 1.79491299265e-02, & + -1.07953084838e-01, & + 2.84185549997e-01, & + -2.75017166239e-01, & + 9.33377323551e-03, & + -1.51639600244e-01, & + 9.12543091198e-01, & + -2.40557817470e+00, & + 2.32536707027e+00 & + /) + get_NU_WABA_DIFF_2 = (cWABA68(0)*E**(4) + cWABA68(1)*E**(3) + cWABA68(2)*E**(2) + cWABA68(3)*E + cWABA68(4))*B**(5) + (cWABA68(5)*E**(4) + cWABA68(6)*E**(3) + cWABA68(7)*E**(2) + cWABA68(8)*E + cWABA68(9))*B**(4) + (cWABA68(10)*E**(4) + cWABA68(11)*E**(3) + cWABA68(12)*E**(2) + cWABA68(13)*E + cWABA68(14))*B**(3) + (cWABA68(15)*E**(4) + cWABA68(16)*E**(3) + cWABA68(17)*E**(2) + cWABA68(18)*E + cWABA68(19))*B**(2) + (cWABA68(20)*E**(4) + cWABA68(21)*E**(3) + cWABA68(22)*E**(2) + cWABA68(23)*E + cWABA68(24))*B + (cWABA68(25)*E**(4) + cWABA68(26)*E**(3) + cWABA68(27)*E**(2) + cWABA68(28)*E + cWABA68(29)) + +end function get_NU_WABA_DIFF_2 + +double precision function get_BOR2_NO_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA69 = (/ & + 1.81830904266e-07, & + -4.43899216591e-06, & + 4.14578123624e-05, & + -1.68050441542e-04, & + -2.97740834370e-06, & + -7.60791080478e-11, & + -3.76408400907e-08, & + 9.19439891376e-07, & + -5.30161491533e-06, & + 5.61167028186e-04 & + /) + get_BOR2_NO_XE_WABA_DIFF_0 = (cWABA69(0)*E**(4) + cWABA69(1)*E**(3) + cWABA69(2)*E**(2) + cWABA69(3)*E + cWABA69(4))*B + (cWABA69(5)*E**(4) + cWABA69(6)*E**(3) + cWABA69(7)*E**(2) + cWABA69(8)*E + cWABA69(9)) + +end function get_BOR2_NO_XE_WABA_DIFF_0 + +double precision function get_BOR2_NO_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA70 = (/ & + -3.64821958113e-03, & + 7.01165544422e-02, & + -4.77680690513e-01, & + 1.38505948405e+00, & + -1.45453000362e+00, & + -1.59814851255e-01, & + 3.25548713611e+00, & + -2.36671850807e+01, & + 7.31717773470e+01, & + -8.11813604900e+01, & + 3.64848133444e-03, & + -7.01200953818e-02, & + 4.77697872700e-01, & + -1.38509563593e+00, & + 1.45511687222e+00, & + -2.87737809319e-03, & + 4.15478348822e-02, & + -2.16958817055e-01, & + 4.91677213822e-01, & + -4.25654199660e-01 & + /) + get_BOR2_NO_XE_WABA_DIFF_1 = (cWABA70(0)*E**(4) + cWABA70(1)*E**(3) + cWABA70(2)*E**(2) + cWABA70(3)*E + cWABA70(4))*exp(B*(cWABA70(5)*E**(4) + cWABA70(6)*E**(3) + cWABA70(7)*E**(2) + cWABA70(8)*E + cWABA70(9))) + (cWABA70(10)*E**(4) + cWABA70(11)*E**(3) + cWABA70(12)*E**(2) + cWABA70(13)*E + cWABA70(14))*exp(B*(cWABA70(15)*E**(4) + cWABA70(16)*E**(3) + cWABA70(17)*E**(2) + cWABA70(18)*E + cWABA70(19))) + +end function get_BOR2_NO_XE_WABA_DIFF_1 + +double precision function get_BOR2_NO_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:14) :: cWABA71 = (/ & + 3.96987443564e-11, & + -1.37603197638e-09, & + 1.39088410454e-08, & + -4.81153686816e-08, & + 5.33281683364e-08, & + -7.81739427344e-10, & + 7.55783985977e-08, & + -9.68675877529e-07, & + 3.58843207675e-06, & + -4.01062177925e-06, & + -7.35945657722e-08, & + 1.67544376519e-08, & + 1.00981208787e-05, & + -3.97095113345e-05, & + 4.71818452600e-04 & + /) + get_BOR2_NO_XE_WABA_DIFF_2 = (cWABA71(0)*E**(4) + cWABA71(1)*E**(3) + cWABA71(2)*E**(2) + cWABA71(3)*E + cWABA71(4))*B**(2) + (cWABA71(5)*E**(4) + cWABA71(6)*E**(3) + cWABA71(7)*E**(2) + cWABA71(8)*E + cWABA71(9))*B + (cWABA71(10)*E**(4) + cWABA71(11)*E**(3) + cWABA71(12)*E**(2) + cWABA71(13)*E + cWABA71(14)) + +end function get_BOR2_NO_XE_WABA_DIFF_2 + +double precision function get_KAPPA_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA72 = (/ & + 9.10580603244e-15, & + -1.45935721356e-13, & + 8.69422353084e-13, & + -2.28637764873e-12, & + 2.26765536976e-12, & + -1.81995803703e-16, & + 3.51895853340e-15, & + -2.47487344495e-14, & + 7.61476803680e-14, & + -9.20935174915e-14 & + /) + get_KAPPA_WABA_DIFF_0 = (cWABA72(0)*E**(4) + cWABA72(1)*E**(3) + cWABA72(2)*E**(2) + cWABA72(3)*E + cWABA72(4))*B + (cWABA72(5)*E**(4) + cWABA72(6)*E**(3) + cWABA72(7)*E**(2) + cWABA72(8)*E + cWABA72(9)) + +end function get_KAPPA_WABA_DIFF_0 + +double precision function get_KAPPA_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA73 = (/ & + -7.31344444092e-21, & + 4.87400540827e-20, & + 1.26412642538e-19, & + -1.41766773151e-18, & + 2.38138319980e-18, & + 7.22216093874e-19, & + -8.27589676194e-18, & + 2.93303376050e-17, & + -2.54830683507e-17, & + -2.12221255740e-17, & + -2.27426406736e-17, & + 3.09980421472e-16, & + -1.52047780790e-15, & + 3.17051204213e-15, & + -2.41108661530e-15, & + 2.90659047630e-16, & + -4.29695438112e-15, & + 2.34953170831e-14, & + -5.67417541656e-14, & + 5.22996057810e-14, & + -1.36960263650e-15, & + 2.10298393052e-14, & + -1.20140669737e-13, & + 3.05027428193e-13, & + -2.98733319706e-13, & + 1.48854723344e-15, & + -2.29106761193e-14, & + 1.30599783422e-13, & + -3.25895672584e-13, & + 2.94839043571e-13 & + /) + get_KAPPA_WABA_DIFF_1 = (cWABA73(0)*E**(4) + cWABA73(1)*E**(3) + cWABA73(2)*E**(2) + cWABA73(3)*E + cWABA73(4))*B**(5) + (cWABA73(5)*E**(4) + cWABA73(6)*E**(3) + cWABA73(7)*E**(2) + cWABA73(8)*E + cWABA73(9))*B**(4) + (cWABA73(10)*E**(4) + cWABA73(11)*E**(3) + cWABA73(12)*E**(2) + cWABA73(13)*E + cWABA73(14))*B**(3) + (cWABA73(15)*E**(4) + cWABA73(16)*E**(3) + cWABA73(17)*E**(2) + cWABA73(18)*E + cWABA73(19))*B**(2) + (cWABA73(20)*E**(4) + cWABA73(21)*E**(3) + cWABA73(22)*E**(2) + cWABA73(23)*E + cWABA73(24))*B + (cWABA73(25)*E**(4) + cWABA73(26)*E**(3) + cWABA73(27)*E**(2) + cWABA73(28)*E + cWABA73(29)) + +end function get_KAPPA_WABA_DIFF_1 + +double precision function get_KAPPA_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA74 = (/ & + 6.70131344321e-23, & + -1.04929424248e-21, & + 6.05725041781e-21, & + -1.53425091483e-20, & + 1.44856814486e-20, & + -1.58066418061e-20, & + 2.52595609767e-19, & + -1.48632860136e-18, & + 3.82956191438e-18, & + -3.66536958033e-18, & + 1.34435892926e-18, & + -2.19248787004e-17, & + 1.31407287142e-16, & + -3.44088663404e-16, & + 3.33721127802e-16, & + -4.88741718424e-17, & + 8.18175188324e-16, & + -5.01605877109e-15, & + 1.34010867712e-14, & + -1.32412212942e-14, & + 6.90818324768e-16, & + -1.21204158580e-14, & + 7.71045132936e-14, & + -2.12644911535e-13, & + 2.17511365387e-13, & + -2.73602373341e-15, & + 5.38649399260e-14, & + -3.68524898619e-13, & + 1.06795554825e-12, & + -1.16273201995e-12 & + /) + get_KAPPA_WABA_DIFF_2 = (cWABA74(0)*E**(4) + cWABA74(1)*E**(3) + cWABA74(2)*E**(2) + cWABA74(3)*E + cWABA74(4))*B**(5) + (cWABA74(5)*E**(4) + cWABA74(6)*E**(3) + cWABA74(7)*E**(2) + cWABA74(8)*E + cWABA74(9))*B**(4) + (cWABA74(10)*E**(4) + cWABA74(11)*E**(3) + cWABA74(12)*E**(2) + cWABA74(13)*E + cWABA74(14))*B**(3) + (cWABA74(15)*E**(4) + cWABA74(16)*E**(3) + cWABA74(17)*E**(2) + cWABA74(18)*E + cWABA74(19))*B**(2) + (cWABA74(20)*E**(4) + cWABA74(21)*E**(3) + cWABA74(22)*E**(2) + cWABA74(23)*E + cWABA74(24))*B + (cWABA74(25)*E**(4) + cWABA74(26)*E**(3) + cWABA74(27)*E**(2) + cWABA74(28)*E + cWABA74(29)) + +end function get_KAPPA_WABA_DIFF_2 + +double precision function get_ABS1_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA75 = (/ & + -4.00610977727e-06, & + 6.67686543193e-05, & + -4.17001847616e-04, & + 1.17205451093e-03, & + -8.57349671914e-04, & + 1.63849593601e-07, & + -7.78644950522e-07, & + -9.72566185704e-06, & + 1.09986213525e-04, & + -1.03080266631e-03 & + /) + get_ABS1_WABA_DIFF_0 = (cWABA75(0)*E**(4) + cWABA75(1)*E**(3) + cWABA75(2)*E**(2) + cWABA75(3)*E + cWABA75(4))*B + (cWABA75(5)*E**(4) + cWABA75(6)*E**(3) + cWABA75(7)*E**(2) + cWABA75(8)*E + cWABA75(9)) + +end function get_ABS1_WABA_DIFF_0 + +double precision function get_ABS1_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA76 = (/ & + -1.86664936475e-10, & + 3.17086342394e-09, & + -1.96186412560e-08, & + 5.13306358695e-08, & + -4.50355758248e-08, & + 1.09447587599e-08, & + -1.85281911903e-07, & + 1.15865238502e-06, & + -3.14511387476e-06, & + 3.04275855082e-06, & + -2.01596621269e-07, & + 3.42735386362e-06, & + -2.18244389130e-05, & + 6.20852601507e-05, & + -6.77854278247e-05, & + 1.24300299538e-06, & + -2.13215175432e-05, & + 1.39090194631e-04, & + -4.21796555248e-04, & + 5.68968125873e-04, & + -1.62397079251e-06, & + 2.70760114032e-05, & + -1.70164330173e-04, & + 5.14235142993e-04, & + -1.40387853985e-03 & + /) + get_ABS1_WABA_DIFF_1 = (cWABA76(0)*E**(4) + cWABA76(1)*E**(3) + cWABA76(2)*E**(2) + cWABA76(3)*E + cWABA76(4))*B**(4) + (cWABA76(5)*E**(4) + cWABA76(6)*E**(3) + cWABA76(7)*E**(2) + cWABA76(8)*E + cWABA76(9))*B**(3) + (cWABA76(10)*E**(4) + cWABA76(11)*E**(3) + cWABA76(12)*E**(2) + cWABA76(13)*E + cWABA76(14))*B**(2) + (cWABA76(15)*E**(4) + cWABA76(16)*E**(3) + cWABA76(17)*E**(2) + cWABA76(18)*E + cWABA76(19))*B + (cWABA76(20)*E**(4) + cWABA76(21)*E**(3) + cWABA76(22)*E**(2) + cWABA76(23)*E + cWABA76(24)) + +end function get_ABS1_WABA_DIFF_1 + +double precision function get_ABS1_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA77 = (/ & + -1.79846951043e-12, & + 3.61202132573e-11, & + -2.51987820726e-10, & + 7.12756777717e-10, & + -7.24508669733e-10, & + 5.02664223322e-10, & + -9.46233593747e-09, & + 6.35559594656e-08, & + -1.76733273651e-07, & + 1.77919050669e-07, & + -4.58774419954e-08, & + 8.33597554172e-07, & + -5.47984226781e-06, & + 1.50972290619e-05, & + -1.51362060701e-05, & + 1.65032359397e-06, & + -2.93672386931e-05, & + 1.90687030735e-04, & + -5.22784909913e-04, & + 5.24029163684e-04, & + -1.94020239451e-05, & + 3.41206742038e-04, & + -2.20049254741e-03, & + 6.00184746873e-03, & + -6.04699183018e-03 & + /) + get_ABS1_WABA_DIFF_2 = (cWABA77(0)*E**(4) + cWABA77(1)*E**(3) + cWABA77(2)*E**(2) + cWABA77(3)*E + cWABA77(4))*B**(4) + (cWABA77(5)*E**(4) + cWABA77(6)*E**(3) + cWABA77(7)*E**(2) + cWABA77(8)*E + cWABA77(9))*B**(3) + (cWABA77(10)*E**(4) + cWABA77(11)*E**(3) + cWABA77(12)*E**(2) + cWABA77(13)*E + cWABA77(14))*B**(2) + (cWABA77(15)*E**(4) + cWABA77(16)*E**(3) + cWABA77(17)*E**(2) + cWABA77(18)*E + cWABA77(19))*B + (cWABA77(20)*E**(4) + cWABA77(21)*E**(3) + cWABA77(22)*E**(2) + cWABA77(23)*E + cWABA77(24)) + +end function get_ABS1_WABA_DIFF_2 + +double precision function get_ABS2_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA78 = (/ & + 1.36579565194e-04, & + -2.07042252933e-03, & + 1.09995331804e-02, & + -2.08630353824e-02, & + 3.44733091716e-02, & + -6.01057761277e-06, & + 9.41538495988e-05, & + -5.62758459184e-04, & + 1.24223477593e-03, & + -1.60462593983e-02 & + /) + get_ABS2_WABA_DIFF_0 = (cWABA78(0)*E**(4) + cWABA78(1)*E**(3) + cWABA78(2)*E**(2) + cWABA78(3)*E + cWABA78(4))*B + (cWABA78(5)*E**(4) + cWABA78(6)*E**(3) + cWABA78(7)*E**(2) + cWABA78(8)*E + cWABA78(9)) + +end function get_ABS2_WABA_DIFF_0 + +double precision function get_ABS2_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA79 = (/ & + -6.61603526101e-09, & + 9.63037915028e-08, & + -4.85573942451e-07, & + 8.94025043226e-07, & + -1.90137998220e-07, & + 2.72739317689e-07, & + -4.07481017766e-06, & + 2.13943740412e-05, & + -4.24959797806e-05, & + 1.33717428158e-05, & + -3.54845946671e-06, & + 5.52355116781e-05, & + -3.09838838526e-04, & + 7.01164184612e-04, & + -3.83631459106e-04, & + 1.41546492046e-05, & + -2.34911579862e-04, & + 1.46058786914e-03, & + -4.03525683253e-03, & + 4.36945242632e-03, & + 4.61218619660e-06, & + -6.54437853744e-05, & + 3.23065652497e-04, & + -9.30697757594e-04, & + -1.40555170427e-02 & + /) + get_ABS2_WABA_DIFF_1 = (cWABA79(0)*E**(4) + cWABA79(1)*E**(3) + cWABA79(2)*E**(2) + cWABA79(3)*E + cWABA79(4))*B**(4) + (cWABA79(5)*E**(4) + cWABA79(6)*E**(3) + cWABA79(7)*E**(2) + cWABA79(8)*E + cWABA79(9))*B**(3) + (cWABA79(10)*E**(4) + cWABA79(11)*E**(3) + cWABA79(12)*E**(2) + cWABA79(13)*E + cWABA79(14))*B**(2) + (cWABA79(15)*E**(4) + cWABA79(16)*E**(3) + cWABA79(17)*E**(2) + cWABA79(18)*E + cWABA79(19))*B + (cWABA79(20)*E**(4) + cWABA79(21)*E**(3) + cWABA79(22)*E**(2) + cWABA79(23)*E + cWABA79(24)) + +end function get_ABS2_WABA_DIFF_1 + +double precision function get_ABS2_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA80 = (/ & + 1.31521271900e-12, & + -2.21522207220e-11, & + 1.25115960606e-10, & + -2.61747120687e-10, & + 1.87872804924e-10, & + -3.56141396037e-10, & + 5.97203014752e-09, & + -3.39752791936e-08, & + 7.27579241193e-08, & + -5.44191157491e-08, & + 3.76209067631e-08, & + -6.28910266089e-07, & + 3.60526443414e-06, & + -7.87689071825e-06, & + 6.07564604252e-06, & + -1.92454726147e-06, & + 3.21680742882e-05, & + -1.86344632755e-04, & + 4.15569024200e-04, & + -3.29177481709e-04, & + 4.70980877465e-05, & + -7.89772573562e-04, & + 4.64317600932e-03, & + -1.06020441836e-02, & + 8.61850726575e-03, & + -4.35763219683e-04, & + 7.33793501685e-03, & + -4.38584676621e-02, & + 1.02174506567e-01, & + -8.71226490037e-02 & + /) + get_ABS2_WABA_DIFF_2 = (cWABA80(0)*E**(4) + cWABA80(1)*E**(3) + cWABA80(2)*E**(2) + cWABA80(3)*E + cWABA80(4))*B**(5) + (cWABA80(5)*E**(4) + cWABA80(6)*E**(3) + cWABA80(7)*E**(2) + cWABA80(8)*E + cWABA80(9))*B**(4) + (cWABA80(10)*E**(4) + cWABA80(11)*E**(3) + cWABA80(12)*E**(2) + cWABA80(13)*E + cWABA80(14))*B**(3) + (cWABA80(15)*E**(4) + cWABA80(16)*E**(3) + cWABA80(17)*E**(2) + cWABA80(18)*E + cWABA80(19))*B**(2) + (cWABA80(20)*E**(4) + cWABA80(21)*E**(3) + cWABA80(22)*E**(2) + cWABA80(23)*E + cWABA80(24))*B + (cWABA80(25)*E**(4) + cWABA80(26)*E**(3) + cWABA80(27)*E**(2) + cWABA80(28)*E + cWABA80(29)) + +end function get_ABS2_WABA_DIFF_2 + +double precision function get_XE2_MAC_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA81 = (/ & + -1.18369442232e-05, & + 2.47739006403e-04, & + -2.52885115376e-03, & + 1.67631873036e-02, & + -8.81957301163e-04, & + 3.64183620983e-24, & + -6.60393765981e-23, & + 4.80006894380e-22, & + -2.27967018680e-21, & + 1.25059739233e-20 & + /) + get_XE2_MAC_WABA_DIFF_0 = (cWABA81(0)*E**(4) + cWABA81(1)*E**(3) + cWABA81(2)*E**(2) + cWABA81(3)*E + cWABA81(4))*B + (cWABA81(5)*E**(4) + cWABA81(6)*E**(3) + cWABA81(7)*E**(2) + cWABA81(8)*E + cWABA81(9)) + +end function get_XE2_MAC_WABA_DIFF_0 + +double precision function get_XE2_MAC_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA82 = (/ & + 1.29691954096e-11, & + -2.08580051351e-10, & + 1.25506377440e-09, & + -3.37989873460e-09, & + 3.51181606935e-09, & + -6.14816001427e-10, & + 9.84346540634e-09, & + -5.88720434003e-08, & + 1.57223871704e-07, & + -1.60302263204e-07, & + 9.96713425363e-09, & + -1.57622921722e-07, & + 9.25277367377e-07, & + -2.39768285114e-06, & + 2.29019186981e-06, & + -6.28958613871e-08, & + 9.64839943598e-07, & + -5.36418217987e-06, & + 1.24259873409e-05, & + -8.47817249540e-06, & + 1.16445610195e-07, & + -1.65826373362e-06, & + 7.57387952982e-06, & + -6.51971649496e-06, & + -2.94354647288e-05, & + 9.75999702638e-08, & + -1.79364906143e-06, & + 1.43991562264e-05, & + -5.95910007281e-05, & + 6.34659968253e-06 & + /) + get_XE2_MAC_WABA_DIFF_1 = (cWABA82(0)*E**(4) + cWABA82(1)*E**(3) + cWABA82(2)*E**(2) + cWABA82(3)*E + cWABA82(4))*B**(5) + (cWABA82(5)*E**(4) + cWABA82(6)*E**(3) + cWABA82(7)*E**(2) + cWABA82(8)*E + cWABA82(9))*B**(4) + (cWABA82(10)*E**(4) + cWABA82(11)*E**(3) + cWABA82(12)*E**(2) + cWABA82(13)*E + cWABA82(14))*B**(3) + (cWABA82(15)*E**(4) + cWABA82(16)*E**(3) + cWABA82(17)*E**(2) + cWABA82(18)*E + cWABA82(19))*B**(2) + (cWABA82(20)*E**(4) + cWABA82(21)*E**(3) + cWABA82(22)*E**(2) + cWABA82(23)*E + cWABA82(24))*B + (cWABA82(25)*E**(4) + cWABA82(26)*E**(3) + cWABA82(27)*E**(2) + cWABA82(28)*E + cWABA82(29)) + +end function get_XE2_MAC_WABA_DIFF_1 + +double precision function get_XE2_MAC_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:19) :: cWABA83 = (/ & + 3.76662707537e-11, & + -5.88680876100e-10, & + 3.17336113641e-09, & + -6.57986665046e-09, & + 4.49162085005e-09, & + -5.45706191998e-09, & + 8.82480516825e-08, & + -4.99567559828e-07, & + 1.11523394779e-06, & + -8.41635208276e-07, & + 2.26981647575e-07, & + -3.78548782307e-06, & + 2.23769212885e-05, & + -5.32496825582e-05, & + 4.31194778273e-05, & + -2.62343515819e-06, & + 4.44193643066e-05, & + -2.66034981971e-04, & + 6.45273864690e-04, & + -6.58947571732e-04 & + /) + get_XE2_MAC_WABA_DIFF_2 = (cWABA83(0)*E**(4) + cWABA83(1)*E**(3) + cWABA83(2)*E**(2) + cWABA83(3)*E + cWABA83(4))*B**(3) + (cWABA83(5)*E**(4) + cWABA83(6)*E**(3) + cWABA83(7)*E**(2) + cWABA83(8)*E + cWABA83(9))*B**(2) + (cWABA83(10)*E**(4) + cWABA83(11)*E**(3) + cWABA83(12)*E**(2) + cWABA83(13)*E + cWABA83(14))*B + (cWABA83(15)*E**(4) + cWABA83(16)*E**(3) + cWABA83(17)*E**(2) + cWABA83(18)*E + cWABA83(19)) + +end function get_XE2_MAC_WABA_DIFF_2 + +double precision function get_K_INF_NO_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA84 = (/ & + -5.46200228817e-05, & + 9.10341970811e-04, & + -6.11255819275e-03, & + 2.33653900041e-02, & + -7.39514427762e-02, & + -2.18548029379e-05, & + 4.88080456649e-04, & + -3.17527802175e-03, & + -5.30662441461e-03, & + 2.17771400096e-01 & + /) + get_K_INF_NO_XE_WABA_DIFF_0 = (cWABA84(0)*E**(4) + cWABA84(1)*E**(3) + cWABA84(2)*E**(2) + cWABA84(3)*E + cWABA84(4))*B + (cWABA84(5)*E**(4) + cWABA84(6)*E**(3) + cWABA84(7)*E**(2) + cWABA84(8)*E + cWABA84(9)) + +end function get_K_INF_NO_XE_WABA_DIFF_0 + +double precision function get_K_INF_NO_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA85 = (/ & + 6.59689399166e-09, & + -1.12523044624e-07, & + 7.15850018212e-07, & + -2.00369772261e-06, & + 2.02016474904e-06, & + -3.32804358824e-07, & + 5.73387685355e-06, & + -3.69813264377e-05, & + 1.05621229351e-04, & + -1.10051394236e-04, & + 5.39854344199e-06, & + -9.38906462653e-05, & + 6.13281737579e-04, & + -1.78496874249e-03, & + 1.91701335935e-03, & + -2.74916417896e-05, & + 4.76760576958e-04, & + -3.08549483787e-03, & + 8.78013267547e-03, & + -8.75825779798e-03, & + 2.01201735707e-06, & + 5.57237315105e-05, & + -1.59565842276e-03, & + 1.31190265676e-02, & + -4.49716684969e-02, & + -4.33877958654e-05, & + 8.59057481470e-04, & + -5.62019564700e-03, & + 2.08823413767e-03, & + 2.09891371747e-01 & + /) + get_K_INF_NO_XE_WABA_DIFF_1 = (cWABA85(0)*E**(4) + cWABA85(1)*E**(3) + cWABA85(2)*E**(2) + cWABA85(3)*E + cWABA85(4))*B**(5) + (cWABA85(5)*E**(4) + cWABA85(6)*E**(3) + cWABA85(7)*E**(2) + cWABA85(8)*E + cWABA85(9))*B**(4) + (cWABA85(10)*E**(4) + cWABA85(11)*E**(3) + cWABA85(12)*E**(2) + cWABA85(13)*E + cWABA85(14))*B**(3) + (cWABA85(15)*E**(4) + cWABA85(16)*E**(3) + cWABA85(17)*E**(2) + cWABA85(18)*E + cWABA85(19))*B**(2) + (cWABA85(20)*E**(4) + cWABA85(21)*E**(3) + cWABA85(22)*E**(2) + cWABA85(23)*E + cWABA85(24))*B + (cWABA85(25)*E**(4) + cWABA85(26)*E**(3) + cWABA85(27)*E**(2) + cWABA85(28)*E + cWABA85(29)) + +end function get_K_INF_NO_XE_WABA_DIFF_1 + +double precision function get_K_INF_NO_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA86 = (/ & + -1.10847164032e-11, & + 1.80807514568e-10, & + -9.75344778264e-10, & + 1.83556695781e-09, & + -1.04730424066e-09, & + 2.86103573170e-09, & + -4.74412632792e-08, & + 2.63036214042e-07, & + -5.22687285239e-07, & + 3.31239615524e-07, & + -2.80644035732e-07, & + 4.74163744275e-06, & + -2.70307082580e-05, & + 5.62848957480e-05, & + -3.86034488302e-05, & + 1.28706000178e-05, & + -2.22060226414e-04, & + 1.30111971700e-03, & + -2.81202007692e-03, & + 2.04235728725e-03, & + -2.73023568014e-04, & + 4.82062606655e-03, & + -2.89998687042e-02, & + 6.41938237603e-02, & + -4.82538474175e-02, & + 2.16702974783e-03, & + -3.93302124150e-02, & + 2.43496100557e-01, & + -5.43567225477e-01, & + 4.03742621656e-01 & + /) + get_K_INF_NO_XE_WABA_DIFF_2 = (cWABA86(0)*E**(4) + cWABA86(1)*E**(3) + cWABA86(2)*E**(2) + cWABA86(3)*E + cWABA86(4))*B**(5) + (cWABA86(5)*E**(4) + cWABA86(6)*E**(3) + cWABA86(7)*E**(2) + cWABA86(8)*E + cWABA86(9))*B**(4) + (cWABA86(10)*E**(4) + cWABA86(11)*E**(3) + cWABA86(12)*E**(2) + cWABA86(13)*E + cWABA86(14))*B**(3) + (cWABA86(15)*E**(4) + cWABA86(16)*E**(3) + cWABA86(17)*E**(2) + cWABA86(18)*E + cWABA86(19))*B**(2) + (cWABA86(20)*E**(4) + cWABA86(21)*E**(3) + cWABA86(22)*E**(2) + cWABA86(23)*E + cWABA86(24))*B + (cWABA86(25)*E**(4) + cWABA86(26)*E**(3) + cWABA86(27)*E**(2) + cWABA86(28)*E + cWABA86(29)) + +end function get_K_INF_NO_XE_WABA_DIFF_2 + +double precision function get_XE2_MIC_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA87 = (/ & + 3.64306448856e+02, & + -7.14009166629e+03, & + 5.53258951082e+04, & + -2.05348007252e+05, & + 8.33846310891e+04, & + -1.82108163395e+02, & + 2.98171825765e+03, & + -1.79995771292e+04, & + 4.51636051118e+04, & + -1.11390639460e+04 & + /) + get_XE2_MIC_WABA_DIFF_0 = (cWABA87(0)*E**(4) + cWABA87(1)*E**(3) + cWABA87(2)*E**(2) + cWABA87(3)*E + cWABA87(4))*B + (cWABA87(5)*E**(4) + cWABA87(6)*E**(3) + cWABA87(7)*E**(2) + cWABA87(8)*E + cWABA87(9)) + +end function get_XE2_MIC_WABA_DIFF_0 + +double precision function get_XE2_MIC_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA88 = (/ & + -3.81597091687e-02, & + 6.59974999648e-01, & + -4.29665091761e+00, & + 1.25482652302e+01, & + -1.39970522981e+01, & + 1.34256189377e+00, & + -2.32271664629e+01, & + 1.52035580193e+02, & + -4.50345169780e+02, & + 5.18286797815e+02, & + -1.42843877977e+01, & + 2.45007648567e+02, & + -1.60037447269e+03, & + 4.79170433666e+03, & + -5.74768285065e+03, & + 5.96355702851e+01, & + -9.77752513558e+02, & + 6.06746399536e+03, & + -1.71665343919e+04, & + 1.97756528869e+04, & + -1.04771839602e+02, & + 1.65526818949e+03, & + -9.56733877368e+03, & + 2.16483512184e+04, & + 1.34161221429e+04 & + /) + get_XE2_MIC_WABA_DIFF_1 = (cWABA88(0)*E**(4) + cWABA88(1)*E**(3) + cWABA88(2)*E**(2) + cWABA88(3)*E + cWABA88(4))*B**(4) + (cWABA88(5)*E**(4) + cWABA88(6)*E**(3) + cWABA88(7)*E**(2) + cWABA88(8)*E + cWABA88(9))*B**(3) + (cWABA88(10)*E**(4) + cWABA88(11)*E**(3) + cWABA88(12)*E**(2) + cWABA88(13)*E + cWABA88(14))*B**(2) + (cWABA88(15)*E**(4) + cWABA88(16)*E**(3) + cWABA88(17)*E**(2) + cWABA88(18)*E + cWABA88(19))*B + (cWABA88(20)*E**(4) + cWABA88(21)*E**(3) + cWABA88(22)*E**(2) + cWABA88(23)*E + cWABA88(24)) + +end function get_XE2_MIC_WABA_DIFF_1 + +double precision function get_XE2_MIC_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA89 = (/ & + 2.61586951017e-04, & + -4.18890923825e-03, & + 2.43668060301e-02, & + -6.06382661314e-02, & + 5.72450634414e-02, & + -5.72468030749e-02, & + 9.17637620405e-01, & + -5.34578048880e+00, & + 1.32927392196e+01, & + -1.24378860938e+01, & + 4.62598106257e+00, & + -7.43631266466e+01, & + 4.35412092545e+02, & + -1.08787673192e+03, & + 1.01468333511e+03, & + -1.56072044208e+02, & + 2.51728369895e+03, & + -1.48439187672e+04, & + 3.74286291286e+04, & + -3.50134389898e+04, & + 1.76835322608e+03, & + -2.85577034389e+04, & + 1.69077839999e+05, & + -4.28775662944e+05, & + 4.19588834450e+05 & + /) + get_XE2_MIC_WABA_DIFF_2 = (cWABA89(0)*E**(4) + cWABA89(1)*E**(3) + cWABA89(2)*E**(2) + cWABA89(3)*E + cWABA89(4))*B**(4) + (cWABA89(5)*E**(4) + cWABA89(6)*E**(3) + cWABA89(7)*E**(2) + cWABA89(8)*E + cWABA89(9))*B**(3) + (cWABA89(10)*E**(4) + cWABA89(11)*E**(3) + cWABA89(12)*E**(2) + cWABA89(13)*E + cWABA89(14))*B**(2) + (cWABA89(15)*E**(4) + cWABA89(16)*E**(3) + cWABA89(17)*E**(2) + cWABA89(18)*E + cWABA89(19))*B + (cWABA89(20)*E**(4) + cWABA89(21)*E**(3) + cWABA89(22)*E**(2) + cWABA89(23)*E + cWABA89(24)) + +end function get_XE2_MIC_WABA_DIFF_2 + +double precision function get_SM2_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA90 = (/ & + 5.12379243102e-04, & + -1.79695272401e+01, & + 3.56901056617e+02, & + -2.43410493496e+03, & + -8.25150543571e+02, & + 3.82427287478e+00, & + -6.16982723450e+01, & + 3.70910813268e+02, & + -1.03628387257e+03, & + 1.87672056641e+03 & + /) + get_SM2_XE_WABA_DIFF_0 = (cWABA90(0)*E**(4) + cWABA90(1)*E**(3) + cWABA90(2)*E**(2) + cWABA90(3)*E + cWABA90(4))*B + (cWABA90(5)*E**(4) + cWABA90(6)*E**(3) + cWABA90(7)*E**(2) + cWABA90(8)*E + cWABA90(9)) + +end function get_SM2_XE_WABA_DIFF_0 + +double precision function get_SM2_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA91 = (/ & + 3.01264901024e-04, & + -4.32347765545e-03, & + 2.05453728941e-02, & + -2.82227209947e-02, & + -2.79412672914e-02, & + -1.58765559725e-02, & + 2.36010615913e-01, & + -1.20240994956e+00, & + 2.07551922275e+00, & + 4.94792434717e-01, & + 2.73950944919e-01, & + -4.23370546767e+00, & + 2.31457611482e+01, & + -4.78284617154e+01, & + 1.14367378441e+01, & + -1.61200079965e+00, & + 2.60256915705e+01, & + -1.53538039010e+02, & + 3.75193075083e+02, & + -2.44699929187e+02, & + 1.33086508777e+00, & + -2.14867118718e+01, & + 1.30661129782e+02, & + -3.96786477392e+02, & + 1.20709525373e+03 & + /) + get_SM2_XE_WABA_DIFF_1 = (cWABA91(0)*E**(4) + cWABA91(1)*E**(3) + cWABA91(2)*E**(2) + cWABA91(3)*E + cWABA91(4))*B**(4) + (cWABA91(5)*E**(4) + cWABA91(6)*E**(3) + cWABA91(7)*E**(2) + cWABA91(8)*E + cWABA91(9))*B**(3) + (cWABA91(10)*E**(4) + cWABA91(11)*E**(3) + cWABA91(12)*E**(2) + cWABA91(13)*E + cWABA91(14))*B**(2) + (cWABA91(15)*E**(4) + cWABA91(16)*E**(3) + cWABA91(17)*E**(2) + cWABA91(18)*E + cWABA91(19))*B + (cWABA91(20)*E**(4) + cWABA91(21)*E**(3) + cWABA91(22)*E**(2) + cWABA91(23)*E + cWABA91(24)) + +end function get_SM2_XE_WABA_DIFF_1 + +double precision function get_SM2_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:24) :: cWABA92 = (/ & + -4.86867344926e-07, & + 5.19721814933e-06, & + -2.60349801082e-05, & + 9.66145593972e-05, & + -9.74927937340e-05, & + 9.95040568285e-05, & + -1.07295017627e-03, & + 5.62525448425e-03, & + -2.24637802355e-02, & + 2.59958652015e-02, & + -3.65772139775e-03, & + 1.42936075567e-02, & + 5.52510183080e-03, & + 5.52240406161e-01, & + -9.83472314576e-01, & + -3.67797100364e-02, & + 2.27812503453e+00, & + -1.88926329161e+01, & + 3.76861341416e+01, & + -2.38445869088e+01, & + 1.21491236063e+00, & + -3.94155246784e+01, & + 3.07249580170e+02, & + -7.12463121335e+02, & + 1.02904389439e+03 & + /) + get_SM2_XE_WABA_DIFF_2 = (cWABA92(0)*E**(4) + cWABA92(1)*E**(3) + cWABA92(2)*E**(2) + cWABA92(3)*E + cWABA92(4))*B**(4) + (cWABA92(5)*E**(4) + cWABA92(6)*E**(3) + cWABA92(7)*E**(2) + cWABA92(8)*E + cWABA92(9))*B**(3) + (cWABA92(10)*E**(4) + cWABA92(11)*E**(3) + cWABA92(12)*E**(2) + cWABA92(13)*E + cWABA92(14))*B**(2) + (cWABA92(15)*E**(4) + cWABA92(16)*E**(3) + cWABA92(17)*E**(2) + cWABA92(18)*E + cWABA92(19))*B + (cWABA92(20)*E**(4) + cWABA92(21)*E**(3) + cWABA92(22)*E**(2) + cWABA92(23)*E + cWABA92(24)) + +end function get_SM2_XE_WABA_DIFF_2 + +double precision function get_K_INF_XE_WABA_DIFF_0(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:9) :: cWABA93 = (/ & + 3.09594920067e-04, & + -6.76247350709e-03, & + 5.87209561442e-02, & + -2.21750880948e-01, & + -9.54403513778e-02, & + -2.18548029379e-05, & + 4.88080456649e-04, & + -3.17527802175e-03, & + -5.30662441461e-03, & + 2.17771400096e-01 & + /) + get_K_INF_XE_WABA_DIFF_0 = (cWABA93(0)*E**(4) + cWABA93(1)*E**(3) + cWABA93(2)*E**(2) + cWABA93(3)*E + cWABA93(4))*B + (cWABA93(5)*E**(4) + cWABA93(6)*E**(3) + cWABA93(7)*E**(2) + cWABA93(8)*E + cWABA93(9)) + +end function get_K_INF_XE_WABA_DIFF_0 + +double precision function get_K_INF_XE_WABA_DIFF_1(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA94 = (/ & + 4.85740088945e-09, & + -8.37027317404e-08, & + 5.38469847739e-07, & + -1.52432546266e-06, & + 1.54502724955e-06, & + -2.47181819314e-07, & + 4.30992837045e-06, & + -2.81740728967e-05, & + 8.16526622855e-05, & + -8.60502436046e-05, & + 3.92775278286e-06, & + -6.93723983807e-05, & + 4.61106938864e-04, & + -1.36846179891e-03, & + 1.49584836988e-03, & + -1.70156903188e-05, & + 3.02820923171e-04, & + -2.01151779753e-03, & + 5.86231906348e-03, & + -5.84957937021e-03, & + -2.76281595598e-05, & + 5.39374778656e-04, & + -4.49418755165e-03, & + 2.04698240007e-02, & + -5.06072979334e-02, & + -4.60734492927e-06, & + 1.89938499002e-04, & + -1.28383228299e-03, & + -9.59148615887e-03, & + 2.10421889767e-01 & + /) + get_K_INF_XE_WABA_DIFF_1 = (cWABA94(0)*E**(4) + cWABA94(1)*E**(3) + cWABA94(2)*E**(2) + cWABA94(3)*E + cWABA94(4))*B**(5) + (cWABA94(5)*E**(4) + cWABA94(6)*E**(3) + cWABA94(7)*E**(2) + cWABA94(8)*E + cWABA94(9))*B**(4) + (cWABA94(10)*E**(4) + cWABA94(11)*E**(3) + cWABA94(12)*E**(2) + cWABA94(13)*E + cWABA94(14))*B**(3) + (cWABA94(15)*E**(4) + cWABA94(16)*E**(3) + cWABA94(17)*E**(2) + cWABA94(18)*E + cWABA94(19))*B**(2) + (cWABA94(20)*E**(4) + cWABA94(21)*E**(3) + cWABA94(22)*E**(2) + cWABA94(23)*E + cWABA94(24))*B + (cWABA94(25)*E**(4) + cWABA94(26)*E**(3) + cWABA94(27)*E**(2) + cWABA94(28)*E + cWABA94(29)) + +end function get_K_INF_XE_WABA_DIFF_1 + +double precision function get_K_INF_XE_WABA_DIFF_2(B, E) + double precision, intent(in) :: B, E + double precision, dimension(0:29) :: cWABA95 = (/ & + -5.81189226249e-12, & + 9.58045477405e-11, & + -4.72353546468e-10, & + 5.48732567895e-10, & + 1.75691388114e-10, & + 1.65338209323e-09, & + -2.79681406175e-08, & + 1.47886346218e-07, & + -2.29030828552e-07, & + 5.35476504821e-08, & + -1.76031025653e-07, & + 3.05234207819e-06, & + -1.70376729290e-05, & + 3.08745039902e-05, & + -1.46945092980e-05, & + 8.66103569321e-06, & + -1.53893802589e-04, & + 8.97310809085e-04, & + -1.78862706305e-03, & + 1.08496563735e-03, & + -1.95983157096e-04, & + 3.56729459168e-03, & + -2.15570790652e-02, & + 4.54364354987e-02, & + -3.08580804071e-02, & + 1.66065363019e-03, & + -3.10141083197e-02, & + 1.93828064316e-01, & + -4.19782851755e-01, & + 2.91294892580e-01 & + /) + get_K_INF_XE_WABA_DIFF_2 = (cWABA95(0)*E**(4) + cWABA95(1)*E**(3) + cWABA95(2)*E**(2) + cWABA95(3)*E + cWABA95(4))*B**(5) + (cWABA95(5)*E**(4) + cWABA95(6)*E**(3) + cWABA95(7)*E**(2) + cWABA95(8)*E + cWABA95(9))*B**(4) + (cWABA95(10)*E**(4) + cWABA95(11)*E**(3) + cWABA95(12)*E**(2) + cWABA95(13)*E + cWABA95(14))*B**(3) + (cWABA95(15)*E**(4) + cWABA95(16)*E**(3) + cWABA95(17)*E**(2) + cWABA95(18)*E + cWABA95(19))*B**(2) + (cWABA95(20)*E**(4) + cWABA95(21)*E**(3) + cWABA95(22)*E**(2) + cWABA95(23)*E + cWABA95(24))*B + (cWABA95(25)*E**(4) + cWABA95(26)*E**(3) + cWABA95(27)*E**(2) + cWABA95(28)*E + cWABA95(29)) + +end function get_K_INF_XE_WABA_DIFF_2 + + +end module nuclear_data_WABA diff --git a/src/solver.f90 b/src/solver.f90 index 9920c82..8b941f0 100644 --- a/src/solver.f90 +++ b/src/solver.f90 @@ -2,46 +2,89 @@ ! MODULE: solve ! !> @author Jeremy Roberts -!> -!> @brief Solver -!> +!> @brief Provides an implementation of the FLARE model with burnup !==============================================================================! module solver use coefficients - use geometry, only: pattern, number_bundles, number_neighbors, neighbors + use geometry, only: pattern, number_assemblies, number_neighbors, neighbors use state + use material_data, only: compute_flare_parameters implicit none + !> Maximum number of inners + integer :: max_inners = 10 + !> Maximum number of outers + integer :: max_outers = 100 + !> Eigenvalue tolerance + double precision :: ktol = 0.0001_8 + !> Fission source tolerance + double precision :: stol = 0.001_8 + !> Flag to print solver diagnostics integer :: verbose = 0 + !> Reactor power (thermal) in GW + double precision :: reactor_power = 0.0_8 + !> Reactor height in m + double precision :: reactor_height = 1.0_8 + !> Extrapolation distance in m + double precision :: extra_p = 0.1_8 + !> Reactor inlet moderator temperature in C + double precision :: Tin = 270.0_8 + !> Reactor coolant mass flow * Cp + double precision :: mdCp = 0.1_8 + !> Resistance fuel-clad gap + double precision :: Res_g = 0.01_8 + !> Resistance clad + double precision :: Res_c = 0.01_8 + !> Resistance coolant + double precision :: Res_h = 0.01_8 + !> Resistance fuel-clad gap + double precision :: Res_f = 0.01_8 + !> Number of pins in assembly + double precision :: number_pins = 289_8 + + !> Assembly HM mass (MTU), from WH PWR book for 4-loop plant with "OFA" fuel + double precision :: assembly_mass = 0.483 !0.423_8 + !> Burnup option (0 = user steps, 1 = automated cycle length calculation) + integer :: burnup_option = 0 + !> Number of burnup steps + integer :: number_burnup_steps = 0 + !> Burnup steps (full power days) + double precision, allocatable, dimension(:) :: burnup_steps + + double precision, private :: average_assembly_power + double precision, private :: power_per_mass + double precision, private :: mappf_cycle + contains - !============================================================================ + !============================================================================! !> @brief Initialize. - !============================================================================ + !============================================================================! subroutine initialize_solver() ! nothing for now ! make sure to deallocate before allocating end subroutine initialize_solver - !============================================================================ - !> @brief Solve the problem. + !============================================================================! + !> @brief Solve the eigenvalue problem for a single configuration. !> !> The solution approach is pretty simple, using a series of Jacobi inner !> iterations followed by outer k-updates. The bounds were found to yield !> convergence in about 70 iterations for a "typical" problem. (Having !> some inners helps avoid "false" convergence, too) - !============================================================================ + !============================================================================! subroutine solve() + implicit none ! local integer :: i, j, p, q, qq double precision :: k, & ! temporary current keff k_o, & ! temporary past keff - s(number_bundles), & ! temporary current density - s_o(number_bundles), & ! temporary past density (inners) - s_oo(number_bundles),& ! temporary past density (outers) + s(number_assemblies), & ! fission density + s_o(number_assemblies), & ! temporay density (inners) + s_oo(number_assemblies),& ! temporary density (outers) k_num, & ! numerator in keff expression k_den, & ! denomenator in keff expression serr, & ! density residual @@ -49,7 +92,7 @@ subroutine solve() mean_s ! ! Initialize the fission source and normalize - s = 1.0 / sqrt(dble(number_bundles)) + s = 1.0 / sqrt(dble(number_assemblies)) ! Guess k = 1 k = 1.0 @@ -57,14 +100,14 @@ subroutine solve() ! Update coefficients call build_coefficients() - ! Outer iteration. - OUTER: do j = 1, 100 + ! Outer iteration + OUTER: do j = 1, max_outers s_oo = s - ! Jacobi inner iteration - INNER: do i = 1, 10 + ! Inner iteration + INNER: do i = 1, max_inners s_o = s - do p = 1, number_bundles + do p = 1, number_assemblies s(p) = wpp(p) * s_o(p) do q = 1, 4 if (neighbors(p, q) .gt. 0) then @@ -72,7 +115,7 @@ subroutine solve() s(p) = s(p) + wqp(qq)*s_o(qq) end if end do - s(p) = s(p) * kinf(p) / k + s(p) = s(p) * KINF(pattern(p)) / k end do end do INNER s = s / norm(s) @@ -81,15 +124,16 @@ subroutine solve() k_o = k k_num = 0.0 k_den = 0.0 - do i = 1, number_bundles + do i = 1, number_assemblies k_num = k_num + s(i)*wleak(i) - k_den = k_den + s(i)/kinf(i) + k_den = k_den + s(i)/KINF(pattern(i)) end do k = (sum(s) - k_num) / k_den - ! Update errors. Check only density, as k always converges faster. + + ! Update errors and check for convergence kerr = abs(k - k_o) serr = norm(s - s_oo) - if (kerr < 0.0001 .and. serr < 0.001) then + if (kerr < ktol .and. serr < stol) then exit end if @@ -97,11 +141,19 @@ subroutine solve() ! Post process. Store values and print out. keff = k - mean_s = (0.25*s(1) + sum(s(2:number_bundles))) / (0.25 + dble(number_bundles-1)) + mean_s = (0.25*s(1) + sum(s(2:number_assemblies))) / & + (0.25 + dble(number_assemblies-1)) assembly_peaking = s / mean_s - max_assembly_peaking = maxval(assembly_peaking) + assembly_temperature = Tin + assembly_peaking * & + reactor_power * reactor_height * & + SIN(3.14_8 / 2) / mdCp + fuel_temperature = assembly_temperature + assembly_peaking * & + reactor_power * 1000000.0_8 * & + (0.25_8 / number_assemblies ) * & + (Res_c + Res_g + Res_h + Res_f) / number_pins + mappf = maxval(assembly_peaking) - if (verbose .eq. 1) then + if (verbose .ge. 2) then print *, "------------------------------" print '(a, i10)', " iterations = ", j print '(a, f10.6)', " keff = ", k @@ -111,6 +163,161 @@ subroutine solve() end if end subroutine solve + !============================================================================! + !> @brief Compute the L2 norm of an array of values + !============================================================================! + subroutine burn() + + implicit none + + integer :: i + double precision :: burnup_step, fpd, burnup, burnup1, keff1 + fpd = 0.0 + burnup = 0.0 + burnup1 = 0.0 + keff1 = 0.0 + + call solve() + + ! just get the power distribution and escape if not burning + if (number_burnup_steps == 0) then + return + end if + + ! the central assembly is only a quarter assembly, so divide quarter + ! of the power over N-1 + 0.25 assemblies. + average_assembly_power = 0.25_8 * reactor_power / & + (dble(number_assemblies)-0.75) + + ! total core power divided by the total fuel mass + power_per_mass = reactor_power / (1.0 + 4.0 * (number_assemblies-1)) / assembly_mass + + ! DEBUG checks + if (number_assemblies > number_materials) then + stop "The number of materials must be equal to or greater & + than the number of assemblies for cycle depletions." + end if + do i = 1, number_materials + if (count(pattern == i) > 1) then + stop "Non-unique material assignment for a burnup problem & + is not allowed." + end if + end do + + call print_burnup_header() + call print_burnup(0, burnup, fpd, mappf, mappf, keff, cycle_length) + + do i = 1, number_burnup_steps + + ! select the burnup step + burnup_step = burnup_steps(i) + if (burnup_option == 1 .and. i > 2) then + burnup_step = critical_step(keff, keff1, burnup, burnup1) + ! estimated cycle length + cycle_length = burnup_step * power_per_mass + burnup + if (burnup_step > burnup_steps(i)) then + burnup_step = burnup_steps(i) + end if + end if + + call update_assembly_burnup(burnup_step) + call compute_flare_parameters() + + ! record old values and update new ones + burnup1 = burnup + keff1 = keff + burnup = burnup + burnup_step * power_per_mass + fpd = fpd + burnup_step + call solve() + + if (mappf > mappf_cycle) then + mappf_cycle = mappf + mappf_bu = burnup + end if + + if (burnup_option==1 .and. (keff<=1.0 .or. abs(burnup-burnup1)<=ktol)) exit + + call print_burnup(i, burnup, fpd, mappf_cycle, mappf, keff, cycle_length) + + end do + + if (burnup_option == 1) then + cycle_length = burnup + & + critical_step(keff,keff1,burnup,burnup1)*power_per_mass + else + cycle_length = burnup + end if + + ! Solve for the conditions at the end-of-cycle + if (burnup_option == 0 .or. (burnup_option == 1 .and. keff >= 1.0)) then + call solve() + end if + + if (verbose > 0) then + call print_burnup(i, burnup, fpd, mappf_cycle, mappf, keff, cycle_length) + print *, " -------------------------------------------------------------------" + end if + + print *, " p p m = ", power_per_mass, (1.0 + 4.0 * (number_assemblies-1)) + + end subroutine burn + + !============================================================================! + !> @brief Update the burnup for each assembly + !============================================================================! + subroutine update_assembly_burnup(step) + double precision, intent(in) :: step + integer :: i + do i = 1, number_assemblies + B(pattern(i)) = B(pattern(i)) + & + assembly_peaking(i) * average_assembly_power * step + end do + end subroutine update_assembly_burnup + + !============================================================================! + !> @brief Estimate step to reach critical based on linear reactivity + !============================================================================! + double precision function critical_step(k0, k1, b0, b1) + double precision, intent(in) :: k0, k1, b0, b1 + double precision :: p0, p1 + p0 = (k0-1.0)/k0 + p1 = (k1-1.0)/k1 + critical_step = (-(1.*(p1*b0-1.*b1*p0))/(p0-1.*p1)-b0) / power_per_mass + end function critical_step + + !============================================================================! + subroutine print_burnup_header() + if (verbose > 0) then + + if (burnup_option == 0) then + print *, " *** BURNUP CALCULATION WITH USER-SPECIFED BURNUP STEPS ***" + elseif (burnup_option == 1) then + print *, " *** BURNUP CALCULATION FOR DETERMINATION OF CYCLE LENGTH ***" + end if + print *, "" + print *, & + " -------------------------------------------------------------------" + print *, & + " STEP BURNUP FPD MAX APPF MAX APPF KEFF APPX.CYC.L " + print *, & + " [GWd/MTU] [day] [cycle] [step] [GWd/MTU] " + print *, & + " -------------------------------------------------------------------" + end if + end subroutine print_burnup_header + + !============================================================================! + subroutine print_burnup(i, bu, fpd, mappf_c, mppff_s, k, cl) + integer, intent(in) :: i + double precision, intent(in) :: bu, fpd, mappf_c, mppff_s, k, cl + if (verbose > 0) then + print '(a, i3, 7f10.4)', " ", i, bu, fpd, mappf_c, mppff_s, k, cl + end if + end subroutine print_burnup + + !============================================================================! + !> @brief Compute the L2 norm of an array of values + !============================================================================! double precision function norm(v) double precision, intent(in) :: v(:) integer :: i diff --git a/src/state.f90 b/src/state.f90 index 6016e63..e3ebec9 100644 --- a/src/state.f90 +++ b/src/state.f90 @@ -7,25 +7,43 @@ !==============================================================================! module state - use geometry, only: number_bundles, stencil_dimension, stencil + use geometry, only: number_assemblies, stencil_dimension, stencil implicit none !> Eigenvalue double precision :: keff - !> Fission density - double precision, allocatable :: fission_density(:) - !> Assembly power peaking factors double precision, allocatable :: assembly_peaking(:) - !> Maximum assembly power peaking factor - double precision :: max_assembly_peaking + !> Assembly moderator temperature + double precision, allocatable :: assembly_temperature(:) + + !> Assembly fuel temperature + double precision, allocatable :: fuel_temperature(:) + !> Power peaking map double precision, allocatable :: peaking_map(:, :) +!> Power map +double precision, allocatable :: power_map(:, :) + +!> Temperature map +double precision, allocatable :: temperature_map(:, :) + + + + !> Maximum assembly power peaking factor + double precision :: mappf + + !> Burnup at which the max peaking was computed + double precision :: mappf_bu + + !> Cycle length (i.e., burnup at keff = 1.0) + double precision :: cycle_length + contains !============================================================================= @@ -33,13 +51,26 @@ module state !============================================================================= subroutine initialize_state() - if (allocated(fission_density)) call deallocate_state() + if (allocated(assembly_peaking)) call deallocate_state() - allocate(fission_density(number_bundles), & - assembly_peaking(number_bundles), & + allocate(assembly_peaking(number_assemblies), & peaking_map(stencil_dimension, stencil_dimension)) + + if (allocated(assembly_temperature)) call deallocate_state() + + allocate(assembly_temperature(number_assemblies), & + power_map(stencil_dimension, stencil_dimension)) + + if (allocated(fuel_temperature)) call deallocate_state() + + allocate(fuel_temperature(number_assemblies), & + temperature_map(stencil_dimension, stencil_dimension)) + + keff = 1.0 - max_assembly_peaking = 0.0 + mappf = 0.0 + mappf_bu = 0.0 + cycle_length = 0.0 end subroutine @@ -49,7 +80,8 @@ subroutine initialize_state() subroutine print_state() print *, "------------------------------ " print '(a, f10.6)', " keff = ", keff - print '(a, f10.6)', " maximum peaking = ", max_assembly_peaking + print '(a, f10.6)', " maximum peaking = ", mappf + print '(a, f10.6)', " cycle length = ", cycle_length print *, "------------------------------ " end subroutine print_state @@ -64,43 +96,16 @@ end function get_keff !> @brief Return maximum power peaking factor !============================================================================= double precision function get_mppf() - get_mppf = max_assembly_peaking + get_mppf = mappf end function get_mppf - - !============================================================================= - !> @brief Print assembly power peaking factor map. - !============================================================================= - subroutine print_peaking() - integer :: i, j, k - call make_peaking_map() - print *, "------------------------------------------------------------------------------------------" - print *, "peaking map = " - do i = 1, stencil_dimension - print '(9f10.6)', peaking_map(i, :) - end do - print *, "-------------------------------------------------------------------------------------------" - end subroutine print_peaking - - !============================================================================= - !> @brief Make assembly power peaking factor map. - !============================================================================= - subroutine make_peaking_map() - integer :: i, j, k - peaking_map = 0.0 - do i = 1, stencil_dimension - do j = 1, stencil_dimension - if (stencil(i, j) .gt. 0) then - peaking_map(i, j) = assembly_peaking(stencil(i, j)) - end if - end do - end do - end subroutine make_peaking_map !============================================================================= !> @brief Deallocate state !============================================================================= subroutine deallocate_state() - deallocate(fission_density, assembly_peaking, peaking_map) + deallocate(assembly_peaking, peaking_map) + deallocate(assembly_temperature, power_map) + deallocate(fuel_temperature, temperature_map) end subroutine end module state diff --git a/src/utilities.f90 b/src/utilities.f90 new file mode 100644 index 0000000..8b4a0cf --- /dev/null +++ b/src/utilities.f90 @@ -0,0 +1,113 @@ +!==============================================================================! +! MODULE: utilities +! +!> @author Jeremy Roberts +!> @brief Routines for printing output, etc. +!==============================================================================! + +module utilities + + use geometry, only: number_assemblies, stencil_dimension, stencil, & + number_per_row, pattern + + implicit none + + !============================================================================! + !> @brief Make a printable, 2-D map of assembly values + !============================================================================! + interface print_map + module procedure print_map_d, print_map_i + end interface print_map + + !> An array indexed by geometry has values matched to assembly location + logical, parameter :: GEOMETRY_INDEXED=.false. + !> A material-indexed array's values go with a material, not a location + logical, parameter :: MATERIAL_INDEXED=.true. + +contains + + !============================================================================! + subroutine print_map_d(f, s, flag) + double precision, dimension(:), intent(in) :: f + character(len = *), intent(in) :: s + logical, intent(in) :: flag + ! local + double precision, allocatable, dimension(:, :) :: map + integer :: i, j, k + + allocate(map(stencil_dimension, stencil_dimension)) + map = 0.0 + + do i = 1, stencil_dimension + do j = 1, stencil_dimension + if (stencil(i, j) .gt. 0) then + if (flag) then + map(i, j) = f(pattern(stencil(i, j))) + else + map(i, j) = f(stencil(i, j)) + end if + end if + end do + end do + + k = 0 + print *, "*** ", s, " *** " + print *, "" + do i = 1, stencil_dimension + if (i > 1) k = 1 + do j = 1, number_per_row(i) + k + if ((i == 1) .or. (j > 1 .and. i > 1)) then + write(*, ' (f10.4) ', advance='no') map(i, j) + else + write(*, ' (a10) ', advance='no') " " + end if + end do + print *, "" + end do + print *, "" + + end subroutine print_map_d + + !============================================================================! + subroutine print_map_i(f, s, flag) + integer, dimension(:), intent(in) :: f + character(len = *), intent(in) :: s + logical, intent(in) :: flag + ! local + integer, allocatable, dimension(:, :) :: map + integer :: i, j, k + + allocate(map(stencil_dimension, stencil_dimension)) + map = 0 + + do i = 1, stencil_dimension + do j = 1, stencil_dimension + if (stencil(i, j) .gt. 0) then + if (flag) then + map(i, j) = f(pattern(stencil(i, j))) + else + map(i, j) = f(stencil(i, j)) + end if + end if + end do + end do + + k = 0 + print *, "*** ", s, " *** " + print *, "" + do i = 1, stencil_dimension + if (i > 1) k = 1 + do j = 1, number_per_row(i) + k + if ((i == 1) .or. (j > 1 .and. i > 1)) then + write(*, ' (i6) ', advance='no') map(i, j) + else + write(*, ' (a6) ', advance='no') " " + end if + end do + print *, "" + end do + print *, "" + + end subroutine print_map_i + +end module utilities diff --git a/src/verify.py b/src/verify.py new file mode 100644 index 0000000..29c32e2 --- /dev/null +++ b/src/verify.py @@ -0,0 +1,37 @@ +from poropy.nucleardata import * + +from pyflare2 import * + +import numpy as np + +import matplotlib.pyplot as plt + +b = np.linspace(0.0, 20.0, 100) + +kinf = 0.0*b +kinf2 = 0.0*b +m =0.*b +m2 = 0.*b +f=0*b +f2=0*b + +waba=0 +gad=0 +ifba=0 +bp=3 +if bp == 1 : ifba =1 +if bp == 2 : waba =1 +if bp == 3 : gad=1 + +for i in range(len(b)) : + kinf[i] = nuclear_data.set_flare_data(b[i], 4.1, bp)[0] + kinf2[i] = get_2g_parms(b[i], 4.1, ifba, waba, gad).K_INF_XE + m[i] = nuclear_data.set_flare_data(b[i], 4.1, bp)[1] + m2[i] = get_2g_parms(b[i], 4.1, ifba, waba, gad).M2_XE + f[i] = nuclear_data.set_two_group_data(b[i], 4.1, bp)[3] + f2[i] = get_2g_parms(b[i], 4.1, ifba, waba, gad).ABS2 +#print m, m2 + +plt.semilogy(b, np.abs(kinf-kinf2)/kinf, 'k', b, np.abs(m-m2)/m, 'r', b, np.abs(f-f2)/f, 'g') +plt.grid(True) +plt.show()