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 )