<p><b>dwj07@fsu.edu</b> 2012-03-12 15:34:47 -0600 (Mon, 12 Mar 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Updating makeMeshes.sh script to setup all of the current baroclinic_channel test runs.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/ocean_test_cases_staging/ocean/baroclinic_channel/makeMeshes.sh
===================================================================
--- branches/ocean_projects/ocean_test_cases_staging/ocean/baroclinic_channel/makeMeshes.sh        2012-03-12 19:55:20 UTC (rev 1620)
+++ branches/ocean_projects/ocean_test_cases_staging/ocean/baroclinic_channel/makeMeshes.sh        2012-03-12 21:34:47 UTC (rev 1621)
@@ -4,7 +4,6 @@
 ## Change the horizontal spacings, vertical levels, and cells in the x direction here ##
 ## To start, grids are periodic in the x direction. This may change later                          ##
 ########################################################################################
-
 SPACINGS="1000 4000 10000"
 VERTLEVS="20"
 TCNAME="baroclinic_channel"
@@ -23,7 +22,7 @@
 CUR_DIR=`pwd`
 
 if [ -z "$3" ]; then
-        PROCS="2 4 8 16 32 64 128 256 512 1024 2048 4096"
+        PROCS="2 4 8 16 32"
 else
         PROCS="$3"
 fi
@@ -31,24 +30,33 @@
 X_EXTENT="160000"
 Y_EXTENT="500000"
 
+#######################################################
+## Setup Variables for different run initializations ##
+#######################################################
+TIME_STEPPERS["config_time_integration"]="rk4 se1 se20 use"
+TIME_STEPS["config_dt"]="1 5 10 20 40 80 160"
+
 ############################################################
 ## Setup Default namelist keys and values to update later ##
 ############################################################
+declare -A STATIC_NAMELIST_VARS
+STATIC_NAMELIST_VARS["config_run_duration"]="'0000_00:02:40'"
+STATIC_NAMELIST_VARS["config_input_name"]="'grid.nc'"
+STATIC_NAMELIST_VARS["config_output_name"]="'output.nc'"
+STATIC_NAMELIST_VARS["config_restart_name"]="'restart.nc'"
+STATIC_NAMELIST_VARS["config_output_interval"]="'00_00:02:40'"
+STATIC_NAMELIST_VARS["config_do_restart"]=".false."
+STATIC_NAMELIST_VARS["config_vert_grid_type"]="'zstar'"
+STATIC_NAMELIST_VARS["config_rho0"]="1000"
+STATIC_NAMELIST_VARS["config_bottom_drag_coeff"]="1.0e-2"
+STATIC_NAMELIST_VARS["config_vert_visc_type"]="'const'"
+STATIC_NAMELIST_VARS["config_vert_diff_type"]="'const'"
+STATIC_NAMELIST_VARS["config_eos_type"]="'linear'"
+STATIC_NAMELIST_VARS["config_monotonic"]=".true."
+STATIC_NAMELIST_VARS["config_vert_tracer_adv_order"]="3"
+STATIC_NAMELIST_VARS["config_horiz_tracer_adv_order"]="3"
+STATIC_NAMELIST_VARS["config_thickness_adv_order"]="3"
 
-KEYS[0]="config_time_integration";   VALUES[0]="'RK4'";
-KEYS[1]="config_run_duration";       VALUES[1]="'0200_00:00:00'";
-KEYS[2]="config_input_name";         VALUES[2]="'grid.nc'";
-KEYS[3]="config_output_name";        VALUES[3]="'output.nc'";
-KEYS[4]="config_restart_name";       VALUES[4]="'restart.nc'";
-KEYS[5]="config_output_interval";    VALUES[5]="'01_00:00:00'";
-KEYS[6]="config_do_restart";         VALUES[6]=".false.";
-KEYS[7]="config_vert_grid_type";     VALUES[7]="'zlevel'";
-KEYS[8]="config_rho0";               VALUES[8]="1000";
-KEYS[9]="config_bottom_drag_coeff";  VALUES[9]="1.0e-2";
-KEYS[10]="config_vert_visc_type";    VALUES[10]="'const'";
-KEYS[11]="config_vert_diff_type";    VALUES[11]="'const'";
-KEYS[12]="config_eos_type";          VALUES[12]="'linear'";
-
 #################################################
 ## Build perfect hex meshes using periodic_hex ##
 #################################################
@@ -104,10 +112,9 @@
         cp MPAS-namelist.input.default MPAS-namelist.input.temporary
 fi
 
-i=1
-for ((i=0; i<${#KEYS[@]}; i++));
+for VAR_NAME in ${!STATIC_NAMELIST_VARS[@]}
 do
-        cat MPAS-namelist.input.temporary | sed "s/${KEYS[$i]} .*/${KEYS[$i]} = ${VALUES[$i]}/g" > Temp
+        cat MPAS-namelist.input.temporary | sed "s/${VAR_NAME} .*/${VAR_NAME} = ${STATIC_NAMELIST_VARS[$VAR_NAME]}/g" > Temp
         mv Temp MPAS-namelist.input.temporary
 done
 
@@ -176,46 +183,66 @@
                 mv ocean.nc ${TCNAME}_${NAME}_${VERTLEV}levs.grid.nc
                 mv graph.info ${TCNAME}_${NAME}_${VERTLEV}levs.graph.info
 
-                for PROC in $PROCS
+                for TIME_STEPPER in ${TIME_STEPPERS}
                 do
-                        mkdir -p ${NAME}_${VERTLEV}levs/${PROC}procs
+                        if [ ${TIME_STEPPER} == 'rk4' ]; then
+                                TIME_INTEGRATOR="'RK4'"
+                        elif [ ${TIME_STEPPER:0:2} == "se" ]; then
+                                TIME_INTEGRATOR="'split_explicit'"
+                                SUB_CYCLES=${TIME_STEPPER:2}
+                        elif [ ${TIME_STEPPER} == 'use' ]; then
+                                TIME_INTEGRATOR="'unsplit_explicit'"
+                        fi
 
-                        pmetis ${TCNAME}_${NAME}_${VERTLEV}levs.graph.info $PROC > /dev/null
+                        for TIME_STEP in ${TIME_STEPS}
+                        do
 
-                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.graph.info ${NAME}_${VERTLEV}levs/${PROC}procs/graph.info
-                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.graph.info.part.${PROC} ${NAME}_${VERTLEV}levs/${PROC}procs/graph.info.part.${PROC}
-                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.grid.nc ${NAME}_${VERTLEV}levs/${PROC}procs/grid.nc
-                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/namelist.input ${NAME}_${VERTLEV}levs/${PROC}procs/namelist.input
+                                for PROC in $PROCS
+                                do
 
-                        ## Copy executable to run directory
-                        if [ $# -ge 1  ]; then
-                                if [ -e ${NAME}_${VERTLEV}levs/${PROC}procs/ocean_model.exe ]; then
-                                        unlink ${NAME}_${VERTLEV}levs/${PROC}procs/ocean_model.exe
-                                fi
+                                        RUN_NAME=${NAME}_${VERTLEV}levs/${TIME_STEPPER}_${TIME_STEP}_${PROC}procs
 
-                                ln -s $1 ${NAME}_${VERTLEV}levs/${PROC}procs/ocean_model.exe
-                        fi
+                                        mkdir -p ${RUN_NAME}
 
-                        ## Copy run information to run directory
-                        if [ $# -ge 2 ]; then
-                                cp $2 ${NAME}_${VERTLEV}levs/${PROC}procs/.
-                        fi
+                                        pmetis ${TCNAME}_${NAME}_${VERTLEV}levs.graph.info $PROC > /dev/null
 
-                        echo "${CUR_DIR}/${NAME}_${VERTLEV}levs/${PROC}procs" >> run_paths
+                                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.graph.info ${RUN_NAME}/graph.info
+                                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.graph.info.part.${PROC} ${RUN_NAME}/graph.info.part.${PROC}
+                                        ln -f -s ${CUR_DIR}/${NAME}_${VERTLEV}levs/${TCNAME}_${NAME}_${VERTLEV}levs.grid.nc ${RUN_NAME}/grid.nc
+
+                                        ## Copy executable to run directory
+                                        if [ $# -ge 1  ]; then
+                                                if [ -e ${RUN_NAME}/ocean_model.exe ]; then
+                                                        unlink ${RUN_NAME}/ocean_model.exe
+                                                fi
+
+                                                ln -s $1 ${RUN_NAME}/ocean_model.exe
+                                        fi
+
+                                        ## Copy run information to run directory
+                                        if [ $# -ge 2 ]; then
+                                                cp $2 ${RUN_NAME}/.
+                                        fi
+
+                                        echo "${CUR_DIR}/${RUN_NAME}" >> run_paths
+
+                                        ## Generate new namelist.input file for test case
+                                        cat MPAS-namelist.input.template  \
+                                                | sed "s/config_time_integration .*/config_time_integration = ${TIME_INTEGRATOR}/g" \
+                                                | sed "s/config_n_btr_subcycles .*/config_n_btr_subcycles = ${SUB_CYCLES}/g" \
+                                                | sed "s/config_dt .*/config_dt = ${TIME_STEP}/g" \
+                                                | sed "s/config_h_mom_eddy_visc2 .*/config_h_mom_eddy_visc2 = ${VISC_H}/g" \
+                                                | sed "s/config_h_tracer_eddy_diff2 .*/config_h_tracer_eddy_diff2 = 0.0/g" \
+                                                | sed "s/config_vert_visc .*/config_vert_visc = ${VISC_V}/g" \
+                                                | sed "s/config_vert_diff .*/config_vert_diff = 0.0/g" \
+                                                | sed "s/config_dt .*/config_dt = ${TIME_STEP}/g" \
+                                                | sed "s/config_stats_interval .*/config_stats_interval = ${STATS}/g" \
+                                                > ${RUN_NAME}/namelist.input
+                                done
+                        done
                 done
 
                 mv ${TCNAME}_${NAME}_${VERTLEV}levs* ${NAME}_${VERTLEV}levs/.
-
-                ## Generate new namelist.input file for test case
-                cat MPAS-namelist.input.template  \
-                    | sed "s/config_h_mom_eddy_visc2 .*/config_h_mom_eddy_visc2 = ${VISC_H}/g" \
-                    | sed "s/config_h_tracer_eddy_diff2 .*/config_h_tracer_eddy_diff2 = ${VISC_H}/g" \
-                        | sed "s/config_vert_visc .*/config_vert_visc = ${VISC_V}/g" \
-                        | sed "s/config_vert_diff .*/config_vert_diff = ${VISC_V}/g" \
-                        | sed "s/config_dt .*/config_dt = ${TIME_STEP}/g" \
-                        | sed "s/config_stats_interval .*/config_stats_interval = ${STATS}/g" \
-                        > ${NAME}_${VERTLEV}levs/namelist.input
-
         done
 
         rm map
</font>
</pre>