The current version of the UNILIB library results from corrections and improvements of Version 2.09, which is documented here, except for:
The FORTRAN 77 extensions STRUCTURE and RECORD are replaced by FORTRAN 90 TYPE declarations. The structure of the derived types have been checked against version 2.20.
Version 2.09 has been compiled and delivered for DecAlpha(VMS), PC(MS-Windows), HP9000(HPUX) and SPARC(SunOS) platforms on July 1, 2002.
- From v2.24 to v3.00>
restructuring of the external magnetic field source code.
removal of the Tsyganenko models (see FAQ G-10)
Added UNILIB/IRBEM API routines
Added IGRF_Coeff_to_BlockData tool to autogenerate the
- From v2.23 to 2.24>
addition of model DGRF/IGRF 2020 in
- From v2.21 to 2.23>
addition of model DGRF/IGRF 2015 in
- From v2.20 to v2.21
addition of model DGRF/IGRF 2010 in
- From v2.09 to v2.20
Changes between these revisions are not fully documented yet
implementation of Tsyganenko 2001, 2004 and Alexeev Paraboloid models. (not documented yet)
Problems have been discovered in subroutine
um510()when the argument
kintis set to 4 (evaluation of DGRF/IGRF by the Kluge algorithm).
FORTRAN STRUCTURE and RECORD replaced by FORTRAN90
- From v2.05 to v2.09
Several small anomalies have been fixed.
- From v2.03 to v2.05
ut550()(coordinate transformation) has been corrected for an oversight affecting GSE coordinate system.
There is no version v2.04
- From v2.02 to v2.03
uxidl()has been created in order to allow the access to the library from IDL on UNIX platforms as well as MS-Windows computers. This subroutine provides an interface to several UNILIB routines.
Oversights have been corrected in a few subroutines relating to the argument lbint of subroutine
um510(), the computation of multiple L values with subroutine
ul220()and the accuracy of subroutine
The algorithm of subroutine
uf423()has been slightly modified such that, when some of the diagnostics of subroutine
um530()are generated, the Runge-Kutta step is nevertheless completely applied and new error codes are generated.
- From v2.01 to v2.02
An oversight, present in version 2.00 and 2.01, has been corrected in subroutine
um520(). Due to this oversight, the parameters of external field models (passed in the argument
param) were forced to their default values. This erroneous behaviour affects user applications using external magnetic field models except the Olson & Pfitzer quiet  model (
- From v2.00 to v2.01
The number of field line segments generated by subroutine
ud317()when tracing a magnetic drift shell has been increased by about 50%.
kflag(39)of common block
uc150is active and initialized to 1 by subroutine
ut990(). The argument is used to control, in subroutine
ua633(), the dependance of the IRI model either on the Sun spot numbers (default) or on the F10.7 radio flux.
TYPE(zgeo)mpos TYPE(zvec)mb INTEGER*4 kpar1, ktrl, ifail REAL*8 rpar2, eng, fct, rmass c CALL ZSUB (kpar1, rpar2, mpos, mb, fct, ifail) CALL UA636 (ktrl, eng, mpos, mb, rmass, ifail)
It includes the argument
mbcorresponding to the magnetic field vector at location
mpos. Note that the value of argument
mbdoes not affect the behaviour of subroutine
ul242()has been corrected for a lack of accuracy at low I.
Errors in the algorithm of subroutine
ud327()have been fixed and the synopsis of the subroutine have been changed. The new synopsis is:
C UD327 synopsis TYPE(zgeo) mgp1, mgp2, mgp3, mextr REAL*8 fct1, fct2, fct3, est INTEGER*4 ifail CALL UD327 (mgp1, mgp2, mgp3, fct1, fct2, fct3, mextr, est, ifail)
It includes the argument
estto return an estimation of the function. The errors affected the behaviour of the subroutine
ud315()which returns the mirror point with the lowest altitude on a magnetic drift shell.
Delivery of a PC/Linux version using the PGI Fortran compiler. Note that the g77 compiler do not support the STRUCTURE and RECORD statements.
- From v1.13 to v2.00
The new subroutines
uf417()have been created in order to replace the (always existing) subroutines
uf410(), respectively. This replacement should improve the drift shell tracing, specially in near-equatorial regions. FORTRAN programs using subroutine
ud310()can be adapted by the insertion of the following lines:
C to be included in the declaration part C TYPE(zlbl) mlab0 REAL*8 altmin C C to replace the calling sequence C CALL UD310 (fbm0, flm0, falt, knfl, ktyplus, ifail) C mlab0.lbmp = .TRUE. mlab0.llmi = .TRUE. mlab0.linv = .FALSE. mlab0.fbmp = fbm0 mlab0.flmi = flm0 CALL UD317 (mlab0, falt, ktyplus, altmin, ifail) C C note that knfl is ignored by UD317 C and altmin is an output argument C
Coordinate transformation to/from the Geocentric Solar Ecliptic coordinate system has been included in subroutine
The library documentation has been reviewed: for each argument of every subroutine, a tag have been added to clearly distinguish between input, output and modifiable arguments.
- From v1.12 to v1.13
The synopsis of subroutine
ut986()has been modified. FORTRAN programs using previous versions of the library can be adapted by the insertion of the following lines:
C to be included in the declaration part C REAL*8 bsun C C to replace the old calling sequence C CALL UT986 (gm, colat, elong, msun, re) C CALL UT986(gm, colat, elong, msun, re, bsun)
The algorithm of subroutines
uf428()have been reviewed and improved. Due to these modifications, the subroutines
ud310()have a much better behaviour than in version 1.10 or 1.11, especially near the magnetic equator region and at large L.
rethe help page T.07 - Which subroutines are mandatory? has been added in the library FAQ.
- From v1.11 to v1.12
An error in the FORMAT statements of the subroutine
um520()has been corrected.
Due to problems with some Fortran compilers (e.g. Microsoft PowerStation), the
DATAstatements of the block data
DGRFBDhave been directly included in the subroutine
um513(). The common block
DGRFhas been removed.
- From v1.10 to v1.11
Note: The version v1.11 has not been distributed.
kum533has been added to the common block
uc190to control the behaviour of subroutine
um533(). When the argument
kum533is set to a value less or equal to 0, the subroutine
um533()does not check if the current geocentric location is or is not beyond the magnetopause.
ut990(), the initialisation of common blocks
uc192has been modified in order to improve the precision of the library. The old and new values of the corresponding arguments are shown in the table below.
v1.10 and earlier
- From v1.07 to v1.10
Bugs in the coordinate transformation (subroutine
ut550()) have been fixed.
Note that the Postscript and the PDF versions of the documentation have been rebuilt.
There are no versions v1.08 and v1.09
- From v1.06 to v1.07
Bugs in the implementation of the external magnetic field models have been fixed (bug 02). The Tsyganenko T96 external magnetic field model has been included (
ext530()). The synopsis of subroutine
um520()has been modified. FORTRAN programs using previous versions of the library can be adapted by the insertion of the following lines:
C to be included in the declaration part C REAL*8 param(10) DATA param/ 10*0.0d0/ C C to replace the old calling sequence C CALL UM520(kext, amjd, dst, fkp, swd, swv, lbext, kunit, ifail) C param(1) = fkp param(2) = dst param(4) = swd param(5) = swv CALL UM520(kext, amjd, param, lbext, kunit, ifail)
- From v1.05 to v1.06
The ionospheric model IRI-90 is part of the distribution (
- Version v1.05
The version 1.05 is the first official version of the library.
To be determined
The table below shows the release date of the previous versions.