#!/bin/bash -l # Get some variables provided by autosubmit. WORKDIR=%HPCROOTDIR% dynamics_grid_filename=%simulation.dynamics_grid_filename% radiation_grid_filename=%simulation.radiation_grid_filename% external_parameters_filename=%simulation.external_parameters_filename% STARTDATE=%SDATE% # Example of date format "2018-06-01T00:00:00Z" START_YEAR=%Chunk_START_YEAR% START_MONTH=%Chunk_START_MONTH% START_DAY=%Chunk_START_DAY% START_HOUR=%Chunk_START_HOUR% END_YEAR=%Chunk_END_YEAR% END_MONTH=%Chunk_END_MONTH% END_DAY=%Chunk_END_DAY% END_HOUR=%Chunk_END_HOUR% Chunk_START_DATE="${START_YEAR}-${START_MONTH}-${START_DAY}T${START_HOUR}:00:00Z" Chunk_END_DATE="${END_YEAR}-${END_MONTH}-${END_DAY}T${END_HOUR}:00:00Z" # Convert dates to Unix timestamps t1_unix=$(date -d "$Chunk_START_DATE" +%s) t2_unix=$(date -d "$Chunk_END_DATE" +%s) # Compute difference in seconds checkpoint_time=$(((t2_unix - t1_unix))) # Compute number of steps dtime=180 # Extend chunk 10 minutes to ensure checkpoint creation at the proper time # TODO: Works but it is a bit ugly. Chunk_END_DATE="${END_YEAR}-${END_MONTH}-${END_DAY}T${END_HOUR}:10:00Z" MEMBER=%MEMBER% CHUNK=%CHUNK% # If the chunk is not the first one, start from a restart file. if [[ "${CHUNK}" -eq "1" ]]; then is_restart=.false. else is_restart=.true. fi # Define rundir RUNDIR=${WORKDIR}/${STARTDATE}/${MEMBER} cd ${RUNDIR} || exit # Get AN and FG file names from file that was saved during prepare_rundir AN_FILE=$( cat an_file.txt ) FG_FILE=$( cat fg_file.txt )