diff options
author | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2008-02-29 16:51:19 +0000 |
---|---|---|
committer | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2008-02-29 16:51:19 +0000 |
commit | 0fc165bf1925c246ce3c0fda94340c9a88026581 (patch) | |
tree | 529d76a4b5ab1126f88f516e48e3275d0f34e1e6 /lib/sbin | |
parent | 81a6e3b529c6416c526b1da9fca8f110790b16c7 (diff) |
Check the dimension and distribution type of grid scalars and the
distribution type of grid functions
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4465 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin')
-rw-r--r-- | lib/sbin/interface_parser.pl | 67 |
1 files changed, 62 insertions, 5 deletions
diff --git a/lib/sbin/interface_parser.pl b/lib/sbin/interface_parser.pl index 0e049860..4e5f3afb 100644 --- a/lib/sbin/interface_parser.pl +++ b/lib/sbin/interface_parser.pl @@ -933,9 +933,16 @@ sub parse_interface_ccl $interface_data_ref->{"\U$thorn GROUP $current_group\E GTYPE"} = "SCALAR"; } - if(! $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"}) + if (! $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"}) { - $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"} = 3; + if ($interface_data_ref->{"\U$thorn GROUP $current_group\E GTYPE"} eq 'SCALAR') + { + $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"} = 0; + } + else + { + $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"} = 3; + } } if(! $interface_data_ref->{"\U$thorn GROUP $current_group\E TIMELEVELS"}) @@ -958,11 +965,61 @@ sub parse_interface_ccl $interface_data_ref->{"\U$thorn GROUP $current_group\E COMPACT"} = 0; } - # Override defaults for scalars - if($interface_data_ref->{"\U$thorn GROUP $current_group\E GTYPE"} eq "SCALAR") + if ($interface_data_ref->{"\U$thorn GROUP $current_group\E GTYPE"} eq "SCALAR") { + my $dim = $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"}; + if ($dim && $dim ne '0') + { + my $message = "Inconsistent GROUP DIM $dim for SCALAR group $current_group of thorn $thorn"; + my $hint = "The only allowed group dimension for scalar groups is '0'"; + &CST_error (0, $message, $hint, __LINE__, __FILE__); + if ($data_ref->[$line_number+1] =~ m:\{:) + { + &CST_error (1, "Skipping interface block in $thorn", '', + __LINE__, __FILE__); + ++ $line_number until ($data_ref->[$line_number] =~ m:\}:); + } + next; + } $interface_data_ref->{"\U$thorn GROUP $current_group\E DIM"} = 0; - $interface_data_ref->{"\U$thorn GROUP $current_group\E DISTRIB"} = "CONSTANT"; + + my $distrib = $interface_data_ref->{"\U$thorn GROUP $current_group\E DISTRIB"}; + if ($distrib && $distrib ne 'CONSTANT') + { + my $message = "Inconsistent GROUP DISTRIB $distrib for SCALAR group $current_group of thorn $thorn"; + my $hint = "The only allowed group distribution for scalar groups is 'CONSTANT'"; + &CST_error (0, $message, $hint, __LINE__, __FILE__); + if ($data_ref->[$line_number+1] =~ m:\{:) + { + &CST_error (1, "Skipping interface block in $thorn", '', + __LINE__, __FILE__); + ++ $line_number until ($data_ref->[$line_number] =~ m:\}:); + } + next; + } + $interface_data_ref->{"\U$thorn GROUP $current_group\E DISTRIB"} = + "CONSTANT"; + } + + # Override defaults for grid functions + if ($interface_data_ref->{"\U$thorn GROUP $current_group\E GTYPE"} eq "GF") + { + my $distrib = $interface_data_ref->{"\U$thorn GROUP $current_group\E DISTRIB"}; + if ($distrib && $distrib ne 'DEFAULT') + { + my $message = "Inconsistent GROUP DISTRIB $distrib for GF group $current_group of thorn $thorn"; + my $hint = "The only allowed group distribution for grid function groups is 'DEFAULT'"; + &CST_error (0, $message, $hint, __LINE__, __FILE__); + if ($data_ref->[$line_number+1] =~ m:\{:) + { + &CST_error (1, "Skipping interface block in $thorn", '', + __LINE__, __FILE__); + ++ $line_number until ($data_ref->[$line_number] =~ m:\}:); + } + next; + } + $interface_data_ref->{"\U$thorn GROUP $current_group\E DISTRIB"} = + "DEFAULT"; } # Check that it is a known group type |