"ActiveThorns" not accepted in parameter file

Issue #2533 resolved
Erik Schnetter created an issue

I see an error with a parameter file that used to work fine. The error is

WARNING level 0 from host redshift.local process 0
  in thorn cactus, file qc0.par:1:
  -> ERROR IN PARAMETER FILE:Parse Error
Expected one of the following characters: ':', '(', '*', '/', '%', '+', '-', '<', '>', '&', '|', '!', '$', 'a', 'A'
# run.memory: 1.0e9
# run.time: 7200.0

ActiveThorns = "
             ^

The parameter file starts with

# run.me:
# run.cores: 40
# run.memory: 1.0e9
# run.time: 7200.0

ActiveThorns = "
ADMBase
CarpetX
Coordinates
ErrorEstimator
Formaline
IOUtil
ODESolvers
TimerReport
TmunuBase
TwoPunctures
Weyl
Z4c
"

I attach the full parameter file.

Comments (10)

  1. Erik Schnetter reporter

    I figured it out: The parameter file has two ActiveThorns declarations. The parser complains about the second one.

    Line numbers would be useful…

  2. Erik Schnetter reporter

    … and the reason the parameter file was duplicated was that I wrote IO::out_dir = $parfile in an *.rpar file.

  3. Steven R. Brandt

    The thing that confused the parser was the empty assignment to out_dir. It was looking for the value of output_dir, and found ActiveThorns. Should we disallow empty RHS?

    At the moment, I’m working to fix the line number issue.

    IO::out_dir =
    

  4. Roland Haas

    My take would be that to me:

    IO::out_dir =
    

    would be an error but that:

    IO::out_dir = ""
    

    is valid (so not the RHS is emtpy but the value). The tricky bit would seem to classify:

    foo = 
    bar = 12
    

    as an error on foo, while allowing:

    foo = 
    bar
    baz = 12
    

  5. Log in to comment