- Timestamp:
- 10/31/14 10:58:45 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp
r14951 r18717 6 6 #include "../Numerics/numerics.h" 7 7 8 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p){ 8 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, 9 IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday, 10 IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, 11 IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, 12 IssmDouble rho_water, IssmDouble desfac, IssmDouble s0t, 13 IssmDouble s0p, IssmDouble rlaps, IssmDouble rlapslgm, 14 IssmDouble PfacTime,IssmDouble TdiffTime,IssmDouble sealevTime){ 9 15 10 16 // output: … … 20 26 IssmDouble sconv; //rhow_rain/rhoi / 12 months 21 27 22 IssmDouble lapser=6.5, sealev=0.; // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper 23 // IssmDouble desfac = 0.5; // desert elevation factor 24 // IssmDouble s0p=0.; // should be set to elevation from precip source 25 IssmDouble s0t=0.; // should be set to elevation from temperature source 28 //IssmDouble sealev=0.; // degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper 29 //IssmDouble Pfac=0.5,Tdiff=0.5; 30 IssmDouble rtlaps; 31 // IssmDouble lapser=6.5 // lapse rate 32 // IssmDouble desfac = 0.5; // desert elevation factor 33 // IssmDouble s0p=0.; // should be set to elevation from precip source 34 // IssmDouble s0t=0.; // should be set to elevation from temperature source 35 IssmDouble tdiffh; 26 36 IssmDouble st; // elevation between altitude of the temp record and current altitude 27 37 IssmDouble sp; // elevation between altitude of the prec record and current altitude … … 68 78 69 79 // seasonal loop 70 for (iqj = 0; iqj < 12; iqj++){ 71 imonth = ismon[iqj]; 72 73 st=(s-s0t)/1000.; 74 tstar = monthlytemperatures[imonth] - lapser *max(st,sealev); 75 Tsurf = tstar*deltm+Tsurf; 80 for (iqj = 0; iqj < 12; iqj++){ 81 imonth = ismon[iqj]; 82 83 /*********compute lapse rate ****************/ 84 st=(s-s0t)/1000.; 85 rtlaps=TdiffTime*rlapslgm + (1.-TdiffTime)*rlaps; // lapse rate 86 87 /*********compute Surface temperature *******/ 88 tdiffh = TdiffTime*( TemperaturesLgm[imonth] - TemperaturesPresentday[imonth] ); 89 tstar = tdiffh + TemperaturesPresentday[imonth] - rtlaps *max(st,sealevTime*0.001); 90 Tsurf = tstar*deltm+Tsurf; 76 91 77 92 /*********compute PD ****************/
Note:
See TracChangeset
for help on using the changeset viewer.