-
Notifications
You must be signed in to change notification settings - Fork 0
Issues and tips
github.com/NEFSC/READ-EDAB-neusAtlantis.wiki.git
Some common issues we've encountered during compilation or run time and how they were resolved
You may need to add:
> WARN += -Wno-error=pointer-bool-conversion
This prevents warnings associated with converting pointers to boolean from halting compilation
> WARN += -Wno-error=misleading-indentation
This prevents warnings associated with improper indentation (Due to stricter rules as newer versions of gcc are used) from halting compilation
> WARN += -Wno-nullability-completeness
> WARN += -Wno-error=unused-but-set-variable
> WARN += -Wno-error=implicit-function-declaration
-
dfRead: Can't open /app/model/xxxx
- Check that there are no trailing spaces at end of file path -
../atSS3Link/libatSS3Link.a(atSS3DataGen.o): In function "GenData": /app/atlantis/atSS3Link/atSS3DataGen.c:86: undefined reference to "CKsimulator"
- Relates to Harvest control rules. Commenting out line 86 results in sucessful compilation but unsure down stream effects of doing this
-
Updates in the atlantis code base often contain additional parameters in the prm files. Errors at run time will often inform you which parameter(s) are missing from which prm file(s). Often adding the parameter with a default value = 0 will be sufficient.
-
/bin/sh: 1: ./RunAtlantis.sh: not found
- often due to having a windows end of line (EOL) format (CR LF). Convert to Linux EOF (LF) using notepad++ (Edit -> EOL Conversions -> Unix (LF)). -
/bin/sh: 1: ./RunAtlantis.sh: Permission denied
- often due to the file not being executable. This can happen if copied from a windows machine to a Linux server.chmod 774 RunAtlantis.sh
should make it executable to you and your group -
Util_Read_Functional_Group_XML: you have MAK as fished but not impacted, set impacted to 1 for this group to continue please
- The order of columns in groups file are not correct. (NumMigrations, MultiYrMigrations, ExternalReproduction, RecruitType)
Code builds without issues. To run requires changes to inputs.
Only some versions of the code base can be compiled or run. We have had success with the following versions. While getting the model to compile is a good first step. Getting it to run for different versions of the code base using the same parameter files can be challenging since the models requirements for inputs changes over time.
- 6536
- 6626 (requires changes to groups.csv)
- 6631
- 6645 (requires changes to nc file)
- 6665 (requires changes to groups.csv)
- 6670 (requires changes in compilation)
- 6678 (requires compilation fix and changes to migrations.csv)
- 6681
- 6698
Changes to Code are required prior to successfully building the the model
- 6580 (Wont run with migration turned on for NEUS model)
- 6599 (Wont run with migration turned on for NEUS model. Requires minor changes to configure.ac file)
NEUS atlantis focused much of its energy calibrating to atlantis v6536.
Demands on the NEUS atlantis model required an update to a later version of the atlantis code.
Later versions contain increased functionality (integration with R, forcing spatial abundance -box level proportions through time, forcing growth by scaling mum
parameter, including contaminants and pollutants) and various bug fixes, one of which related to migrating species.
Comparisons of model output between different versions of the code is vitally important. Updates to the code should not drastically effect the behavior of the model. However when updating from NEUS from v6536 to v6665 the model output was drastically different.
This was due to several reasons:
- There is a bug with constant recruitment
flagrecruitXXX = 1
. Solution: Changed to Beverton-Holt recruitment (flagrecruitXXX = 3
) or pupping recruitment (type 12) - Migration operates differently and species tuned to prior migration bugs needs to be recalibrated with new migration parameters
- Recruitment was "zeroed out" due to the
min_spawn_temp
andmax_spawn_temp
not getting read in properly. Setflagtempdepend = 1
to get the proper environmental scaling on recruitment. - Set
XXX_k_temp_const = 2
as a requirement forflagtempdepend
. This seems to be a required parameter ifflagtempdepend
is turned on, but doesn't get actively used - Apex predators and mammals behaving differently between versions (maybe due to migration changes)
Atlantis manual chapter 2.7 describes how to edit nc files using two functions, ncdump and ncgen, from the NetCDF libraries.
To edit an nc file called neus-init.nc, navigate to directory (using powershell) where nc file lives:
ncdump neus-init.nc > neus-init.cdf
This creates a file called neus-init.cdf which can be edited in any text editor. Make any changes needed.
When finished, save the cdf file and then convert it back to an nc file using ncgen
ncgen -b -o neus-init.nc neus-init.cdf
If you receive a message Input file contains a BOM indicating a non-UTF8 encoding you will need to encode the file prior to saving. To do this:
- Open notepad+
- Select Encoding -> Convert to UTF-8
- Save
Build your image with a tag, log in to docker hub, and push
> podman build -t atlantis:tag
> podman login docker.io
> podman tag atlantis:tag username/atlantis:tag
> podman push username/atlantis:tag
> podman login docker.io
> podman pull docker.io/andybeet/atlantis:tag
Running Atlantis
- Home
- Getting started
- Run NEUS Atlantis
- Using CDF distiller
- NOAA Cloud setup
- Issues & Tips
- Atlantis release updates
Calibration
Model Components
Model Criteria
Documentation