DOCUMENTATION

SYNOPSIS

PERL PERL PROGRAM NAME: big_streams_param 
AUTHOR: 	Juan Lorenzo
DATE: 		June 22 2022

DESCRIPTION V 0.0.3
BASED ON: su_params.pm V0.0.3

USE

NOTES

Examples

CHANGES and their DATES May 5 2018 looks for configurations first in the local directory then in the default configuration directory /usr/local/pl/big_streams/config

V 0.0.3 June 2022 reference to L_SU_local_user_constants
removed
L_SU_local_user_constants may create cirularity

parameters for seismic unix programs
both macros and individual modules
 

sub get

 returns values
 as an array
 input is a scalar reference
 used both by superflow/pre-built flows and seismic unix configuration files
 
Read a default specification file 
If default specification file does not exist locally (PL_SEISMIC),
look in the user's configuration directory
~HOME/.L_SU/configuration/active and if that does not exist,
then use the default one defined under global libs

Check that the configuration file in the local directory is not corrupt

 Debug with
   print ("this is $this\n");
   print ("self is $self,program is $program\n");

 Changing the namespace variables to lower
 case is not a general solution because
 original variables can have mixed upper and lower
 case names
 
 DEPRECATED:
 Older versions may use Config::Simple
   my $a = Config::Simple->import_from($this,'Z');
    foreach my $key ( keys %Z:: )
   {
      my $x = lc $key;
       print "key is $x\n";
       print "$cfg->param($key)\n";
   }

sub _check4local_config

needs name_sref

CASE for any type of flow big streams/superflows or for or sunix programs in user-built flows

Check for local versions of the configuration files in PL_SEISMIC and also look in specified _CONFIG folder _CONFIG folder is defined as PL_SEISMIC for all but pre-built big streams/superflows (e.g., immodpg)

(For pre-built big streams, look at program_spec to find the definition for _CONFIG)

#		my $a       = $package->variables();
#		foreach my $key (sort keys %$a) {
#      	print (" big_streams_param,_check4local_config, , key is $key, value is $a->{$key}\n");
#	}
#		my $ans= $a->{_CONFIG};
#		print("2. big_streams_param,_check4local_config,package=$ans\n");

sub _check4user_config

check for versions of the configuration files
in the user's configuration directory:
.L_SU/configuration/active
only needed for Project.config
e.g., not for Sseg2su

sub check4user_config

check for versions of the Project.config file
in the user's configuration directory:
.L_SU/configuration/active
for Project.config
True when for $$name_sref='Project';

sub my_length not found This length is twice the number of parameter names print("big_streams_param,length: is $length\n");