History¶
Current version¶
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.
Changes¶
- From v2.24 to v3.00>
restructuring of the external magnetic field source code.
removal of the Tsyganenko models (see FAQ G-10)
IDL
uxidl_.for
autogeneratedAdded UNILIB/IRBEM API routines
Added IGRF_Coeff_to_BlockData tool to autogenerate the
um513.h
file.- From v2.23 to 2.24>
addition of model DGRF/IGRF 2020 in
um513()
- From v2.21 to 2.23>
addition of model DGRF/IGRF 2015 in
um513()
- From v2.20 to v2.21
addition of model DGRF/IGRF 2010 in
um513()
- 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 argumentkint
is 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
The subroutines
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
The subroutines
ul225()
andum538()
have been introduced to compute the invariant radius and latitude (R,lambda), and the magnetic local time (MLT), respectively.The subroutine
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 subroutineul220()
and the accuracy of subroutineul242()
.The algorithm of subroutine
uf423()
has been slightly modified such that, when some of the diagnostics of subroutineum530()
are generated, the Runge-Kutta step is nevertheless completely applied and new error codes are generated.- From v2.01 to v2.02
The external magnetic field model Tsyganenko 89a (argument
kext
= 4 in subroutineum520()
) has been replaced inext530()
by the Tsyganenko 89c model.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 argumentparam
) were forced to their default values. This erroneous behaviour affects user applications using external magnetic field models except the Olson & Pfitzer quiet [1977] model (kext
= 5).- 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%.The argument
kflag(39)
of common blockuc150
is active and initialized to 1 by subroutineut990()
. The argument is used to control, in subroutineua633()
, the dependance of the IRI model either on the Sun spot numbers (default) or on the F10.7 radio flux.The synopsis of the argument zsub of the subroutines
ud320()
andud321()
has been modified, as well as the synopsis of the subroutineua636()
. The new synopsis is:
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
mb
corresponding to the magnetic field vector at locationmpos
. Note that the value of argumentmb
does not affect the behaviour of subroutineua636()
.The entries
ud322()
andud323()
have been implemented in subroutinesud320()
andud321()
, respectively.The subroutine
ul242()
has been corrected for a lack of accuracy at low I.The diagnostic messages of subroutine
ut980()
have been simplified. As a consequence, the subroutinesut981()
andut982()
have been removed from the library.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
est
to return an estimation of the function. The errors affected the behaviour of the subroutineud315()
which returns the mirror point with the lowest altitude on a magnetic drift shell.An error in passing local time to the atmospheric models MSIS and IRI-90 has been fixed in subroutines
ua632()
andua633()
, respectively.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 algorithm of subroutines
uf420()
,uf422()
anduf427()
has been improved for the tracing of field line segment with small value of their integral invariant I.The new subroutines
ud317()
anduf417()
have been created in order to replace the (always existing) subroutinesud310()
anduf410()
, respectively. This replacement should improve the drift shell tracing, specially in near-equatorial regions. FORTRAN programs using subroutineud310()
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
ut550()
.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
uf420()
,uf422()
,uf427()
anduf428()
have been reviewed and improved. Due to these modifications, the subroutinesul220()
andud310()
have a much better behaviour than in version 1.10 or 1.11, especially near the magnetic equator region and at large L.Note:
gm
,colat
,elong
,msun
,re
the help page T.07 - Which subroutines are mandatory? has been added in the library FAQ.
- From v1.11 to v1.12
A bug present in the algorithms of the subroutine
uf426()
,uf427()
anduf428()
subroutine has been corrected (see bug-03).An error in the FORMAT statements of the subroutine
um520()
has been corrected.The subroutines
um520()
andum532()
, and the packageext530()
have been extended in order to implement the external magnetic field model of Ostapenko & Maltsev [1997].Due to problems with some Fortran compilers (e.g. Microsoft PowerStation), the
DATA
statements of the block dataDGRFBD
have been directly included in the subroutineum513()
. The common blockDGRF
has been removed.- From v1.10 to v1.11
Note: The version v1.11 has not been distributed.
The sizes of the common blocks
uc120
,uc130
anduc170
have been increased tonx120
= 500,nx130
= 20000, andnx170
= 500, respectively. This change affects the include file Structures.The parameter
nx170
is used instead of the argumentnxstp
of the common blockuc190
. This last argument has been removed from the common block.The argument
kum533
has been added to the common blockuc190
to control the behaviour of subroutineum533()
. When the argumentkum533
is set to a value less or equal to 0, the subroutineum533()
does not check if the current geocentric location is or is not beyond the magnetopause.In subroutine
ut990()
, the initialisation of common blocksuc190
anduc192
has 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.
Argument
v1.10 and earlier
New value
stepx
0.4
0.075
stpmin
5.0
2.0
epskm
0.25
0.20
stplst
25.0
15.0
dltlat
2.0
1.0
- From v1.07 to v1.10
Print formats in subroutines
um520()
andut993()
have been modified.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 subroutineum520()
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)
The declaration of the structure
zemf
has been modified. Consequently the include file Structures is changed and has to be reloaded.A drift shell printing subroutine has been added (
ut993()
).The DGRF/IGRF block data has been declared as
REAL*8
instead ofREAL*4
(DGRFBD).
- From v1.05 to v1.06
Subroutines for coordinate transformations and conversions have been included (
ut550()
,ut555()
,ut556()
,ut541()
,ut542()
,ut546()
,ut547()
).Subroutines to calculate averages over a drift shell have been included (
ud320()
,ud321()
,ud328()
,ud329()
,ud327()
).Subroutines for interfacing with IDL are provided (
ut986()
, Ex. #6. visualisation of a drift shell).The ionospheric model IRI-90 is part of the distribution (
ext635()
).- Version v1.05
The version 1.05 is the first official version of the library.
Future improvements¶
To be determined
Release Date¶
The table below shows the release date of the previous versions.
v2.05
November 1999
v2.02
March 1999
v2.01
January 1999
v2.00
June 1998
v1.13
February 1998
v1.12
January 1998
v1.11
December 1997
v1.10
November 1997
v1.07
September 1997
v1.06
September 1997
v1.05
August 1997
UNILIB/tags/v3.02