#!/bin/sh ############################################################ #to calculate water balance #by 2010/03/31, nhanasaki, NIES: H08ver1.0 # Copyright (C) 2010,2011 Naota Hanasaki ############################################################ # Edit here (basic) ############################################################ PRJS="GSW2" # projects RUNS="NEWN" # runs PRJMET=GSW2 # project for meteorology RUNMET=B1b_ # run for meteorology PRJDEM=GSW2 # project for water demand RUNDEM=NEWN # run for water demand PRJENV=GSW2 # project for environmental flow RUNENV=LR__ # run for environmental flow ############################################################ # Edit here (time) ############################################################ YEAR=1986; MON=00; DAY=00 # year, month, day to report YEARINI=1985; MONINI=12; DAYINI=00 # year, month, day of initial state YEAREND=1986; MONEND=12; DAYEND=00 # year, month, day of final state ############################################################ # Edit here (basin) ############################################################ NUMS=0 # id of basin (0 for globe) ############################################################ # Edit here (geography) ############################################################ L="64800" # total num of cells XY="360 180" # X and Y L2X=../../map/dat/l2x_l2y_/l2x.one.txt L2Y=../../map/dat/l2x_l2y_/l2y.one.txt LONLAT="-180 180 -90 90" # geographical range SUF=.one # suffix ############################################################ # Edit here (in) ############################################################ DIRRAINF=../../met/dat/Rainf___ # Rainfall DIRSNOWF=../../met/dat/Snowf___ # Snowfall # DIRRAINF=../../lnd/out/Rainfout # Rainfall (climate change) # DIRSNOWF=../../lnd/out/Snowfout # Snowfall (climate change) # DIREVAP=../../lnd/out/Evap____ # Total evaporation (all terms) DIRQTOT=../../lnd/out/Qtot____ # Total runoff DIRSOILMOIST=../../lnd/out/SoilMois # Soil moisture DIRSWE=../../lnd/out/SWE_____ # Snow water equivalent # DIRRIVOUT=../../riv/out/riv_out_ # River flow DIRRIVSTO=../../riv/out/riv_sto_ # River sorage DIRENVOUT=../../riv/out/env_out_ # Env. flow # DIRDAMSTO=../../dam/out/dam_sto_ DIRMSRSTO=../../dam/out/msr_sto_ # DIRDEMAGR=../../lnd/out/DemAgr__ DIRSUPAGR=../../lnd/out/SupAgr__ DIRSUPAGRRIV=../../lnd/out/SupAgrR_ DIRSUPAGRMSR=../../lnd/out/SupAgrM_ DIRSUPAGRNNB=../../lnd/out/SupAgrN_ DIRDEMIND=../../lnd/out/DemInd__ DIRSUPIND=../../lnd/out/SupInd__ DIRSUPINDRIV=../../lnd/out/SupIndR_ DIRSUPINDMSR=../../lnd/out/SupIndM_ DIRSUPINDNNB=../../lnd/out/SupIndN_ DIRDEMDOM=../../lnd/out/DemDom__ DIRSUPDOM=../../lnd/out/SupDom__ DIRSUPDOMRIV=../../lnd/out/SupDomR_ DIRSUPDOMMSR=../../lnd/out/SupDomM_ DIRSUPDOMNNB=../../lnd/out/SupDomN_ ############################################################ # Edit here (map) ############################################################ FRIVNUM=../../map/out/riv_num_/rivnum.GSWP2.one # river id FLNDARAORG=../../map/dat/lnd_ara_/lndara.GSWP2.one # land area FLNDARA=temp.lndara.one htmask $L $XY $L2X $L2Y $LONLAT $FLNDARAORG $FLNDARAORG gt 0.0 $FLNDARA FFLWDIR=../../map/dat/flw_dir_/flwdir.GSWP2.one # flwo direction # FIRGARA=../../map/dat/irgara.1st.DS02.one FPOPTOT=../../map/dat/glbpop.GSWP2.one # FDEMIND=../../map/dat/dem_ind_/WRI_____19950000.GSWP2.one FDEMDOM=../../map/dat/dem_dom_/WRI_____19950000.GSWP2.one FWITIND=../../map/dat/wit_ind_/NU2_A1__20000000.one FWITDOM=../../map/dat/wit_dom_/NU__A1__20000000.one FWITIND=../../map/dat/wit_ind_/WRI_____19950000.GSWP2.one FWITDOM=../../map/dat/wit_dom_/WRI_____19950000.GSWP2.one # FNON=../../map/dat/nonara.1st.DS02.one FIRGEFF=../../map/dat/irg_eff_/DS02____00000000.one FDAMCAP=../../map/out/damcap.GSWP2.one ############################################################ # Edit here (out) ############################################################ DIROUT=../../cpl/tab/wat_bal_ SUFOUT=.$YEAR.txt # suffix of out file ############################################################ # Macro ############################################################ TEMP=temp${SUF} # temporary file MASK=temp.mask${SUF} # temporary file FBALLND=temp.lndbal${SUF} ############################################################ # Do not change below. Start loop ############################################################ for PRJ in $PRJS; do for RUN in $RUNS; do for NUM in $NUMS; do ############################################################ # Create out file ############################################################ NUM8=`echo $NUM | awk '{printf("%8.8d",$1)}'` # id in 8 digits if [ ! -d $DIROUT ]; then mkdir -p $DIROUT fi OUT=${DIROUT}/$PRJ$RUN$NUM8$SUFOUT # out file if [ -f $OUT ]; then rm $OUT fi echo $OUT ############################################################ # Create mask ############################################################ if [ $NUM = 0 ]; then htcreate $L 0 $MASK htrplc $L $XY $L2X $L2Y $LONLAT $MASK $FRIVNUM eq 0 -1 $MASK > /dev/null else MASK=$FRIVNUM fi ############################################################ # Maps ############################################################ if [ -f $FLNDARA ]; then htmask $L $XY $L2X $L2Y $LONLAT $FLNDARA $MASK eq $NUM $TEMP > /dev/null ARA=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f", $1/1000/1000)}'` else ARA=-9999.99 fi if [ -f $FNON ]; then htmask $L $XY $L2X $L2Y $LONLAT $FNON $MASK eq $NUM $TEMP > /dev/null ARANON=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f", $1/1000/1000)}'` else ARANON=-9999.99 fi if [ -f $FIRGARA ]; then htmask $L $XY $L2X $L2Y $LONLAT $FIRGARA $MASK eq $NUM $TEMP > /dev/null ARAIRG=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f", $1/1000/1000)}'` else ARAIRG=-9999.99 fi if [ -f $FDAMCAP ]; then htmask $L $XY $L2X $L2Y $LONLAT $FDAMCAP $MASK eq $NUM $TEMP > /dev/null DAMCAP=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f", $1/1000/1000/1000)}'` else DAMCAP=-9999.99 fi if [ -f $FPOPTOT ]; then htmask $L $XY $L2X $L2Y $LONLAT $FPOPTOT $MASK eq $NUM $TEMP > /dev/null POPTOT=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f", $1/1000/1000)}'` else POPTOT=-9999.99 fi ############################################################ # Demand and supply ############################################################ FDEMAGR=$DIRDEMAGR/$PRJDEM$RUNDEM$YEAR$MON$DAY$SUF if [ -f $FDEMAGR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FDEMAGR $MASK eq $NUM $TEMP > /dev/null DEMAGR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else DEMAGR=-9999.99 fi FSUPAGR=$DIRSUPAGR/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPAGR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPAGR $MASK eq $NUM $TEMP > /dev/null SUPAGR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPAGR=-9999.99 fi FSUPAGRRIV=$DIRSUPAGRRIV/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPAGRRIV ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPAGRRIV $MASK eq $NUM $TEMP > /dev/null SUPAGRRIV=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPAGRRIV=-9999.99 fi FSUPAGRMSR=$DIRSUPAGRMSR/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPAGRMSR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPAGRMSR $MASK eq $NUM $TEMP > /dev/null SUPAGRMSR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPAGRMSR=-9999.99 fi FSUPAGRNNB=$DIRSUPAGRNNB/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPAGRNNB ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPAGRNNB $MASK eq $NUM $TEMP > /dev/null SUPAGRNNB=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPAGRNNB=-9999.99 fi if [ -f $FDEMAGR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FDEMAGR $MASK eq $NUM $TEMP > /dev/null htmath $L div $TEMP $FIRGEFF $TEMP WITAGR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1*86400*365/1000/1000/1000/1000}'` else WITAGR=-9999.99 fi if [ -f $FDEMIND ]; then htmask $L $XY $L2X $L2Y $LONLAT $FDEMIND $MASK eq $NUM $TEMP > /dev/null DEMIND=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else DEMIND=-9999.99 fi FSUPIND=$DIRSUPIND/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPIND ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPIND $MASK eq $NUM $TEMP > /dev/null SUPIND=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPIND=-9999.99 fi FSUPINDRIV=$DIRSUPINDRIV/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPINDRIV ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPINDRIV $MASK eq $NUM $TEMP > /dev/null SUPINDRIV=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPINDRIV=-9999.99 fi FSUPINDMSR=$DIRSUPINDMSR/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPINDMSR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPINDMSR $MASK eq $NUM $TEMP > /dev/null SUPINDMSR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPINDMSR=-9999.99 fi FSUPINDNNB=$DIRSUPINDNNB/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPINDNNB ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPINDNNB $MASK eq $NUM $TEMP > /dev/null SUPINDNNB=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPINDNNB=-9999.99 fi if [ -f $FWITIND ]; then htmask $L $XY $L2X $L2Y $LONLAT $FWITIND $MASK eq $NUM $TEMP > /dev/null WITIND=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else WITIND=-9999.99 fi if [ -f $FDEMDOM ]; then htmask $L $XY $L2X $L2Y $LONLAT $FDEMDOM $MASK eq $NUM $TEMP > /dev/null DEMDOM=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else DEMDOM=-9999.99 fi FSUPDOM=$DIRSUPDOM/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPDOM ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPDOM $MASK eq $NUM $TEMP > /dev/null SUPDOM=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPDOM=-9999.99 fi FSUPDOMRIV=$DIRSUPDOMRIV/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPDOMRIV ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPDOMRIV $MASK eq $NUM $TEMP > /dev/null SUPDOMRIV=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPDOMRIV=-9999.99 fi FSUPDOMMSR=$DIRSUPDOMMSR/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPDOMMSR ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPDOMMSR $MASK eq $NUM $TEMP > /dev/null SUPDOMMSR=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPDOMMSR=-9999.99 fi FSUPDOMNNB=$DIRSUPDOMNNB/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FSUPDOMNNB ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSUPDOMNNB $MASK eq $NUM $TEMP > /dev/null SUPDOMNNB=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SUPDOMNNB=-9999.99 fi if [ -f $FWITDOM ]; then htmask $L $XY $L2X $L2Y $LONLAT $FWITDOM $MASK eq $NUM $TEMP > /dev/null WITDOM=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else WITDOM=-9999.99 fi ############################################################ # Land Fluxes (unit is km3/yr) ############################################################ FRAINF=$DIRRAINF/$PRJMET$RUNMET$YEAR$MON$DAY$SUF if [ -f $FRAINF ]; then htmask $L $XY $L2X $L2Y $LONLAT $FRAINF $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP RAINF=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else RAINF=-9999.99 fi FSNOWF=$DIRSNOWF/$PRJMET$RUNMET$YEAR$MON$DAY$SUF if [ -f $FSNOWF ]; then htmask $L $XY $L2X $L2Y $LONLAT $FSNOWF $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP SNOWF=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else SNOWF=-9999.99 fi FEVAP=$DIREVAP/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FEVAP ]; then htmask $L $XY $L2X $L2Y $LONLAT $FEVAP $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP EVAP=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else EVAP=-9999.99 fi FQTOT=$DIRQTOT/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FQTOT ]; then htmask $L $XY $L2X $L2Y $LONLAT $FQTOT $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP QTOT=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else QTOT=-9999.99 fi FSOILMOISTINI=$DIRSOILMOIST/$PRJ$RUN$YEARINI$MONINI$DAYINI$SUF FSOILMOISTEND=$DIRSOILMOIST/$PRJ$RUN$YEAREND$MONEND$DAYEND$SUF if [ -f $FSOILMOISINI ]; then htmath $L sub $FSOILMOISTEND $FSOILMOISTINI $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP DELSOILMOIST=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1/1000/1000/1000/1000)}'` else DELSOILMOIST=-9999.99 fi FSWEINI=$DIRSWE/$PRJ$RUN$YEARINI$MONINI$DAYINI$SUF FSWEEND=$DIRSWE/$PRJ$RUN$YEAREND$MONEND$DAYEND$SUF if [ -f $FSWEINI ]; then htmath $L sub $FSWEEND $FSWEINI $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null htmath $L mul $TEMP $FLNDARA $TEMP DELSWE=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1/1000/1000/1000/1000)}'` else DELSWE=-9999.99 fi TIMERAINF=`ls -l $FRAINF | awk '{print $6,$7,$8}'` TIMESNOWF=`ls -l $FSNOWF | awk '{print $6,$7,$8}'` TIMEEVAP=`ls -l $FEVAP | awk '{print $6,$7,$8}'` TIMEQTOT=`ls -l $FQTOT | awk '{print $6,$7,$8}'` TIMESOILMOISTINI=`ls -l $FSOILMOISTINI | awk '{print $6,$7,$8}'` TIMESOILMOISTEND=`ls -l $FSOILMOISTEND | awk '{print $6,$7,$8}'` TIMESWEINI=`ls -l $FSWEINI | awk '{print $6,$7,$8}'` TIMESWEEND=`ls -l $FSWEEND | awk '{print $6,$7,$8}'` echo $TIMERAINF echo $TIMESNOWF echo $TIMEEVAP echo $TIMEQTOT echo $TIMESOILMOISTINI echo $TIMESOILMOISTEND echo $TIMESWEINI echo $TIMESWEEND ############################################################ # River ############################################################ FRIVOUT=$DIRRIVOUT/$PRJ$RUN$YEAR$MON$DAY$SUF if [ -f $FRIVOUT ]; then htmask $L $XY $L2X $L2Y $LONLAT $FRIVOUT $MASK eq $NUM $TEMP > /dev/null htmask $L $XY $L2X $L2Y $LONLAT $TEMP $FFLWDIR eq 9 $TEMP > /dev/null RIVOUT=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1*86400*365/1000/1000/1000/1000}'` else RIVOUT=-9999.99 fi FRIVSTOINI=$DIRRIVSTO/$PRJ$RUN$YEARINI$MONINI$DAYINI$SUF FRIVSTOEND=$DIRRIVSTO/$PRJ$RUN$YEAREND$MONEND$DAYEND$SUF if [ -f $FRIVSTOINI ]; then htmath $L sub $FRIVSTOEND $FRIVSTOINI $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null DELRIVSTO=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1/1000/1000/1000/1000)}'` else DELRIVSTO=-9999.99 fi ############################################################ # ENV ############################################################ FENVFLW=$DIRENVOUT/$PRJENV$RUNENV$YEAR$MON$DAY$SUF if [ -f $FENVFLW ]; then htmask $L $XY $L2X $L2Y $LONLAT $FENVFLW $MASK eq $NUM $TEMP > /dev/null htmask $L $XY $L2X $L2Y $LONLAT $TEMP $FFLWDIR eq 9 $TEMP > /dev/null ENVFLW=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1*86400*365/1000/1000/1000/1000)}'` else ENVFLW=-9999.99 fi ############################################################ # DAM ############################################################ FDAMSTOINI=$DIRDAMSTO/$PRJ$RUN$YEARINI$MONINI$DAYINI$SUF FDAMSTOEND=$DIRDAMSTO/$PRJ$RUN$YEAREND$MONEND$DAYEND$SUF if [ -f $FDAMSTOINI -a -f $FDAMSTOEND ]; then htmath $L sub $FDAMSTOEND $FDAMSTOINI $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null DELDAMSTO=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1/1000/1000/1000/1000)}'` else DELDAMSTO=-9999.99 fi FMSRSTOINI=$DIRMSRSTO/$PRJ$RUN$YEARINI$MONINI$DAYINI$SUF FMSRSTOEND=$DIRMSRSTO/$PRJ$RUN$YEAREND$MONEND$DAYEND$SUF if [ -f $FMSRSTOINI -a -f $FMSRSTOEND ]; then htmath $L sub $FMSRSTOEND $FMSRSTOINI $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null DELMSRSTO=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{printf("%12.2f",$1/1000/1000/1000/1000)}'` else DELMSRSTO=-9999.99 fi ############################################################ # Calc ############################################################ SUPTOT=0.0 if [ $SUPAGR != -9999.99 ];then SUPTOT=`echo $SUPTOT $SUPAGR | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPIND != -9999.99 ];then SUPTOT=`echo $SUPTOT $SUPIND | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPDOM != -9999.99 ];then SUPTOT=`echo $SUPTOT $SUPDOM | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPTOT = 0.0 ]; then SUPTOT=-9999.99 fi PRCP=0.0 if [ $RAINF != -9999.99 ];then PRCP=`echo $PRCP $RAINF | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SNOWF != -9999.99 ];then PRCP=`echo $PRCP $SNOWF | awk '{printf("%12.2f",$1+$2)}'` fi if [ $PRCP = 0.0 ]; then PRCP=-9999.99 fi BALLND=0 htcreate $L 0.0 $FBALLND if [ $PRCP != -9999.99 ];then BALLND=`echo $BALLND $PRCP | awk '{printf("%12.2f",$1+$2)}'` htmath $L add $FBALLND $FRAINF $FBALLND # kg/m2/s htmath $L add $FBALLND $FSNOWF $FBALLND # kg/m2/s htstat $L $XY $L2X $L2Y $LONLAT sum $FBALLND fi if [ $SUPAGR != -9999.99 ];then BALLND=`echo $BALLND $SUPAGR | awk '{printf("%12.2f",$1+$2)}'` htmath $L div $FSUPAGR $FLNDARA $TEMP # kg/s htmask $L $XY $L2X $L2Y $LONLAT $TEMP $FSUPAGR gt 0 $TEMP htrplc $L $XY $L2X $L2Y $LONLAT $TEMP $TEMP eq 1.0E20 0 $TEMP htmath $L add $FBALLND $TEMP $FBALLND # kg/s htstat $L $XY $L2X $L2Y $LONLAT sum $FBALLND fi if [ $EVAP != -9999.99 ];then BALLND=`echo $BALLND $EVAP | awk '{printf("%12.2f",$1-$2)}'` htmath $L sub $FBALLND $FEVAP $FBALLND # kg/m2/s fi if [ $QTOT != -9999.99 ];then BALLND=`echo $BALLND $QTOT | awk '{printf("%12.2f",$1-$2)}'` htmath $L sub $FBALLND $FQTOT $FBALLND # kg/m2/s fi htmath $L mul $FBALLND 31536000 $FBALLND # kg/m2/s --> kg/m2/yr if [ $DELSOILMOIST != -9999.99 ];then BALLND=`echo $BALLND $DELSOILMOIST | awk '{printf("%12.2f",$1-$2)}'` htmath $L sub $FBALLND $FSOILMOISTEND $FBALLND # kg/m2/yr htmath $L add $FBALLND $FSOILMOISTINI $FBALLND # kg/m2/yr fi if [ $DELSWE != -9999.99 ];then BALLND=`echo $BALLND $DELSWE | awk '{printf("%12.2f",$1-$2)}'` htmath $L sub $FBALLND $FSWEEND $FBALLND # kg/m2/yr htmath $L add $FBALLND $FSWEINI $FBALLND # kg/m2/yr fi BALLNDMAXIBVAL=`htstat $L $XY $L2X $L2Y $LONLAT max $FBALLND | awk '{print $1}'` BALLNDMAXIBLAT=`htstat $L $XY $L2X $L2Y $LONLAT max $FBALLND | awk '{print $6}'` BALLNDMAXIBLON=`htstat $L $XY $L2X $L2Y $LONLAT max $FBALLND | awk '{print $5}'` BALLNDMAXIBNUM=`htmask $L $XY $L2X $L2Y $LONLAT $FBALLND $FBALLND gt 1 $TEMP | awk '{print $3}'` BALLNDMINIBVAL=`htstat $L $XY $L2X $L2Y $LONLAT min $FBALLND | awk '{print $1}'` BALLNDMINIBLAT=`htstat $L $XY $L2X $L2Y $LONLAT min $FBALLND | awk '{print $6}'` BALLNDMINIBLON=`htstat $L $XY $L2X $L2Y $LONLAT min $FBALLND | awk '{print $5}'` BALLNDMINIBNUM=`htmask $L $XY $L2X $L2Y $LONLAT $FBALLND $FBALLND lt -1 $TEMP | awk '{print $3}'` htmath $L mul $FBALLND $FLNDARA $TEMP # kg/m2/yr --> kg/yr BALLNDIBTOT=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1/1000/1000/1000/1000}'` BALRIV=0 if [ $QTOT != -9999.99 ];then BALRIV=`echo $BALRIV $QTOT | awk '{printf("%12.2f",$1+$2)}'` fi if [ $RIVOUT != -9999.99 ];then BALRIV=`echo $BALRIV $RIVOUT | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPAGRRIV != -9999.99 ];then BALRIV=`echo $BALRIV $SUPAGRRIV | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPINDRIV != -9999.99 ];then BALRIV=`echo $BALRIV $SUPINDRIV | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPDOMRIV != -9999.99 ];then BALRIV=`echo $BALRIV $SUPDOMRIV | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPAGRMSR != -9999.99 ];then BALRIV=`echo $BALRIV $SUPAGRMSR | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPINDMSR != -9999.99 ];then BALRIV=`echo $BALRIV $SUPINDMSR | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPDOMMSR != -9999.99 ];then BALRIV=`echo $BALRIV $SUPDOMMSR | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELRIVSTO != -9999.99 ];then BALRIV=`echo $BALRIV $DELRIVSTO | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELDAMSTO != -9999.99 ];then BALRIV=`echo $BALRIV $DELDAMSTO | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELMSRSTO != -9999.99 ];then BALRIV=`echo $BALRIV $DELMSRSTO | awk '{printf("%12.2f",$1-$2)}'` fi BALCPL=0 if [ $PRCP != -9999.99 ];then BALCPL=`echo $BALCPL $PRCP | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPAGRNNB != -9999.99 ];then BALCPL=`echo $BALCPL $SUPAGRNNB | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPINDNNB != -9999.99 ];then BALCPL=`echo $BALCPL $SUPINDNNB | awk '{printf("%12.2f",$1+$2)}'` fi if [ $SUPDOMNNB != -9999.99 ];then BALCPL=`echo $BALCPL $SUPDOMNNB | awk '{printf("%12.2f",$1+$2)}'` fi if [ $EVAP != -9999.99 ];then BALCPL=`echo $BALCPL $EVAP | awk '{printf("%12.2f",$1-$2)}'` fi if [ $RIVOUT != -9999.99 ];then BALCPL=`echo $BALCPL $RIVOUT | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPIND != -9999.99 ];then BALCPL=`echo $BALCPL $SUPIND | awk '{printf("%12.2f",$1-$2)}'` fi if [ $SUPDOM != -9999.99 ];then BALCPL=`echo $BALCPL $SUPDOM | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELSOILMOIST != -9999.99 ];then BALCPL=`echo $BALCPL $DELSOILMOIST | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELSWE != -9999.99 ];then BALCPL=`echo $BALCPL $DELSWE | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELRIVSTO != -9999.99 ];then BALCPL=`echo $BALCPL $DELRIVSTO | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELDAMSTO != -9999.99 ];then BALCPL=`echo $BALCPL $DELDAMSTO | awk '{printf("%12.2f",$1-$2)}'` fi if [ $DELMSRSTO != -9999.99 ];then BALCPL=`echo $BALCPL $DELMSRSTO | awk '{printf("%12.2f",$1-$2)}'` fi ############################################################ # List ############################################################ echo '+++ General +++' > $OUT echo >> $OUT echo AREA.. $ARA [km2] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo ARANON $ARANON [km2] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo ARAIRG $ARAIRG [km2] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo DAMCAP $DAMCAP [km3] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo POPTOT $POPTOT [106] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Agriculutral +++' >> $OUT echo >> $OUT echo DEMAGR... $DEMAGR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPAGR... $SUPAGR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPAGRRIV $SUPAGRRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPAGRMSR $SUPAGRMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPAGRNNB $SUPAGRNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo WITAGR... $WITAGR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Industrial +++' >> $OUT echo >> $OUT echo DEMIND... $DEMIND [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPIND... $SUPIND [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPINDRIV $SUPINDRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPINDMSR $SUPINDMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPINDNNB $SUPINDNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo WITIND... $WITIND [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Domestic +++' >> $OUT echo >> $OUT echo DEMDOM... $DEMDOM [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPDOM... $SUPDOM [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPDOMRIV $SUPDOMRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPDOMMSR $SUPDOMMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo SUPDOMNNB $SUPDOMNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo WITDOM... $WITDOM [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Water balance of land +++' >> $OUT echo >> $OUT echo +RAINF. $RAINF [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SNOWF. $SNOWF [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SUPAGR $SUPAGR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -EVAP.. $EVAP [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -QTOT.. $QTOT [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELSOILMOIS $DELSOILMOIST [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELSWE $DELSWE [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo =BALLND $BALLND [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Water imbalance of land +++' >> $OUT echo >> $OUT echo 'MAXVAL..' $BALLNDMAXIBVAL [mm] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'LON.....' $BALLNDMAXIBLON [degN] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'LAT.....' $BALLNDMAXIBLAT [degE] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'NUM[>1].' $BALLNDMAXIBNUM [cells] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'MINVAL..' $BALLNDMINIBVAL [mm] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'LON.....' $BALLNDMINIBLON [degN] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'LAT.....' $BALLNDMINIBLAT [degE] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'NUM[<-1]' $BALLNDMINIBNUM [cells] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'BALLND..' $BALLNDIBTOT [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo 'FILE....' $FBALLND [kg/y] | awk '{printf("%12s%12s%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Water balance of river +++' >> $OUT echo >> $OUT echo +QTOT..... $QTOT [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -RIVOUT... $RIVOUT [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPAGRRIV $SUPAGRRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPINDRIV $SUPINDRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPDOMRIV $SUPDOMRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPAGRMSR $SUPAGRMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPINDMSR $SUPINDMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPDOMMSR $SUPDOMMSR [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELRIVSTO $DELRIVSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELDAMSTO $DELDAMSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELMSRSTO $DELMSRSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo =BALRIV... $BALRIV [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Water balance of the coupled system +++' >> $OUT echo >> $OUT echo +RAINF.... $RAINF [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SNOWF.... $SNOWF [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SUPAGRNNB $SUPAGRNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SUPINDNNB $SUPINDNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo +SUPDOMNNB $SUPDOMNNB [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -EVAP..... $EVAP [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -RIVOUT... $RIVOUT [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPIND... $SUPIND [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -SUPDOM... $SUPDOM [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELSOILMOIS $DELSOILMOIST [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELSWE... $DELSWE [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELRIVSTO $DELRIVSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELDAMSTO $DELDAMSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo -DELMSRSTO $DELMSRSTO [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo =BALCPL... $BALCPL [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT echo '+++ Environmental +++' >> $OUT echo >> $OUT echo ENVFLW $ENVFLW [km3/y] | awk '{printf("%12s%12.2f%8s\n",$1,$2,$3)}' >> $OUT echo >> $OUT ############################################################ # Finish loop ############################################################ done done done exit ############################################################ # Irrigation ############################################################ FEVPNON=../../irg/out/cws_non1/$PRJ$RUN$YEAR$MON$DAY$SUF divone $FEVPNON 1000 $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null proone $TEMP $FNON $TEMP EVPNON=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1/1000/1000/1000}'` FEVPIRG=../../irg/out/cws_irg1/$PRJ$RUN$YEAR$MON$DAY$SUF divone $FEVPIRG 1000 $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null proone $TEMP $FIRGARA $TEMP EVPIRG=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1/1000/1000/1000}'` FPOTENON=../../irg/out/cwd_non1/$PRJ$RUN$YEAR$MON$DAY$SUF divone $FPOTENON 1000 $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null proone $TEMP $FNON $TEMP POTENON=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1/1000/1000/1000}'` FPOTEIRG=../../irg/out/cwd_irg1/$PRJ$RUN$YEAR$MON$DAY$SUF divone $FPOTEIRG 1000 $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null proone $TEMP $FIRGARA $TEMP POTEIRG=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP | \ awk '{print $1/1000/1000/1000}'` FYLDNON=../../irg/out/yld_non1/$PRJ$RUN$YEAR$MON$DAY$SUF proone $FYLDNON $FNON $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null YLDNON=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP` YLDNON=`echo $YLDNON $NON | awk '{print $1/$2/1000/1000/1000}'` FYLDIRG=../../irg/out/yld_irg1/$PRJ$RUN$YEAR$MON$DAY$SUF proone $FYLDIRG $FIRGARA $TEMP htmask $L $XY $L2X $L2Y $LONLAT $TEMP $MASK eq $NUM $TEMP > /dev/null YLDIRG=`htstat $L $XY $L2X $L2Y $LONLAT sum $TEMP` YLDIRG=`echo $YLDIRG $IRG | awk '{print $1/$2/1000/1000/1000}'` echo '+++ Non-irrigated field +++' >> $OUT echo >> $OUT echo EVPNON $EVPNON [km3/y] >> $OUT echo POTENON $POTENON [km3/y] >> $OUT echo YLDNON $YLDNON [t/m2] >> $OUT echo >> $OUT echo '+++ Irrigated field +++' >> $OUT echo >> $OUT echo EVPIRG $EVPIRG [km3/y] >> $OUT echo POTEIRG $POTEIRG [km3/y] >> $OUT echo YLDIRG $YLDIRG [t/m2] >> $OUT echo >> $OUT