diff options
author | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2002-05-20 14:07:36 +0000 |
---|---|---|
committer | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2002-05-20 14:07:36 +0000 |
commit | 3f6c7a77eee5addaa3eca660ad0baedc5e04e5f8 (patch) | |
tree | 430aa9cd3d431ace3827a0786bba5e6ac2ba8b36 /lib/sbin/create_fortran_stuff.pl | |
parent | 23c746c442dc67e290609679071f2462e4515741 (diff) |
Added array parameters.
Added accumulator parameters - needs a bit more error checking.
Preliminary support for aliasing parameters - disabled until it works
properly.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2829 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/create_fortran_stuff.pl')
-rw-r--r-- | lib/sbin/create_fortran_stuff.pl | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/lib/sbin/create_fortran_stuff.pl b/lib/sbin/create_fortran_stuff.pl index 2e3c881c..1bd517a4 100644 --- a/lib/sbin/create_fortran_stuff.pl +++ b/lib/sbin/create_fortran_stuff.pl @@ -84,9 +84,18 @@ sub CreateFortranThornParameterBindings foreach $parameter (sort(keys %these_parameters)) { # Alias the parameter unless it is one we want. - if(($rhparameter_db->{"\U$thorn SHARES $friend\E variables"} =~ m:( )*$parameter( )*:) && (length($1) > 0)||length($2)>0||$1 eq $rhparameter_db->{"\U$thorn SHARES $friend\E variables"}) + if(($rhparameter_db->{"\U$thorn SHARES $friend\E variables"} =~ m:( )*$parameter( )*:) && + (length($1) > 0)||length($2)>0||$1 eq $rhparameter_db->{"\U$thorn SHARES $friend\E variables"}) { - $alias_names{$parameter} = $parameter; + # See if we are sharing it AS something + my $name = $rhparameter_db->{"\U$thorn $parameter\E alias"}; + + if(! $name) + { + $name = "$parameter"; + } + + $alias_names{$parameter} = $name; } else { @@ -136,18 +145,34 @@ sub CreateFortranCommonDeclaration foreach $parameter (&order_params($rhparameters,$rhparameter_db)) { - $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; + my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; + + my $type_string = &get_fortran_type_string($type); + + my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"}; + + my $suffix = ''; - $type_string = &get_fortran_type_string($type); + if($array_size) + { + $suffix = "($array_size)"; + } if($aliases == 0) { - $line = "$type_string $parameter"; - $definition .= "$sepchar$parameter"; + my $name = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E alias"}; + + if(! $name) + { + $name = "$parameter"; + } + + $line = "$type_string $name$suffix"; + $definition .= "$sepchar$name"; } else { - $line = "$type_string $rhaliases->{$parameter}"; + $line = "$type_string $rhaliases->{$parameter}$suffix"; $definition .= "$sepchar$rhaliases->{$parameter}"; } |