/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/sed/sed_column.h

Go to the documentation of this file.
00001 //---
00002 //
00003 // This file is part of sedflux.
00004 //
00005 // sedflux is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation; either version 2 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // sedflux is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with sedflux; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 //
00019 //---
00020 
00021 #if !defined(SED_COLUMN_H)
00022 # define SED_COLUMN_H
00023 
00024 #include <glib.h>
00025 #include "utils/utils.h"
00026 
00027 #ifndef S_ADDBINS
00028 # define S_ADDBINS (16)
00029 #endif
00030 
00031 #include "datadir_path.h"
00032 
00033 #if !defined( DATADIR )
00034 # define DATADIR "/usr/local/share"
00035 #endif
00036 
00037 #if G_BYTE_ORDER == G_BIG_ENDIAN
00038 #define SED_COLUMN_TEST_FILE DATADIR "/sedflux/sed_column-be.bin"
00039 #else
00040 #define SED_COLUMN_TEST_FILE DATADIR "/sedflux/sed_column-le.bin"
00041 #endif
00042 
00043 #include "sed_sediment.h"
00044 #include "sed_cell.h"
00045 
00080 new_handle( Sed_column );
00081 
00082 Sed_column sed_column_new             ( gssize n );
00083 Sed_column sed_column_new_filled      ( double t , Sed_size_class size );
00084 Sed_column sed_column_destroy         ( Sed_column c );
00085 Sed_column sed_column_clear           ( Sed_column c );
00086 Sed_column sed_column_copy            ( Sed_column d , const Sed_column s );
00087 gboolean   sed_column_is_same         ( const Sed_column a , const Sed_column b );
00088 gboolean   sed_column_is_same_data    ( const Sed_column a , const Sed_column b );
00089 Sed_column sed_column_copy_data       ( Sed_column d , const Sed_column s );
00090 Sed_column sed_column_copy_public_data( Sed_column d , const Sed_column s );
00091 Sed_column sed_column_dup             ( const Sed_column s );
00092 
00093 double     sed_column_mass            ( const Sed_column c );
00094 double     sed_column_sediment_mass   ( const Sed_column c );
00095 double*    sed_column_total_load      ( const Sed_column c    ,
00096                                         gssize start          ,
00097                                         gssize n_bins         ,
00098                                         double overlying_load ,
00099                                         double* load );
00100 double*    sed_column_load            ( const Sed_column c    ,
00101                                         gssize start          ,
00102                                         gssize n_bins         ,
00103                                         double* load );
00104 
00105 double* sed_column_load_with_water(const Sed_column,gssize,gssize,double*);
00106 double  sed_column_water_pressure( const Sed_column s );
00107 double* sed_column_total_property( Sed_property f , Sed_column c , gssize start , gssize n_bins , double* val );
00108 double* sed_column_avg_property_with_load( Sed_property f , Sed_column c , gssize start , gssize n_bins , double* val );
00109 double* sed_column_avg_property( Sed_property f , Sed_column c , gssize start , gssize n_bins , double* val );
00110 double* sed_column_at_property( Sed_property f , Sed_column c , gssize start , gssize n_bins , double* val );
00111 double  sed_column_load_at(const Sed_column,gssize);
00112 double  sed_column_property_0( Sed_property f, const Sed_column s );
00113 double  sed_column_property( Sed_property f, const Sed_column s );
00114 
00115 double sed_column_add_vec(Sed_column,const double*);
00116 
00117 Sed_column sed_column_resize           ( Sed_column c , gssize n );
00118 Sed_column sed_column_resize_cell      ( Sed_column c , gssize i , double t );
00119 Sed_column sed_column_compact_cell     ( Sed_column c , gssize i , double t );
00120 double     sed_column_add_cell         ( Sed_column c , const Sed_cell cell );
00121 double     sed_column_stack_cell       ( Sed_column c , const Sed_cell cell );
00122 double     sed_column_stack_cell_loc   ( Sed_column c , const Sed_cell cell );
00123 Sed_cell   sed_column_top_cell         ( const Sed_column c );
00124 Sed_cell   sed_column_nth_cell         ( const Sed_column c , gssize i );
00125 
00126 
00127 Sed_cell sed_column_extract_top_cell(Sed_column,double,Sed_cell);
00128 Sed_cell sed_column_extract_top(Sed_column,double,Sed_cell);
00129 Sed_cell sed_column_extract_top_fill( Sed_column col  ,
00130                                       double t ,
00131                                       Sed_cell fill   ,
00132                                       Sed_cell dest );
00133 Sed_column sed_column_remove_top     ( Sed_column col , double t );
00134 Sed_column sed_column_remove_top_cell(Sed_column,double);
00135 Sed_cell   sed_column_extract_top    ( Sed_column , double , Sed_cell );
00136 Sed_cell sed_column_separate_top(Sed_column,double,double[],Sed_cell);
00137 Sed_cell sed_column_separate_top_amounts( Sed_column col ,
00138                                           double total_t ,
00139                                           double t[]     ,
00140                                           Sed_cell rem_cell );
00141 Sed_cell sed_column_separate_top_amounts_fill( Sed_column col ,
00142                                                double total_t ,
00143                                                double t[]     ,
00144                                                Sed_cell fill  ,
00145                                                Sed_cell rem_cell );
00146 Sed_cell sed_column_separate_top_thickness( Sed_column col ,
00147                                             double         ,
00148                                             double*        ,
00149                                             Sed_cell );
00150 
00151 
00152 double     sed_column_top_property_0( Sed_property property , const Sed_column s , double top );
00153 double     sed_column_top_property  ( Sed_property property , const Sed_column s , double top );
00154 
00155 double     sed_column_top_rho     ( const Sed_column c , double t );
00156 double     sed_column_top_age     ( const Sed_column c , double t );
00157 Sed_cell   sed_column_top         ( const Sed_column c , double t , Sed_cell d );
00158 gssize     sed_column_top_nbins   ( const Sed_column c , double z );
00159 
00160 gssize     sed_column_write   (FILE* fp , const Sed_column  c );
00161 gssize     sed_column_write_to_byte_order( FILE* fp , const Sed_column s , gint order );
00162 Sed_column sed_column_read    (FILE* fp                       );
00163 
00164 Sed_column sed_column_height_copy(const Sed_column,double,Sed_column);
00165 
00166 Sed_column sed_column_chomp   ( Sed_column , double );
00167 Sed_column sed_column_chop    ( Sed_column , double );
00168 Sed_column sed_column_strip   ( Sed_column , double , double );
00169 
00170 gboolean   sed_column_is_below   ( Sed_column c , double z );
00171 gboolean   sed_column_is_above   ( Sed_column c , double z );
00172 
00173 Sed_column sed_column_set_thickness     ( Sed_column c , double t ) G_GNUC_INTERNAL;
00174 
00175 double     sed_column_depth_age         ( const Sed_column , double );
00176 gssize     sed_column_index_at          ( const Sed_column c , double h );
00177 double     sed_column_thickness_index   ( const Sed_column c , gssize i );
00178 gssize     sed_column_index_thickness   ( const Sed_column c , double t );
00179 gssize     sed_column_index_depth       ( const Sed_column c , double d );
00180 
00181 Sed_column sed_column_add               ( Sed_column d , const Sed_column s );
00182 Sed_column sed_column_remove            ( Sed_column d , const Sed_column s );
00183 Sed_column sed_column_rebin             ( Sed_column c );
00184 Sed_cell   sed_cell_add_column          ( Sed_cell cell , const Sed_column c );
00185 
00186 double     sed_column_base_height    ( const Sed_column c );
00187 double     sed_column_top_height     ( const Sed_column c );
00188 double     sed_column_x_position     ( const Sed_column c );
00189 double     sed_column_y_position     ( const Sed_column c );
00190 double     sed_column_age            ( const Sed_column c );
00191 double     sed_column_water_depth    ( const Sed_column c );
00192 double     sed_column_sea_level      ( const Sed_column c );
00193 double     sed_column_z_res          ( const Sed_column c );
00194 double     sed_column_thickness      ( const Sed_column c );
00195 gssize     sed_column_len            ( const Sed_column c );
00196 gboolean   sed_column_is_empty       ( const Sed_column c );
00197 gboolean   sed_column_is_valid_index ( const Sed_column c , gssize n );
00198 gboolean   sed_column_is_get_index   ( const Sed_column c , gssize n );
00199 gboolean   sed_column_is_set_index   ( const Sed_column c , gssize n );
00200 gboolean   sed_column_size_is        ( const Sed_column c , double t );
00201 gboolean   sed_column_mass_is        ( const Sed_column c , double m );
00202 gboolean   sed_column_sediment_mass_is( const Sed_column c , double m );
00203 gboolean   sed_column_base_height_is ( const Sed_column c , double z );
00204 gboolean   sed_column_top_height_is  ( const Sed_column c , double z );
00205 gssize     sed_column_top_index      ( const Sed_column c );
00206 
00207 Sed_column sed_column_set_base_height    ( Sed_column c , double z );
00208 Sed_column sed_column_adjust_base_height ( Sed_column s , double dz );
00209 Sed_column sed_column_set_x_position     ( Sed_column c , double );
00210 Sed_column sed_column_set_y_position     ( Sed_column c , double );
00211 Sed_column sed_column_set_age            ( Sed_column c , double );
00212 Sed_column sed_column_set_sea_level      ( Sed_column c , double );
00213 Sed_column sed_column_set_z_res          ( Sed_column c , double new_dz );
00214 
00215 double     sed_column_position           ( const Sed_column c  ) G_GNUC_DEPRECATED;
00216 Sed_column sed_column_set_position       ( Sed_column , double ) G_GNUC_DEPRECATED;
00217 double     sed_column_depth              ( const Sed_column  c ) G_GNUC_DEPRECATED;
00218 
00219 Sed_cell   sed_column_extract_top_cell_loc( Sed_column c );
00220 Sed_cell*  sed_column_extract_cells_above ( Sed_column c , double z );
00221 Sed_cell*  sed_column_extract_top_n_cells ( Sed_column c , gint n_cells );
00222 
00223 Sed_column sed_column_stack_cells        ( Sed_column c , Sed_cell* cells );
00224 Sed_column sed_column_stack_cells_loc    ( Sed_column c , Sed_cell* cells );
00225 
00226 double     sed_column_stack_cell_real    ( Sed_column c , Sed_cell cell , gboolean update_pressure );
00227 double     sed_column_stack_cell_loc_real( Sed_column c , Sed_cell cell , gboolean update_pressure );
00228 double     sed_column_stack_cell         ( Sed_column c , Sed_cell cell );
00229 double     sed_column_stack_cell_loc     ( Sed_column c , Sed_cell cell );
00230 
00231 #endif /* sed_column.h is included */
00232 

Generated on Fri Jan 4 18:04:15 2008 for sedflux by  doxygen 1.5.2