#! /bin/csh # # Make job script and namelist input for a full-year climatology run. # (constant solar/auroral inputs) # To use: Copy this script to a working directory that contains model root # directory $modeldir (from the same revision as this script), modify shell # vars if desired, and execute. # Note only a single job script and namelist input file are written for linux # systems, whereas IBM/AIX/LSF jobs at NCAR have a 6-hour wallclock limit, so # the full-year run must be broken into 5 jobs (5 scripts and namelist files). # set case = clim # climatology solar medium (see power, ctpoten, etc below) set system = linux # linux or ibm set potential_name = heelis # potential model, "heelis" or "weimer" set model = tiegcm # Model name for namelist and job scripts set version = "1.94" # Model version string set label = "'${model}${version} climatology (${potential_name})'" set hpss_path = "/home/tgcm/${model}${version}/climatology" set modeldir = ../tiegcm1.94 # if executed from a modeldir/tests directory # #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # set mknamelist = $modeldir/scripts/mknamelist # mknamelist script set mkjob = $modeldir/scripts/mkjob # mkjob script set utildir = $modeldir/scripts # for job script set execdir = ${model}-${system} # for job script set template = $modeldir/scripts/job_${system}.txt # for mkjob # # LSF BSUB parameters (ignored if system is linux): set bsub_project = 24100004 # your account number on NCAR IBM machine set bsub_queue = regular set bsub_nproc = 32 set bsub_wallclock = "6:00" set bsub_jobname = $case # set modelres = 5.0 # resolution is either 5.0 or 2.5 set TGCMDATA = '$TGCMDATA' set source = "'$TGCMDATA/TGCM.tiegcm1.94.pcntr_decsol_smin.nc'" # # Full year run, days 1-366, with 10 daily histories per primary file, # 48 hourly histories per secondary file. This should result in 19 primary # files, and 183 secondary files. # set output = "'TGCM.${model}${version}.p${case}_${potential_name}_001.nc','to','TGCM.${model}${version}.p${case}_${potential_name}_020.nc','by','1'" set mxhist_prim = 20 set secout = "'TGCM.${model}${version}.s${case}_${potential_name}_001.nc','to','TGCM.${model}${version}.s${case}_${potential_name}_185.nc','by','1'" set mxhist_sech = 48 set source_start = 1 set start_year = 2002 # arbitrary for this climatology run set start_day = 1 set stop_day = 366 # # Constants for heelis potential (commented if weimer run): # If these are changed, you might want to change the case name accordingly. set power = 18. set ctpoten = 30. set f107 = 100. set f107a = 100. # # Constants for weimer potential (commented if heelis run): # If these are changed, you might want to change the case name accordingly. set bximf = 0. set byimf = 0. set bzimf = -5. set swvel = 400. set swden = 4.0 # if ($potential_name != "heelis" && $potential_name != "weimer") then echo ">>> Bad potential_name: $potential_name (Must be either 'heelis' or 'weimer')" exit endif set potential_model = "'HEELIS'" if ($potential_name == "weimer") then set potential_model = "'WEIMER'" endif # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # BEGIN LINUX SYSTEMS # # For Linux systems, only 1 job script and namelist file are required: # if ($system == 'linux') then # # Make heelis namelist: # if ($potential_name == "heelis") then $mknamelist -model=$model -fileout=${model}_${case}_${potential_name}.inp \ -START_DAY=$start_day -SOURCE=$source -SOURCE_START="${source_start},0,0" \ -START="${start_day},0,0" -STOP="${stop_day},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day},1,0" -SECSTOP="${stop_day},0,0" -SECHIST="0,1,0" \ -POWER=$power -CTPOTEN=$ctpoten -F107=$f107 -F107A=$f107a -LABEL="$label" # # Make weimer namelist: else $mknamelist -model=$model -fileout=${model}_${case}_${potential_name}.inp \ -START_DAY=$start_day -SOURCE=$source -SOURCE_START="${source_start},0,0" \ -START="${start_day},0,0" -STOP="${stop_day},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day},1,0" -SECSTOP="${stop_day},0,0" -SECHIST="0,1,0" \ -comment="CTPOTEN" -comment="POWER" \ -BXIMF=$bximf -BYIMF=$byimf -BZIMF=$bzimf -SWVEL=$swvel -SWDEN=$swden \ -uncomment="BXIMF" -uncomment="BYIMF" -uncomment="BZIMF" -uncomment="SWVEL" \ -uncomment="SWDEN" -LABEL="$label" endif # # Make job script: # set jobfile = ${model}_${case}_${potential_name}_${system}.job $mkjob -model=$model -fileout=$jobfile \ -bsub_jobname=$bsub_jobname -system=$system -utildir=$utildir -execdir=$execdir \ -bsub_queue=$bsub_queue -bsub_nproc=$bsub_nproc -modelres=$modelres \ -template=$template -modeldir="$modeldir" -bsub_project=$bsub_project \ -input="${model}_${case}_${potential_name}.inp" \ -output="${model}_${case}_${potential_name}.out" # # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # BEGIN IBM/AIX/LSF SYSTEMS # # IBM/AIX system with 6-hour wallclock limit requires 5 jobs for a full-year run: # Note these jobs must be executed sequentially, not simultaneously. # else # system is ibm set cases = (clim_d001-090 clim_d090-180 clim_d180-270 clim_d270-360 clim_d360-366) set start_day = ( 1 90 180 270 360) set stop_day = (90 180 270 360 365) set mxhist_prim = 15 set mxhist_sech = 48 # # Make namelist input files: # set output_num1 = (001 006 012 018 024) set output_num2 = (006 012 018 024 030) set secout_num1 = (001 046 091 136 181) set secout_num2 = (045 090 135 180 185) @ i = 1 foreach case ($cases) set output1 = "'${model}.p_clim_${potential_name}_${output_num1[$i]}.nc','to'," set output2 = "'${model}.p_clim_${potential_name}_${output_num2[$i]}.nc','by','1'" set output = "${output1}${output2}" set secout1 = "'${model}.s_clim_${potential_name}_${secout_num1[$i]}.nc','to'," set secout2 = "'${model}.s_clim_${potential_name}_${secout_num2[$i]}.nc','by','1'" set secout = "${secout1}${secout2}" set source = "'$TGCMDATA/TGCM.tiegcm1.93.pclim_smin_001.nc'" set source_start = "1,0,0" set namelist=${model}_${case}_${potential_name}.inp # # Make heelis namelist: if ($potential_name == "heelis") then # # Have to make separate calls for initial vs continuation runs because of source and source_start if ($i == 1) then # initial run $mknamelist -model=$model -fileout=$namelist \ -START_DAY=$start_day[$i] -SOURCE=$source -SOURCE_START="${source_start}" \ -START="${start_day[$i]},0,0" -STOP="${stop_day[$i]},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day[$i]},1,0" -SECSTOP="${stop_day[$i]},0,0" -SECHIST="0,1,0" \ -POWER=$power -CTPOTEN=$ctpoten -F107=$f107 -F107A=$f107a else # continuation run $mknamelist -model=$model -fileout=$namelist \ -START_DAY=$start_day[$i] -comment="SOURCE" -comment="SOURCE_START" \ -START="${start_day[$i]},0,0" -STOP="${stop_day[$i]},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day[$i]},1,0" -SECSTOP="${stop_day[$i]},0,0" -SECHIST="0,1,0" \ -POWER=$power -CTPOTEN=$ctpoten -F107=$f107 -F107A=$f107a endif # # Make weimer namelist: else # # Have to make separate calls for initial vs continuation runs because of source and source_start if ($i == 1) then # initial run $mknamelist -model=$model -fileout=$namelist \ -START_DAY=$start_day[$i] -SOURCE=$source -SOURCE_START="${source_start}" \ -START="${start_day[$i]},0,0" -STOP="${stop_day[$i]},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day[$i]},1,0" -SECSTOP="${stop_day[$i]},0,0" -SECHIST="0,1,0" \ -comment="CTPOTEN" -comment="POWER" \ -BXIMF=$bximf -BYIMF=$byimf -BZIMF=$bzimf -SWVEL=$swvel -SWDEN=$swden \ -uncomment="BXIMF" -uncomment="BYIMF" -uncomment="BZIMF" -uncomment="SWVEL" \ -uncomment="SWDEN" else # continuation run $mknamelist -model=$model -fileout=$namelist \ -START_DAY=$start_day[$i] -comment="SOURCE" -comment="SOURCE_START" \ -START="${start_day[$i]},0,0" -STOP="${stop_day[$i]},0,0" -HIST="1,0,0" \ -MXHIST_PRIM=$mxhist_prim -MXHIST_SECH=$mxhist_sech -uncomment="HPSS_PATH" \ -OUTPUT=$output -SECOUT=$secout -POTENTIAL_MODEL=$potential_model \ -SECSTART="${start_day[$i]},1,0" -SECSTOP="${stop_day[$i]},0,0" -SECHIST="0,1,0" \ -comment="CTPOTEN" -comment="POWER" \ -BXIMF=$bximf -BYIMF=$byimf -BZIMF=$bzimf -SWVEL=$swvel -SWDEN=$swden \ -uncomment="BXIMF" -uncomment="BYIMF" -uncomment="BZIMF" -uncomment="SWVEL" \ -uncomment="SWDEN" endif endif # heelis or weimer # # Make ibm heelis job script: set bsub_jobname = $case set jobfile = ${model}_${case}_${potential_name}_${system}.job set stdin = $namelist # from above set stdout = ${model}_${case}_${potential_name}.out $mkjob -model=$model -fileout=$jobfile \ -bsub_jobname=$bsub_jobname -system=$system -utildir=$utildir -execdir=$execdir \ -bsub_queue=$bsub_queue -bsub_nproc=$bsub_nproc -bsub_wallclock=$bsub_wallclock \ -template=$template -modeldir="$modeldir" -bsub_project=$bsub_project \ -input="$stdin" -output="$stdout" -modelres=$modelres @ i++ end # foreach ibm case endif # linux or ibm