Changeset 12641
- Timestamp:
- 07/17/12 09:47:14 (13 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Penta.cpp
r12640 r12641 2291 2291 /*measure the surface mass balance*/ 2292 2292 for (i = 0; i < NUMVERTICES; i++){ 2293 agd[i]=PddSurfaceMassBlance(&monthlytemperatures[ 0][0], &monthlyprec[0][0], i, pdds, pds, signorm, yts, h[i], s[i], rho_ice, rho_water);2293 agd[i]=PddSurfaceMassBlance(&monthlytemperatures[i][0], &monthlyprec[i][0], pdds, pds, signorm, yts, h[i], s[i], rho_ice, rho_water); 2294 2294 } 2295 2295 -
issm/trunk/src/c/objects/Elements/Tria.cpp
r12640 r12641 2122 2122 /*measure the surface mass balance*/ 2123 2123 for (i = 0; i < NUMVERTICES; i++){ 2124 agd[i]=PddSurfaceMassBlance(&monthlytemperatures[ 0][0], &monthlyprec[0][0], i, pdds, pds, signorm, yts, h[i], s[i], rho_ice, rho_water);2124 agd[i]=PddSurfaceMassBlance(&monthlytemperatures[i][0], &monthlyprec[i][0], pdds, pds, signorm, yts, h[i], s[i], rho_ice, rho_water); 2125 2125 } 2126 2126 -
issm/trunk/src/c/shared/Elements/PddSurfaceMassBalance.cpp
r12640 r12641 5 5 #include "./elements.h" 6 6 7 double PddSurfaceMassBlance(double* monthlytemperatures, double* monthlyprec, int i,double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water){7 double PddSurfaceMassBlance(double* monthlytemperatures, double* monthlyprec, double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water){ 8 8 9 9 // output: … … 12 12 int iqj,imonth, j; 13 13 14 double saccu = {0}; // yearly surface accumulation15 double smelt = {0}; // yearly melt14 double saccu; // yearly surface accumulation 15 double smelt; // yearly melt 16 16 double precrunoff; // yearly runoff 17 17 double prect; // total precipitation during 1 year taking into account des. ef. … … 23 23 double lapser=6.5/1000., sealev=0.; // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper 24 24 double desfac = 0.5; // desert elevation factor 25 double s0p= {0}; // should be set to elevation from precip source26 double s0t= {0}; // should be set to elevation from temperature source25 double s0p=0.; // should be set to elevation from precip source 26 double s0t=0.; // should be set to elevation from temperature source 27 27 double st; // elevation between altitude of the temp record and current altitude 28 28 double sp; // elevation between altitude of the prec record and current altitude … … 37 37 38 38 double q, qmpt; // q is desert/elev. fact, hnpfac is huybrect fact, and pd is normal dist. 39 double qm = {0}; // snow part of the precipitation40 double qmt = {0}; // precipitation without desertification effect adjustment41 double qmp = {0}; // desertification taken into account42 double pdd = {0};43 double frzndd = {0};39 double qm = 0.; // snow part of the precipitation 40 double qmt = 0.; // precipitation without desertification effect adjustment 41 double qmp = 0.; // desertification taken into account 42 double pdd = 0.; 43 double frzndd = 0.; 44 44 45 45 double tstar; // monthly mean surface temp 46 double Tsum= {0}; // average summer (JJA) temperature47 double Tsurf = {0}; // average annual temperature46 double Tsum= 0.; // average summer (JJA) temperature 47 double Tsurf = 0.; // average annual temperature 48 48 49 49 … … 59 59 double fsupT=0.5, fsupndd=0.5; // Tsurf mode factors for supice 60 60 double pddtj, hmx2; 61 62 double precipitation[12], temperatures[12];63 64 for (j = 0; j < 12; j++) {precipitation[j]=monthlyprec[i*12+j];}65 for (j = 0; j < 12; j++) {temperatures[j]=monthlytemperatures[i*12+j];}66 61 67 62 sconv=(rho_water/rho_ice)/12.; //rhow_rain/rhoi / 12 months … … 79 74 80 75 st=(s-s0t)/1000.; 81 tstar = temperatures[imonth] - lapser *max(st,sealev);76 tstar = monthlytemperatures[imonth] - lapser *max(st,sealev); 82 77 Tsurf = tstar*deltm+Tsurf; 83 78 … … 94 89 else {q = 1.0;} 95 90 96 qmt= qmt + precipitation[imonth]*sconv; //*sconv to convert in m of ice equivalent per month97 qmpt= q* precipitation[imonth]*sconv;91 qmt= qmt + monthlyprec[imonth]*sconv; //*sconv to convert in m of ice equivalent per month 92 qmpt= q*monthlyprec[imonth]*sconv; 98 93 qmp= qmp + qmpt; 99 94 qm= qm + qmpt*pd; -
issm/trunk/src/c/shared/Elements/elements.h
r12640 r12641 13 13 double Paterson(double temperature); 14 14 double Arrhenius(double temperature,double depth,double n); 15 double PddSurfaceMassBlance(double* monthlytemperatures, double* monthlyprec, int i,double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water);15 double PddSurfaceMassBlance(double* monthlytemperatures, double* monthlyprec, double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water); 16 16 void GetVerticesCoordinates(double* xyz, Node** nodes, int numvertices); 17 17 int GetNumberOfDofs( Node** nodes,int numnodes,int setenum,int approximation_enum);
Note:
See TracChangeset
for help on using the changeset viewer.