/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/hydrotrend/hydroprinttable.c

Go to the documentation of this file.
00001 /*
00002  *  HydroPrintTable.c
00003  *
00004  *  Prints the various summary values to HYDRO.LOG.
00005  *  Prints daily discharge to HYDRO.Q
00006  *  Prints daily sediment load data to HYDRO.QS
00007  *  for a user specified range of years.
00008  *
00009  *  Author1:    M.D. Morehead  (June 1998)
00010  *  Author2:    S.D. Peckham   (Jan 2002)
00011  *  Author3:    A.J. Kettner   (October 2002)(February 2003)
00012  *
00013  */
00014 
00015 #include "hydroclimate.h"
00016 #include "hydroparams.h"
00017 #include "hydrotimeser.h"
00018 #include "hydroinout.h"
00019 
00020 /*----------------------------
00021  *  Start of HydroPrintTable
00022  *----------------------------*/
00023 int hydroprinttable()
00024 {
00025 /*-------------------
00026  *  Local Variables
00027  *-------------------*/
00028 int err, ii,p;
00029 double baseflowpercentage;
00030 
00031 err = 0;
00032 baseflowpercentage = ((Qbartotal[ep] - baseflowtot[ep])/Qbartotal[ep]);
00033 
00034 /*-------------------------------------------------
00035  *  Print Summary Table for the year to HYDRO.LOG
00036  *-------------------------------------------------*/
00037 fprintf( fidlog, " HydroPrintTable output: \n" );
00038 fprintf( fidlog, " -----------------------\n" );
00039 fprintf( fidlog, "\n" );
00040 fprintf( fidlog, "   %s \n", title[ep] );
00041 fprintf( fidlog, "   Epoch = %d, Year = %d \n", ep+1, yr );
00042 
00043 
00044 fprintf( fidlog, "   Hypsometric Integral by Digitized Function: \n");
00045 fprintf( fidlog, "\t using %d number of points \n\n", nhypts[ep] );
00046 
00047 fprintf( fidlog, "   Total Suspended Load: \t %.1f (10^6 kg/year) \n", Qsannual/1e6 );
00048 fprintf( fidlog, "   Total Bed Load: \t %.1f (10^6 kg/year) \n\n", Qbedannual/1e6 );
00049 
00050 fprintf( fidlog, "   Climate Trend and Basin Parameters: \n");
00051 fprintf( fidlog, "   ----------------------------------- \n");
00052 fprintf( fidlog, "\t\t\t Annual Precipitation \t\t Annual Temperature \n");
00053 fprintf( fidlog, "\t Starting Value: \t %.3f (m) \t\t %.3f (degC) \n", Pstart[ep], Tstart[ep] );
00054 fprintf( fidlog, "\t Change per Year: \t %.3f (m/a) \t\t %.3f (degC/a) \n", Pchange[ep], Tchange[ep] );
00055 fprintf( fidlog, "\t Std. Deviation: \t %.3f (m) \t\t %.3f (degC) \n", Pstd[ep], Tstd[ep] );
00056 fprintf( fidlog, "\t This Year: \t\t %.3f (m) \t\t %.3f (degC) \n", Pannual, Tannual );
00057 fprintf( fidlog, "\t baseflow: \t\t %.3f (m) \n\n", baseflowtot[ep]*dTOs*daysiy );
00058 
00059 fprintf( fidlog, "\t Max. Basin Altitude: \t %.1f (m) \n", maxalt[ep] );
00060 fprintf( fidlog, "\t ELA Starting Value: \t %.1f (m) \n", ELAstart[ep] );
00061 fprintf( fidlog, "\t ELA Change per Year: \t %.4f (m/a) \n", ELAchange[ep] );
00062 fprintf( fidlog, "\t ELA this Year:   \t %.1f (m) \n\n", ela );
00063 
00064 fprintf( fidlog, "\t Total Basin Area: \t\t %.1f (km^2) \n", totalarea[ep]/1e6 );
00065 fprintf( fidlog, "\t Glaciated Area above the ELA: \t %.1f (km^2) \n", smallg/1e6 );
00066 fprintf( fidlog, "\t Glaciated Area below the ELA: \t %.1f (km^2) \n\n", bigg/1e6 );
00067 
00068 fprintf( fidlog, "   Mass Balance Summary: \n");
00069 fprintf( fidlog, "   --------------------- \n");
00070 fprintf( fidlog,"   Minput =  Pannual + gwlast + previousice + previousnival + MQprevious \n" );
00071 fprintf( fidlog," \t Minput \t = \t\t\t %e (m^3) \n",                   Minput );
00072 fprintf( fidlog," \t Pannual \t = %e (m) \t %e (m^3)\n",                Pannual, Pannual*totalarea[ep] );
00073 fprintf( fidlog," \t gwlast \t = \t\t\t %e (m^3) \n",                   gwlast );
00074 fprintf( fidlog," \t Gmass \t\t = \t\t\t %e (m^3) \n",          Gmass );
00075 fprintf( fidlog," \t Msnowstart \t = \t\t\t %e (m^3) \n",               Msnowstart );
00076 fprintf( fidlog," \t MQprevious \t = \t\t\t %e (m^3) \n\n",             MQprevious );
00077 
00078 
00079 fprintf( fidlog,"   Moutput =  MEtotal + Qtotal + gwstore + nextice + nextnival + MQnext \n" );
00080 fprintf( fidlog," \t Moutput \t = \t %e (m^3) \n",              Moutput );
00081 fprintf( fidlog," \t MEtotal \t = \t %e (m^3)\n",               MEtotal );
00082 fprintf( fidlog," \t Qtotal  \t = \t %e (m^3) \n",              Qgrandtotal[ep]);
00083 fprintf( fidlog," \t gwstore[daysiy-1] = \t %e (m^3) \n",       gwstore[daysiy-1] );
00084 fprintf( fidlog," \t Msnowend \t = \t %e (m^3) \n",             Msnowend );
00085 fprintf( fidlog," \t MQnext \t = \t %e (m^3) \n\n",             MQnext );
00086 
00087 /*-----------------------------------
00088  *  Print Discharge data to HYDRO.Q
00089  *-----------------------------------*/
00090 if (yr == tblstart[ep]) {
00091     fprintf( fidq, "%%\n%%================================================================\n" );
00092     fprintf( fidq, "%%Epoch = %d, Year = %d \n%%\n", ep+1, yr );
00093 
00094     fprintf( fidq, "%%Daily Discharge Results: \n");
00095     fprintf( fidq, "%%------------------------ \n");
00096     if( exceedflood > 0 ) {
00097       fprintf( fidq, "%%********* NOTE: Some peak flows are exceeding the \t\t ********* \n");
00098       fprintf( fidq, "%%********* Maximum Basin Flood Flow Rate of %.1f (m^3/s) \t ********* \n%%\n", maxflood );
00099     }
00100 
00101     fprintf( fidq, "%%All discharges in m^3/s \n%%\n");
00102 
00103     fprintf( fidq, "%%Daily baseflow = %.1f \n%%\n", baseflowtot[ep] );
00104 
00105     fprintf( fidq, "%%Day \t Qrain \t\t Qnival\t\t Qice \t\t Qss \t\t Qexceedgw \t\t gwstore \t Qtotal   \t");
00106         if (outletmodelflag == 1)
00107                 for (p=0; p < maxnoutlet; p++)   
00108                         fprintf( fidq, "Qoutlet:%d\t",p+1);    
00109     fprintf( fidq, "\n");
00110     fprintf( fidq, "%%--- \t ----- \t\t ------\t\t ---- \t\t --- \t\t --------- \t\t -------- \t---------\t ");
00111         for (p=0; p < maxnoutlet; p++)   
00112                         fprintf( fidq, "---------\t");
00113     fprintf( fidq, "\n%%\n");
00114 }
00115 for( ii=0; ii<daysiy; ii++ ) {
00116    fprintf( fidq, "%d \t %.1f    \t %.1f    \t %.1f    \t %.1f    \t %.1f   \t\t\t %.1f\t %.2f\t\t ", \
00117       (yr - syear[ep])*365 + ii+1, baseflowpercentage*Qrain[ii], baseflowpercentage*Qnival[ii], baseflowpercentage*Qice[ii],
00118       baseflowpercentage*Qss[ii], baseflowpercentage*Qexceedgw[ii], gwstore[ii],Qsumtot[ii] );
00119         for (p=0; p < maxnoutlet; p++)
00120                 fprintf( fidq, "%.2f \t\t",Qsum[ii][p] );
00121         fprintf( fidq, "\n");
00122 }
00123 
00124 /*----------------------------------------
00125  *  Print Sediment load data to HYDRO.QS
00126  *----------------------------------------*/
00127 if (yr == tblstart[ep]) {
00128     fprintf( fidqs, "%%\n%%================================================================\n" );
00129     fprintf( fidqs, "%%Epoch = %d, Year = %d \n%%\n", ep+1, yr );
00130 
00131     fprintf( fidqs, "%%Daily Sediment Load Results: \n");
00132     fprintf( fidqs, "%%------------------------ \n");
00133 
00134     fprintf( fidqs, "%%\n%%Day\tQtotal\t");
00135     if (outletmodelflag == 1)
00136                 for (p=0; p < maxnoutlet; p++)   
00137                         fprintf( fidqs, "Qoutl:%d\t",p+1);
00138     fprintf( fidqs, "Cstotal\t\t" );                    
00139     if (outletmodelflag == 1)           
00140                 for (p=0; p < maxnoutlet; p++)   
00141                         fprintf( fidqs, "Csoutl:%d\t",p+1);
00142     fprintf( fidqs, "Log(Qstot\t" );                    
00143     if (outletmodelflag == 1)                   
00144                 for (p=0; p < maxnoutlet; p++)   
00145                         fprintf( fidqs, "Log(Qsoutl:%d)\t",p+1);
00146     fprintf( fidqs, "Bedloadtot\t" );                   
00147     if (outletmodelflag == 1)                   
00148                 for (p=0; p < maxnoutlet; p++)   
00149                         fprintf( fidqs, "Bedloadoutl:%d\t",p+1);
00150         fprintf( fidqs, "\n");
00151         
00152     fprintf( fidqs, "%%   \t(m^3/s) "); 
00153     if (outletmodelflag == 1)                   
00154                 for (p=0; p < maxnoutlet; p++)   
00155                         fprintf( fidqs, "(m^3/s) ");
00156     fprintf( fidqs, "(kg/m^3) \t" );                    
00157     if (outletmodelflag == 1)                   
00158                 for (p=0; p < maxnoutlet; p++)   
00159                         fprintf( fidqs, "(kg/m^3) \t");
00160     fprintf( fidqs, "(kg/s) \t\t\t" );                  
00161     if (outletmodelflag == 1)                   
00162                 for (p=0; p < maxnoutlet; p++)   
00163                         fprintf( fidqs, "(kg/s) \t\t\t");
00164     fprintf( fidqs, "(kg/s) \t\t\t" );                  
00165     if (outletmodelflag == 1)                   
00166                 for (p=0; p < maxnoutlet; p++)   
00167                         fprintf( fidqs, "(kg/s) \t\t\t");
00168         fprintf( fidqs, "\n");
00169         
00170     fprintf( fidqs, "%%--- \t------- ");
00171     if (outletmodelflag == 1)
00172                 for (p=0; p < maxnoutlet; p++)   
00173                         fprintf( fidqs, "------- ");
00174         fprintf( fidqs, "-------- \t");         
00175         if (outletmodelflag == 1)
00176                 for (p=0; p < maxnoutlet; p++)   
00177                         fprintf( fidqs, "-------- \t");
00178         fprintf( fidqs, "------ \t\t\t");               
00179         if (outletmodelflag == 1)
00180                 for (p=0; p < maxnoutlet; p++)   
00181                         fprintf( fidqs, "------ \t\t\t");
00182         fprintf( fidqs, "-------- \t\t");
00183         if (outletmodelflag == 1)
00184                 for (p=0; p < maxnoutlet; p++)   
00185                         fprintf( fidqs, "-------- \t\t");
00186         fprintf( fidqs, "\n%%\n");      
00187 }
00188 
00189 for( ii=0; ii<daysiy; ii++ ) {
00190         fprintf( fidqs, "%d  \t%.2f    ",(yr - syear[ep])*365 + ii+1,Qsumtot[ii]);
00191         if (outletmodelflag == 1)
00192                 for (p=0; p < maxnoutlet; p++)   
00193                         fprintf( fidqs, "%.2f    ",Qsum[ii][p]);
00194         fprintf( fidqs, "%.4f \t\t",Cs[ii]);
00195         if(outletmodelflag == 1)
00196                 for (p=0; p < maxnoutlet; p++)   
00197                         fprintf( fidqs, "%.4f \t",Csoutlet[ii][p]);
00198         fprintf( fidqs, "%.1f    \t",log(Qs[ii]));
00199         if (outletmodelflag == 1)
00200                 for (p=0; p < maxnoutlet; p++)   
00201                         fprintf( fidqs, "%.1f    \t",log(Qsoutlet[ii][p]));
00202         fprintf( fidqs, "%.1f  \t",Qb[ii]);
00203         if (outletmodelflag == 1)
00204         for (p=0; p < maxnoutlet; p++)   
00205                 fprintf( fidqs, "%.1f  \t",Qboutlet[ii][p]);
00206         fprintf( fidqs, "\n");
00207 }
00208 
00209 return(err);
00210 }  /* end of HydroPrintTable.c */
00211 

Generated on Fri Jan 4 18:04:14 2008 for sedflux by  doxygen 1.5.2