module BOAST::FORTRANRuntime

@private

Private Instance Methods

create_procedure_call_parameters() click to toggle source
# File lib/BOAST/Runtime/FORTRANRuntime.rb, line 58
def create_procedure_call_parameters
  return @procedure.parameters.collect { |param|
    par = param_struct.struct_reference(param_struct.type.members[param.name.to_s])
    if param.dimension then
      "#{par}"
    else
      "&#{par}"
    end
  }
end
create_procedure_indirect_call_parameters() click to toggle source
# File lib/BOAST/Runtime/FORTRANRuntime.rb, line 47
def create_procedure_indirect_call_parameters
  return @procedure.parameters.collect { |param|
    par = "#{param_struct.struct_reference(param_struct.type.members[param.name.to_s])}".gsub("_boast_params.","_boast_params->")
    if param.dimension then
      "#{par}"
    else
      "&#{par}"
    end
  }
end
fill_library_source() click to toggle source
# File lib/BOAST/Runtime/FORTRANRuntime.rb, line 38
def fill_library_source
  if fortran_line_length == 0 then
    @code.rewind
    get_output.write @code.read
  else
    get_output.print line_limited_source
  end
end
line_limited_source() click to toggle source
# File lib/BOAST/Runtime/FORTRANRuntime.rb, line 13
def line_limited_source
  s = ""
  @code.rewind
  @code.each_line { |line|
    if line.match(/^\s*!\w*?\$/) then
      if line.match(/^\s*!\$(omp|OMP)/) then
        chunks = line.scan(/.{1,#{fortran_line_length-7}}/)
        s += chunks.join("&\n!$omp&") + "\n"
      elsif line.match(/^\s*!(DIR|dir)\$/) then
        chunks = line.scan(/.{1,#{fortran_line_length-7}}/)
        s += chunks.join("&\n!DIR$&") + "\n"
      else
        chunks = line.scan(/.{1,#{fortran_line_length-4}}/)
        s += chunks.join("&\n!$&") + "\n"
      end
    elsif line.match(/^\s*!/) or line.match(/^\s*#include/) then
      s += line
    else
      chunks = line.scan(/.{1,#{fortran_line_length-2}}/)
      s += chunks.join("&\n&") + "\n"
    end
  }
  return s
end
method_name() click to toggle source
# File lib/BOAST/Runtime/FORTRANRuntime.rb, line 9
def method_name
  return  "#{@procedure.name}_"
end