Модель геомагнитного поля IGRF/DGRF позволяет вычислить магнитное поле
Земли в определенных координатах, с учетом источников поля, которые находятся
внутри Земли,
без учета внешних токов. Модель основана на экспериментальных наблюдениях
на геомагнитных обсерваториях, кораблях, самолетах и искусственных спутниках
Земли. В настоящее время модель позволяет проводить расчет магнитного поля
для эпох с 1945 до 2000 года, включает в себя предварительные результаты для
2005 года и экстраполяцию с 2005 до 2010 года. Подробности смотрите на
главном сайте модели
modelweb.gsfc.nasa.gov.
Модель реализована в виде набора модулей на фортране.
Исходные коды программы bilcal, с помощью которой происходит расчет,
можно скачать с сервера
nssdcftp.gsfc.nasa.gov.
К сожалению, программа написана очень давно и скомпилировать ее
довольно сложно. Я перепробовал Salford Software FTN 95, Intel Fortran,
но они ругались на огромное количество синтаксических ошибок.
Помог WATCOM FORTRAN/77 Ver.1.4 на WindowsXP SP2. Однако, пришлось все равно
исправить пару ошибок, которые он там увидел.
Оригинальная программа bilcal, написанная Dieter Bilitza интерактивная,
т.е. она сначала задает множество вопросов - в каких точках мы хотим посчитать
напряженность геомагнитного поля, в какое время,
в каком виде выдавать ответ, писать ли его в файл или только на экран,
а затем выдает посчитанные значения в виде таблицы.
В таком виде программу использовать неудобно, если требуется расчет
поля во многих точках. К счастью, bilcal представляет собой всего лишь
лишь интерфейс к библиотеке igrf_sub.
После внимательного изучения программы bilcal мне удалось ее
переписать так, чтобы она брала значения о времени, высоте, широте и долготе
наблюдения из файла и выдавала в файл. При этом в файле, подаваемом на вход
программе может находиться множество точек, в которых нужно провести расчет.
Для расчета магнитной широты и магнитной долготы использовалась программа
recalc, написанная Н.А. Цыганенко.
При запуске программа спросит имя входного и имя выходного файла.
Стоит заранее предупредить, что в текущей директории не должно быть
файла с тем же именем, что и выходной. Если вы хотите, чтобы старый файл
с таким именем был удален, удаляйте его самостоятельно.
В файле, который подается на вход моей программе fromfile должны быть
записаны числа в следующем формате:
Year Alt Lat Lon
которые означают, соответственно, год, для которого проводится расчет,
высота над уровнем Земли, географическая широта и долгота точки для которой
проводится расчет.
Пример:
1990 500 -25.36 175.5
При этом год должен представлять собой число от 1945 до 2010,
высота - положительное число, широта - число от -90 до +90, долгота - число
от 0 до 360.
В результате работы программы будет создан файл со следующими столбцами:
YEAR ALT LON LAT DIMO B/B0 B B0 B-NORTH B-EAST B-DOWN DIP DEC L-VALUE MLONG MLAT C
The IGRF model consists of sets of coefficients for a global
representation of the Earth magnetic field for the years 1945,
1950, 1955, etc. There are definitive coefficient sets (DGRF##.DAT)
for which no further revisions are anticipated and IGRF##.DAT and
IGRF##S.DAT for which future updates are expected. IGRF##S.DAT provides
the first time derivatives of the coefficients for extrapolation into the
future. The 10th generation of the IGRF model (IGRF10) consists of
definitive coefficients sets for 1945 thru 2000 and prelimenary sets for
2005 and for extrapolating from 2005 to 2010.
In combination with the IGRF coefficient sets different subroutines
have been used to determine the components of the magnetic field vector
and the L-value at a given location. The NSSDC version uses the subroutines
FELDG (magnetic field vector) and SHELLG (L shell) developed by
G. Kluge at the European Space Operations Center (ESOC). His use of
inverse cartesian co- ordinates simplifies the computation. The IGRF
subroutines were developed by A. Zunde of the U.S. Geological
Survey (USGS). The program BILCAL produces tables of the geomagnetic
field strength, vector components (B-abs., B-north, B-east, B-down,
declination, inclination), equatorial/minimum field strength (B0),
dipole moment, and L-value in latitude, longitude (geodetic), altitude,
or year (decimal).
The model was realized in form of Fortran modules. Source codes of BILCAL
can be downloaded from
nssdcftp.gsfc.nasa.gov.
Tsyhanenko's RECALC module was used for calculate magnetic longitude
and latitude.
All of these programs were compiled using WATCOM FORTRAN/77 Ver.1.4 on
WindowsXP SP2 after fixing some minor bugs.
After start program will ask you name of input and output files.
If you have the file with the same name as output in the current
directory you had to delete it manually before starting of program.
Input file format:
Year Alt Lat Lon
This means year for which calculation is proceed, altitude above sea level,
geographic longitude and latitude.
Example:
1990 500 -25.36 175.5
The year had be integer number from 1945 to 2010,
altitude - integer positive number in km, latitude - number from -90 to +90 in
degrees, longitude - number from 0 to 360 in degrees.
After calculating the file will be created.
YEAR ALT LON LAT DIMO B/B0 B B0 B-NORTH B-EAST B-DOWN DIP DEC L-VALUE MLONG MLAT C