00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <math.h>
00022 #include "hydroclimate.h"
00023 #include "hydroparams.h"
00024 #include "hydroinout.h"
00025
00026
00027
00028
00029 int hydroprintstat(){
00030
00031
00032
00033
00034 int err;
00035 double A,H, Tbar, sigmapsi, cbar, s;
00036
00037
00038
00039
00040 err = 0;
00041
00042
00043
00044
00045 A = (totalarea[ep] / 1e6);
00046 H = maxalt[ep];
00047 Tbar = Tstart[ep] - ((lapserate[ep] * maxalt[ep])/3.0);
00048 sigmapsi = 0.763 * pow(0.99995,Qbartotal[ep]);
00049 cbar = (1.4 - (0.025*Tbar) + (0.00013*H) + (0.145 *log(Qsbartot[ep])));
00050 s = 0.17 + (0.0000183 * Qbartotal[ep]);
00051
00052
00053
00054
00055 fprintf( fidstat, " Values used to calculate discharge and sediment discharge\n");
00056 fprintf( fidstat, " for the stochastic model in hydrotrend run: \n" );
00057 fprintf( fidstat, " %s\n", title[ep] );
00058 fprintf( fidstat, "epoch: %d \n",ep+1);
00059 fprintf( fidstat, "*****************************************************************\n");
00060 if (Qsbarformulaflag[ep] == 1){
00061 fprintf( fidstat, "Qsbar = alpha3 * pow(A,alpha4) * pow(H,alpha5) * exp(k * Tbar)\n" );
00062 fprintf( fidstat, "\t A = %.2f; river basin area (km2)\n",A);
00063 fprintf( fidstat, "\t H = %.2f; maxalt = basin relief (m)\n\n",H);
00064 fprintf( fidstat, "\t T = %.2f; Tbar = mean basin temp (C)\n",Tbar);
00065 fprintf( fidstat, "\t\t T =Tstart[ep](=%.2f) - ((lapserate[ep](=%.2f) * maxalt[ep](=%.2f))/3.0\n\n",Tstart[ep],lapserate[ep],maxalt[ep]);
00066 fprintf( fidstat, "\t alpha3, alpha4, alpha5 and k are set by temperature and\n");
00067 fprintf( fidstat, "\t latitude geographic position of the river mouth, lat=%.2f\n ",lat);
00068 fprintf( fidstat, "\t alpha3 = %.2e\n",alpha3);
00069 fprintf( fidstat, "\t alpha4 = %.2e\n",alpha4);
00070 fprintf( fidstat, "\t alpha5 = %.2e\n",alpha5);
00071 fprintf( fidstat, "\t k= %.2e\n",k1);
00072 fprintf( fidstat, "Qsbar = %.2f (kg/s)\n\n\n",Qsbartot[ep]);
00073 fprintf( fidstat, "Qbar = (sumQ(daily))/number of days\n" );
00074 fprintf( fidstat, "Qbar = %.2f (m3/s)\n\n\n",Qbartotal[ep]);
00075 }
00076 if (Qsbarformulaflag[ep] == 0){
00077 fprintf( fidstat, "Qsbar = alpha3 * pow(Qbar,alpha4) * pow(H,alpha5) * exp(k * Tbar)\n" );
00078 fprintf( fidstat, "\t Qbar = %.2f; long-term average of Q (m3/s)\n",Qbartotal[ep]);
00079 fprintf( fidstat, "\t H = %.2f; maxalt = basin relief (m)\n\n",H);
00080 fprintf( fidstat, "\t T = %.2f; Tbar = mean basin temp (C)\n",Tbar);
00081 fprintf( fidstat, "\t\t T =Tstart[ep](=%.2f) - ((lapserate[ep](=%.2f) * maxalt[ep](=%.2f))/3.0\n\n",Tstart[ep],lapserate[ep],maxalt[ep]);
00082 fprintf( fidstat, "\t alpha6, alpha7, alpha8 and k are set by temperature and\n");
00083 fprintf( fidstat, "\t latitude geographic position of the river mouth, lat=%.2f\n ",lat);
00084 fprintf( fidstat, "\t alpha6 = %.2e\n",alpha6);
00085 fprintf( fidstat, "\t alpha7 = %.2e\n",alpha7);
00086 fprintf( fidstat, "\t alpha8 = %.2e\n",alpha8);
00087 fprintf( fidstat, "\t k= %.2e\n",k2);
00088 fprintf( fidstat, "Qsbar = %.2f (kg/s)\n\n\n",Qsbartot[ep]);
00089 }
00090 fprintf( fidstat, "(Qs(daily)/Qsbar) = psi(daily) * (Q(daily)/Qbar)^C(daily)\n");
00091 fprintf( fidstat, "\t Qs(daily) = daily sediment discharge (kg/s)\n");
00092 fprintf( fidstat, "\t Qsbar = %.2f (kg/s); used long-term average of Qs (fractions of Qs(daily)/nr. of fractions)\n\n",Qsmean[ep]*Qsbarnew[ep]);
00093 fprintf( fidstat, "\t psi = log-normal random variable,\n");
00094 fprintf( fidstat, "\t\t psi = a random number from a lognormal distribution with\n" );
00095 fprintf( fidstat, "\t\t mean 1 and sigma psi = 0.763 * (0.99995^Qbar)\n" );
00096 fprintf( fidstat, "\t sigma psi = %f\n\n",sigmapsi );
00097 fprintf( fidstat, "\t Q(daily) = daily discharge (m3/s)\n");
00098 fprintf( fidstat, "\t Qbar = %.2f (m3/s); long-term average of Q, calculated by formula explained above\n\n",Qbartotal[ep]);
00099 fprintf( fidstat, "\t C\t= a random number from a distribution with mean E(C)\n" );
00100 fprintf( fidstat, "\t\t and standard deviation sigma-C, where:\n" );
00101 fprintf( fidstat, "\t\t E(C) = (1.4 - (0.025*T) + (0.00013*H) + (0.145*ln(Qsbar))\n" );
00102 fprintf( fidstat, "\t\t E(C) = %f\n",cbar );
00103 fprintf( fidstat, "\t\t sigma-C = 0.17 + (0.0000183 * Qbar)\n" );
00104 fprintf( fidstat, "\t\t sigma-C = %f\n\n",s );
00105 fprintf( fidstat, "*****************************************************************\n\n\n");
00106 return(err);
00107 }