Docker/Podman image to install and run a containerised ROCKE-3D on Fedora.
- ROCKE-3D Model Description (doi:10.3847/1538-4365/aa7a06)
- ROCKE-3D Webpage
- ROCKE-3D Compilers & libraries
- ROCKE-3D Installation
- ROCKE-3D Tutorial Videos
- ROCKE-3D Publication Supplements (inc rundecks)
- Docker build help
- Docker run help
- Install Docker desktop
- Ensure Docker desktop is running
- Download published image:
docker pull woodwardsh/rocke3d:latest
- Run container, noting the mounting of local dir
./ModelE_Support
to container/home/app/ModelE_Support
for shared storage of model output:
docker run -it --rm --volume=${PWD}:/home/app/ModelE_Support woodwardsh/rocke3d:latest
# Options:
# -it interactive && TTY (starts shell inside container)
# --rm delete container on exit
# --volume mount local directory inside container
# -w PATH sets working directory inside container
- Replace
docker
withpodman
, and note additional options to fix permissions on mounted volumes (see podman run):
podman run -it --rm -v ${PWD}/ModelE_Support:/home/app/ModelE_Support --security-opt label=disable woodwardsh/rocke3d:latest
- Clone repo & navigate inside:
git clone git@github.com:hannahwoodward/docker-rocke3d.git && cd docker-rocke3d
- Build image from Dockerfile (~15 min):
docker build -t rocke3d .
- Or, if debugging:
docker build -t rocke3d . --progress=plain --no-cache
- Run locally built container:
docker run -it --rm -v ${PWD}/ModelE_Support:/home/app/ModelE_Support rocke3d
# Options:
# -it interactive && TTY (starts shell inside container)
# --rm delete container on exit
# -v mount local directory inside container
# -w PATH sets working directory inside container
- Build with similar command, replacing
docker
withpodman
:
podman build -t rocke3d .
- Run, with additional options to fix permissions on mounted volumes (see podman run):
podman run -it --rm -v ${PWD}/ModelE_Support:/home/app/ModelE_Support --security-opt label=disable rocke3d
- Start container
- Run
sh test-earth.sh
(output written toModelE_Support/huge_space/E1oM20_Test
) - Run
sh test-planet.sh
(uses SOCRATES; output written toModelE_Support/huge_space/P1SoM40_Test
)
- ROCKE-3D Diagnostics info
- The following directories have been added to
$PATH
, which contain scripts to generate readable netcdf model outputs:$HOME/$MODELDIR/model/mk_diags
:scaleacc
for interim/accumulative source files (e.g.PARTIAL.acc$RUN_ID.nc aij
)sumfiles
to combine multiple acc files across different time periods- Documention can be found in
$MODELDIR/model/mk_diags/conventions.txt
$HOME/bin
:scaleaccm
the multifile equivalent ofscaleacc
, e.g.scaleaccm ANN*.acc*.nc aij
docker login && docker tag rocke3d woodwardsh/rocke3d && docker push woodwardsh/rocke3d
- Create a rundeck P2{G,S}{A,x,N}{p,q,o}{F,M}40
- GISS/SOCRATES radiation
- Atmosphere of PI Earth Ocean {p,q,o}
- M40 4degx5deg with 40 layers in atmosphere, 13 layers in ocean
- Rundeck start/stop times:
- YEAR is just an index, MONTH always 1 to 12, HOUR always 0 to 23
- Calendar system used divides days into 24 model "hours" and years into 12 "months", so with varying orbital/rotation periods will therefore not generally be 3600s or 720hrs, respectively
ISTART=2
way to tell the model that initial conditions will be provided (AIC atmosphere, ground GIC, and if relevant ocean OIC)IRANDI=X
random number generation seed/adding numerical noise, used for cloud generationmaster_yr=1850
tells model to use Earth greenhouse gas concentrationsmaster_yr=0
runs a transient simulation
- YEAR is just an index, MONTH always 1 to 12, HOUR always 0 to 23
- For non-Earth continental configurations:
- Ensure land mass added at south pole to prevent grid singularity issues
- Change
OCNDYN.f#L5812
:J10=4
toJ10=1
(or whatever latitude south pole landmass ends at)