Ignore:
Timestamp:
10/31/14 10:58:45 (10 years ago)
Author:
lemorzad
Message:

NEW: modified lapse rate to PDD scheme

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp

    r14951 r18717  
    66#include "../Numerics/numerics.h"
    77
    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){
     8IssmDouble 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){
    915
    1016  // output:
     
    2026  IssmDouble sconv; //rhow_rain/rhoi / 12 months
    2127
    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; 
    2636  IssmDouble st;             // elevation between altitude of the temp record and current altitude
    2737  IssmDouble sp;             // elevation between altitude of the prec record and current altitude
     
    6878
    6979  // 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;       
    7691
    7792      /*********compute PD ****************/
Note: See TracChangeset for help on using the changeset viewer.