heasoft: add new package (#29841)
This commit is contained in:
parent
7dc569ceeb
commit
7d67577156
@ -0,0 +1,39 @@
|
||||
--- a/tcltk/BUILD_DIR/configure 2021-07-13 14:18:46.000000000 -0500
|
||||
+++ b/tcltk/BUILD_DIR/configure 2022-02-15 13:32:41.678576015 -0600
|
||||
@@ -6080,36 +6080,6 @@
|
||||
x_includes="/usr/local/include"
|
||||
fi
|
||||
fi
|
||||
- # AC_PATH_X checks for Xlib.h, but somehow a missing X11/Xlib.h can
|
||||
- # still get past it and cause problems later in the build (tk.h), so
|
||||
- # try an additional test here just to make sure that it's installed:
|
||||
- if test "x$x_includes" = "x"; then
|
||||
- as_fn_error $? "No X11 include directory found. Please specify location using --x-includes option." "$LINENO" 5
|
||||
- else
|
||||
- xlib_h="$x_includes/X11/Xlib.h"
|
||||
- xintrinsic_h="$x_includes/X11/Intrinsic.h"
|
||||
- xstringdefs_h="$x_includes/X11/StringDefs.h"
|
||||
- if test -f $xlib_h; then
|
||||
- if test -f $xintrinsic_h; then
|
||||
- if test -f $xstringdefs_h; then
|
||||
- XINCLUDES="-I$x_includes"
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found $xlib_h" >&5
|
||||
-$as_echo "Found $xlib_h" >&6; }
|
||||
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $x_includes for X11 header files" >&5
|
||||
-$as_echo "Using $x_includes for X11 header files" >&6; }
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/StringDefs.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/Intrinsic.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/Xlib.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- fi
|
||||
|
||||
# X11 libraries: Having a -L path for libX11 is not always necessary,
|
||||
# but when passing a value for x_includes to external packages (e.g.
|
@ -0,0 +1,38 @@
|
||||
--- a/Xspec/src/XSUser/UserInterface/execscript.cxx 2021-02-19 10:47:02.000000000 -0600
|
||||
+++ b/Xspec/src/XSUser/UserInterface/execscript.cxx 2022-02-16 10:35:18.765454040 -0600
|
||||
@@ -366,19 +366,23 @@
|
||||
XSparse::collateByWhitespace(lineArgs, buffer);
|
||||
string procName;
|
||||
string scriptName;
|
||||
-
|
||||
- if (lineArgs[0] == "cd")
|
||||
+ // Careful, if line contained whitespace and nothing but
|
||||
+ // whitespace, lineArgs vector will be empty.
|
||||
+ if (lineArgs.size())
|
||||
{
|
||||
- // If no second argument, assume cd into home directory.
|
||||
- string cdPath = (lineArgs.size() < 2) ? string("~/") : lineArgs[1];
|
||||
- appendPathToScript(cdPath, currPathToScript);
|
||||
- }
|
||||
- else if (findProcFromLineArgs(lineArgs, procName))
|
||||
- userProcs.insert(procName);
|
||||
- else if (isCallToScript(lineArgs, scriptName))
|
||||
- {
|
||||
- // Recursive call
|
||||
- status = findNestedUserProcs(scriptName, userProcs, currPathToScript);
|
||||
+ if (lineArgs[0] == "cd")
|
||||
+ {
|
||||
+ // If no second argument, assume cd into home directory.
|
||||
+ string cdPath = (lineArgs.size() < 2) ? string("~/") : lineArgs[1];
|
||||
+ appendPathToScript(cdPath, currPathToScript);
|
||||
+ }
|
||||
+ else if (findProcFromLineArgs(lineArgs, procName))
|
||||
+ userProcs.insert(procName);
|
||||
+ else if (isCallToScript(lineArgs, scriptName))
|
||||
+ {
|
||||
+ // Recursive call
|
||||
+ status = findNestedUserProcs(scriptName, userProcs, currPathToScript);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
--- a/Xspec/src/XSStat/Cstat.h 2021-02-19 10:47:02.000000000 -0600
|
||||
+++ b/Xspec/src/XSStat/Cstat.h 2022-02-16 10:37:53.682939519 -0600
|
||||
@@ -134,10 +134,13 @@
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
- Real bTime (background->data()->exposureTime());
|
||||
+ // tb includes the background exposure time multiplied by the ratios
|
||||
+ // between the source and background BACKSCALE and AREASCALE.
|
||||
RealArray tb (background->data()->backgroundScale()[IN]);
|
||||
tb /= sp->backgroundScale()[IN];
|
||||
- tb *= bTime;
|
||||
+ tb *= background->data()->areaScale()[IN];
|
||||
+ tb /= sp->areaScale()[IN];
|
||||
+ tb *= background->data()->exposureTime();
|
||||
RealArray B (tb * background->spectrum()[IN]);
|
||||
RealArray Berr (tb * background->variance()[IN]);
|
||||
|
||||
@@ -228,10 +231,13 @@
|
||||
T::specificResetCalc(S, ts, model, number(), modifier(), diff1, diff2);
|
||||
} else {
|
||||
// Variable definitions follow Appendix B of manual.
|
||||
- Real bTime (background->data()->exposureTime());
|
||||
+ // tb includes the background exposure time multiplied by the ratios
|
||||
+ // between the source and background BACKSCALE and AREASCALE.
|
||||
RealArray tb (background->data()->backgroundScale()[IN]);
|
||||
tb /= sp->backgroundScale()[IN];
|
||||
- tb *= bTime;
|
||||
+ tb *= background->data()->areaScale()[IN];
|
||||
+ tb /= sp->areaScale()[IN];
|
||||
+ tb *= background->data()->exposureTime();
|
||||
RealArray B (tb * background->spectrum()[IN]);
|
||||
RealArray Berr (tb * background->variance()[IN]);
|
||||
|
@ -0,0 +1,53 @@
|
||||
diff -u a/Xspec/src/XSFunctions/sumdem.cxx b/Xspec/src/XSFunctions/sumdem.cxx
|
||||
--- a/Xspec/src/XSFunctions/sumdem.cxx 2019-05-17 14:35:25.000000000 -0500
|
||||
+++ b/Xspec/src/XSFunctions/sumdem.cxx 2022-02-16 10:42:36.946827375 -0600
|
||||
@@ -14,7 +14,7 @@
|
||||
RealArray& fluxArray, RealArray& fluxErrArray);
|
||||
|
||||
|
||||
-void sumdem(int itype, int swtch, float* ear, int ne, float* abun,
|
||||
+extern "C" void sumdem(int itype, int swtch, float* ear, int ne, float* abun,
|
||||
float dens, float z, int ninputt, float* inputt, float* dem,
|
||||
int ifl, bool qtherm, float velocity, float* photar, float* photer,
|
||||
int* status);
|
||||
diff -u a/Xspec/src/XSFunctions/xsmaug.cxx b/Xspec/src/XSFunctions/xsmaug.cxx
|
||||
--- a/Xspec/src/XSFunctions/xsmaug.cxx 2019-05-17 14:35:25.000000000 -0500
|
||||
+++ b/Xspec/src/XSFunctions/xsmaug.cxx 2022-02-16 10:42:28.949802306 -0600
|
||||
@@ -49,10 +49,10 @@
|
||||
// REAL ear(0:*), abun(*), inputt(*), dem(*), photar(*)
|
||||
// REAL dens, z
|
||||
|
||||
-void sumdem_(int& itype, int& flag, float* ear, int& ne,
|
||||
- float* abun, float& dens, float& z, int& ninputt,
|
||||
- float* inputt, float* dem, int& ifl, int& qtherm,
|
||||
- float& velocity, float* photar, int& status);
|
||||
+void sumdem(int itype, int flag, float* ear, int ne,
|
||||
+ float* abun, float dens, float z, int ninputt,
|
||||
+ float* inputt, float* dem, int ifl, bool qtherm,
|
||||
+ float velocity, float* photar, float* photer, int* status);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
@@ -325,7 +325,7 @@
|
||||
const double MIN2RAD = 3437.75;
|
||||
int i, ie, iel;
|
||||
int mesh2, meshpt;
|
||||
- int itype, mode, no_el, status;
|
||||
+ int itype, mode, no_el, status=0;
|
||||
double angfac, da, ei, evol, inner, H0, L0, outer, q0, z, zfac;
|
||||
double a1, a2, Ab_shell, ei_shell, h1, h2, r1, r2, rcutoff, t1, t2, w1, w2, w12;
|
||||
double elden, norm;
|
||||
@@ -487,10 +487,10 @@
|
||||
static float ONE(1.);
|
||||
static int one(1);
|
||||
float fz (z);
|
||||
- static int NOT(0);
|
||||
+ static bool NOT(false);
|
||||
static float ZERO(0.0);
|
||||
- sumdem_(itype, mode, fear, ne, abund, ONE , fz, one, kT_shell, dem, ifl,
|
||||
- NOT, ZERO, phoshell, status);
|
||||
+ sumdem(itype, mode, fear, ne, abund, ONE , fz, one, kT_shell, dem, ifl,
|
||||
+ NOT, ZERO, phoshell, 0, &status);
|
||||
|
||||
/* ADD THE SHELL CONTRIBUTION TO THE OUTPUT SPECTRUM,
|
||||
* CORRECTING IT FOR <angfac>, DISTANCE AND REDSHIFT,
|
@ -0,0 +1,65 @@
|
||||
diff -u a/Xspec/src/XSFunctions/dospin.f b/Xspec/src/XSFunctions/dospin.f
|
||||
--- a/Xspec/src/XSFunctions/dospin.f 2020-03-31 09:43:58.000000000 -0500
|
||||
+++ b/Xspec/src/XSFunctions/dospin.f 2022-02-16 10:46:28.400550576 -0600
|
||||
@@ -52,14 +52,14 @@
|
||||
integer nradii,ng,ia,imu0,abins,mu0bins,ilun,ios,block,hdutyp
|
||||
integer ir
|
||||
parameter(nradii=50,ng=20,abins=20,mu0bins=20)
|
||||
+ DOUBLE PRECISION, ALLOCATABLE, SAVE :: trff_tab(:,:,:,:,:)
|
||||
+ DOUBLE PRECISION, ALLOCATABLE, SAVE :: cosne_tab(:,:,:,:,:)
|
||||
+ DOUBLE PRECISION, ALLOCATABLE, SAVE :: gmin_tab(:,:,:)
|
||||
+ DOUBLE PRECISION, ALLOCATABLE, SAVE :: gmax_tab(:,:,:)
|
||||
+ DOUBLE PRECISION, ALLOCATABLE, SAVE :: a_tab(:),mu0_tab(:)
|
||||
DOUBLE PRECISION sumspec
|
||||
DOUBLE PRECISION a,theta0,mu0,gstar(ng)
|
||||
- DOUBLE PRECISION a_tab(abins),mu0_tab(mu0bins)
|
||||
DOUBLE PRECISION aintfac,mu0intfac
|
||||
- DOUBLE PRECISION trff_tab(nradii,ng,2,abins,mu0bins)
|
||||
- DOUBLE PRECISION cosne_tab(nradii,ng,2,abins,mu0bins)
|
||||
- DOUBLE PRECISION gmin_tab(nradii,abins,mu0bins)
|
||||
- DOUBLE PRECISION gmax_tab(nradii,abins,mu0bins)
|
||||
DOUBLE PRECISION re(nradii),gmin(nradii)
|
||||
DOUBLE PRECISION gmax(nradii),trff(nradii,ng,2)
|
||||
DOUBLE PRECISION cosne(nradii,ng,2)
|
||||
@@ -88,7 +88,6 @@
|
||||
external lenact, fgmodf
|
||||
|
||||
SAVE qfirst
|
||||
- save a_tab,trff_tab,cosne_tab,gmin_tab,gmax_tab,mu0_tab
|
||||
|
||||
DATA qfirst / .true. /
|
||||
|
||||
@@ -128,6 +127,11 @@
|
||||
c Read in transfer function from the kerrtable.fits file.
|
||||
c
|
||||
if ( qfirst ) then
|
||||
+ allocate(trff_tab(nradii,ng,2,abins,mu0bins))
|
||||
+ allocate(cosne_tab(nradii,ng,2,abins,mu0bins))
|
||||
+ allocate(gmin_tab(nradii,abins,mu0bins))
|
||||
+ allocate(gmax_tab(nradii,abins,mu0bins))
|
||||
+ allocate(a_tab(abins),mu0_tab(mu0bins))
|
||||
call getlun(ilun)
|
||||
datafile = fgmodf()
|
||||
datafile=datafile(1:lenact(datafile))//'/kerrtable.fits'
|
||||
@@ -316,7 +320,8 @@
|
||||
rad=rmin * 10 ** ( dfloat(ilgrad-1)*dlog(re(1)/re(nradii))/
|
||||
& dfloat(ilgrad_max-1))
|
||||
|
||||
- if ((rad .gt. rmin) .and. (rad .lt. rmax)) then
|
||||
+ if ((rad .gt. rmin) .and. (rad .gt. re(nradii)) .and.
|
||||
+ & (rad .lt. rmax)) then
|
||||
|
||||
if (rad .gt. re(irad)) irad=irad-1
|
||||
intfac=(rad-re(irad+1))/(re(irad)-re(irad+1))
|
||||
diff -u a/Xspec/src/XSFunctions/xsrefsch.f b/Xspec/src/XSFunctions/xsrefsch.f
|
||||
--- a/Xspec/src/XSFunctions/xsrefsch.f 2019-05-17 14:35:25.000000000 -0500
|
||||
+++ b/Xspec/src/XSFunctions/xsrefsch.f 2022-02-16 10:46:28.401550579 -0600
|
||||
@@ -307,7 +307,7 @@
|
||||
sincl = sin(param(5)/dera)
|
||||
cincl = cos(param(5)/dera)
|
||||
|
||||
- do n=1,ne
|
||||
+ do n=0,ne
|
||||
ear(n) = zfac*earp(n)
|
||||
end do
|
||||
|
@ -0,0 +1,194 @@
|
||||
--- a/Xspec/src/manager/model.dat 2021-07-13 14:18:32.000000000 -0500
|
||||
+++ b/Xspec/src/manager/model.dat 2022-02-16 10:47:54.447819272 -0600
|
||||
@@ -44,14 +44,14 @@
|
||||
kT keV 1. 0.008 0.008 64.0 64.0 .01
|
||||
Abundanc " " 1. 0. 0. 5. 5. -0.001
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
btapec 5 0. 1.e20 C_btapec add 0
|
||||
kT keV 1. 0.008 0.008 64.0 64.0 .01
|
||||
kTi keV 1. 0.008 0.008 64.0 64.0 .01
|
||||
Abundanc " " 1. 0. 0. 5. 5. -0.001
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bbody 1 1.e-20 1.e20 xsblbd add 0
|
||||
kT keV 3.0 1.e-4 1.e-2 100. 200. 0.01
|
||||
@@ -109,7 +109,7 @@
|
||||
Abundanc " " 1.0 0. 0. 1000. 10000. -0.01
|
||||
Tau s/cm^3 1.e11 1.e8 1.e8 5.e13 5.e13 1.e8
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity km/s 0.0 0.0 0.0 1.e6 1.e6 -10.0
|
||||
+Velocity km/s 0.0 0.0 0.0 1.e4 1.e4 -10.0
|
||||
|
||||
bvapec 16 0. 1.e20 C_bvapec add 0
|
||||
kT keV 6.5 0.0808 0.0808 68.447 68.447 0.01
|
||||
@@ -127,7 +127,7 @@
|
||||
Fe " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Ni " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bvrnei 18 0. 1.e20 C_bvrnei add 0
|
||||
kT keV 0.5 0.0808 0.0808 79.9 79.9 0.01
|
||||
@@ -147,7 +147,7 @@
|
||||
Ni " " 1.0 0. 0. 1000. 10000. -0.01
|
||||
Tau s/cm^3 1.e11 1.e8 1.e8 5.e13 5.e13 1.e8
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bvtapec 17 0. 1.e20 C_bvtapec add 0
|
||||
kT keV 6.5 0.0808 0.0808 68.447 68.447 0.01
|
||||
@@ -166,7 +166,7 @@
|
||||
Fe " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Ni " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bvvapec 33 0. 1.e20 C_bvvapec add 0
|
||||
kT keV 6.5 0.0808 0.0808 68.447 68.447 0.01
|
||||
@@ -201,7 +201,7 @@
|
||||
Cu " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Zn " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bvvrnei 35 0. 1.e20 C_bvvrnei add 0
|
||||
kT keV 0.5 0.0808 0.0808 79.9 79.9 0.01
|
||||
@@ -238,7 +238,7 @@
|
||||
Zn " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Tau s/cm^3 1.e11 1.e8 1.e8 5.e13 5.e13 1.e8
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
bvvtapec 34 0. 1.e20 C_bvvtapec add 0
|
||||
kT keV 6.5 0.0808 0.0808 68.447 68.447 0.01
|
||||
@@ -274,7 +274,7 @@
|
||||
Cu " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Zn " " 1. 0. 0. 1000. 1000. -0.01
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
-Velocity "km/s" 0. 0. 0. 1.e6 1.e6 -10.0
|
||||
+Velocity "km/s" 0. 0. 0. 1.e4 1.e4 -10.0
|
||||
|
||||
c6mekl 10 0. 1.e20 C_c6mekl add 0
|
||||
CPcoef1 " " 1.0 -1 -1 1 1 0.10
|
||||
@@ -1666,7 +1666,7 @@
|
||||
vvwdem 36 0. 1.e20 C_vvwDem add 0
|
||||
Tmax keV 1.0 0.01 0.01 10 20 0.01
|
||||
beta " " 0.1 0.01 0.01 1.0 1.0 0.01
|
||||
-p " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
+inv_slope " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
nH cm^-3 1.0 1.e-6 1.e-5 1.e19 1.e20 -0.01
|
||||
H " " 1. 0. 0. 1000. 1000. -0.01
|
||||
He " " 1. 0. 0. 1000. 1000. -0.01
|
||||
@@ -1704,7 +1704,7 @@
|
||||
vwdem 20 0. 1.e20 C_vwDem add 0
|
||||
Tmax keV 1.0 0.01 0.01 10 20 0.01
|
||||
beta " " 0.1 0.01 0.01 1.0 1.0 0.01
|
||||
-p " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
+inv_slope " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
nH cm^-3 1.0 1.e-6 1.e-5 1.e19 1.e20 -0.01
|
||||
He " " 1.0 0. 0. 10. 10. -0.01
|
||||
C " " 1.0 0. 0. 10. 10. -0.01
|
||||
@@ -1726,7 +1726,7 @@
|
||||
wdem 7 0. 1.e20 C_wDem add 0
|
||||
Tmax keV 1.0 0.01 0.01 10 20 0.01
|
||||
beta " " 0.1 0.01 0.01 1.0 1.0 0.01
|
||||
-p " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
+inv_slope " " 0.25 -1.0 -1.0 10.0 10.0 0.01
|
||||
nH cm^-3 1.0 1.e-6 1.e-5 1.e19 1.e20 -0.01
|
||||
abundanc " " 1.0 0. 0. 10. 10. -0.01
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
@@ -1854,36 +1854,36 @@
|
||||
Redshift " " 0. -0.999 -0.999 10. 10. -0.01
|
||||
|
||||
ismabs 31 0.01 1.e6 ismabs mul 0
|
||||
-H 10^22 0.1 0. 0. 1E5 1E6 1E-3
|
||||
-HeII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-CI 10^16 33.1 0. 0. 1E5 1E6 1E-3
|
||||
-CII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-CIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-NI 10^16 8.32 0. 0. 1E5 1E6 1E-3
|
||||
-NII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-NIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-OI 10^16 67.6 0. 0. 1E5 1E6 1E-3
|
||||
-OII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-OIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-NeI 10^16 12. 0. 0. 1E5 1E6 1E-3
|
||||
-NeII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-NeIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-MgI 10^16 3.8 0. 0. 1E5 1E6 1E-3
|
||||
-MgII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-MgIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-SiI 10^16 3.35 0. 0. 1E5 1E6 1E-3
|
||||
-SiII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-SiIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-SI 10^16 2.14 0. 0. 1E5 1E6 1E-3
|
||||
-SII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-SIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-ArI 10^16 0.25 0. 0. 1E5 1E6 1E-3
|
||||
-ArII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-ArIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-CaI 10^16 0.22 0. 0. 1E5 1E6 1E-3
|
||||
-CaII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-CaIII 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
-Fe 10^16 3.16 0. 0. 1E5 1E6 1E-3
|
||||
+H 10^22 0.1 0. 0. 1E5 1E6 1E-3
|
||||
+He_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+C_I 10^16 33.1 0. 0. 1E5 1E6 1E-3
|
||||
+C_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+C_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+N_I 10^16 8.32 0. 0. 1E5 1E6 1E-3
|
||||
+N_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+N_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+O_I 10^16 67.6 0. 0. 1E5 1E6 1E-3
|
||||
+O_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+O_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ne_I 10^16 12. 0. 0. 1E5 1E6 1E-3
|
||||
+Ne_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ne_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Mg_I 10^16 3.8 0. 0. 1E5 1E6 1E-3
|
||||
+Mg_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Mg_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Si_I 10^16 3.35 0. 0. 1E5 1E6 1E-3
|
||||
+Si_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Si_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+S_I 10^16 2.14 0. 0. 1E5 1E6 1E-3
|
||||
+S_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+S_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ar_I 10^16 0.25 0. 0. 1E5 1E6 1E-3
|
||||
+Ar_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ar_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ca_I 10^16 0.22 0. 0. 1E5 1E6 1E-3
|
||||
+Ca_II 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Ca_III 10^16 0. 0. 0. 1E5 1E6 -0.01
|
||||
+Fe 10^16 3.16 0. 0. 1E5 1E6 1E-3
|
||||
redshift " " 0.0 -1.0 0.0 10. 10. -0.01
|
||||
|
||||
ismdust 3 0.01 1.e6 ismdust mul 0
|
||||
@@ -2150,7 +2150,7 @@
|
||||
z " " 0.0 0.0 0.0 1.e5 1.e6 1.e-6
|
||||
|
||||
zdust 4 0. 1.e20 mszdst mul 0
|
||||
-$method " " 1 1 1 3 3 -0.01
|
||||
+$method 1
|
||||
E_BmV " " 0.1 0.0 0.0 100. 100. 0.01
|
||||
Rv " " 3.1 0.0 0.0 10. 10. -0.01
|
||||
Redshift " " 0. 0.0 0.0 20. 20. -0.01
|
||||
@@ -2186,7 +2186,7 @@
|
||||
nHmin 10^22 0.01 1e-07 1e-07 1000 1e+06 1e-2
|
||||
nHmax 10^22 10 1e-07 1e-07 1000 1e+06 1e-2
|
||||
beta " " 0.0 -10 -10 10 10 1e-2
|
||||
-log(xi) " " 3 -3 -3 6 6 1e-2
|
||||
+log_xi " " 3 -3 -3 6 6 1e-2
|
||||
redshift " " 0. 0. 0. 10. 10. -0.01
|
||||
|
||||
zxipcf 4 0.01 1.e20 C_zxipcf mul 0
|
@ -0,0 +1,35 @@
|
||||
--- a/Xspec/src/XSModel/Model/Component/OGIPTable/OGIPTable.cxx 2021-07-13 14:18:31.000000000 -0500
|
||||
+++ b/Xspec/src/XSModel/Model/Component/OGIPTable/OGIPTable.cxx 2022-02-16 10:51:55.954573553 -0600
|
||||
@@ -174,6 +174,14 @@
|
||||
|
||||
int numbVals = thisParam.getNumberTabulatedValues();
|
||||
|
||||
+ // If the table parameter has no unit string, heasp may return
|
||||
+ // a blank but non-empty string. Remove leading/trailing blanks here.
|
||||
+ string unitStr;
|
||||
+ string::size_type startPos = thisParam.getUnits().find_first_not_of(' ');
|
||||
+ string::size_type endPos = thisParam.getUnits().find_last_not_of(' ');
|
||||
+ if (startPos != string::npos && endPos != string::npos)
|
||||
+ unitStr = thisParam.getUnits().substr(startPos,endPos-startPos+1);
|
||||
+
|
||||
if (thisParam.getInterpolationMethod() >= 0 &&
|
||||
m_interParam.size() < (size_t)nInterpParams && numbVals > 0) {
|
||||
// case of an interpolated parameter
|
||||
@@ -182,7 +190,7 @@
|
||||
thisParam.getInitialValue(), thisParam.getDelta(),
|
||||
thisParam.getMaximum(), thisParam.getMinimum(),
|
||||
thisParam.getTop(), thisParam.getBottom(),
|
||||
- thisParam.getUnits()));
|
||||
+ unitStr));
|
||||
|
||||
modParam->numVals(numbVals);
|
||||
modParam->setTabValue(thisParam.getTabulatedValues());
|
||||
@@ -196,7 +204,7 @@
|
||||
thisParam.getInitialValue(), thisParam.getDelta(),
|
||||
thisParam.getMaximum(), thisParam.getMinimum(),
|
||||
thisParam.getTop(), thisParam.getBottom(),
|
||||
- thisParam.getUnits()));
|
||||
+ unitStr));
|
||||
params().push_back(modPar.release());
|
||||
m_addParam.push_back(static_cast<ModParam*>(params().back()));
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
--- a/Xspec/src/XSModel/Data/SpectralData.cxx 2021-02-19 10:47:01.000000000 -0600
|
||||
+++ b/Xspec/src/XSModel/Data/SpectralData.cxx 2022-02-16 10:55:16.813201027 -0600
|
||||
@@ -1232,9 +1232,6 @@
|
||||
throw YellowAlert(msg.str());
|
||||
}
|
||||
|
||||
- // multiply in the areaScale for this spectrum
|
||||
- m_effectiveAreas *= m_areaScale;
|
||||
-
|
||||
}
|
||||
|
||||
void SpectralData::clearEffectiveAreas ()
|
@ -0,0 +1,11 @@
|
||||
--- a/Xspec/src/XSUtil/Utils/XSutility.cxx 2021-07-13 14:18:31.000000000 -0500
|
||||
+++ b/Xspec/src/XSUtil/Utils/XSutility.cxx 2022-02-16 10:57:32.985626496 -0600
|
||||
@@ -390,7 +390,7 @@
|
||||
|
||||
const string& xs_version()
|
||||
{
|
||||
- static const string version = "12.12.0";
|
||||
+ static const string version = "12.12.0g";
|
||||
return version;
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
--- a/tcltk/BUILD_DIR/configure 2021-12-20 12:05:17.000000000 -0600
|
||||
+++ b/tcltk/BUILD_DIR/configure 2022-03-31 17:53:13.981092533 -0500
|
||||
@@ -6816,36 +6816,6 @@
|
||||
x_includes="/usr/local/include"
|
||||
fi
|
||||
fi
|
||||
- # AC_PATH_X checks for Xlib.h, but somehow a missing X11/Xlib.h can
|
||||
- # still get past it and cause problems later in the build (tk.h), so
|
||||
- # try an additional test here just to make sure that it's installed:
|
||||
- if test "x$x_includes" = "x"; then
|
||||
- as_fn_error $? "No X11 include directory found. Please specify location using --x-includes option." "$LINENO" 5
|
||||
- else
|
||||
- xlib_h="$x_includes/X11/Xlib.h"
|
||||
- xintrinsic_h="$x_includes/X11/Intrinsic.h"
|
||||
- xstringdefs_h="$x_includes/X11/StringDefs.h"
|
||||
- if test -f $xlib_h; then
|
||||
- if test -f $xintrinsic_h; then
|
||||
- if test -f $xstringdefs_h; then
|
||||
- XINCLUDES="-I$x_includes"
|
||||
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Found $xlib_h" >&5
|
||||
-printf "%s\n" "Found $xlib_h" >&6; }
|
||||
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using $x_includes for X11 header files" >&5
|
||||
-printf "%s\n" "Using $x_includes for X11 header files" >&6; }
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/StringDefs.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/Intrinsic.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- else
|
||||
- as_fn_error $? "Required header X11/Xlib.h not found in $x_includes" "$LINENO" 5
|
||||
- as_fn_error $? "X11 Development package is required in order to build HEASOFT" "$LINENO" 5
|
||||
- fi
|
||||
- fi
|
||||
|
||||
# X11 libraries: Having a -L path for libX11 is not always necessary,
|
||||
# but when passing a value for x_includes to external packages (e.g.
|
143
var/spack/repos/builtin/packages/heasoft/package.py
Normal file
143
var/spack/repos/builtin/packages/heasoft/package.py
Normal file
@ -0,0 +1,143 @@
|
||||
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import os
|
||||
|
||||
import llnl.util.tty as tty
|
||||
|
||||
from spack import *
|
||||
from spack.util.environment import EnvironmentModifications
|
||||
|
||||
|
||||
class Heasoft(AutotoolsPackage):
|
||||
"""A Unified Release of the FTOOLS and XANADU Software Packages.
|
||||
|
||||
XANADU: High-level, multi-mission tasks for X-ray astronomical spectral,
|
||||
timing, and imaging data analysis. FTOOLS: General and mission-specific
|
||||
tools to manipulate FITS files. FITSIO: Core library responsible for reading
|
||||
and writing FITS files. fv: General FITS file browser/editor/plotter with a
|
||||
graphical user interface. XSTAR: Tool for calculating the physical
|
||||
conditions and emission spectra of photoionized gases"""
|
||||
|
||||
homepage = "https://heasarc.gsfc.nasa.gov/docs/software/lheasoft/"
|
||||
url = "https://heasarc.gsfc.nasa.gov/FTP/software/lheasoft/lheasoft6.29/heasoft-6.29src.tar.gz"
|
||||
|
||||
maintainers = ['glennpj']
|
||||
|
||||
version('6.30',
|
||||
sha256='7f828f6050809653319f94d715c1b6815fbc09adfdcb61f2f0f1d7a6af10684a')
|
||||
version('6.29',
|
||||
sha256='534fec04baa2586326fd7240805f2606620f3b7d7078a80fdd95c9c1177c9e68')
|
||||
|
||||
variant('X', default=True, description='Enable X11 support')
|
||||
|
||||
depends_on('zlib')
|
||||
depends_on('ncurses')
|
||||
depends_on('curl')
|
||||
depends_on('libxt', when='+X')
|
||||
depends_on('libx11', when='+X')
|
||||
depends_on('readline')
|
||||
depends_on('libpng')
|
||||
depends_on('perl-extutils-makemaker')
|
||||
depends_on('py-numpy')
|
||||
|
||||
extends('python')
|
||||
|
||||
conflicts('%gcc@:4,10:')
|
||||
|
||||
# Do not create directory in $HOME during environment sourcing and use a
|
||||
# predictable name for the file to be sourced.
|
||||
patch('setup.patch')
|
||||
|
||||
# tcltk-configure: Remove redundant X11 header test because spack has X11
|
||||
# headers in different directories
|
||||
#
|
||||
# xspec: The HEASOFT project provides a tarball of replacement files for
|
||||
# Xspec, along with a TCL patch utility. This is meant for updating a
|
||||
# source tree in place with minimal rebuilding. This does not fit Spack's
|
||||
# model so convert those to patches. These are kept in sync with what is on
|
||||
# https://heasarc.gsfc.nasa.gov/docs/software/lheasoft/xanadu/xspec/issues/issues.html
|
||||
with when("@6.29"):
|
||||
patch('heasoft-6.29_tcltk-configure.patch')
|
||||
|
||||
patch('heasoft-6.29_xspec-12.12.0a.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0b.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0c.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0d.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0e.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0f.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0g.patch')
|
||||
patch('heasoft-6.29_xspec-12.12.0ver.patch')
|
||||
|
||||
with when("@6.30"):
|
||||
patch('heasoft-6.30_tcltk-configure.patch')
|
||||
|
||||
configure_directory = 'BUILD_DIR'
|
||||
|
||||
parallel = False
|
||||
|
||||
def patch(self):
|
||||
filter_file(r'(--with-readline-library=)\\\$READLINE_DIR',
|
||||
r'\1{0}'.format(self.spec['readline'].libs.directories[0]),
|
||||
join_path('tcltk', 'BUILD_DIR', 'hd_config_info'))
|
||||
|
||||
filter_file(r'(--with-readline-includes=)\\\$READLINE_DIR',
|
||||
r'\1{0}'.format(
|
||||
join_path(self.spec['readline'].headers.directories[0],
|
||||
'readline')),
|
||||
join_path('tcltk', 'BUILD_DIR', 'hd_config_info'))
|
||||
|
||||
if '+X' in self.spec:
|
||||
filter_file(r'(\s+XDIR => ).*',
|
||||
r"\1'{0}',".format(self.spec['libx11'].libs.directories[0]),
|
||||
join_path('tcltk', 'PGPLOT-perl', 'Makefile.PL'))
|
||||
|
||||
def configure_args(self):
|
||||
config_args = [
|
||||
'--with-png={0}'.format(self.spec['libpng'].prefix),
|
||||
'CPPFLAGS={0}'.format(self.spec['zlib'].headers.include_flags),
|
||||
'LDFLAGS={0}'.format(self.spec['zlib'].libs.search_flags)
|
||||
]
|
||||
|
||||
config_args += self.enable_or_disable('x', variant='X')
|
||||
|
||||
if '+X' in self.spec:
|
||||
config_args.extend([
|
||||
'--x-includes={0}'.format(self.spec['libx11'].headers.directories[0]),
|
||||
'--x-libraries={0}'.format(self.spec['libx11'].libs.directories[0]),
|
||||
])
|
||||
|
||||
return config_args
|
||||
|
||||
@run_after('install')
|
||||
def generate_environment(self):
|
||||
host_family = self.spec.target.family
|
||||
host_platform = self.spec.platform
|
||||
host_libc = os.confstr('CS_GNU_LIBC_VERSION').split()[1]
|
||||
target = '{0}-pc-{1}-gnu-libc{2}'.format(host_family, host_platform,
|
||||
host_libc)
|
||||
headas_setup_file = join_path(self.spec.prefix, target, 'BUILD_DIR',
|
||||
'headas-setup')
|
||||
|
||||
filter_file(r'(^headas_config=).*',
|
||||
r'\1{0}'.format(join_path(self.prefix, 'headas-config_spack')),
|
||||
headas_setup_file)
|
||||
|
||||
filter_file(r'(^flavor.*\n)',
|
||||
r'\1HEADAS={0}'.format(join_path(self.spec.prefix, target))
|
||||
+ "\n",
|
||||
headas_setup_file)
|
||||
|
||||
headas_setup = Executable(headas_setup_file)
|
||||
headas_setup('sh')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
try:
|
||||
env.extend(EnvironmentModifications.from_sourcing_file(
|
||||
join_path(self.spec.prefix, 'headas-config_spack.sh'), clean=True
|
||||
))
|
||||
except Exception as e:
|
||||
msg = 'unexpected error when sourcing HEASOFT setup [{0}]'
|
||||
tty.warn(msg.format(str(e)))
|
55
var/spack/repos/builtin/packages/heasoft/setup.patch
Normal file
55
var/spack/repos/builtin/packages/heasoft/setup.patch
Normal file
@ -0,0 +1,55 @@
|
||||
--- a/BUILD_DIR/headas-setup.in 2022-02-16 20:15:32.438402875 -0600
|
||||
+++ b/BUILD_DIR/headas-setup.in 2022-02-16 20:17:16.572726456 -0600
|
||||
@@ -136,20 +136,6 @@
|
||||
if [ -d $HEADAS/syspfiles/. ]; then
|
||||
PFCLOBBER=1
|
||||
|
||||
- # make sure local parameter file directory exists
|
||||
- if [ ! -w "$HOME/pfiles/." ]; then
|
||||
- if [ ! -d "$HOME/pfiles/." ]; then
|
||||
- mkdir "$HOME/pfiles"
|
||||
- if [ $? -ne 0 ]; then
|
||||
- echo "$headas_error cannot create local pfiles directory $HOME/pfiles" >&2
|
||||
- exit 3
|
||||
- fi
|
||||
- else
|
||||
- echo "$headas_error local pfiles directory $HOME/pfiles exists but is not writable" >&2
|
||||
- exit 3
|
||||
- fi
|
||||
- fi
|
||||
-
|
||||
# use PFILES (if set) to set initial values for locpfiles and syspfiles
|
||||
if [ "x$PFILES" != x ]; then
|
||||
syspfiles=`echo $PFILES | sed "s%.*;%%"`
|
||||
@@ -340,23 +326,23 @@
|
||||
|
||||
# Bourne Shell version, write only for sh flavor initialization
|
||||
if [ $flavor = sh ]; then
|
||||
- rm -f "$headas_config$$.sh"
|
||||
- touch "$headas_config$$.sh"
|
||||
+ rm -f "$headas_config.sh"
|
||||
+ touch "$headas_config.sh"
|
||||
for var in $varlist; do
|
||||
eval "if [ \"x\$$var\" != x ]; then
|
||||
- echo \"\$var=\\\"\$$var\\\"; export \$var\" >> \"$headas_config$$.sh\";
|
||||
+ echo \"\$var=\\\"\$$var\\\"; export \$var\" >> \"$headas_config.sh\";
|
||||
fi"
|
||||
done
|
||||
- echo "$headas_config$$.sh"
|
||||
+ echo "$headas_config.sh"
|
||||
# C Shell version, write only for csh flavor initialization
|
||||
elif [ $flavor = csh ]; then
|
||||
- rm -f "$headas_config$$.csh"
|
||||
- touch "$headas_config$$.csh"
|
||||
+ rm -f "$headas_config.csh"
|
||||
+ touch "$headas_config.csh"
|
||||
for var in $varlist; do
|
||||
eval "if [ \"x\$$var\" != x ]; then
|
||||
- echo setenv \$var \\\"\$$var\\\" >> \"$headas_config$$.csh\";
|
||||
+ echo setenv \$var \\\"\$$var\\\" >> \"$headas_config.csh\";
|
||||
fi"
|
||||
done
|
||||
- echo "$headas_config$$.csh"
|
||||
+ echo "$headas_config.csh"
|
||||
fi
|
||||
#-------------------------------------------------------------------------------
|
Loading…
Reference in New Issue
Block a user