author | A.M. Thurnherr <athurnherr@yahoo.com> |
Tue, 29 Jun 2021 09:14:43 -0400 | |
changeset 23 | e83393696a24 |
parent 22 | 624b1ed6e9c9 |
permissions | -rw-r--r-- |
22
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
1 |
function [dev,d,h,i,f,x,y,z]=magdev(flat,flon,elevkm,year); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
2 |
% function [dev,d,h,i,f,x,y,z]=magdev(flat,flon,elevkm,year); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
3 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
4 |
% compute magnetic deviation |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
5 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
6 |
% based on IGRF12 model (observed until end of 2014, predicted until end of 2019) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
7 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
8 |
% input: flat - latitude (degree) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
9 |
% flon - longitude (degree) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
10 |
% elevkm [0] - elevation above mean geoid (km) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
11 |
% year - decimal year |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
12 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
13 |
% output: dev - mag. deviation (degree) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
14 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
15 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
16 |
% based of FORTRAN ROUTINE GEOMAG.FOR |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
17 |
% more info under http://www.ngdc.noaa.gov/IAGA/vmod/igrf.html |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
18 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
19 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
20 |
% version 0.5 last change 13.07.2015 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
21 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
22 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
23 |
% M. Visbeck, LDEO FEB 2000 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
24 |
% rewritten for other epochs, G. Krahmann, IFM-GEOMAR Mar 2007 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
25 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
26 |
% modified for >=R14 GK, Jun 2007 0.1-->0.2 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
27 |
% switch to IGRF11 GK, 08.11.2010 0.2-->0.3 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
28 |
% replaced sind/cosd with sind/cosd GK, 31.05.2011 0.3-->0.4 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
29 |
% switch to IGRF12 GK, 12.07.2015 0.4-->0.5 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
30 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
31 |
%====================================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
32 |
% M A G D E V . M |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
33 |
% doc: Wed Sep 4 18:17:31 2019 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
34 |
% dlm: Wed Sep 4 18:18:16 2019 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
35 |
% (c) 2019 G. Krahmann |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
36 |
% uE-Info: 40 49 NIL 0 0 72 0 2 8 NIL ofnI |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
37 |
%====================================================================== |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
38 |
|
22
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
39 |
% CHANGES BY ANT: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
40 |
% SEp 4, 2019: - changed sin/cos_d to sin/cosd |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
41 |
|
22
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
42 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
43 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
44 |
% read the coefficients |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
45 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
46 |
fname = 'igrf12coeffs.xls'; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
47 |
warning off % avoid non-sensical warning in >=R14 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
48 |
gh = xlsread(fname); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
49 |
warning on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
50 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
51 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
52 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
53 |
% determine the maximum order of polynomials |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
54 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
55 |
% this might need modification in future versions of the file |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
56 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
57 |
if year<2000 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
58 |
nmax = 10; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
59 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
60 |
nmax = 13; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
61 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
62 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
63 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
64 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
65 |
% interpolate the coefficients in time |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
66 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
67 |
warning off % another workaround for annoying >=R14 warnings |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
68 |
if year <= gh(1,end-1) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
69 |
gh2 = interp1( gh(1,3:end-1),gh(2:end,3:end-1)',year)'; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
70 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
71 |
gh2 = interp1( gh(1,3:end-1),gh(2:end,3:end-1)',gh(1,end-1))'; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
72 |
ghc = gh2*0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
73 |
dummy = gh(2:end,end); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
74 |
good = find(~isnan(dummy)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
75 |
ghc(good) = dummy(good); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
76 |
gh2 = gh2+ghc*(year-gh(1,end-1)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
77 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
78 |
warning on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
79 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
80 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
81 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
82 |
% set default elevation |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
83 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
84 |
if nargin<3 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
85 |
elevkm=0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
86 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
87 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
88 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
89 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
90 |
% calculate field |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
91 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
92 |
[x,y,z] = shval3(flat,flon,elevkm,nmax,gh2); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
93 |
[d,i,h,f]=dihf (x,y,z); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
94 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
95 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
96 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
97 |
% convert units |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
98 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
99 |
dev=d*180/pi; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
100 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
101 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
102 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
103 |
% more detailed screen output, if output is not stored |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
104 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
105 |
if nargout<1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
106 |
disp([' model ',fname,' harmonics: ',int2str(nmax)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
107 |
disp([' lat: ',num2str(flat)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
108 |
disp([' lon: ',num2str(flon)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
109 |
disp([' tim: ',num2str(year)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
110 |
disp([' mag dev [deg]: ',num2str(d*180/pi)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
111 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
112 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
113 |
%===================================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
114 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
115 |
function [x,y,z] = shval3(flat,flon,elevkm,nmax,gh) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
116 |
% function [x,y,z] = shval3(flat,flon,elevkm,nmax,gh) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
117 |
% ================================================================ |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
118 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
119 |
% version 1.01 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
120 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
121 |
% calculates field components from spherical harmonic (sh) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
122 |
% models. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
123 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
124 |
% input: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
125 |
% flat - north latitude, in degrees |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
126 |
% flon - east longitude, in degrees |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
127 |
% elevkm - elevation above mean sea level |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
128 |
% nmax - maximum degree and order of coefficients |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
129 |
% gh - schmidt quasi-normal internal spherical |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
130 |
% harmonic coefficients |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
131 |
% iext - external coefficients flag (= 0 if none) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
132 |
% ext - the three 1st-degree external coefficients |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
133 |
% (not used if iext = 0) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
134 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
135 |
% output: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
136 |
% x - northward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
137 |
% y - eastward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
138 |
% z - vertically-downward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
139 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
140 |
% based on subroutine 'igrf' by d. r. barraclough and |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
141 |
% s. r. c. malin, report no. 71/1, institute of geological |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
142 |
% sciences, u.k. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
143 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
144 |
% norman w. peddie, u.s. geological survey, mail stop 964, |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
145 |
% federal center, box 25046, denver, colorado 80225 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
146 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
147 |
% ================================================================ |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
148 |
% the required sizes of the arrays used in this subroutine |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
149 |
% depend on the value of nmax. the minimum dimensions |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
150 |
% needed are indicated in the table below. (note that this |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
151 |
% version is dimensioned for nmax of 14 or less). |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
152 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
153 |
% ================================================================ |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
154 |
r=elevkm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
155 |
erad=6371.2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
156 |
a2=40680925.; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
157 |
b2=40408588.; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
158 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
159 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
160 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
161 |
slat = sind(flat); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
162 |
aa = min(89.999,max(-89.999,flat)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
163 |
clat = cosd(aa); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
164 |
sl(1) = sind(flon); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
165 |
cl(1) = cosd(flon); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
166 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
167 |
x=0.0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
168 |
y=0.0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
169 |
z=0.0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
170 |
sd = 0.0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
171 |
cd = 1.0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
172 |
n=0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
173 |
l=1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
174 |
m=1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
175 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
176 |
npq = (nmax*(nmax+3))/2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
177 |
aa = a2*clat*clat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
178 |
bb = b2*slat*slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
179 |
cc = aa+bb; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
180 |
dd = sqrt(cc); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
181 |
r=sqrt(elevkm*(elevkm+2.0*dd)+(a2*aa+b2*bb)/cc); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
182 |
cd = (elevkm+dd)/r; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
183 |
sd = (a2-b2)/dd*slat*clat/r; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
184 |
aa = slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
185 |
slat = slat*cd-clat*sd; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
186 |
clat = clat*cd+aa*sd; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
187 |
ratio = erad/r; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
188 |
aa = sqrt(3.0); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
189 |
p(1) = 2.0*slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
190 |
p(2) = 2.0*clat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
191 |
p(3) = 4.5*slat*slat-1.5; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
192 |
p(4) = 3.0*aa*clat*slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
193 |
q(1) = -clat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
194 |
q(2) = slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
195 |
q(3) = -3.0*clat*slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
196 |
q(4) = aa*(slat*slat-clat*clat); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
197 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
198 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
199 |
for k = 1: npq |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
200 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
201 |
if (n<m) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
202 |
m=0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
203 |
n=n+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
204 |
rr = ratio^(n+2); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
205 |
fn=n; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
206 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
207 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
208 |
fm=m; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
209 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
210 |
if (k>=5) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
211 |
if (m==n) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
212 |
aa = sqrt(1.0-.5/fm); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
213 |
j=k-n-1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
214 |
p(k) = (1.0+1.0/fm)*aa*clat*p(j); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
215 |
q(k) = aa*(clat*q(j)+slat/fm*p(j)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
216 |
sl(m) = sl(m-1)*cl(1)+cl(m-1)*sl(1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
217 |
cl(m) = cl(m-1)*cl(1)-sl(m-1)*sl(1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
218 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
219 |
aa = sqrt(fn*fn-fm*fm); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
220 |
bb = sqrt((fn-1.0)^2-fm*fm)/aa; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
221 |
cc = (2.0*fn-1.0)/aa; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
222 |
i=k-n; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
223 |
j=k-2*n+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
224 |
p(k) = (fn+1.0)*(cc*slat/fn*p(i)-bb/(fn-1.0)*p(j)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
225 |
q(k) = cc*(slat*q(i)-clat/fn*p(i))-bb*q(j); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
226 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
227 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
228 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
229 |
aa = rr*gh(l); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
230 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
231 |
if (m==0) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
232 |
x=x+aa*q(k); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
233 |
z=z-aa*p(k); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
234 |
l=l+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
235 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
236 |
bb = rr*gh(l+1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
237 |
cc = aa*cl(m)+bb*sl(m); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
238 |
x=x+cc*q(k); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
239 |
z=z-cc*p(k); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
240 |
if (clat>0.0) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
241 |
y=y+(aa*sl(m)-bb*cl(m))*fm*p(k)/((fn+1.0)*clat); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
242 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
243 |
y=y+(aa*sl(m)-bb*cl(m))*q(k)*slat; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
244 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
245 |
l=l+2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
246 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
247 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
248 |
m=m+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
249 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
250 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
251 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
252 |
aa=x; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
253 |
x=x*cd+z*sd; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
254 |
z=z*cd-aa*sd; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
255 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
256 |
return; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
257 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
258 |
%================================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
259 |
function [d,i,h,f] = dihf(x,y,z) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
260 |
% function [d,i,h,f] = dihf(x,y,z) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
261 |
% =============================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
262 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
263 |
% version 1.01 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
264 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
265 |
% computes the geomagnetic elements d, i, h, and f from |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
266 |
% x, y, and z. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
267 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
268 |
% input: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
269 |
% x - northward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
270 |
% y - eastward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
271 |
% z - vertically-downward component |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
272 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
273 |
% output: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
274 |
% d - declination |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
275 |
% i - inclination |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
276 |
% h - horizontal intensity |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
277 |
% f - total intensity |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
278 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
279 |
% a. zunde |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
280 |
% usgs, ms 964, box 25046 federal center, denver, co 80225 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
281 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
282 |
% =============================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
283 |
sn=0.0001; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
284 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
285 |
% --------------------------------------------------------------- |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
286 |
% if d and i cannot be determined, set equal to NaN |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
287 |
% --------------------------------------------------------------- |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
288 |
h=sqrt(x*x+y*y); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
289 |
f=sqrt(x*x+y*y+z*z); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
290 |
if (f<sn) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
291 |
d=NaN; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
292 |
i=NaN; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
293 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
294 |
i=atan2(z,h); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
295 |
if (h<sn) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
296 |
d=NaN; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
297 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
298 |
hpx = h+x; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
299 |
if (hpx<200) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
300 |
d=pi; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
301 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
302 |
d=2.0*atan2(y,hpx); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
303 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
304 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
305 |
end; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
306 |
return; |