You are using an unsupported browser, old browsers can put your security at risk. Please upgrade to a supported browser.

OK ESA uses cookies to track visits to our website only, no personal information is collected. By continuing to use the site you are agreeing to our use of cookies. Find out more about our cookie policy.

Release Note for SAS 16.0
===========================
Carlos Gabriel & Eduardo Ojero
XMM-Newton SOC
* Contents
. SAS releases covered by this note
. URLs
. Summary of important changes
. New and withdrawn packages
. Detailed list of changes between SAS 15.0 and SAS 16.0* SAS releases covered by this note
The version of the SAS installed can be displayed with the command:
sasversion
This version (16.0.0): xmmsas_20170112_1337
Last public version (15.0.0): xmmsas_20160112_1832
* URLs
SAS pages at the XMM-Newton SOC: http://www.cosmos.esa.int/web/xmm-newton/sas-news
http://www.cosmos.esa.int/web/xmm-newton/sas
XMM-Newton calibration information:
http://www.cosmos.esa.int/web/xmm-newton/calibration*Summary of important changes
The main improvements of this release are:
- SAS 16 has been compiled with the GNU C/C++ compiler collection GCC 6.2.0, including gfortran 6.2,
used for compilation of the SAS fortran code instead of the so far used commercial NAG Fortran compiler.
This change implied as well adopting the newest C++ and Fortran coding standards.
- The new task evqpb creates for any given EPIC Full Frame science exposure an event list containing the associated
quiescent particle background (QPB). The task extracts it from the Filter Wheel Closed data (FWC).
This instrumental background can be used for correcting spectra or images.
- The new metatask edetect_stack performs standardized EPIC source detection on overlapping fields of
different observations (also Mosaic Mode ones). It is still in experimental stage, but it is expected to be the basis for a future catalogue of
stacked observations with XMM-Newton.
- The new task implotregions produces EPIC thumbnail images (PNG, GIF) showing selected source
and background extraction regions.
- The task epxrlcorr, performing corrections related to EPIC X-ray loading has been upgraded,
optionally providing
diagnostic output images. They can be used as visual tools to decide whether an observation
is affected by X-ray loading.
- The task ebkgreg, introduced in SAS 15, determining the most suitable position of a circle region
to get the background estimation of any
source in an EPIC image, has been upgraded to work also with MOS data.
- The metatask eslewchain, in charge of Slew Data reduction, includes now source detection.
- The task rgsrmfgen, calculating the RGS response matrices, offers now a new (optional)
RGS effective area correction, aiming to bring a quality improvement in the cross calibration between RGS1
and RGS2, first and second order.
- The new task rgsimageforbadpixfind is ancillary to the implementation of an alternative
for RGS bad column finding, using the MOS task embadpixfind. This method is recommended only in case the user suspects that
the profile of a bright emission line is distorted due to the false detection of a hot column.
- The esas collection of tasks for extended source analysis, is now fully coded in F90
(no F77 code included anymore). This
is an important step for making it fully compliant with the rest of the SAS S/W. expected by the next SAS release.

This version is released in two 64-bit binary versions for Linux (RHEL 6.8 and Ubuntu 16) and two for MacOs (Yosemite and El Capitan).
The versions released have been tested to run correctly on several other platforms (we provide some libraries where
necessary together with the distribution).
As repeateadly announced, no 32-bit binary versions are released anymore.

ChangeLog
Version 2.30 - 2016-09-05 (RDS)
----------------------
src/asmooth_mod.f90 - changed to dfftw from sfftw in convolveByFft
to resolve problems with GCC 6
Version 2.29 - 2009-05-01 (MAS/LUX)
----------------------
- The new DEPENDency on fitsutils is added (1.0) and that on ssclib is upgraded to 4.8, to follow the change of the place of FITS-related libraries.

ChangeLog
Version 4.37 - 2016-09-06 (AI)
---------------------------------
- (src/attcalc_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 4.36 - 2016-07-20 (AI)
---------------------------------
+ (src/attcalc_mod.f90) compatibility changes with gfortran applied.
The Bmatrix is passed to C++ with a wrong array descriptor elements (dtype and triplet).
Only if we create the local variable matrix, we can pass the right values to C++. Not clear
why this is happening, we have to keep an eye on it.
The OAL_toEulerAngles subrotutine has to be called with the matrix transpose.
Otherwise, the C++ function handle the matrix elements in the wrong order. We
have a similar effect in rgslib(euler321_mod.f90) module. This problem also appears in
eexpmap package (the code is duplicated...)
+ (src/Makefile) gfrotran preprocessor macros added.
Version 4.35 - 2016-07-15 (AI)
---------------------------------
+ (src/attcalc_mod.f90) gfortran compatibilty changes.
Version 4.34 - 2015-08-25 (RDS)
---------------------------------
+ (src/attcalc_mod.f90): Changed the use of the psi euler angle such that
it subtracts rather than adds. This is only valid if
the BORESIGHT CCF contains PSI with a changed sign
(SCR-7265)

ChangeLog
Version 1.3.3 - 2016-12-01 (AI)
------------
+ (src/attfilter.cc) isnan extern macro removed.
Version 1.3.2 - 2010-04-01 (AI)
-------------
+ (src/attfilter.cc) The data filter expression in "cut" method was created using
the "toString" to convert start and stop time to strings variables. This "toString"
method truncate the variable so we are losing time due to this conversion. We have
changed "toString" method by double+stringstream definition.

ChangeLog
Version 1.40 - 2016-09-06 (AI)
--------------------------------
- (src/badpixfind_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 1.39 - 2014-04-08 (EC)
--------------------------------
- moved test/*.NEW to testprods/badpixfind_data
- removed unused binary data from test/

ChangeLog
Version 0.7.2 - 2016-10-28 (JVP)
-----------
+ Documentation updated
Version 0.7.1 - 2016-07-20 (JVP)
-----------
+ Documentation updated
Version 0.7 - 2016-06-22 (JVP)
-----------
+ (src/ebkgreg.cc - In addition to PN, MOS1/2 cameras are also covered by this task.
src/ProcSrcList.cc - Background extraction region is CIRCLE, or ANNULUS only for MOS1/2 in
src/Bkgreg.cc SmallWindow mode (PrimePartialW2/3) and the source is in the
src/Bkgreg.h central CCD (CCDnr = 1). In this case the annulus has always the same size
src/Lookupradius.cc and it covers the external CCDs, but enclosing the central CCD into the inner
src/Lookupradius.h radius of the annulus. Thus no counts from the central CCD are taken
config/ebkgreg.par into account for the background estimate.
- Include instrument label: PN, M1, M2 in the Source List columns
- Three new columns included in Source List:
- Background extraction region shape: CIRCLE or ANNULUS
- *_RAD1 ( = Circle radius or inner radius for Annulus)
*_RAD2 ( = 0 for Circle or outer radius for Annulus)
- New output parameters for RAD1 and RAD2 (arcsec and detector units)
- Pixel size set depending on the EPIC camera (pixsizePN = 4.18, pixsizeM1/2 = 1.10)
Version 0.6.2 - 2015-12-21 (JVP)
-----------
+ No background region is produced if the background extraction radius is less than 3 pixels

ChangeLog
Version 4.27.3 - 2016-12-03 (IT)
--------------
+ Removed debugging comments from the code after testing v4.27.2.
+ Updated documentation: Parameter withoffsets=yes (obsolete
eident offsets) yields a warning; no other effect anymore.
Version 4.27.2 - 2016-11-23 (IT)
--------------
+ New algorithm to determine the subimages, in order to avoid
memory leaks which could lead to a large number of spurious
detections with the gfortran compiler. Tentatively removed the
obsolete support of eident offsets. Test version.
Version 4.27.1 - 2016-10-24 (IT)
--------------
+ ebox_io.f90: fixed an old bug in the calculation of the degrees
of freedom of multiple observations, used for the equivalent
likelihoods per instrument and image. Has neither affected single
observations nor summary lines of the output table. SPR-7400.
Version 4.27 - 2016-09-30 (IT)
--------------
+ Parameter constraints: changed lower limit of parameter ecf
from 0.001 to 0.0. Purpose: Fluxes can be set to zero (e.g. by
edetect_stack), if no ecfs are defined.
+ Number of detections in output list as informational output and
new fits keyword NDETECT. Minimum detection likelihood: LIKEMIN.
Pixel size: XBINSIZE, YBINSIZE.
+ ebox_io.f90: Write summary line also if only one instrument is
active. Adjusted tests.
+ edetect_io_box.f90: subimages via imagebuffersize: shift
reference point by -16 in x and in y (as in emldetect's
edetect_io_ml.f90) in order to make sure that subimages have
zero values in their edge rows and columns. "Chains" of spurious
detections between the subimage and the image edge may arise
otherwise.
+ edetect_io_box.f90: Made determination of imbuff more concise.
+ DEPEND: updated to emldetect-7.0
+ cf. SCR 7399: source detection on stacked observations
Version 4.26 - 2016-07-18 (AI)
--------------
+ gfortran compatibiliy changes applied.
Version 4.25.2 - 2016-04-25 (IT)
--------------
+ Throw error "TooManyBands" if images for more than six energy
bands and / or more than six pimin/pimax are provided. Documented
error message and maximum number of bands and corrected typo in
the documentation that resulted in a scrambled line on the
"obsmode" parameter (SPR-7358 and SPR-7359).
Version 4.25.1 - 2015-10-01 (IT)
--------------
+ Input data in detector coordinates: Use CDELT1L, CDELT2L
header keywords instead of CDELT1, CDELT2 in order to determine
the pixel size. For pn and MOS images in detector coordinates,
CDELT1/2 have different units.

ChangeLog
Version 4.11.1 - 2016-11-14 (AI)
------------
+ (src/eexpmap_mod.f90) Initialization to null (at declaration statement)
of those pointer that will be used by the CAL to avoid seg fault in gfortran.
Version 4.11 - 2016-07-20 (AI)
------------
+ (src/eexpmap_mod.f90) compatibility changes with gfortran applied.
The Bmatrix is passed to C++ with a wrong array descriptor elements (dtype and triplet).
Only if we create the local variable matrix, we can pass the right values to C++. Not clear
why this is happening, we have to keep an eye on it.
The OAL_toEulerAngles subrotutine has to be called with the matrix transpose.
Otherwise, the C++ function handle the matrix elements in the wrong order. We
have a similar effect in rgslib(euler321_mod.f90) module.
+ (src/Makefile) gfrotran preprocessor macros added.
Version 4.10.1 - 2015-12-16 (RDS)
------------
+ test/expo_refima.fits.gz:
Changed the template test exposure map back to give the same result as
the calculation with the old boresight file (XMM_BORESIGHT_0015)

ChangeLog
Version 2.20 - 2016-08-26 (EO)
------------
+ src/Makefile: Added code to proccess Fortran preprocessor
directives.
+ DEPEND: Updated to sas-1.573 that implements new policy for
preprocessor compilations.
Version 2.19.1 - 2016-08-25 (EO)
--------------
+ src/Makefile: Removed ifeq to set F90FLAGS depending on Fortran
compiler. This was left unchanged in 2.19.
+ DEPEND: sas 1.572 is required to build properly this version.
Version 2.19 - 2016-08-24 (EO)
------------
+ src/efftplot_mod.f90: Added preprocessor directive ifdef
NAGf90Fortran before use f90_unix_proc to allow to load this NAG
Frotran supplied module only when NAG Fortran compiler is used.
This change is effective only after SAS configure includes
preprocessor capabilities (after sas-1.571). Otherwise a similar
functionality must be available in src/Makefile.
For NAG Fortran compiler, the inclussion of preprocessor switch -fpp
unveiled a syntax error in original line 324, a blank line after
"window ",&
which has been removed.
Version 2.18.2 - 2012-19-04 (NW)
------------
The coordinates given in the header of the output of efftplot
are now displayed to .00 for RA and .0 for Dec. even when the
(arc)seconds are inferior to 10, as requested in SPR 6714.

ChangeLog
Version 8.8 - 2016-09-08 (AI)
-------------
+ (src/emenergy_mod.f90) Initialization to null of all pointers that
are passed to C++ (Dope vectors). If we do not initizialize the
pointers, we get seg fault at run-time with gcc-6.2.
Version 8.7 - 2015-05-13 (AI)
-------------
+ Documentation updated. SOC-SPR-7226 fixed

ChangeLog
Version 8.7 - 2016-09-07 (AI)
-----------
- (src/emevents_mod.f90) More pointers initialized to null...
Version 8.6 - 2016-09-06 (AI)
-----------
- (src/emevents_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 8.5 - 2016-07-18 (AI)
-----------
- gfortran compatibility change
Version 8.4 - 2006-01-27 (JB)
-----------
- Set y_size_window to 1025 in compressed timing mode.

ChangeLog
Version 5.10 - 2016-09-06 (AI)
-------------
- (src/emframes_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 5.9 - 2016-07-18 (AI)
-------------
+ (src/emframes_mod.f90) gfortran compatibility change applied.
Version 5.8.1 - 2010-03-10 (JB)
-------------
- Fix SPR 6600: problem with OBSID 0611180101 which occurred in timing mode
when most frames were lost to counting mode.

ChangeLog
Version 7.0.3 - 2016-11-08 (IT)
-------------
+ fftpsf.f90: Sloppy indexing caused occasional segmentation
faults, in particular if emldetect is compiled with gfortran.
Also make sure that arrays are initialized with 0 for gfortran
compatibiliy. Fixes SPR-7405.
Version 7.0.2 - 2016-10-26 (IT)
-------------
+ typo - sorry
Version 7.0.1 - 2016-10-24 (IT)
-------------
+ eml_io.f90: fixed an old bug in the calculation of the degrees
of freedom of multiple observations, used for the equivalent
likelihoods per instrument and image. Has neither affected single
observations nor summary lines of the output table. SPR-7400.
+ documentation updated
Version 7.0 - 2016-09-30 (IT)
------------
+ new parameter "withrawrows" for processing of stacked images
(expert-only use):
Include additional rows in the output source list per image in
which the source was detected, in case the source position is
within the detection mask of the observation / image
set. Additional rows are identified by a modified ID_INST,
composed of the observation ID followed by the instrument
number. ID_INST becomes double precision displayed as a long
integer in this case and the usual integer in the default
case. Store EXP_IDs in new keywords EXP_ID_INn with n giving the
first digits of the modified ID_INSTs. Consequences: New global
variable "exp_id", argument to get_files. Flag "rawflag" in
subroutine mlout.
+ Parameter constraints: changed lower limit of parameter ecf from
0.001 to 0.0. Purpose: Fluxes can be set to zero
(e.g. by edetect_stack), if no ecfs are defined.
+ Header keywords HRPNDEF, HRM1DEF, HRM2DEF added: will be read by
edetect_stack.
+ emldata.f90: increased max_events and max_sou
+ edetect_io_ml.f90: increased max_ins and max_ima
+ emldetect_mod.f90: throw error message, if number of photons
exceeds max_events (-> make it clearer to users)
+ edetect_io.f90: same for max_ins
+ eml_io.f90: number of detections in output source list as new
informational output at high verbosity level and header keyword
NDETECT. Minimum detection likelihood: LIKEMIN. Pixel size:
XBINSIZE, YBINSIZE (to be consistent with eboxdetect headers).
+ eml_io.f90: check whether coordinate columns are NULL.
Motivation: allow to use srcmatch lists as input source lists in
which X_IMA Y_IMA are NULL and RA, DEC non-NULL.
Caveat: emldetect sorts the input list according to its SIGMA or
LIKE or DET_ML or WCORR column. srcmatch input lists remain
unsorted thus.
+ eml_io.f90: Show a warning if none of these four likelihood
columns is found in the input list.
+ emldata.f90: changed dimension of hrdef and xiddef from
(...,max_ins) to (...,3): pn, m1, m2
+ emlfit.f90: Runtime improvements for large arrays (loops).
+ fftpsf.f90: More concise and thus faster version of the
re-binning. Source parameters may change slightly compared to
the previous version because of the limited number precision.
+ edetect_io_ml.f90: Made determination of imbuff more concise.
+ config/emldetect.par: sort parameters for better readability;
separate single values from lists, mandatory from obsolete.
+ Cleaned code in comments sections for better readability:
Removed old code versions of before ~2006 and debugging
"write"s. They can be still accessed in the archive.
+ cf. SCR 7399: source detection on stacked observations
Version 6.3 - 2016-09-08 (AI)
--------------
+ (src/edetect_io_ml.f90) Initialization of pointers using
"nullify" statement instead of using "=> null()" initialization
at pointer declaration. NAGWare 5.2 gives wrong array sizes for ChipX,ChipY,
theta and phi pointers if we use the "=> null()" statemtent, but it gives
correct array sizes if we initialize the pointers with "nullify()" statement.
With gcc-6.2 both initizalization gives correct results.
Version 6.2 - 2016-09-07 (AI)
--------------
+ (src/eml_io.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 6.1 - 2016-07-18 (AI)
--------------
+ (src/eml_io.f90) gfortran compatibility changes applied.
Version 6.0.5 - 2016-04-25 (IT)
--------------
+ Throw error "TooManyBands" if images for more than six energy
bands and / or more than six pimin/pimax are provided. Documented
error message and maximum number of bands (cf. SPR-7358 on
eboxdetect).
Version 6.0.4 - 2016-01-25 (IT)
------------
+ Documentation: Expanded description of fluxes and ECFs
(SPR-7306). Re-structured the description section.

ChangeLog
Version 8.76 - 2016-07-15 (MJF)
-------------------------------
- (src/epchain): added parameter "withxrlimage" (task "epxrlcorr", default "N")
that controls creation of a diagnostic X-ray loading image image (SCR-7114)
- (config/epchain.*): as above
- (doc/epchain_description.tex): as above
- (DEPEND): needs `epxrlcorr-1.0'
Version 8.75 - 2015-04-01 (MJF)
-------------------------------
- (src/epchain): allow input list of offset maps (instead of the ones
identified by the OAL, or sometimes not identified ;-)
This is useful in the case when the offset maps were dumped before or after
the observation with different ObsID (e.g., early mission data, slews, ...)
Moreover, this new feature enables calibration work without changing contents
of ODF/SDF data or CCF files. The new interface is used in task "epreject".
This is controlled via new boolean parameter "withoffsetlist" (default "N")
that takes precendence over "withoffsetmap" if set to "Y": it opens the file
specified in new parameter "odilist" and reads the ODI name to be used
from there. The input list is an ASCII with 2-digit CCD number followed
by a blank and then the path to the offset map for that CCD (there can be
more than one offset map in that file so that the input file can be used
for the whole observation processing; only the first entry for a particular
CCD is used; the order does not matter). (SCR-7284)
- (config/epchain.*): as above
- (doc/epchain_description.tex): as above
- (DEPEND): needs `epreject-5.16'

ChangeLog
Version 6.50.1 - 2016-10-27 (RDS)
----------------------------------
- (src/epevents_mod.f90) Initialization to zero of ipat4 array
(SPR-7401)
Version 6.50 - 2016-00-06 (AI)
----------------------------------
- (src/epevents_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 6.49.10 - 2016-01-24 (MJF)
----------------------------------
- (src/epevents_mod.f90): complete change to avoid I*1 overflow
to allow compilation with NAG-6.0 compiler on Mac-OSX

ChangeLog
Version 8.109.1 - 2016-10-09 (MJF)
----------------------------------
- (src/epframes_mod.f90): disable dummy HK extensions at compile time
Version 8.109 - 2016-09-06 (AI)
---------------
- (src/epframes_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 8.108.1 - 2016-08-26 (EO)
---------------
+ src/epframes_mod.f90: Due to the introduction in the SAS configure
of the "-cpp" option for Fortran code preprocessing, the compiler is
more strict with syntax rules.
The line 6066 is a comment line but contains a "\" at the end of the
line. When this code is fed to the gfortran compiler with the -cpp
option, the preprocessor interprets it as a continuation sign, hence,
the following line, which is an "if ... then" statement, is not taken as
such. The consequence is that the "endif" at 6660 is interpreted
as orphan and a syntax error is issued. By removing the "\",
everything is fine.
Version 8.108 - 2016-07-20 (MJF)
--------------------------------
- (src/epframes_mod.f90): remove obsolete statement "use f90_unix_env"
- (src/epframes_mod.f90): added dummy HK extensions output for interface
development of intra-exposure corrections based on HK (SCR-7312)
Version 8.107 - 2016-07-19 (MJF)
--------------------------------
- (src/epframes_mod.f90): check E_Cx_IVDDA (related to NCR-138)
- (src/epframes_mod.f90): gfortran compatibility change related to environment
variable SAS_JUMP_TOLERANCE: getenv() -> get_environment_variable()
- (src/epframes_mod.f90): compare CAL and enviroment JUMP_TOLERANCE values
Version 8.106 - 2015-10-14 (RDS)
--------------------------------
- (doc/epframes_description.tex): improved description of JUMP tolerance
(SPR-7056)

ChangeLog
Version 5.17 - 2016-05-06 (MJF)
-------------------------------
- (src/epreject_mod.f90): test on existence and completeness of offset map
list introduced in previous version. Write also keyword OFSTFILE to EXPSOURE
extension as the used offset map may originate from a different ODF.
Version 5.16 - 2015-03-24 (MJF)
-------------------------------
- (src/epreject_mod.f90): allow input list of offset maps (instead of the ones
identified by the OAL, or sometimes not identified ;-)
This is useful in the case when the offset maps were dumped before or after
the observation with different ObsID (e.g., early mission data, slews, ...)
Moreover, this new feature enables calibration work without changing contents
of ODF/SDF data or CCF files.
This is controlled via new boolean parameter "withoffsetlist" (default "N")
that takes precedence over "withoffsetmap" if set to "Y": it opens the file
specified in new parameter "odilist" and reads the ODI name to be used
from there. The input list is an ASCII with 2-digit CCD number followed
by a blank and then the path to the offset map for that CCD (there can be
more than one offset map in that file so that the input file can be used
for the whole observation processing; only the first entry for a particular
CCD is used; the order does not matter). (SOC/SAS-SCR-7284)
- (config/epreject.*): as above
- (doc/epreject_description.tex): as above

ChangeLog
Version 1.10 - 2016-09-08 (AI)
----------------------
- (src/econvolverprep_mod.f90) Initialization to null of all
pointers that are passed to C++ (Dope vectors). If we do
not initizialize the pointers, we get seg fault at run-time with gcc-6.2.
Version 1.9 - 2009-02-02 (IMS/JBO)
----------------------
- Originally developed by IMS/JBO on 2006-10-19.
- Upgraded ssclib dependency to 4.0.
- All logical(bool) types changed to logical.
- Fixed bug in which numBands was being obtained from some public declaration in a used module.

ChangeLog
Version 1.7 - 2016-09-07 (AI)
-----------
- (src/evigweight_mod.f90) Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 1.6 - 2003-02-28 (JB)
-----------
- Changed test harness to follow new QUANTUMEF in testccf 1.102.

ChangeLog
Version 1.21 - 2016-07-15 (AI)
-------------------------------
+ (src/lcplot_mod.f90) "label" variable renamed (this word is
not allowed in gfortran).
Version 1.20.1 - 2013-03-05 (NW)
-------------------------------
A check for NaN values is now included and a warning is called if
all of the data points have values=NaN. The PSF FRAC. INCLUDED
length has also been reduced to make the output plot clearer. The
documentation has been updated to include the new warning.

ChangeLog
Version 0.6 - 2016-07-18 (AI)
-------------
- (src/ingestsrcnames_aux.f90) grfrotran refractoring: Usage of an optimal paramater as part of an allocatable variable definition is not possible in gfortran.
- (src/makethumbs_aux.f90) gfrotran refractoring: leading blanks spaces removed properly.
- (test/testmakethumbssimple) test comparasion on (X,Y) pixels values rounded to the fifth decimal place to avoid specific platform compiler representations in perl.
Version 0.5 - 2012-10-10 (MAS)
-------------
- Added a subroutine allocateSrcPrm() in ingestsrcnames_aux.f90 to make it more robust, particularly for the types of the column other than Int32.

ChangeLog
Version 1.10 - 2016-09-07 (AI)
-------------
+ (src/omgprep_mod.f90) Initialization to null of all pointers
that are passed to C++ (Dope vectors). If we do not initizialize
the pointers, we get seg fault at run-time with gcc-6.2.
Version 1.9.1 - 2016-01-12 (AI)
-------------
+ (src/utility_mod.f90) Memory allocation error using NAG fortran
6.2 fixed.

ChangeLog
Version 1.4 - 2016-06-30 (AI)
-----------------------------
+ (src/omthlcplot_mod.f90) gfortran compatibility changes.
"label" variable name is not allowed in gfortran.
Version 1.3 - 2002-09-12 (NW)
-------------------------------
Changed the keyword warning statement in the documentation to
include the values of the HDUCLASS attributes, to close SPR-2973
(Wrong reference to data set attributes in doc). Also changed the
figure in the documentation to .eps (was .ps) to avoid warnings
during the distribution check.

ChangeLog
Version 3.18 - 2016-09-07 (AI)
--------------
+ Initialization to null of all pointers that are passed
to C++ (Dope vectors). If we do not initizialize the pointers,
we get seg fault at run-time with gcc-6.2.
Version 3.17.2 - 2007-09-13 (AI)
--------------
+ Single Readout Node change: Keep the same array size for ccdnode and
rawx variables when duplicate pixles are found.

ChangeLog
Version 1.580.1 - 2017-01-12 (EO)
---------------
+ configure_install: Fix perlsed when SAS_PERL is selected.
Version 1.580 - 2017-01-10 (EO)
-------------
+ configure_install: Function identify_perl enhanced to handle
hardcoded "/usr/local/bin/perl" she-bangs, perl scripts with
non-printable hidden characters and additional blank space between
she-bang "#!" and the perl binary location.
Version 1.579 - 2016-12-16 (EO)
-------------
+ configure_install:
- Fixed identify_perl and change_perl functions
to improve detection and change of the perl shebang.
- Better identification of errors.
Version 1.578 - 2016-11-17 (EO)
-------------
+ configure.in:
- Removed "-Wc,-fno-common" link option to be passed to
GNU g++ linker on Mac OS X. This is not used in Linux and prevented the
use of named common blocks from different objects that will form part of
a shared library.
Version 1.577 - 2016-10-28 (EO)
-------------
+ configure.in: Added checking on whether GFORTRAN version is greater
or equal to 5 or not. If not issue WARNING notice on some Fortran
2003 standards will not be supported, e.g. IEEE_ARITHMETIC module
used in omcat.
Version 1.576 - 2016-10-13 (EO)
-------------
+ configure.in: Reinstated missing F90VERSION variable.
+ sas.environment.in: Replaced GFORTRAN_VERSION by GFORTRANVERSION as
this is now the new name of the old variable.
+ packagedetails.html.in: Replaced GFORTRAN_VERSION by GFORTRANVERSION
as this is now the new name of the old variable.
Version 1.575 - 2016-10-11 (EO)
-------------
+ configure.in: Fixed definition of Makefile variable F90.
Version 1.574 - 2016-10-10 (EO)
-------------
+ configure.in:
- No Fortran compiler by default. Both USENAGFORTRAN and USEGFORTRAN
are set to "no" by default. Therefore, we must use either
--with-nagfor -> NAG Fortran compiler
--with-gfortran -> GNU Fortran compiler
- f95 is not tested anymore to avoid confusion of old f95 from NAG
with soft link to gfortran.
- NAG Fortran compiler is searched as nagfor.
- NAG Fortran compiler license availability is tested when the NAG
Fortran compiler is set to use.
- Removed -Wall for gfortran.
+ test/tesconfiguremake: The configure now runs with the same options
used in the reference build.
+ AKA: 16.0.0 => Start of release mode for SAS 16.0.0.
Version 1.573 - 2016-08-26 (EO)
-------------
+ configure.in: Given the consequences on source code syntax
produced by using -fpp (NAG) or -cpp (GNU) preprocessor switches
on all Fortran compilations, we have decided to remove them from
SASF90FLAGS and SASFFLAGS.
Just for reference of what we have found so far here are two cases
which we have observed:
- Blank lines can not be used between continuation lines (ended
by &).
- Standard Fortran comment lines (started with !) can not be ended
with character "\" because this is the preprocessor character used
to continue preprocessor lines (those started with #).
Therefore, Fortran preprocessor directives MUST be processed by
means of code inlcuded ONLY in the individual source Makefiles
(src/Makefile).
A good example is the following, that is used to allow to process
the use of the "f90_unix_proc" module only by the NAG Fortran compiler:
ifeq ($(USENAGFORTRAN),yes)
F90FLAGS += -fpp -DNAGf90Fortran
else
F90FLAGS += -cpp -DGFORTRAN
endif
This code must be placed after the statement
include $(SAS_DIR)Make.include
Version 1.572 - 2016-08-25 (EO)
+ configure.in: Changes to this file introduced in previous version
were not made effective due to forgeting to run the update-configure
script.
Version 1.571 - 2016-08-24 (EO)
-------------
+ configure.in: Added preprocessor switches to both NAG and GNU
Fortran compiler compilation flags, SASF90FLAGS, to allow for
processing conditional compilation preprocessor directives
embeded in the code, as for example
#ifdef NAGf90Fortran
use f90_unix_proc
#endif
which will load NAG supplied module f90_unix_proc only when NAG
Fortran compiler is used (when the macro NAGf90Fortran is included
in F90FLAGS).
The preprocessor switch is also added to SASFFLAGS.
Given that NAG Fortran compiler is still the default Fortran
compiler, the default compilation flags SASF90FLAGS and SASFFLAGS
include now the macro -DNAGf90Fortran.
This change makes innecessary any possible changes included in local
Makefile.
Version 1.570 - 2016-08-23 (EO)
-------------
+ configure.in: Added -DGFORTRAN to SASFFLAGS to avoid missing this
macro when building .f Fortran programs, e.g. saltec.
Aligned the SASF90FLAGS and SASFFLAGS used for Mac OS X with these
for Linux. This operation implied to add -Wall, -fno-range-check and
-DGFORTRAN to SASF90FLAGS and -Wall, -fno-range-check and -DGFORTRAN
to SASFFLAGS.
Version 1.569 - 2016-08-23 (EO)
-------------
+ bin/f90depend: Looking for Fortran compiler dependencies, exclude
any NAG Fortran supplied modules (f90_*) when NAG Fortran compiler
is in use. This situation occurs when the NAG Fortran "lib"
subdirectory (which is part of the NAG Fortran installation) is
included in the list of include directories passed to the script as
first argument ($(F90INCFLAGS)). This variable is defined in the SAS Makefile
and includes the NAGWare "lib" subdir only when USENAGFORTRAN is set to "yes".
Script documentation updated.
Version 1.568 - 2016-07-12 (RDS)
-------------
+ bin/sastaskhdr_nag, bin/sastaskhdr_gfortran:
- Split the sastaskhdr script into two parts so that the
module names are set as:
NAGf90Fortran: $1_mod_MP_$1
gFortran: __$1_mod_MOD_$1
+ Make.include.in:
uses one of the two sastaskhdr scripts depending on the compiler
in use
Version 1.567 - 2016-06-29 (EO)
-------------
+ configure.in:
- Added -DGFORTRAN to SASCXXFLAGS when -with-gfortran is used (pending change
from previous changes to configure.in).
- Added -fno-range-check to SASFFLAGS to support gfortran usage.
Version 1.566 - 2016-04-06 (EO)
-------------
+ configure.in:
- Added GFORTRAN macro to CXXFLAGS and SASCXXFLAGS
to include specific defintions when the GNU Fortran compiler
is used (--with-gfortran).
- Cleaning up of obsolete code.
- Removed g77 and libf2c.
- For Mac OS X : Added -bind_at_load option to build shared
libraries.
+ configure_install: Added missing "\" before $platform in setsas.csh.
Version 1.565 - 2016-02-09 (EO)
-------------
+ AKA = 16.0.0-devel
+ configure.in: 16.0.0-devel
Version 1.564 - 2015-12-11 (EO)
-------------
+ configure.in: Cleaned from obsolete code.
+ Make.include.in: Changed sed field separators from / to ? to fix the
problem of replacing -sasperl- by $$PT, given that $$PT
is a path and includes / as directory separators.

ChangeLog
Version 4.74.1 - 2016-11-30 (AI)
--------------
+ (src/selcore/NumericFunctors.cc) Removed an isnan extern macro that was giving an
error in MAC OSX (gcc 6.2) compilation.
Version 4.74 - 2016-30-08 (AI)
--------------
+ (src/selcore/Evaluator.cc) Conditional expression in input attibute of
lexinit method call removed (gcc-6.1 throws a run time error) and
now the contional expression is evaluated outside the method call.
Version 4.73 - 2015-13-03 (AI)
--------------
+ src/selcore/VectorFunctors.cc: The inner product of the median spacecraft attitude and the
current spacecraft attitude vectors can end up with a value greater than 1.0 (error propagation).
If this is the case, the ConeFilterLogic is wrong and the attitude is discared from the GTI returned by attfilter.
The result of the inner product is checked and if it is greater than one, the value is reseted to 1.0.

ChangeLog
Version 1.95 - 2016-04-30 (AI)
------------
+ (src/main.cc task_c.cc) gfortan compatibility changes
Version 1.94 - 2016-03-18 (EO)
------------
+ DEPEND: Added dependency on sasperl to fix a failure to find
SAS::Error perl module while running the test runperltask.
This dependency appeared when building a reduced set of packages
where sasperl package is not included.
Version 1.93 - 2015-12-04 (EO)
------------
+ src/main.pl: The sha-bang for perl (/usr/local/bin/perl) is now the variable
-sasperl-, which, like other variables in this file which are
eclosed by "-", it is replaced at build time by the proper value.
-sasperl- is replaced by the PERL determined by the SAS configure.
PERL can be either equal to a SAS_PERL value defined by the user or
determined among several possible perl installations:
/usr/bin/perl, /usr/local/bin/perl, /sw/bin/perl and /opt/local/bin/perl,
the last two only valid for Darwin.

ChangeLog
Version 1.136.3 - 2016-10-27 (EO)
---------------
+ leapsecdata/leapsecs.dat: Added 1 sec to TAI-UTC:
TAI-UTC = 37s (From 2017-01-01 0h UTC).
IERS (Int. Earth Rotation and Ref. Syst. Service ) Bulletin C 52,
Observatoire de Paris, 6 July 2016
(services.iers@obspm.fr/http://hpiers.obspm.fr/eop-pc).
Version 1.136.2 - 2016-09-09 (EO)
---------------
+ src/STime.h: Builds on venus(IFCA, Santander) made with GNU C/C++
5.3.1 demonstrated that even with this version, the default C++ 2011
is not in effect. As for 4.8.5, 5.3.1 requires option -std=c++11 to
understand C++ 2011. Therefore, GNUC variable must be >= 6 to apply
constexpr.
Version 1.136.1 - 2016-08-23 (EO)
---------------
+ src/STime.h: Amended to allow also for GNU C++ version greater or
equal to 5 (__GNU__ >= 5).
Version 1.136 - 2016-08-22 (EO)
-------------
+ src/STime.h: In C++ 2011, the float and double are not
of integral or enumeration type, therefore the initializer of a class must use
constexpr instead of const. C++11 is the default (-std=c++11 or
-std=gnu++11) since GNU C/C++ version 5. Thus, to keep code compatible
with earlier versions of GNU C++, the constexpr is selected only if
__GNUC__ macro is greater than 5.
Version 1.135 - 2016-07-21 (AI)
-------------
+ Roll-back to major number 1.XXX. Code same as version 2.0.
Version 2.0 - 2016-07-21 (AI)
-------------
+ (test/testf90cxx.cc) gfortran compatibility regarding array
descriptors applied.
Version 1.134 - 2016-06-30 (AI)
-------------
+ (src/f90cxx.h): Dependecy to libgfortran.h removed. Define GFC_DTYPE_TYPE_SHIFT
statement copied from libgfortran.h to f90cxx.h
Version 1.133 - 2016-06-29 (AI)
-------------
+ Version 1.133 identical to 1.2
Version 1.2 - 2016-06-29 (AI)
-------------
+ src/f90cxx.h: New Dope (Array descriptor) definitions compatible
with gfortran compiler.
Version 1.132 - 2016-03-22 (EO)
-------------
+ src/cfortran.h: Until now we have used cfortran.h version 4.1
1990-1998, from Burkhard Burow (burow@desy.de), to deal with
the interface between C (C++) and Fortran. That version supported
NAG Fortran but was not prepared to work with GNU Fortran.
We have looked for an updated version of this file that could be
able to work with GNU Fortran. That updated version is version 4.4,
which is an improved version of the original version 4.1 but
has been maintained by HEASARC Kevin McCarty et al, at least until 2008.
+ src/f90cxx.h: Removed obsolete code that was enabled only if SUNCC
and SUNF90 macros were defined previously. These definitions were
used to support using Sun C/C++ and Sun F90 Fortran compilers.
The definition of NAGF90 and GNUCC, within the file itself was absurd.
The only solution to switch on/off specific pieces of code is to
do it through the configure.
After checking in the SAS configure, the only macro defined when NAG Fortran
is used is NAGf90Fortran, also used to select specific code in cfortran.h.
There is no similar counterpart for GNU Fortran.
To be able to enable the definitions of f90_io_init and f90_io_finish, only
when NAG Fortran is used, we have set then within a block of preprocessor
#ifdef-#endif block. The remaining definitions are left enabled always,
either for NAG Fortran or GNU Fortran.
Further testing will tell us how we have to modify this and possibly other
files in this package (and possibly others), to be able to work with both
compilers
+ test/testf90cxx.cc: f90init and f90finish enabled only if NAGf90Fortran
macro defined.
Version 1.131 - 2015-11-23 (AI)
---------------
+ Refractoring and renaming of ranlux.f F77 code to rluxgo.f to solve a weird
problem in Mac OS X 10.11 (Yosemite) that was unable to generate random numbers
producing a segmentation fault.