function [gh,G,H] = IGRF00
% MATLAB routine to load Schmidt-normalized coefficients
% retrieved from ftp://nssdc.gsfc.nasa.gov/pub/models/igrf/
% igrf00.dat
%++++++++++++++++++++++++++++++++++++++++++
% The number 1 is added to ALL subscripts since MATLAB can't have an array
% index of 0. Units of Tesla
%
% MARTIN VISBECK, LDEO Feb 2000
% !!! CAUTION when updating the values NEVER us a 0. where use 0.1 instead!!!
% I use the zeros to throw unused coeffs away....!
G(2,1) = -29615e-9;
G(2,2) = -1728e-9; H(2,2) = 5186e-9;
G(3,1) = -2267e-9; H(3,1) = 0.0;
G(3,2) = 3072e-9; H(3,2) = -2478e-9;
G(3,3) = 1672e-9; H(3,3) = -458e-9;
G(4,1) = 1341e-9; H(4,1) = 0.0;
G(4,2) = -2290e-9; H(4,2) = -227e-9;
G(4,3) = 1253e-9; H(4,3) = 296e-9;
G(4,4) = 715e-9; H(4,4) = -492e-9;
G(5,1) = 935e-9; H(5,1) = .0;
G(5,2) = 787e-9; H(5,2) = 272e-9;
G(5,3) = 251e-9; H(5,3) = -232e-9;
G(5,4) = -405e-9; H(5,4) = 119e-9;
G(5,5) = 110e-9; H(5,5) = -304e-9;
G(6,1) = -217e-9; H(6,1) = .0;
G(6,2) = 351e-9; H(6,2) = 44e-9;
G(6,3) = 222e-9; H(6,3) = 172e-9;
G(6,4) = -131e-9; H(6,4) = -134e-9;
G(6,5) = -169e-9; H(6,5) = -40e-9;
G(6,6) = -12e-9; H(6,6) = 107e-9;
G(7,1) = 72e-9; H(7,1) = .0;
G(7,2) = 68e-9; H(7,2) = -17e-9;
G(7,3) = 74e-9; H(7,3) = 64e-9;
G(7,4) = -161e-9; H(7,4) = 65e-9;
G(7,5) = -5e-9; H(7,5) = -61e-9;
G(7,6) = 17e-9; H(7,6) = 1e-9;
G(7,7) = -91e-9; H(7,7) = 44e-9;
G(8,1) = 79e-9; H(8,1) = .0;
G(8,2) = -74e-9; H(8,2) = -65e-9;
G(8,3) = 0.1e-9; H(8,3) = -24e-9;
G(8,4) = 33e-9; H(8,4) = 6e-9;
G(8,5) = 9e-9; H(8,5) = 24e-9;
G(8,6) = 7e-9; H(8,6) = 15e-9;
G(8,7) = 8e-9; H(8,7) = -25e-9;
G(8,8) = -2e-9; H(8,8) = -6e-9;
G(9,1) = 25e-9; H(9,1) = .0;
G(9,2) = 6e-9; H(9,2) = 12e-9;
G(9,3) = -9e-9; H(9,3) = -22e-9;
G(9,4) = -8e-9; H(9,4) = 8e-9;
G(9,5) = -17e-9; H(9,5) = -21e-9;
G(9,6) = 9e-9; H(9,6) = 15e-9;
G(9,7) = 7e-9; H(9,7) = 9e-9;
G(9,8) = -8e-9; H(9,8) = -16e-9;
G(9,9) = -7e-9; H(9,9) = -3e-9;
G(10,1) = 5e-9; H(10,1) = .0;
G(10,2) = 9e-9; H(10,2) = -20e-9;
G(10,3) = 3e-9; H(10,3) = 13e-9;
G(10,4) = -8e-9; H(10,4) = 12e-9;
G(10,5) = 6e-9; H(10,5) = -6e-9;
G(10,6) = -9e-9; H(10,6) = -8e-9;
G(10,7) = -2e-9; H(10,7) = 9e-9;
G(10,8) = 9e-9; H(10,8) = 4e-9;
G(10,9) = -4e-9; H(10,9) = -8e-9;
G(10,10) = -8e-9; H(10,10) = 5e-9;
G(11,1) = -2e-9; H(11,1) = .0;
G(11,2) = -6e-9; H(11,2) = 1e-9;
G(11,3) = 2e-9; H(11,3) = 0.1e-9;
G(11,4) = -3e-9; H(11,4) = 4e-9;
G(11,5) = 0.1e-9; H(11,5) = 5e-9;
G(11,6) = 4e-9; H(11,6) = -6e-9;
G(11,7) = 1e-9; H(11,7) = -1e-9;
G(11,8) = 2e-9; H(11,8) = -3e-9;
G(11,9) = 4e-9; H(11,9) = 0.1e-9;
G(11,10) = 0.1e-9; H(11,10) = -2e-9;
G(11,11) = -1e-9; H(11,11) = -8e-9;
% prepare compressed array
g=reshape(G',11*11,1)*1e9;
h=reshape(H',11*11,1)*1e9;
gh=reshape([g,h]',2*11*11,1);
% here is where zeros have a meaning....!!!!
ii=find(gh==0);
gh(ii)=[];
return;