geomag/README.txt
author A.M. Thurnherr <athurnherr@yahoo.com>
Mon, 23 Feb 2015 09:19:46 +0000
changeset 15 3746197831db
parent 5 033a169071de
permissions -rw-r--r--
IX11beta for CLIVAR P16
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
2009/09/12  Eric Firing
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
This repository contains a modified version of the code
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
from Geomag61_unix.tar.gz.  The only modification affecting the
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
actual calculation is the change from single to double precision;
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     6
this causes some very small differences in output.  The other
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     7
modifications are to modernize and modularize the code (which
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     8
has been done only partially so far), and to generate a
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     9
command, magdec, that produces only a single easy-to-parse
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
line of output.  Magdec takes full advantage of what modernization
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
has been done; the geomag command still uses the original
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
file-reading code, apart from one bugfix to prevent memory
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
corruption and permit compilation with modern versions of
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
gcc.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
In addition, I added a minimal Makefile for use on Linux
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
systems.  If compilation on Windows is needed, then I will
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
probably add scons build scripts rather than trying to make
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
the Makefile handle Windows.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
A cython interface may also be added.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
================ Changes (see also the hg log) =====================
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
2010/03/04 EF
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
Modified for new Geomagnetic model, IGRF11.  The file
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
format was changed, so geomag and magdec no longer worked with the
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
older models.  This is not a problem, because the IGRF11 file includes
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
models for times past.  There were two basic file changes: the order
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
of the first two fields (indices) was reversed, and the fields
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
were spaced out to allow easier parsing.  The lines are still
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
80-characters (without the endings), and we are still using this
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
fact in the parsing.  Now, however, the file is compiled in, so it
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
no longer needs to be specified on the command line.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
Rather than update the file parsing in geomag61.c, I deleted it,
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    37
so now only magdec is provided.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    38
15
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    39
2010/08/20 EF
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    40
Added a Makefile.mingw32cross, so that with the ubuntu mingw32 cross
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    41
compiler packages installed, one can generate magdec.exe via:
5
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
15
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    43
make -f Makefile.mingw32cross
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    44
3746197831db IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    45
This will leave magdec.exe in the current directory.
5
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    48
=============== Original README.txt below this line ===================
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    49
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    50
This zip file contains the C source code for the NGDC software "Geomag"
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    51
version 6.1 that computes the estimated main magnetic field values for
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    52
given locations and dates (or ranges of dates).  Geomag requires a
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    53
magnetic field model file for input.  Two models are included in this
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    54
zip: IGRF10 and WMM2005. Use the '.cof' extensions on Windows systems
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    55
and the '.unx' extensions on Unix systems, since text files differ in
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    56
format between the two platforms. The zip and tar files also include
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    57
compiled versions (executables) of Geomag for Windows and Linux.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    58
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    59
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    60
Background
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    61
----------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    62
The IGRF10 is the tenth generation standard main field model adopted
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    63
by the International Association of Geomagnetism and Aeronomy (IAGA).
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    64
This is a degree and order 13 model for 2005-2010 with models for 1900
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    65
forward enabling estimation of the main field for dates between
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    66
January 1, 1900 and January 1, 2010. For more information on the IGRF
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    67
and IAGA, visit the IAGA Working Group V-MOD Web site at:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    68
        http://www.ngdc.noaa.gov/IAGA/vmod/
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    69
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    70
The WMM is the standard model for the U.S. and U.K. Departments of Defense
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    71
and for NATO.  This is a degree and order 12 main field model for 2005.0
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    72
and degree and order 12 (computed to 8) secular variation model for 2005 -
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    73
2010. For more information on the WMM or to download the Technical Report,
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    74
visit the WMM Web site at:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    75
        http://www.ngdc.noaa.gov/seg/WMM/
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    76
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    77
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    78
The computed magnetic elements are:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    79
-----------------------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    80
D: Declination
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    81
I: Inclination
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    82
H: Horizontal field strength
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    83
X: North component
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    84
Y: East component
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    85
Z: Down component
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    86
F: Total field strength
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    87
dD,dI,dH,dX,dY,dZ,dF: Change per year of the above quantities.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    88
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    89
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    90
To compile this code on unix systems:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    91
------------------------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    92
for the Gnu C compiler:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    93
1) uncomment '#include <math.h>'
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    94
2) gcc -lm geomag61.c -o geomag61.exe
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    95
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    96
For Intel:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    97
1) uncomment '#include <mathimf.h>'
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    98
2) icc -wd1572 -static geomag61.c -o geomag61.exe
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    99
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   100
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   101
To compile this code on Windows systems:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   102
----------------------------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   103
The DOS executable in this distribution was produced with
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   104
Microsoft VisualStudio 2003 .NET, substituting its C++ compiler
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   105
with the Intel C++ compiler. Generate an empty WIN32 console
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   106
project, copy geomag61.c into the source directory,
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   107
convert the project to Intel C++, and build it.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   108
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   109
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   110
Command line option:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   111
--------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   112
Note that the geomag program can receive parameters on
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   113
the command line. For example:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   114
geomag61.exe IGRF10.unx 2010.32 D M133.4 10.5 10.5
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   115
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   116
The command line syntax is listed by providing the h option as
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   117
geomag61.exe h
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   118
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   119
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   120
Spread-sheet option:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   121
--------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   122
New in revision 61 is that the program can read a file of
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   123
dates and locations and create a new file with a set of extra
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   124
columns giving the magnetic components. These can then be
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   125
read as columns into a spread sheet program. The dates and
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   126
coordinates have to be given in the same format as for the
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   127
command line option. See also the sample files discussed below.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   128
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   129
For example:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   130
geomag61.exe IGRF10.unx f in-coords.txt output.txt
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   131
will append the magnetic components and their secualar
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   132
variation to the dates and locations given in 'in-coords.txt'
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   133
and write the result to a file 'output.txt'.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   134
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   135
This distribution contains example files which were produced
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   136
on a Linux system using the commands:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   137
geomag61.exe IGRF10.unx f sample_coords.txt sample_out_IGRF10.txt
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   138
geomag61.exe WMM2005.unx f sample_coords.txt sample_out_WMM2005.txt
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   139
The same result can be achieved on a Windows system by
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   140
substituting 'IGRF10.unx' with 'IGRF10.cof' and same for WMM2005.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   141
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   142
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   143
To run the program with command line arguments under Windows:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   144
-------------------------------------------------------------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   145
1) Click on <Start> <Programs> <Accessories> <Command Prompt>
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   146
2) Change directory ('cd') to the folder containg geomag61.exe
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   147
3) Run the program, e.g. 'geomag61.exe IGRF10.cof f in.txt out.txt'
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   148
4) Use the '.cof' model files for Windows, while the '.unx' model
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   149
   files should work for Linux.
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   150
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   151
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   152
Contact:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   153
--------
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   154
For further infos, or bug reports, please contact:
033a169071de Version IX_9
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   155
stefan.maus@noaa.gov