RSTT
3.1.0
Regional Seismic Travel Time
|
Go to the documentation of this file.
111 #ifndef SLBM_F_SHELL_H
112 #define SLBM_F_SHELL_H
114 #include "SLBMGlobals.h"
120 static const int MAX_POINTS = 1000;
129 static const int MAX_NODES = 5;
138 #if defined(_WIN32) || defined(WIN32)
143 #ifdef SLBM_FORT_SHELL_EXPORTS
144 #define SLBM_FORT_SHELL_EXP_IMP __declspec(dllexport)
146 #define SLBM_FORT_SHELL_EXP_IMP __declspec(dllimport)
151 #define SLBM_FORT_SHELL_EXP __declspec(dllexport)
153 #else // Sun does not need these
155 #define SLBM_FORT_SHELL_EXP_IMP
156 #define SLBM_FORT_SHELL_EXP
344 double* receiverLat,
double* receiverLon,
double* receiverDepth,
int* err);
641 double* path_increment,
642 double sourceDepth[slbm::NLAYERS],
643 double sourceVelocity[slbm::NLAYERS],
644 double receiverDepth[slbm::NLAYERS],
645 double receiverVelocity[slbm::NLAYERS],
646 double headWaveVelocity[MAX_POINTS],
647 double gradient[MAX_POINTS],
654 int nodes[MAX_POINTS][MAX_NODES],
655 double coefficients[MAX_POINTS][MAX_NODES],
656 int* npoints,
int nnodes[MAX_POINTS],
int* err);
683 int* nodeId,
double* coefficients,
int* nnodes,
double* depth,
double* pvelocity,
684 double* svelocity,
double* pgradient,
double* sgradient,
int* err);
764 int* nNeighbors,
int* err);
942 double azimuth[],
int* nNeighbors,
int* err );
967 double depth[slbm::NLAYERS],
968 double pvelocity[slbm::NLAYERS],
969 double svelocity[slbm::NLAYERS],
970 double gradient[2],
int* err );
991 double depth[slbm::NLAYERS],
992 double pvelocity[slbm::NLAYERS],
993 double svelocity[slbm::NLAYERS],
994 double gradient[2],
int* err );
1119 double* tHeadwave,
double* pTaup,
double* pHeadwave,
1120 double* trTaup,
double* trHeadwave,
int* err );
1256 double lat[MAX_POINTS],
double lon[MAX_POINTS],
double depth[MAX_POINTS],
int* npoints,
int* err);
1276 double* bLat,
double* bLon,
int* npoints,
1277 double latitude[MAX_POINTS],
double longitude[MAX_POINTS],
int* err);
1296 double* bLat,
double* bLon,
int* npoints,
1297 double latitude[MAX_POINTS],
double longitude[MAX_POINTS],
int* err);
1316 double* bLat,
double* bLon,
1317 double* distance,
double* azimuth,
1318 double* naValue,
int* err );
1333 double* distance,
double* azimuth,
double* bLat,
double* bLon,
int* err );
SLBM_FORT_SHELL_EXP_IMP void slbm_set_active_node_data(int *nodeId, double depth[slbm::NLAYERS], double pvelocity[slbm::NLAYERS], double svelocity[slbm::NLAYERS], double gradient[2], int *err)
Modify the velocity and gradient information associated with a specified active node in the Grid.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_tess_id(char *tessId, int *size, int *err)
Retrieve the tessellation ID of the model currently in memory.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_dtt_dlat(double *dtt_dlat, int *err)
Retrieve the derivative of travel time wrt to source latitude, in seconds/radian.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_path_increment(double *pathIncrement, int *err)
Retrieve the current value of the spacing of great circle nodes along the head wave interface,...
SLBM_FORT_SHELL_EXP_IMP void slbm_load_velocity_model_binary(const char *modelDirectory, int *nameLength, int *err)
Load the velocity model into memory from the specified file or directory. This method automatically d...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_pg_lg_components(double *tTotal, double *tTaup, double *tHeadwave, double *pTaup, double *pHeadwave, double *trTaup, double *trHeadwave, int *err)
Retrieve information about Pg/Lg travel time calculations.
SLBM_FORT_SHELL_EXP_IMP void slbm_specify_output_directory(const char *directoryName, int *dirNameLength, int *err)
Deprecated. Use saveVelocityModel() instead. Specify the directory into which the model that is curre...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_dtt_dlon(double *dtt_dlon, int *err)
Retrieve the derivative of travel time wrt to source longitude, in seconds/radian.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_grid_node_id(int *activeNodeId, int *gridNodeId, int *err)
Retrieve the grid node ID that corresponds to a specified active node ID.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_weights(int nodeId[], double weight[], int *nWeights, int *err)
Retrieve the weight assigned to each grid node that was touched by the GreatCircle.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_travel_time(double *travelTime, int *err)
Retrieve the total travel time for the GreatCircle, in seconds.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_rayparameter(double *rayParameter, int *err)
Retrieve rayParameter in sec/km.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_tt_uncertainty(double *tt_uncertainty, int *err)
Retrieve travel time uncertainty in sec. This function will call either the path-dependent or 1D unce...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_weights(int nodeId[], double weight[], int *nWeights, int *err)
Retrieve the weight assigned to each active node that was touched by the GreatCircle.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_n_grid_nodes(int *numGridNodes, int *err)
Retrieve the number of Grid nodes in the Earth model.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_receiver_distance(double *dist, int *err)
Retrieve horizontal offset below the receiver, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_traveltime_uncertainty(int *phase, double *distance, double *uncertainty, int *err)
Calculate a traveltime uncertainty value (seconds) as a function of distance in radians for a support...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_great_circle_node_info(int nodes[MAX_POINTS][MAX_NODES], double coefficients[MAX_POINTS][MAX_NODES], int *npoints, int nnodes[MAX_POINTS], int *err)
SLBM_FORT_SHELL_EXP_IMP void slbm_get_n_active_nodes(int *nNodes, int *err)
Retrieve the number of active nodes in the Grid.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_distance(double *dist, int *err)
Retrieve the source-receiver separation, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_error_message(char *errorMessage, int *size)
Retrieve error message.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_max_depth(double *maxDepth, int *err)
Retrieve the current value for the maximum source depth, in km.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_great_circle_locations(double lat[MAX_POINTS], double lon[MAX_POINTS], double depth[MAX_POINTS], int *npoints, int *err)
Retrieve the latitudes, longitudes and depths of all the profile positions along the moho.
#define SLBM_FORT_SHELL_EXP_IMP
SLBM_FORT_SHELL_EXP_IMP void slbm_save_velocity_model_binary(int *err)
Deprecated. Use saveVelocityModel() instead. Write the model in format 3 to directory previously spec...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_node_separation(int *node1, int *node2, double *distance, int *err)
Retrieve the angular separation of two grid nodes, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_neighbors(int *nid, int neighbors[], int *nNeighbors, int *err)
Retrieve the node IDs of the nodes that surround the specified node.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_tt_uncertainty1d(double *tt_uncertainty, int *err)
Retrieve travel time uncertainty in sec. This function will return the non-path-dependent 1D uncertai...
SLBM_FORT_SHELL_EXP_IMP void slbm_set_ch_max(double *chMax, int *err)
Set the value of chMax. c is the zhao c parameter and h is the turning depth of the ray below the moh...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_weights_source(int nodeids[], double weights[], int *nWeights, int *err)
Retrieve the node IDs and the interpolation coefficients for the source CrustalProfile.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_n_head_wave_points(int *nHeadWavePoints, int *err)
Retrieve the number of LayerProfile objects positioned along the head wave interface.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_del_depth(double *delDepth, int *err)
Retrieve del_depth in km.
SLBM_FORT_SHELL_EXP_IMP void slbm_set_del_distance(double *delDistance, int *err)
Set the value of del_distance, radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_ch_max(double *chMax, int *err)
Retrieve the current value of chMax. c is the zhao c parameter and h is the turning depth of the ray ...
SLBM_FORT_SHELL_EXP_IMP void slbm_load_velocity_model(const char *modelFileName, int *nameLength, int *err)
Load the velocity model into memory from the specified file or directory. This method automatically d...
SLBM_FORT_SHELL_EXP_IMP void slbm_set_max_distance(const double *maxDistance, int *err)
Set the maximum source-receiver separation for Pn/Sn phase, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_fraction_active(double *fractionActive, int *err)
Retrieve the fraction of the path length of the current GreatCircle object that is within the current...
SLBM_FORT_SHELL_EXP_IMP void slbm_is_valid(int *err)
Returns true if the current GreatCirlce object has been instantiated and is ready to be interrogated.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_zhao_parameters(double *Vm, double *Gm, double *H, double *C, double *Cm, int *udSign, int *err)
Retrieve some of the parameters that contribute to the calculation of of total travel time using the ...
SLBM_FORT_SHELL_EXP_IMP void slbm_delete(int *err)
Deletes the SlbmInterface object instantiated with the call slbm_create().
SLBM_FORT_SHELL_EXP_IMP void slbm_move_point(double *aLat, double *aLon, double *distance, double *azimuth, double *bLat, double *bLon, int *err)
Find point B that is the specified distance and azimuth from point A. All quantities are in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_node_neighbors(int *nid, int neighbors[], int *nNeighbors, int *err)
Retrieve the node IDs of the nodes that surround the specified node.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_data(int *nodeId, double *latitude, double *longitude, double depth[slbm::NLAYERS], double pvelocity[slbm::NLAYERS], double svelocity[slbm::NLAYERS], double gradient[2], int *err)
Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (k...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_average_mantle_velocity(int *type, double *velocity, int *err)
Retrieve the average P or S wave mantle velocity that is specified in the model input file,...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_max_distance(double *maxDistance, int *err)
Retrieve the current value for the maximum source-receiver separation, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_node_neighbor_info(int *nid, int neighbors[], double distance[], double azimuth[], int *nNeighbors, int *err)
Retrieve the node IDs of the nodes that surround the specified node.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_tt_uncertainty_randerr(double *tt_uncertainty, int *err)
Retrieve travel time uncertainty in sec. This function will call either the path-dependent or 1D unce...
SLBM_FORT_SHELL_EXP_IMP void slbm_set_average_mantle_velocity(int *type, double *velocity, int *err)
Set the average P or S wave mantle velocity that is recorded in the model input file,...
SLBM_FORT_SHELL_EXP_IMP void slbm_tostring(char *tostring, int *verbosity, int *size, int *err)
SLBM_FORT_SHELL_EXP_IMP void slbm_get_node_azimuth(int *node1, int *node2, double *azimuth, int *err)
Retrieve the azimuth from grid node1 to grid node2, radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_set_max_depth(const double *maxDepth, int *err)
Set the maximum source depth for Pn/Sn phase, in km.
SLBM_FORT_SHELL_EXP_IMP void slbm_save_velocity_model_f(const char *modelFileName, int *nameLength, int *format, int *err)
Save the velocity model currently in memory to the specified file.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_grid_data(int *nodeId, double *latitude, double *longitude, double *depth, double *pvelocity, double *svelocity, double *gradient, int *err)
Retrieve the lat (radians), lon (radians), interface depths (km), P and S wave interval velocities (k...
SLBM_FORT_SHELL_EXP_IMP void slbm_initialize_active_nodes(double *latmin, double *lonmin, double *latmax, double *lonmax, int *err)
Specify the latitude and longitude range in radians for active nodes.
SLBM_FORT_SHELL_EXP_IMP void slbm_create_fixed_earth_radius(double *radius, int *err)
Instantiate a SLBM Interface object with fixed earth radius.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_head_wave_distance_km(double *dist, int *err)
Retrieve horizontal distance traveled by the ray below the headwave interface, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_del_distance(double *delDistance, int *err)
Retrieve del_distance in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_weights_rcvr(int nodeids[], double weights[], int *nweights, int *err)
Retrieve the active node IDs and the interpolation coefficients for the receiver CrustalProfile.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_neighbor_info(int *nid, int neighbors[], double distance[], double azimuth[], int *nNeighbors, int *err)
Retrieve the node IDs of the nodes that surround the specified node.
SLBM_FORT_SHELL_EXP_IMP void slbm_set_grid_data(int *nodeId, double *depth, double *pvelocity, double *svelocity, double *gradient, int *err)
Modify the velocity and gradient information associated with a specified node in the Grid.
SLBM_FORT_SHELL_EXP_IMP void slbm_set_interpolator_type(const char *interpolatorType, int *size, int *err)
Specify the interpolation type to use, either 'linear' or 'natural_neighbor'.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_node_hit_count(int *nodeId, int *hitCount, int *err)
Retrieve the number of times that node has been 'touched' by a GreatCircle object.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_sh_uncertainty(double *slowness_uncertainty, int *err)
Retrieve uncertainty of the slowness, in seconds/radian using the phase and distance specified in las...
SLBM_FORT_SHELL_EXP_IMP void slbm_create(int *err)
Instantiate a SLBM Interface object.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_great_circle_data(int *phase, double *path_increment, double sourceDepth[slbm::NLAYERS], double sourceVelocity[slbm::NLAYERS], double receiverDepth[slbm::NLAYERS], double receiverVelocity[slbm::NLAYERS], double headWaveVelocity[MAX_POINTS], double gradient[MAX_POINTS], int *npoints, int *err)
Retrieve the data required for input to the travel time calculation, for the current GreatCircle obje...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_great_circle_points(double *aLat, double *aLon, double *bLat, double *bLon, int *npoints, double latitude[MAX_POINTS], double longitude[MAX_POINTS], int *err)
Retrieve an array of lat, lon points along a great circle path between two specified points,...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_interpolated_point(double *lat, double *lon, int *nodeId, double *coefficients, int *nnodes, double *depth, double *pvelocity, double *svelocity, double *pgradient, double *sgradient, int *err)
Retrieve interpolated data from the earth model at a single specified latitude, longitude.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_weights_src(int nodeids[], double weights[], int *nweights, int *err)
Retrieve the active node IDs and the interpolation coefficients for the source CrustalProfile.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_dtt_ddepth(double *dtt_ddepth, int *err)
Retrieve the derivative of travel time wrt to source depth, in seconds/km.
SLBM_FORT_SHELL_EXP_IMP void slbm_set_del_depth(double *delDepth, int *err)
Set the value of del_depth, in km.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_weights_receiver(int nodeids[], double weights[], int *nWeights, int *err)
Retrieve the node IDs and the interpolation coefficients for the receiver CrustalProfile.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_pierce_point_source(double *lat, double *lon, double *depth, int *err)
Retrieve the latitude and longitude of the moho pierce point below the source, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_slowness_uncertainty(int *phase, double *distance, double *uncertainty, int *err)
Retrieve uncertainty of the slowness, in seconds/radian for specified phase, distance in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_interpolator_type(char *interpolatorType, int *size, int *err)
Retrieve the type of interpolator currently in use; either "LINEAR" or "NATUTAL_NEIGHBOR".
SLBM_FORT_SHELL_EXP_IMP void slbm_set_path_increment(double *pathIncrement, int *err)
Set the desired spacing of great circle nodes along the head wave interface, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_source_distance(double *dist, int *err)
Retrieve horizontal offset below the source, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_turningradius(double *turningRadius, int *err)
Retrieve turning radius in km.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_pierce_point_receiver(double *lat, double *lon, double *depth, int *err)
Retrieve the latitude and longitude of the moho pierce point below the receiver, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_slowness(double *slowness, int *err)
Retrieve the horizontal slowness, i.e., the derivative of travel time wrt to receiver-source distance...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_travel_time_components(double *tTotal, double *tSource, double *tReceiver, double *tHeadwave, double *tGradient, int *err)
Retrieve the total travel time and the 4 components that contribute to it for the current GreatCircle...
SLBM_FORT_SHELL_EXP_IMP void slbm_save_velocity_model(const char *modelFileName, int *nameLength, int *err)
Save the velocity model currently in memory to the specified file in format 4.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_head_wave_distance(double *dist, int *err)
Retrieve angular distance traveled by the ray below the headwave interface, in radians.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_dist_az(double *aLat, double *aLon, double *bLat, double *bLon, double *distance, double *azimuth, double *naValue, int *err)
compute distance and azimuth between two points, A and B (all quantities are in radians).
SLBM_FORT_SHELL_EXP_IMP void slbm_get_great_circle_points_on_centers(double *aLat, double *aLon, double *bLat, double *bLon, int *npoints, double latitude[MAX_POINTS], double longitude[MAX_POINTS], int *err)
Retrieve an array of lat, lon points along a great circle path between two specified points,...
SLBM_FORT_SHELL_EXP_IMP void slbm_create_great_circle(int *phase, double *sourceLat, double *sourceLon, double *sourceDepth, double *receiverLat, double *receiverLon, double *receiverDepth, int *err)
Instantiate a new GreatCircle object between two locations.
SLBM_FORT_SHELL_EXP_IMP void slbm_get_version(char *version, int *size, int *err)
Retrieve the SLBM Version number.
SLBM_FORT_SHELL_EXP_IMP void slbm_clear(int *err)
Delete the current GreatCircle object from memory and clear the pool of stored CrustalProfile objects...
SLBM_FORT_SHELL_EXP_IMP void slbm_get_active_node_id(int *gridNodeId, int *activeNodeId, int *err)
Retrieve the active node ID that corresponds to a specified grid node ID.