Changeset 27535


Ignore:
Timestamp:
01/23/23 11:47:13 (2 years ago)
Author:
sehrenfe
Message:

CHG: add option meltfag = 2 in GlaDS that pulls RO from md.smb.runoff

Location:
issm/trunk-jpl/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp

    r27470 r27535  
    133133        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
    134134        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
     135        iomodel->FetchDataToInput(inputs,elements,"md.smb.runoff",SmbRunoffEnum);
    135136        if(iomodel->domaintype!=Domain2DhorizontalEnum){
    136137                iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
     
    313314
    314315        /*Intermediaries */
    315         bool        meltflag;
     316        int         meltflag;
    316317        IssmDouble  Jdet,w,v2,vx,vy,ub,h,h_r;
    317         IssmDouble  G,m,frictionheat,alpha2;
     318        IssmDouble  G,m,melt,RO,frictionheat,alpha2;
    318319        IssmDouble  A,B,n,phi_old,phi,phi_0;
    319320        IssmDouble  H,b;
     
    342343        Input* b_input      = element->GetInput(BedEnum); _assert_(b_input);
    343344        Input* G_input      = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(G_input);
    344         Input* m_input      = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(m_input);
     345        Input* melt_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(melt_input);
     346        Input* RO_input     = element->GetInput(SmbRunoffEnum);_assert_(RO_input);
    345347        Input* B_input      = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
    346348        Input* n_input      = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
     
    367369                b_input->GetInputValue(&b,gauss);
    368370                H_input->GetInputValue(&H,gauss);
    369                
     371                melt_input->GetInputValue(&melt,gauss);
     372                RO_input->GetInputValue(&RO,gauss);
     373
    370374                /*Hard code B*/
    371375                B = Cuffey(273.15-2);
     
    384388
    385389                /*Compute melt (if necessary)*/
    386                 if(!meltflag){
     390                if(meltflag = 0){
    387391                        m = (G + frictionheat)/(rho_ice*L);
    388392                }
     393                if(meltflag = 1){
     394                        m = melt;
     395                }
    389396                else{
    390                         m_input->GetInputValue(&m,gauss);
     397                        m = RO;
    391398                }
    392399
     
    643650
    644651                /*Get A from B and n*/
    645                 A=pow(B,-n);
     652                A = pow(B,-n);
    646653
    647654                /*Define alpha and beta*/
  • issm/trunk-jpl/src/m/classes/hydrologyglads.m

    r27443 r27535  
    8080                        md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1,'Inf',1);
    8181                        md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
    82                         md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1]);
    83                         if self.melt_flag
     82                        md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1 2]);
     83                        if self.melt_flag==1 || self.melt_flag==2
    8484                                md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
    8585                        end
     
    126126                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    127127                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','englacial_void_ratio','format','Double');
    128                         WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','melt_flag','format','Boolean');
     128                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','melt_flag','format','Integer');
    129129                        outputs = self.requested_outputs;
    130130                        pos  = find(ismember(outputs,'default'));
Note: See TracChangeset for help on using the changeset viewer.