Skip to content

Bug: KPP does not parse constants with "d" exponents in the #INITVALUES section #133

@yantosca

Description

@yantosca

I have been using KPP in box-model context and have found that it cannot parse initial values properly that use Fortran "d" (double-precision) exponents instead of "e" exponents. For example, using this:

#INITVALUES

   CFACTOR = 1.0e0;

results in the following output:

This is KPP-3.2.0.

KPP is parsing the equation file.
KPP is computing Jacobian sparsity structure.
KPP is starting the code generation.
KPP is initializing the code generation.
KPP is generating the monitor data:
    - carbon_Monitor
KPP is generating the utility data:
    - carbon_Util
KPP is generating the global declarations:
    - carbon_Main
KPP is generating the ODE function:
    - carbon_Function
KPP is generating the utility functions:
    - carbon_Util
KPP is generating the rate laws:
    - carbon_Rates
KPP is generating the parameters:
    - carbon_Parameters
KPP is generating the global data:
    - carbon_Global
KPP is generating the driver from general.F90:
    - carbon_Main
KPP is starting the code post-processing.

KPP has successfully created the model "carbon".

but using either:

#INITVALUES

   CFACTOR = 1.0d0;

or

#INITVALUES

   CFACTOR = 1.0_dp;

results in this error:

This is KPP-3.2.0.

KPP is parsing the equation file.Error :carbon.def:9: Misplaced ';'

Fatal error : 1 errors and 0 warnings encountered.
Program aborted

The difference being that e.g. 1.0e0 would incur roundoff after about 7 decimal places but 1.0d0 would not.

I can try to fix this when I have time. Not a huge thing but we should fix it for consistency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglexing / parsingIssues in lexing and/or parsing the mechanism

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions