INLINE_RUN_SCRIPT.txt 30 Sep 2008 run.days.1st <<<<<<<<<<<<<<<<<<<<<<<<<<<< script >>>>>>>>>>>>>>>>>>>>>>>>>>>> #!/bin/csh -f #PBS -r n #PBS -l select=ncpus=15 #PBS -l walltime=20:00:00 #PBS -q mod3dev #PBS -N M2b_11.log #PBS -j oe #PBS -v DISPLAY if ( $?PBS_JOBID ) then echo Job ID is $PBS_JOBID echo Queue is $PBS_O_QUEUE #> Switch to the working directory; by default PBS launches processes from your home directory. echo Working directory is $PBS_O_WORKDIR cd $PBS_O_WORKDIR endif echo '>>>>>> start model run at ' `date` set echo set BASE = /4w/yoj/work/amber/emis/plrise set CFG = d1a set EXEC = CCTM_$CFG set XBASE = /4w/yoj/work/amber/emis/plrise/farc3 set SRC = $BASE set YR = 02 set YEAR = 2002 set MONTH = 01 #> run series 1 2 3 4 5 set DAY1 = 01 #01 08 15 22 29 set EDAY = 07 #07 14 21 28 31 set IDAY = 07 #NA 07 14 21 28 set juladd = 0 set STTIME = 000000 set NSTEPS = 240000 set TSTEP = 010000 setenv NPCOL_NPROW "3 5"; set NPROCS = 15 #> horizontal grid defn setenv GRIDDESC $SRC/GRIDDESC01 setenv GRID_NAME C_12_OAQPS #> species for standard conc setenv CONC_SPCS " NO2 NO O3 NO3 N2O5 HNO3 HONO PNA H2O2 NTR FORM ALD2 \ CO PAN PANX ISOP TERP SO2 SESQ NH3 ASO4J ASO4I ANH4J ANH4I ANO3J ANO3I" #> layer range for conc #setenv CONC_BLEV_ELEV " 1 4" #> species for integral average conc setenv AVG_CONC_SPCS "ALL" #> layer range for integral average conc setenv ACONC_BLEV_ELEV " 1 1" #> max sync time step (sec) [720] #setenv CTM_MAXSYNC 900 #> min sync time step (sec) [60] #setenv CTM_MINSYNC 150 #> inline deposition velocities [ Y|T | N|F ] (default is Y|T) setenv CTM_ILDEPV N #> Surface HONO interaction [ Y|T | N|F ] #> (default is Y|T) - env var ignored if CTM_ILDEPV is N|F #setenv CTM_SFC_HONO N #> diagnostic file for deposition velocities [ N|F | Y|T ] (default is N|F) setenv CTM_DEPV_FILE Y #> use in-line biogenic emissions [ N|F ] setenv CTM_BIOGEMIS Y #> use in-line plume rise emissions [ N|F ] setenv CTM_PT3DEMIS Y #> turn off excess WRITE3 logging setenv IOAPI_LOG_WRITE F #> stop on inconsistent input file [ Y|T ] setenv FL_ERR_STOP F #> turn off I/O-API PROMPT*FILE interactive mode setenv PROMPTFLAG F #> remove existing output files? #set DISP = delete set DISP = update #> output directory set OUTDATA = /1w/yoj/data/emis/output/${YEAR} set OUTDIR = $OUTDATA/$MONTH/inline_emis if ( ! -d "$OUTDIR" ) mkdir -p $OUTDIR #> inputs #> inline biogenic emissions processing if ( $?CTM_BIOGEMIS ) then # $CTM_BIOGEMIS is defined if ( $CTM_BIOGEMIS == 'Y' || $CTM_BIOGEMIS == 'T' ) then set biogon = 1 else set biogon = 0 endif else # $CTM_BIOGEMIS is not defined => $CTM_BIOGEMIS == 'Y' set biogon = 1 endif if ( $biogon ) then set GSPROpath = /2w/yoj/data/200201/beis setenv GSPRO $GSPROpath/gspro_cb05soa_notoxics_cmaq_poc_09nov2007.txt set IN_BEISpath = /2w/yoj/data/200201/beis setenv B3GRD $IN_BEISpath/b3grd.12EUS1_279X240.ncf setenv BIOSEASON $IN_BEISpath/bioseason.cmaq.2002_02b_12km_279X240_v31.ncf setenv BIOG_SPRO B10C5 # speciation profile to use for biogenics # setenv BIOSW_YN N # use frost date switch [Y|T] setenv SUMMER_YN N # Use summer normalized emissions? [Y|T] # setenv PX_VERSION Y # MCIP is PX version? [N|F] #> beis mass emissions diagnostic file [N|F] ] setenv B3GTS_DIAG Y set APPL = ${YEAR}${MONTH}${DAY1} setenv INITIAL_RUN Y # non-existent or not using SOILINP [N|F]; default uses SOILINP setenv SOILINP $OUTDIR/$EXEC"_SOILINP".${YEAR}${MONTH}${IDAY} # Biogenic NO soil input file endif #if ( $DISP == 'delete' && $biogon ) then # rm -f $B3GTS_S $SOILOUT #endif if ( $?CTM_PT3DEMIS ) then # $CTM_PT3DEMIS is defined if ( $CTM_PT3DEMIS == 'Y' || $CTM_PT3DEMIS == 'T' ) then set pt3don = 1 else set pt3don = 0 endif else # $CTM_PT3DEMIS is not defined => $CTM_PT3DEMIS == 'Y set pt3don = 1 endif if ( $pt3don ) then set IN_PTpath = /2w/yoj/data/200201/inline set IN_PTpath2 = $IN_PTpath set STKCASE = 12EUS1_2002af set CASE = 12EUS1_cmaq_cb05_soa_2002af setenv PT3DDIAG Y # optional 3d point source emissions diagnostic file [N] set MERGE_DATES = $BASE/smk_merge_dates_200201.txt unset echo source $SRC/set_pt3demis.q set echo setenv LAYP_STTIME $STTIME setenv LAYP_NSTEPS $NSTEPS endif setenv OCEAN_1 /2w/yoj/data/200201/ocean/SSMASK_EUS12_279X240 if ( $DAY1 == 01 ) then set GC_ICpath = /2w/yoj/data/200201/icbc set ICFILE = $GC_ICpath/ICON_cctm_M2b_v32soa_v3.4beta3_oceancl2_20011229.279_240 else set ICFILE = $OUTDIR/$EXEC"_CGRID".${YEAR}${MONTH}${IDAY} endif set GC_BCpath = /2w/yoj/data/200201/icbc set METpath = /2w/yoj/data/200201/met set JVALpath = /2w/yoj/data/200201/jval set EXTN = _${YR}${MONTH}${DAY1} setenv GRID_DOT_2D $METpath/GRIDDOT2D${EXTN} setenv GRID_CRO_2D $METpath/GRIDCRO2D${EXTN} setenv GRID_CRO_3D $METpath/GRIDCRO3D${EXTN} setenv LAYER_FILE $GRID_CRO_3D setenv CTM_EMLAYS 24 # Number of emission layers @ day = $DAY1 @ eday = $EDAY while ( $day <= $eday ) date; echo " " set DAY = `echo $day | awk '{printf("%2.2d",$1)}'` @ STDATE = $day + $juladd + $YR * 1000 + 2000000 set APPL = ${YEAR}${MONTH}${DAY} set EMISDATE = ${YEAR}${MONTH}${DAY} #> set additional parallel log file name extension # setenv CTM_APPL ${CFG}_${APPL} setenv CTM_APPL d1b_${APPL} #> set floor file (neg concs) setenv FLOOR_FILE $BASE/FLOOR_${CFG}_${APPL} #> stop if previous PE log files exist set logs = `ls $BASE/CTM_LOG_*.${CTM_APPL}` if ( $#logs ) then echo " Can't overwrite existing PE log files" exit 1 endif #> output files set CONCfile = $EXEC"_CONC".${APPL} # CTM_CONC_1 set ACONCfile = $EXEC"_ACONC".${APPL} # CTM_ACONC_1 set CGRIDfile = $EXEC"_CGRID".${APPL} # CTM_CGRID_1 set DD1file = $EXEC"_DRYDEP".${APPL} # CTM_DRY_DEP_1 set DV1file = $EXEC"_DEPV".${APPL} # CTM_DEPV_DIAG set PT1file = $EXEC"_PT3D".${APPL} # CTM_PT3D_DIAG set WD1file = $EXEC"_WETDEP1".${APPL} # CTM_WET_DEP_1 set WD2file = $EXEC"_WETDEP2".${APPL} # CTM_WET_DEP_2 set AV1file = $EXEC"_AEROVIS".${APPL} # CTM_VIS_1 set AD1file = $EXEC"_AERODIAM".${APPL} # CTM_DIAM_1 set SSEfile = $EXEC"_SSEMIS".$APPL # CTM_SSEMIS_1 set PA1file = $EXEC"_PA_1".${APPL} # CTM_IPR_1 set PA2file = $EXEC"_PA_2".${APPL} # CTM_IPR_2 set PA3file = $EXEC"_PA_3".${APPL} # CTM_IPR_3 set IRR1file = $EXEC"_IRR_1".${APPL} # CTM_IRR_1 set IRR2file = $EXEC"_IRR_2".${APPL} # CTM_IRR_2 set IRR3file = $EXEC"_IRR_3".${APPL} # CTM_IRR_3 source $SRC/outck.q if ( $biogon ) then if ( $B3GTS_DIAG == 'Y' || $B3GTS_DIAG == 'T' ) then setenv B3GTS_S $OUTDIR/$EXEC"_B3GTS_S".${APPL} endif setenv SOILOUT $OUTDIR/$EXEC"_SOILOUT".${APPL} # Biogenic NO soil output file endif #> input files if ( $pt3don ) then set EMISpath = $IN_PTpath2 set EMISfile = emis_mole_all_${EMISDATE}_${CASE}.ncf source $SRC/day_pt3demis.q setenv LAYP_STDATE $STDATE else set EMISpath = /2w/yoj/data/200201/3demis set EMISfile = e3d.${EMISDATE}.12EUS1_279X240.cb05soa.oceancl2.ncf endif setenv EMIS_1 $EMISpath/$EMISfile setenv INIT_GASC_1 $ICFILE set BCFILE = BCON.cctm_M2b_v32soa_v3.4beta3_oceancl2.${EMISDATE}.279_240 setenv BNDY_GASC_1 $GC_BCpath/$BCFILE setenv INIT_AERO_1 $INIT_GASC_1 setenv BNDY_AERO_1 $BNDY_GASC_1 setenv INIT_NONR_1 $INIT_GASC_1 setenv BNDY_NONR_1 $BNDY_GASC_1 setenv INIT_TRAC_1 $INIT_GASC_1 setenv BNDY_TRAC_1 $BNDY_GASC_1 set EXTN = _${YR}${MONTH}${DAY} setenv MET_CRO_2D $METpath/METCRO2D${EXTN} setenv MET_CRO_3D $METpath/METCRO3D${EXTN} setenv MET_DOT_3D $METpath/METDOT3D${EXTN} setenv MET_BDY_3D $METpath/METBDY3D${EXTN} set JVALfile = JTABLE_${STDATE} setenv XJ_DATA $JVALpath/$JVALfile setenv CTM_STDATE $STDATE setenv CTM_STTIME $STTIME setenv CTM_RUNLEN $NSTEPS setenv CTM_TSTEP $TSTEP setenv CTM_PROGNAME $EXEC # totalview mpirun -a -v -np $NPROCS $XBASE/$EXEC; exit() time mpirun -v -np $NPROCS $XBASE/$EXEC date set ICFILE = $S_CGRID if ( $biogon ) then mv $SOILOUT $OUTDIR/$EXEC"_SOILINP".${APPL} setenv SOILINP $OUTDIR/$EXEC"_SOILINP".${APPL} # Biogenic NO soil input file setenv INITIAL_RUN N endif @ day++ end echo '>>>>>> end model run at ' `date` exit() set_pt3demis.q <<<<<<<<<<<<<<<<<<<<<<<<<< script >>>>>>>>>>>>>>>>>>>>>>>>>>>> #> amber:/home/yoj/src/emis/plrise/set_pt3demis.q #> inline plume rise emissions processing #> number of input emission sector file groups [ 1 ] (max of 9 in this script) setenv NPTGRPS 5 # SECTOR smk merge dates type # ptnonipm mwdss_Y (monday weekday saturday sunday Yes, use holidays) # ptipm all # othpt mwdss_N # ptfire all # seca_c3 aveday_N set SECTOR = (\ ptnonipm \ ptipm \ othpt \ ptfire \ seca_c3 ) #> inline plume rise point source emissions file sector representative date matrix #set echo set file = $MERGE_DATES set HDR = `head -1 $file | tail -1` #set END = `tail -1 $file` set END = `wc -l $file` #@ end = $END[1] - 1 @ end = $END[1] echo $end set COLS = $#HDR set Sect01 = "mwdss_Y," set Sect02 = "all" set Sect03 = "mwdss_N," set Sect04 = "all" set Sect05 = "aveday_N," set SectAll = ( $Sect01 $Sect02 $Sect03 $Sect04 $Sect05 ) set locall = ( loc01 loc02 loc03 loc04 loc05 ) @ l = 1 foreach loc ( $locall ) set type = $SectAll[$l] @ n = 1 while ( $n <= $COLS ) if ( ${type} == $HDR[$n] ) set $loc = $n @ n++ end @ l ++ end #echo "Sect01 = $loc01 Sect02 = $loc02 Sect03 = $loc03" #echo "Sect04 = $loc04 Sect05 = $loc05" set TMP1 = /tmp/day1.$$ set TMP2 = /tmp/day2.$$ set TMP3 = /tmp/day3.$$ set TMP4 = /tmp/day4.$$ set TMP5 = /tmp/day5.$$ @ n = 2 while ( $n <= $end ) set line = `head -$n $file | tail -1` # echo " $line[1] $line[$loc01] $line[$loc03] $line[$loc05]" set DATE = `echo $line[$loc01] | awk '{printf("%2d",$1)}'` echo $DATE >> $TMP1 set DATE = `echo $line[$loc02] | awk '{printf("%2d",$1)}'` echo $DATE >> $TMP2 set DATE = `echo $line[$loc03] | awk '{printf("%2d",$1)}'` echo $DATE >> $TMP3 set DATE = `echo $line[$loc04] | awk '{printf("%2d",$1)}'` echo $DATE >> $TMP4 set DATE = `echo $line[$loc05] | awk '{printf("%2d",$1)}'` echo $DATE >> $TMP5 @ n ++ end set Sect01Date = `cat $TMP1` set Sect02Date = `cat $TMP2` set Sect03Date = `cat $TMP3` set Sect04Date = `cat $TMP4` set Sect05Date = `cat $TMP5` /bin/rm $TMP1 $TMP2 $TMP3 $TMP4 $TMP5 echo $Sect01Date echo $Sect02Date echo $Sect03Date echo $Sect04Date echo $Sect05Date #> month constant files setenv STK_GRPS_01 $IN_PTpath/stack_groups_${SECTOR[1]}_${STKCASE}.ncf setenv STK_GRPS_02 $IN_PTpath/stack_groups_${SECTOR[2]}_${STKCASE}.ncf setenv STK_GRPS_03 $IN_PTpath/stack_groups_${SECTOR[3]}_${STKCASE}.ncf setenv STK_GRPS_05 $IN_PTpath/stack_groups_${SECTOR[5]}_${STKCASE}.ncf outck.q <<<<<<<<<<<<<<<<<<<<<<<<<<<<< script >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #> amber:/home/yoj/src/emis/plrise/outck.q setenv CTM_CONC_1 "$OUTDIR/$CONCfile -v" setenv A_CONC_1 "$OUTDIR/$ACONCfile -v" setenv CTM_DRY_DEP_1 "$OUTDIR/$DD1file -v" setenv CTM_DEPV_DIAG "$OUTDIR/$DV1file -v" setenv CTM_PT3D_DIAG "$OUTDIR/$PT1file -v" setenv CTM_WET_DEP_1 "$OUTDIR/$WD1file -v" setenv CTM_WET_DEP_2 "$OUTDIR/$WD2file -v" setenv CTM_VIS_1 "$OUTDIR/$AV1file -v" setenv CTM_DIAM_1 "$OUTDIR/$AD1file -v" setenv CTM_SSEMIS_1 "$OUTDIR/$SSEfile -v" setenv CTM_IPR_1 "$OUTDIR/$PA1file -v" setenv CTM_IPR_2 "$OUTDIR/$PA2file -v" setenv CTM_IPR_3 "$OUTDIR/$PA3file -v" setenv CTM_IRR_1 "$OUTDIR/$IRR1file -v" setenv CTM_IRR_2 "$OUTDIR/$IRR2file -v" setenv CTM_IRR_3 "$OUTDIR/$IRR3file -v" setenv S_CGRID $OUTDIR/$CGRIDfile set flist = ( $CTM_CONC_1\ $A_CONC_1\ $CTM_DRY_DEP_1\ $CTM_DEPV_DIAG\ $CTM_PT3D_DIAG\ $CTM_WET_DEP_1\ $CTM_WET_DEP_2\ $CTM_VIS_1\ $CTM_DIAM_1\ $CTM_SSEMIS_1\ $CTM_IPR_1\ $CTM_IPR_2\ $CTM_IPR_3\ $CTM_IRR_1\ $CTM_IRR_2\ $CTM_IRR_3 ) unalias rm foreach file ( $flist ) if ( $file != '-v' ) then if ( -e $file ) then echo " $file already exists " if ( $DISP == 'delete' ) then echo " $file being deleted " rm $file else if ( $DISP == 'update' ) then echo " $file being updated " else echo "*** RUN ABORTED ***" exit 1 endif endif endif end day_pt3demis.q <<<<<<<<<<<<<<<<<<<<<<<<<< script >>>>>>>>>>>>>>>>>>>>>>>>>>>> #> amber:/home/yoj/src/emis/plrise/day_pt3demis.q #> inline plume rise emissions processing set isfile4 = stack_groups_${SECTOR[4]}_${Sect04Date[$day]}_${STKCASE}.ncf setenv STK_GRPS_04 $IN_PTpath2/$isfile4 set iefile1 = inln_mole_${SECTOR[1]}_${Sect01Date[$day]}_${CASE}.ncf set iefile2 = inln_mole_${SECTOR[2]}_${Sect02Date[$day]}_${CASE}.ncf set iefile3 = inln_mole_${SECTOR[3]}_${Sect03Date[$day]}_${CASE}.ncf set iefile4 = inln_mole_${SECTOR[4]}_${Sect04Date[$day]}_${CASE}.ncf set iefile5 = inln_mole_${SECTOR[5]}_${Sect05Date[$day]}_${CASE}.ncf setenv STK_EMIS_01 $IN_PTpath/$iefile1 setenv STK_EMIS_02 $IN_PTpath2/$iefile2 setenv STK_EMIS_03 $IN_PTpath/$iefile3 setenv STK_EMIS_04 $IN_PTpath2/$iefile4 setenv STK_EMIS_05 $IN_PTpath/$iefile5 smk_merge_dates_200201.txt <<<<<<<<<<<<<< data >>>>>>>>>>>>>>>>>>>>>>>>>>>> Date, aveday_N, aveday_Y, mwdss_N, mwdss_Y, week_N, week_Y, all 20020101, 20020108, 20020101, 20020108, 20020101, 20020108, 20020101, 20020101 20020102, 20020108, 20020102, 20020108, 20020102, 20020109, 20020102, 20020102 20020103, 20020108, 20020108, 20020108, 20020108, 20020110, 20020110, 20020103 20020104, 20020108, 20020108, 20020108, 20020108, 20020111, 20020111, 20020104 20020105, 20020108, 20020108, 20020112, 20020112, 20020112, 20020112, 20020105 20020106, 20020108, 20020108, 20020113, 20020113, 20020113, 20020113, 20020106 20020107, 20020108, 20020108, 20020107, 20020107, 20020107, 20020107, 20020107 20020108, 20020108, 20020108, 20020108, 20020108, 20020108, 20020108, 20020108 20020109, 20020108, 20020108, 20020108, 20020108, 20020109, 20020109, 20020109 20020110, 20020108, 20020108, 20020108, 20020108, 20020110, 20020110, 20020110 20020111, 20020108, 20020108, 20020108, 20020108, 20020111, 20020111, 20020111 20020112, 20020108, 20020108, 20020112, 20020112, 20020112, 20020112, 20020112 20020113, 20020108, 20020108, 20020113, 20020113, 20020113, 20020113, 20020113 20020114, 20020108, 20020108, 20020107, 20020107, 20020107, 20020107, 20020114 20020115, 20020108, 20020108, 20020108, 20020108, 20020108, 20020108, 20020115 20020116, 20020108, 20020108, 20020108, 20020108, 20020109, 20020109, 20020116 20020117, 20020108, 20020108, 20020108, 20020108, 20020110, 20020110, 20020117 20020118, 20020108, 20020108, 20020108, 20020108, 20020111, 20020111, 20020118 20020119, 20020108, 20020108, 20020112, 20020112, 20020112, 20020112, 20020119 20020120, 20020108, 20020108, 20020113, 20020113, 20020113, 20020113, 20020120 20020121, 20020108, 20020108, 20020107, 20020107, 20020107, 20020107, 20020121 20020122, 20020108, 20020108, 20020108, 20020108, 20020108, 20020108, 20020122 20020123, 20020108, 20020108, 20020108, 20020108, 20020109, 20020109, 20020123 20020124, 20020108, 20020108, 20020108, 20020108, 20020110, 20020110, 20020124 20020125, 20020108, 20020108, 20020108, 20020108, 20020111, 20020111, 20020125 20020126, 20020108, 20020108, 20020112, 20020112, 20020112, 20020112, 20020126 20020127, 20020108, 20020108, 20020113, 20020113, 20020113, 20020113, 20020127 20020128, 20020108, 20020108, 20020107, 20020107, 20020107, 20020107, 20020128 20020129, 20020108, 20020108, 20020108, 20020108, 20020108, 20020108, 20020129 20020130, 20020108, 20020108, 20020108, 20020108, 20020109, 20020109, 20020130 20020131, 20020108, 20020108, 20020108, 20020108, 20020110, 20020110, 20020131