App-SeismicUnixGui

 view release on metacpan or  search on metacpan

lib/App/SeismicUnixGui/big_streams/immodpg.pl  view on Meta::CPAN


=head2 NOTES 

 We are using Moose.
 Moose already declares that you need debuggers turned on
 so you don't need a linewlike the following:
 use warnings;
 
 When program starts change file is initialized to "no". --change file 
 is deleted and reset to a default "no" at the start. 
 change file is set to yes in Perl.
 however we are careful only to do so when the file indicates a previous 'no'
 and reset to no in fortran after fortran uses the setting
 When exiting the change file contains a "yes"

 Avoids asynchronous reading and writing crashes
 Lock files are not failsafe
 
 There are two types of methods:
 
 One method type only sets the message type (immodpg->set_option(message #)) and 
 indicates a forced change (immodpg->set_change(yes)) for use with fortran 
 program immodpg.for
 e.g., _setVbot_plus, _set_move_down.
 The gui shows a symbol for these cases

 A second type of method manages changing values for a parameter as well
 as the functions of the first method. These actions are relegated to
 immodpg
 eg., _setVbot, _setVtop_upper_layer, _setVincrement, _set_clip, _set_layer
 The gui shows a parameter value that can be changed by the user.
 The Entry widget is configured to recognize text value changes and
 a return(1) is needed to indicate a successful validation
 
immodpg must follow premmod to prevent logical circularity
as a result of the use of the 'aliased' syntax

April 2021, removed commented lines

=cut

use Moose;
our $VERSION = '0.0.1';
use Time::HiRes qw(gettimeofday tv_interval);
use Tk;
use aliased 'App::SeismicUnixGui::misc::L_SU_global_constants';
use aliased 'App::SeismicUnixGui::configs::big_streams::Project_config';
use aliased 'App::SeismicUnixGui::configs::big_streams::immodpg_config';
use aliased 'App::SeismicUnixGui::big_streams::immodpg_global_constants';
use aliased 'App::SeismicUnixGui::misc::premmod';
use App::SeismicUnixGui::big_streams::immodpg '0.0.2';
use aliased 'App::SeismicUnixGui::big_streams::immodpg';
use aliased 'App::SeismicUnixGui::sunix::shell::xk';

=head2 private anonymous hash 
used to hand off variables for external printing

=cut

my $immodpg_Tk = {
	_prompt                     => '',
	_base_file_name             => '',
	_pre_digitized_XT_pairs     => '',
	_data_traces                => '',
	_clip4plotEntry             => '',
	_lower_layerLabel           => '',
	_min_t_s                    => '',
	_min_x_m                    => '',
	_mw						    => '',
	_thickness_increment_m      => '',
	_thickness_mEntry           => '',
	_thickness_mLabel           => '',
	_source_depth_m             => '',
	_receiver_depth_m           => '',
	_reducing_vel_mps           => '',
	_plot_min_x_m               => '',
	_plot_max_x_m               => '',
	_plot_min_t_s               => '',
	_plot_max_t_s               => '',
	_previous_model             => '',
	_new_model                  => '',
	_layer                      => '',
	_mw                      => '',
	_thickness_increment_mEntry => '',
	_upper_layerLabel           => '',
	_VbotEntry                  => '',
	_VbotNtop_factorEntry       => '',
	_Vbot_upper_layerEntry      => '',
	_Vincrement                 => '',
	_VincrementEntry            => '',

};

=head2 Instantiate classes:

 Create a new version of the package 
 with a unique name

=cut

my $get_L_SU       	= L_SU_global_constants->new();
my $get_immodpg    	= immodpg_global_constants->new();
my $immodpg   		= immodpg->new();
my $immodpg_config 	= immodpg_config->new();

my $premmod 		= premmod->new();
my $xk      		= xk->new();
my $Project         = Project_config->new();

my $IMMODPG          	   = $Project->IMMODPG();

my $var_L_SU               = $get_L_SU->var();
my $global_libs 		   = $get_L_SU->global_libs();

my $var_immodpg            = $get_immodpg->var();
my $change_thickness_m_opt = $var_immodpg->{_thickness_m_opt};
my $clip_opt               = $var_immodpg->{_clip_opt};
my $exit_opt               = $var_immodpg->{_exit_opt};
my $immodpg_model 		   = $var_immodpg ->{_immodpg_model};
my $move_down_opt          = $var_immodpg->{_move_down_opt};
my $move_left_opt          = $var_immodpg->{_move_left_opt};



( run in 0.513 second using v1.01-cache-2.11-cpan-6aa56a78535 )