Skip to content
Jason Fleming edited this page Jun 5, 2021 · 1 revision

Adcirpolate

https://github.com/ccht-ncsu/Adcirpolate

Documentation and examples are in the "Documentation&TestCases" branch.

Build Notes

Started with ESMF, downloaded latest release tar.gz file, set up environment variables on my desktop machine:

export
ESMF_DIR=/home/jason/Campaigns/Development/2021/Technology/ADCIRPOLATE/esmf-ESMF_8_0_1

Needed to determine what kind of mpi I have:

mpiexec --version 
mpiexec (OpenRTE) 4.0.3 Report bugs to
http://www.open-mpi.org/community/help/

Set mpi type, compiler, word size, and install location:

export ESMF_COMM=openmpi 
export ESMF_COMPILER=gfortran 
export ESMF_ABI=64 
export ESMF_INSTALL_PREFIX=/home/jason/Campaigns/Development/2021/Technology/ADCIRPOLATE

Then built:

make 
make check  # some tests passed but this ended in failure
make install

Then turned to the task of building Adcirpolate:

find -name esmf.mk -print
./lib/libO/Linux.gfortran.64.openmpi.default/esmf.mk 
cd adcirpolate
export FC=mpif90
export ESMF_CONFIG_FILE=/home/jason/Campaigns/Development/2021/Technology/ADCIRPOLATE/esmf-ESMF_8_0_1/lib/libO/Linux.gfortran.64.openmpi.default/esmf.mk
cmake ./CMakeLists.txt
make all

Running Adcirpolate

The code currently requires the source data to be in a directory named coarse and the target mesh to be in a directory named fine. Seems to also require fulldomain coarse/fort.14 and coarse/partmesh.txt (had a couple error messages when these were not found). I later found that Adcirpolate also needs to read the fine/fort.14 fulldomain target mesh file as well as the fine/partmesh.txt domain decomposition description file.

Adcirpolate reads subdomain binary adcirc hotstart files from the coarse/PE* subdomain directories and then writes a fulldomain binary hotstart file to the fine directory. I was doing this on my desktop machine and wanted to use a small test case so I was just interpolating a hotstart file onto the same mesh as the source mesh so I did the following:

cp coarse/partmesh.txt fine

The Adcirpolate code is executed as follows:

jason@kitt:/srv/scratch/asgs.dev/asgs41098/2021040706$ mpiexec -n 2 ~/Campaigns/Development/2021/Technology/ADCIRPOLATE/Adcirpolate/adcirpolate

The Adcirpolate code appeared to run to completion successfully, with the following messages written to the console:

jason@kitt:/srv/scratch/asgs.dev/asgs41098/2021040706$ mpiexec -n 2 ~/Campaigns/Development/2021/Technology/ADCIRPOLATE/Adcirpolate/adcirpolate
Invalid MIT-MAGIC-COOKIE-1 keyLooking for global fort.14 in the directory: coarse/

Creating parallel ESMF mesh from ADCIRC source mesh

Looking for global fort.14 in the directory: fine/

Creating parallel ESMF mesh from ADCIRC destination mesh

Reading parallel hotdata from source directory.

Creating ESMF fields:
source data field is created.
destination mask field is created.
destination mapped data field is created.
destination unmapped data field is created.

Creating ESMF regriding operators:
mapped regriding operator is created.
unmapped regriding operator is created.

Regriding eta1:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding eta2:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding etaDisc:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding UU2:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding VV2:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding CH1:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Regriding NODECODE:
    mapped regriding done with code:    0
    unmapped regriding done with code:    0

Gathering src eta1 on root:
    gathered on root with code: 0

Gathering src eta2 on root:
    gathered on root with code: 0

Gathering src etaDisc on root:
    gathered on root with code: 0

Gathering src UU2 on root:
    gathered on root with code: 0

Gathering src VV2 on root:
    gathered on root with code: 0

Gathering src CH1 on root:
    gathered on root with code: 0

Gathering src NODECODE on root:
    gathered on root with code: 0

Gathering dst eta1 on root:
    gathered on root with code: 0

Gathering dst eta2 on root:
    gathered on root with code: 0

Gathering dst etaDisc on root:
    gathered on root with code: 0

Gathering dst UU2 on root:
    gathered on root with code: 0

Gathering dst VV2 on root:
    gathered on root with code: 0

Gathering dst CH1 on root:
    gathered on root with code: 0

Gathering dst NODECODE on root:
    gathered on root with code: 0

Computing the wet and dry nodes and elements.

Writing the global fort.67 in the destination mesh.