Changeset 12641


Ignore:
Timestamp:
07/17/12 09:47:14 (13 years ago)
Author:
lemorzad
Message:

updating PddSurfaceMassBalance

Location:
issm/trunk/src/c
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r12640 r12641  
    22912291   /*measure the surface mass balance*/
    22922292   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);
    22942294   }
    22952295
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r12640 r12641  
    21222122   /*measure the surface mass balance*/
    21232123   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);
    21252125   }
    21262126
  • issm/trunk/src/c/shared/Elements/PddSurfaceMassBalance.cpp

    r12640 r12641  
    55#include "./elements.h"
    66
    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){
     7double PddSurfaceMassBlance(double* monthlytemperatures, double* monthlyprec, double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water){
    88
    99  // output:
     
    1212  int    iqj,imonth, j;
    1313 
    14   double saccu = {0};     // yearly surface accumulation
    15   double smelt = {0};     // yearly melt
     14  double saccu;     // yearly surface accumulation
     15  double smelt;     // yearly melt
    1616  double precrunoff;      // yearly runoff
    1717  double prect; // total precipitation during 1 year taking into account des. ef.
     
    2323  double lapser=6.5/1000., sealev=0.;    // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper
    2424  double desfac = 0.5;                 // desert elevation factor
    25   double s0p={0};         // should be set to elevation from precip source
    26   double s0t={0};         // should be set to elevation from temperature source
     25  double s0p=0.;         // should be set to elevation from precip source
     26  double s0t=0.;         // should be set to elevation from temperature source
    2727  double st;             // elevation between altitude of the temp record and current altitude
    2828  double sp;             // elevation between altitude of the prec record and current altitude
     
    3737 
    3838  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 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}
     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.
    4444 
    4545  double tstar;                        // monthly mean surface temp
    46   double Tsum= {0};       // average summer (JJA) temperature
    47   double Tsurf = {0};     // average annual temperature   
     46  double Tsum= 0.;       // average summer (JJA) temperature
     47  double Tsurf = 0.;     // average annual temperature   
    4848 
    4949
     
    5959  double fsupT=0.5,  fsupndd=0.5;  // Tsurf mode factors for supice
    6060  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];}
    6661 
    6762  sconv=(rho_water/rho_ice)/12.; //rhow_rain/rhoi / 12 months
     
    7974 
    8075      st=(s-s0t)/1000.;
    81       tstar = temperatures[imonth] - lapser *max(st,sealev);
     76      tstar = monthlytemperatures[imonth] - lapser *max(st,sealev);
    8277      Tsurf = tstar*deltm+Tsurf;       
    8378     
     
    9489      else {q = 1.0;}
    9590     
    96       qmt= qmt + precipitation[imonth]*sconv;  //*sconv to convert in m of ice equivalent per month
    97       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;           
    9893      qmp= qmp + qmpt;
    9994      qm= qm + qmpt*pd;
  • issm/trunk/src/c/shared/Elements/elements.h

    r12640 r12641  
    1313double Paterson(double temperature);
    1414double 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);
     15double PddSurfaceMassBlance(double* monthlytemperatures,  double* monthlyprec, double* pdds, double* pds, double signorm, double yts, double h, double s, double rho_ice, double rho_water);
    1616void   GetVerticesCoordinates(double* xyz,  Node** nodes, int numvertices);
    1717int    GetNumberOfDofs( Node** nodes,int numnodes,int setenum,int approximation_enum);
Note: See TracChangeset for help on using the changeset viewer.