function [rad,rho,PV,PH,SV,SH,QK,QMu,eta]=getmodel(modelpath,catflag) % [rad,rho,PV,PH,SV,SH,QK,QMu,eta]=GETMODEL(modelpath,catflag) % % Loads an Earth model. % For input to the code "YANNOS" aka "MINOSY" by Yann Capdeville, or to % MINEOS by Masters, Woodhouse, and Gilbert. % % INPUT: % % modelpath The model file name [default: 'prem800'] % catflag 0 YANNOS format % 1 MINEOS format [default] % % OUTPUT: % % rad Radius [m] % rho Density [kg/m3] % PV Vertically-polarized P-wave speed [m/s] % PH Horizontall- polarized P-wave speed [m/s] % SV Vertically-polarized P-wave speed [m/s] % SH Horizontally-polarized P-wave speed [m/s] % QK Compressional quality factor % QMU Shear quality factor % eta Anisotropic parameter % % SEE ALSO: % % GETSPHEROIDAL, GETTOROIDAL, EQPOTENTIAL % % Last modified by jchawtho-at-princeton.edu, 07/01/2007 % Last modified by fjsimons-at-alum.mit.edu, 07/09/2010 % Last modified by efwelch-at-princeton.edu, 11/21/2011 defval('catflag',1); % Reads the header switch catflag case 0 % YANNOS model defval('modelpath','prem800') defval('dir1',fullfile(getenv('IFILES'),'EARTHMODELS','MODES','YANNOS')) % Model name mname=fullfile(dir1,sprintf('%s',modelpath)); mfid=fopen(mname); C=textscan(mfid,'%s',1); modname=C{1}; C=textscan(mfid,'%d%f%d',1); layered=C{1}; reffreq=C{2}; isanisotropic=C{3}; C=textscan(mfid,'%d%d%d%d',1); nlay=C{1}; inncorelay=C{2}; cmblay=C{3}; numoceanlay=C{4}; case 1 % *.dk catflag mfid=fopen(modelpath); modname=fgetl(mfid); C=textscan(mfid,'%d%f%d',1); catflag=C{1}; reffreq=C{2}; isanisotropic=C{3}; C=textscan(mfid,'%d%d%d',1); nlay=C{1}; icblay=C{2}; cmblay=C{3}; end % Read the actual model C=textscan(mfid,'%f%f%f%f%f%f%f%f%f'); % Radius, m rad=C{1}; % Density, kg m^-3 rho=C{2}; if nargout>2 % Velocities, m/s PV=C{3}; SV=C{4}; QK=C{5}; QMu=C{6}; PH=C{7}; SH=C{8}; eta=C{9}; end fclose(mfid); %disp(sprintf('Using model %s',mname))