/* @@@‚PŽŸŒ³‰Í°•Ï“®ŒvŽZ @@@‰‰K–â‘è‚P‚X */ #include #include #include double CALWF(double S,double G,double D); double CALH(double H[],double Z[],double B[],double Q,double SN,double H0,double G,double DX[],double EPS,double IE[],int NJ); double CALIWA(double S,double G,double D); double CALQSU(double S,double G,double D,int NJ,double US[],double TS[],double TSC,double WF,double QSU[]); double CALC(int NJ,double X[],double B[],double QSU[],double WF,double C[],double Q,double H[],int IDT1,int IDT2); void POUT(double Z[],double ZZ[],double H[],double TS[],double US[],double QSU[],double C[],int NJ,int TIM,int PTIM[],int ITM); double CALDZ(int NJ,double RAMDA,int IDT2,double WF,double Z[],double QSU[],double C[]); /*********************************************************************************************/ double H[60],IE[60]; double WF,USC,TSC; /*********************************************************************************************/ int main(void){ double X[60],DX[60],Z[60],B[60],US[60],TS[60],ZZ[60],QSU[60],C[60]; //double IE[60]/*,HH[60]*/; int PTIM[6],OT[6]; double Q=500,H0=12.0,SN=0.02,D=0.0001,S=1.65; double G=9.8,RAMDA=0.4,EPS=0.001; int NJ=51,IDT1=50,IDT2=100,ETIM=86400; OT[1]=0,OT[2]=1,OT[3]=4,OT[4]=8,OT[5]=12,OT[6]=24; FILE *fp; if((fp=fopen("out.dat","w"))==NULL){ printf("o—̓tƒ@ƒCƒ‹‚ðƒI[ƒvƒ“‚Å‚«‚Ü‚¹‚ñ"); exit(1); } int TIM=0,ITM=1,i,j; for(i=2;i<6;i++) PTIM[i]=OT[i]*3600; for(i=1;i<6;i++) printf("PTIM = %6d",PTIM[i]); /********************************************************************************************/ for(j=1;j=EPS){ DFDH1=QQ/(G*BB*H[j]*H[j]*H[j]); DFDH2=(5/3)*SNN*QQ*DX[j]/(BB*pow(H[j],13/3)); DFDH=1-DFDH1+DFDH2; H[j]=H[j]-FH/DFDH; goto L30; } L20: IE[j]=SNN*QQ/(B[j]*B[j]*pow(H[j],10/3)); } return H[60]; } /*-----USC,TSC‚ÌŒvŽZ-----*/ double CALIWA(double S,double G,double D){ /*** IWAGAKI METHOD ***/ double DD,USC2,USC,TSC; DD=D*100; if(DD>=0.303)USC2=80.9*DD; if((0.118<=DD)&&(DD<0.303)) USC2=134.6*pow(DD,31/22); if((0.0565<=DD)&&(DD<0.118)) USC2=55*DD; if((0.0065<=DD)&&(DD<0.0565)) USC2=8.41*pow(DD,11/32); if(DD<0.0065) USC2=226*DD; USC=sqrt(USC2)/100; TSC=USC*USC/(S*G*D); return USC; } /*-----QSU‚ÌŒvŽZ-----*/ double CALQSU(double S,double G,double D,int NJ,double US[],double TS[],double TSC,double WF,double QSU[]){ //double TSC; double A1=0.436184,A2=-0.120168,A3=0.937298; double AS=0.14,BS=0.143,PK=0.008; double RW=1,RS=2.65,ET=0.5; double PI=3.141592; double SSS=sqrt(S*G*D),AD,ADD,T,D1,D2,OMEGA; int j; for(j=1;j1;j--){ DXB=(X[j+1]-X[j])*B[j]; CC[j]=CA[j]+IDT1/H[j]*(QSU[j]-WF*CA[j]-Q*(CA[j]-CA[j+1])/DXB); } } return C[60]; }; /*-----PRINT OUT-----*/ void POUT(double Z[],double ZZ[],double H[],double TS[],double US[],double QSU[],double C[],int NJ,int TIM,int PTIM[],int ITM){ double HH[60],DZ; int j; FILE *fp; printf("TIME = %5d,ITM = %5d\n",TIM,ITM); if(TIM