## GPT and GMF

version 2.0.0 (15.6 KB) by
Vectorized version of the Matlab code for the GMP and GPT models

Updated 19 Oct 2019

Vectorized version of the Matlab code for the GMP and GPT models. Original Fortran and Matlab code can be found in IERS 2010 Conventions (http://iers-conventions.obspm.fr/conventions_versions.php#official_target) and
Vienna Mapping Functions Open Access Data (http://vmf.geo.tuwien.ac.at/codes/)

Test example (Matlab code):

n = 86400;
%% GMF
dmjd = 55055*ones(n,1);
dlat = 0.6708665767*ones(n,1);
dlon = -1.393397187*ones(n,1);
dhgt = 844.715*ones(n,1);
zd = 1.278564131*ones(n,1);
tic
[gmfh,gmfw] = gmf(dmjd,dlat,dlon,dhgt,zd);
toc
% Test case:
% given input: DMJD = 55055D0
% DLAT = 0.6708665767D0 radians (NRAO, Green Bank, WV)
% DHGT = 844.715D0 meters
%
% expected output: GMFH = 3.425245519339138678 11.064702723565059
% GMFW = 3.449589116182419257 11.313101285827178
fprintf('GMF %.15f\t%.15f\n', gmfh(1), gmfw(1));
fprintf('\n');

tic
[gmfh,gmfw] = gmf_deriv(dmjd,dlat,dlon,dhgt,zd);
toc
fprintf('GMF_deriv %.15f\t%.15f\t%.15f\t%.15f\n', gmfh(1,:), gmfw(1,:));
fprintf('\n');
%% GPT
dmjd = 55055*ones(n,1);
dlat = 0.6708665767*ones(n,1);
dlon = -1.393397187*ones(n,1);
dhgt = 812.546*ones(n,1);
tic
[pres,temp,undu] = gpt(dmjd , dlat , dlon , dhgt);
toc
% Test case:
% given input: DMJD = 55055D0
% DLAT = 0.6708665767D0 radians (NRAO, Green Bank, WV)
% DHGT = 812.546 meters
% expected output: PRES = 918.0710638757363995D0 hPa
% TEMP = 19.31914181012882992D0 degrees Celsius
% UNDU = -42.19185643717770517D0 meters
fprintf('GPT %.15f\t%.15f\t%.15f\n', pres(1), temp(1), undu(1));
fprintf('\n');

Enjoy!

### Cite As

Changyong He (2021). GPT and GMF (https://www.mathworks.com/matlabcentral/fileexchange/73066-gpt-and-gmf), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2019b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux