Changeset 26271


Ignore:
Timestamp:
05/14/21 11:57:50 (4 years ago)
Author:
schlegel
Message:

CHG: add rain and refreeze outputs to GEMB, update melt to not have rain included

Location:
issm/trunk-jpl
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r26222 r26271  
    36213621        IssmDouble initMass=0.0;
    36223622   IssmDouble sumR=0.0;
    3623    IssmDouble sumM=0.0;
     3623        IssmDouble sumF=0.0;
     3624        IssmDouble sumM=0.0;
    36243625        IssmDouble sumMsurf=0.0;
    3625    IssmDouble sumEC=0.0;
    3626    IssmDouble sumP=0.0;
    3627    IssmDouble sumW=0.0;
    3628    IssmDouble sumMassAdd=0.0;
     3626        IssmDouble sumEC=0.0;
     3627        IssmDouble sumP=0.0;
     3628        IssmDouble sumRa=0.0;
     3629        IssmDouble sumW=0.0;
     3630        IssmDouble sumMassAdd=0.0;
    36293631        IssmDouble fac=0.0;
    36303632        IssmDouble sumMass=0.0;
    36313633        IssmDouble dMass=0.0;
    36323634        IssmDouble accsumR=0.0;
     3635        IssmDouble accsumF=0.0;
    36333636        IssmDouble accsumM=0.0;
    36343637        IssmDouble accsumSMB=0.0;
    36353638        IssmDouble accsumEC=0.0;
    36363639        IssmDouble accsumP=0.0;
     3640        IssmDouble accsumRa=0.0;
    36373641        bool isgraingrowth,isalbedo,isshortwave,isthermal,isaccumulation,ismelt,isdensification,isturbulentflux;
    36383642        bool isconstrainsurfaceT=false;
     
    36633667        IssmDouble  Msurf = 0.0;
    36643668        IssmDouble  R = 0.0;
     3669        IssmDouble  F = 0.0;
     3670        IssmDouble  Ra = 0.0;
    36653671        IssmDouble  mAdd = 0.0;
    36663672        IssmDouble  dz_add = 0.0;
     
    38023808                this->SetElementInput(SmbAccumulatedMeltEnum,0.0);
    38033809                this->SetElementInput(SmbAccumulatedRunoffEnum,0.0);
     3810                this->SetElementInput(SmbAccumulatedRefreezeEnum,0.0);
     3811                this->SetElementInput(SmbAccumulatedRainEnum,0.0);
    38043812                this->SetElementInput(SmbAccumulatedPrecipitationEnum,0.0);
    38053813
     
    38303838
    38313839        // initialize cumulative variables
    3832         sumR = 0; sumM = 0; sumEC = 0; sumP = 0; sumMassAdd = 0; sumMsurf = 0;
     3840        sumR = 0; sumF=0; sumM = 0; sumEC = 0; sumP = 0; sumMassAdd = 0; sumMsurf = 0; sumRa = 0;
    38333841
    38343842        //before starting loop, realize that the transient core runs this smb_core at time = time +deltaT.
     
    38433851                Input *sumM_input          = this->GetInput(SmbMeltEnum);  _assert_(sumM_input);
    38443852                Input *sumR_input          = this->GetInput(SmbRunoffEnum);  _assert_(sumR_input);
     3853                Input *sumF_input          = this->GetInput(SmbRefreezeEnum);  _assert_(sumF_input);
     3854                Input *sumRa_input         = this->GetInput(SmbRainEnum);  _assert_(sumRa_input);
    38453855                Input *sumP_input          = this->GetInput(SmbPrecipitationEnum);  _assert_(sumP_input);
    38463856                Input *ULW_input           = this->GetInput(SmbMeanULWEnum);  _assert_(ULW_input);
     
    38713881                sumR_input->GetInputAverage(&sumR);
    38723882                sumR=sumR*dt*rho_ice;
     3883                sumF_input->GetInputAverage(&sumF);
     3884                sumF=sumF*dt*rho_ice;
     3885                sumRa_input->GetInputAverage(&sumRa);
     3886                sumRa=sumRa*dt*rho_ice;
    38733887                sumP_input->GetInputAverage(&sumP);
    38743888                sumP=sumP*dt*rho_ice;
     
    39343948
    39353949        /*Add snow/rain to top grid cell adjusting cell depth, temperature and density*/
    3936         if(isaccumulation)accumulation(&T, &dz, &d, &W, &a, &adiff, &re, &gdn, &gsp, &m, aIdx, dsnowIdx, Tmean, Ta, P, dzMin, aSnow, C, V, Vmean, rho_ice,this->Sid());
     3950        if(isaccumulation)accumulation(&T, &dz, &d, &W, &a, &adiff, &re, &gdn, &gsp, &Ra, &m, aIdx, dsnowIdx, Tmean, Ta, P, dzMin, aSnow, C, V, Vmean, rho_ice,this->Sid());
    39373951
    39383952        /*Calculate water production, M [kg m-2] resulting from snow/ice temperature exceeding 273.15 deg K
    39393953         * (> 0 deg C), runoff R [kg m-2] and resulting changes in density and determine wet compaction [m]*/
    3940         if(ismelt)melt(&M, &Msurf, &R, &mAdd, &dz_add, &T, &d, &dz, &W, &a, &adiff, &re, &gdn, &gsp, &m, dzMin, zMax, zMin, zTop, zY, rho_ice,this->Sid());
     3954        if(ismelt)melt(&M, &Msurf, &R, &F, &mAdd, &dz_add, &T, &d, &dz, &W, &a, &adiff, &re, &gdn, &gsp, &m, Ra, dzMin, zMax, zMin, zTop, zY, rho_ice,this->Sid());
    39413955
    39423956        /*Allow non-melt densification and determine compaction [m]*/
     
    39833997        sumW = cellsum(W,m);
    39843998        sumP = P +  sumP;
    3985         sumEC = sumEC + EC;  // evap (-)/cond(+)
     3999        sumEC = EC + sumEC;  // evap (-)/cond(+)
     4000        sumRa = Ra + sumRa;
     4001        sumF = F + sumF;
    39864002
    39874003        /*Calculate total system mass:*/
     
    40154031   Input *accsumEC_input         = this->GetInput(SmbAccumulatedECEnum);  _assert_(accsumEC_input);
    40164032   Input *accsumM_input          = this->GetInput(SmbAccumulatedMeltEnum);  _assert_(accsumM_input);
    4017    Input *accsumR_input          = this->GetInput(SmbAccumulatedRunoffEnum);  _assert_(accsumR_input);
    4018    Input *accsumP_input          = this->GetInput(SmbAccumulatedPrecipitationEnum);  _assert_(accsumP_input);
    4019    Input *accsumSMB_input        = this->GetInput(SmbAccumulatedMassBalanceEnum);  _assert_(accsumP_input);
     4033        Input *accsumR_input          = this->GetInput(SmbAccumulatedRunoffEnum);  _assert_(accsumR_input);
     4034        Input *accsumF_input          = this->GetInput(SmbAccumulatedRefreezeEnum);  _assert_(accsumF_input);
     4035        Input *accsumRa_input         = this->GetInput(SmbAccumulatedRainEnum);  _assert_(accsumRa_input);
     4036        Input *accsumP_input          = this->GetInput(SmbAccumulatedPrecipitationEnum);  _assert_(accsumP_input);
     4037        Input *accsumSMB_input        = this->GetInput(SmbAccumulatedMassBalanceEnum);  _assert_(accsumSMB_input);
    40204038
    40214039   accsumEC_input->GetInputAverage(&accsumEC);
    4022    accsumM_input->GetInputAverage(&accsumM);
    4023    accsumR_input->GetInputAverage(&accsumR);
    4024    accsumP_input->GetInputAverage(&accsumP);
    4025    accsumSMB_input->GetInputAverage(&accsumSMB);
     4040        accsumM_input->GetInputAverage(&accsumM);
     4041        accsumR_input->GetInputAverage(&accsumR);
     4042        accsumF_input->GetInputAverage(&accsumF);
     4043        accsumRa_input->GetInputAverage(&accsumRa);
     4044        accsumP_input->GetInputAverage(&accsumP);
     4045        accsumSMB_input->GetInputAverage(&accsumSMB);
    40264046
    40274047        this->SetElementInput(SmbAccumulatedECEnum,accsumEC+EC/rho_ice);
     
    40294049        this->SetElementInput(SmbAccumulatedMeltEnum,accsumM+M/rho_ice);
    40304050        this->SetElementInput(SmbAccumulatedRunoffEnum,accsumR+R/rho_ice);
     4051        this->SetElementInput(SmbAccumulatedRefreezeEnum,accsumF+F/rho_ice);
     4052        this->SetElementInput(SmbAccumulatedRainEnum,accsumRa+Ra/rho_ice);
    40314053        this->SetElementInput(SmbAccumulatedPrecipitationEnum,accsumP+P/rho_ice);
    40324054   /*}}}*/
     
    40464068        this->SetElementInput(SmbMeltEnum,sumM/dt/rho_ice);
    40474069        this->SetElementInput(SmbRunoffEnum,sumR/dt/rho_ice);
     4070        this->SetElementInput(SmbRefreezeEnum,sumF/dt/rho_ice);
     4071        this->SetElementInput(SmbRainEnum,sumRa/dt/rho_ice);
    40484072        this->SetElementInput(SmbPrecipitationEnum,sumP/dt/rho_ice);
    40494073        this->SetElementInput(SmbMeanULWEnum,meanULW);
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp

    r26208 r26271  
    12781278
    12791279} /*}}}*/
    1280 void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, int aIdx, int dsnowIdx, IssmDouble Tmean, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble C, IssmDouble V, IssmDouble Vmean, IssmDouble dIce, int sid){ /*{{{*/
     1280void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, IssmDouble* pRa, int* pm, int aIdx, int dsnowIdx, IssmDouble Tmean, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble C, IssmDouble V, IssmDouble Vmean, IssmDouble dIce, int sid){ /*{{{*/
    12811281
    12821282        // Adds precipitation and deposition to the model grid
     
    12941294           dz = topgrid cell length [m]
    12951295           d = density of top grid gell [kg m-3]
    1296            P = precipitation [mm w.e.] or [kg m-3]
    1297            re = effective grain radius [mm]
    1298            gdn = grain dentricity
    1299            gsp = grain sphericity*/
     1296                P = precipitation [mm w.e.] or [kg m-3]
     1297                Ra = rainfall [mm w.e.] or [kg m-3]
     1298                re = effective grain radius [mm]
     1299                gdn = grain dentricity
     1300                gsp = grain sphericity*/
    13001301
    13011302        // MAIN FUNCTION
     
    13231324        IssmDouble* gdn=NULL;
    13241325        IssmDouble* gsp=NULL;
     1326        IssmDouble  ra=0.0;
    13251327        int         m=0;
    13261328
     
    13381340        gsp=*pgsp;
    13391341        m=*pm;
     1342        ra=*pRa;
    13401343
    13411344        //Density of fresh snow [kg m-3]
     
    14391442                                dz[0] = mass / d[0];    // dz is adjusted to conserve mass
    14401443                        }
     1444
     1445                        ra=P;
    14411446                }
    14421447
     
    14661471        *pgsp=gsp;
    14671472        *pm=m;
     1473        *pRa=ra;
    14681474} /*}}}*/
    1469 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid){ /*{{{*/
     1475void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pF, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble Ra, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid){ /*{{{*/
    14701476
    14711477        //// MELT ROUTINE
     
    14881494        IssmDouble* EW=NULL;
    14891495        IssmDouble* M=NULL;
    1490         int*       D=NULL;
     1496        int*        D=NULL;
    14911497
    14921498        IssmDouble sumM=0.0;
     
    15321538        IssmDouble  surplusE = 0.0;
    15331539        IssmDouble  surplusT = 0.0;
    1534         IssmDouble dz_add = 0.0;
     1540        IssmDouble  dz_add = 0.0;
    15351541        IssmDouble  Rsum = 0.0;
     1542        IssmDouble  Fsum = 0.0;
    15361543        IssmDouble* T=*pT;
    15371544        IssmDouble* d=*pd;
     
    15651572        // initialize melt and runoff scalars
    15661573        Rsum = 0.0;       // runoff [kg]
     1574        Fsum = 0.0;       // refreeze [kg]
    15671575        sumM = 0.0;       // total melt [kg]
    15681576        mAdd = 0.0;       // mass added/removed to/from base of model [kg]
     
    16101618
    16111619        //// MELT, PERCOLATION AND REFREEZE
     1620       
     1621        // initialize refreeze, runoff, flxDn and dW vectors [kg]
     1622        IssmDouble* F = xNewZeroInit<IssmDouble>(n);
     1623
     1624        // Add previous refreeze to F and reset dW
     1625        for(int i=0;i<n;i++){
     1626                F[i]=F[i]+dW[i];
     1627                dW[i] = 0.0;
     1628        }
    16121629
    16131630        // run melt algorithm if there is melt water or excess pore water
     
    16601677                }
    16611678                Msurf = M[0];
    1662                 sumM = cellsum(M,n);                                                       // total melt [kg]
     1679                sumM = max(0.0,cellsum(M,n)-Ra);  // total melt [kg] minus the liquid rain that had been added
    16631680
    16641681                // calculate maximum refreeze amount, maxF [kg]
     
    16661683
    16671684                // initialize refreeze, runoff, flxDn and dW vectors [kg]
    1668                 IssmDouble* F = xNewZeroInit<IssmDouble>(n);
    16691685                IssmDouble* R = xNewZeroInit<IssmDouble>(n);
    16701686
    1671                 for(int i=0;i<n;i++)dW[i] = 0.0;
    16721687                flxDn=xNewZeroInit<IssmDouble>(n+1);
    16731688
     
    16821697
    16831698                IssmDouble depthice=0.0;
     1699                int Xi=0;
    16841700                //// meltwater percolation
    16851701                for(int i=0;i<n;i++){
     
    16911707                                for(int l=i;(l<n && d[l]>=dPHC-Dtol);l++) depthice=depthice+dz[l];
    16921708                        }
    1693 
     1709                       
    16941710                        // break loop if there is no meltwater and if depth is > mw_depth
    16951711                        if (fabs(inM) < Wtol && i > X){
     
    17071723                                dW[i] = max(min(inM, Wi - W[i]),-1*W[i]);            // change in pore water
    17081724                                R[i] = max(0.0, inM - dW[i]);             // runoff
    1709                                 F[i] = 0.0;
    17101725                        }
    17111726                        // check if no energy to refreeze meltwater
     
    17201735                                flxDn[i+1] = max(0.0, inM - dW[i]);         // meltwater out
    17211736                                R[i] = 0.0;
    1722                                 F[i] = 0.0;                               // no freeze
    17231737                        }
    17241738                        // some or all meltwater refreezes
     
    17361750                                //-----------------------pore water-----------------------------
    17371751                                Wi = (dIce-d[i])* Swi * dz_0;            // irreducible water
    1738                                 dW[i] = min(inM - F1, Wi-W[i]);         // change in pore water
    1739                                 if (dW[i] < 0.0-Wtol && -1*dW[i]> W[i]-Wtol ){
    1740                                         dW[i]= -1*W[i];
    1741                                 }
     1752                                dW[i] = max(min(inM - F1, Wi-W[i]),-1*W[i]);         // change in pore water
    17421753                                IssmDouble F2 = 0.0;                                 
    17431754
     
    17481759                                        m[i] = m[i] + F2;                   // mass after refreeze
    17491760                                        d[i] = m[i]/dz_0;
    1750                                         dW[i] = dW[i] - F2;
    17511761                                }
    17521762
    1753                                 F[i] = F1 + F2;
    1754 
    1755                                 flxDn[i+1] = inM - F1 - dW[i];     // meltwater out       
     1763                                F[i] = F[i] + F1 + F2;
     1764
     1765                                flxDn[i+1] = max(0.0,inM - F1 - dW[i]);     // meltwater out       
    17561766                                if (m[i]>Wtol){
    17571767                                        T[i] = T[i] + ((F1+F2)*(LF+(CtoK - T[i])*CI)/(m[i]*CI));// change in temperature
     
    17671777                                }
    17681778                        }
     1779                        Xi=Xi+1;
    17691780                }
    17701781
     
    17771788
    17781789                //calculate Rsum:
    1779                 Rsum=cellsum(R,n) + flxDn[n];
     1790                Rsum=cellsum(R,n) + flxDn[Xi];
    17801791
    17811792                // delete all cells with zero mass
     
    18031814
    18041815                /*Free resources:*/
    1805                 xDelete<IssmDouble>(F);
    18061816                xDelete<IssmDouble>(R);
    18071817        }
     1818
     1819        //calculate Fsum:
     1820        Fsum=cellsum(F,n);
     1821
     1822        /*Free resources:*/
     1823        xDelete<IssmDouble>(F);
    18081824
    18091825        //Merging of cells as they are burried under snow.
     
    20402056        *pM=sumM;
    20412057        *pR=Rsum;
     2058        *pF=Fsum;
    20422059        *pmAdd=mAdd;
    20432060        *pdz_add=dz_add;
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h

    r25997 r26271  
    3333void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble dswdiff, IssmDouble as, IssmDouble asdiff, IssmDouble* d, IssmDouble* dz, IssmDouble* re, IssmDouble dIce, int m, int sid);
    3434void thermo(IssmDouble* pEC, IssmDouble** T, IssmDouble* pulwrf, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble teValue, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, IssmDouble thermo_scaling, IssmDouble dIce, int sid, bool isconstrainsurfaceT);
    35 void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, int aIdx, int dsnowIdx, IssmDouble Tmean, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble C, IssmDouble V, IssmDouble Vmean, IssmDouble dIce, int sid);
    36 void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid);
     35void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, IssmDouble* pRa, int* pm, int aIdx, int dsnowIdx, IssmDouble Tmean, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, IssmDouble C, IssmDouble V, IssmDouble Vmean, IssmDouble dIce, int sid);
     36void melt(IssmDouble* pM, IssmDouble* pMs, IssmDouble* pR, IssmDouble* pF, IssmDouble* pmAdd, IssmDouble* pdz_add, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** padiff, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble Ra, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, IssmDouble zTop, IssmDouble zY, IssmDouble dIce, int sid);
    3737void densification(IssmDouble** pd,IssmDouble** pdz, IssmDouble* T, IssmDouble* re, int denIdx, int aIdx, int swIdx, IssmDouble adThresh, IssmDouble C, IssmDouble dt, IssmDouble Tmean, IssmDouble dIce, int m, int sid);
    3838void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz, IssmDouble dIce, int sid);
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r26242 r26271  
    711711syn keyword cConstant LevelsetfunctionSlopeXEnum
    712712syn keyword cConstant LevelsetfunctionSlopeYEnum
     713syn keyword cConstant LevelsetObservationEnum
    713714syn keyword cConstant LoadingforceXEnum
    714715syn keyword cConstant LoadingforceYEnum
     
    716717syn keyword cConstant MaskOceanLevelsetEnum
    717718syn keyword cConstant MaskIceLevelsetEnum
     719syn keyword cConstant MaskIceRefLevelsetEnum
    718720syn keyword cConstant MasstransportSpcthicknessEnum
    719721syn keyword cConstant MaterialsRheologyBEnum
     
    838840syn keyword cConstant SmbAccumulatedMeltEnum
    839841syn keyword cConstant SmbAccumulatedPrecipitationEnum
     842syn keyword cConstant SmbAccumulatedRainEnum
     843syn keyword cConstant SmbAccumulatedRefreezeEnum
    840844syn keyword cConstant SmbAccumulatedRunoffEnum
    841845syn keyword cConstant SmbAEnum
     
    906910syn keyword cConstant SmbPrecipitationsPresentdayEnum
    907911syn keyword cConstant SmbPrecipitationsReconstructedEnum
     912syn keyword cConstant SmbRainEnum
    908913syn keyword cConstant SmbReEnum
    909914syn keyword cConstant SmbRefreezeEnum
     
    10151020syn keyword cConstant WaterfractionEnum
    10161021syn keyword cConstant WaterheightEnum
     1022syn keyword cConstant WeightsLevelsetObservationEnum
    10171023syn keyword cConstant WeightsSurfaceObservationEnum
    10181024syn keyword cConstant OldAccumulatedDeltaBottomPressureEnum
     
    11581164syn keyword cConstant CfsurfacelogvelEnum
    11591165syn keyword cConstant CfsurfacesquareEnum
     1166syn keyword cConstant CflevelsetmisfitEnum
    11601167syn keyword cConstant ChannelEnum
    11611168syn keyword cConstant ChannelAreaEnum
     
    15081515syn keyword cType BoolParam
    15091516syn keyword cType Cfdragcoeffabsgrad
     1517syn keyword cType Cflevelsetmisfit
    15101518syn keyword cType Cfsurfacelogvel
    15111519syn keyword cType Cfsurfacesquare
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r26252 r26271  
    836836        SmbAccumulatedMeltEnum,
    837837        SmbAccumulatedPrecipitationEnum,
     838        SmbAccumulatedRainEnum,
     839        SmbAccumulatedRefreezeEnum,
    838840        SmbAccumulatedRunoffEnum,
    839841        SmbAEnum,
     
    905907        SmbPrecipitationsPresentdayEnum,
    906908        SmbPrecipitationsReconstructedEnum,
     909        SmbRainEnum,
    907910        SmbReEnum,
    908911        SmbRefreezeEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r26242 r26271  
    713713                case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX";
    714714                case LevelsetfunctionSlopeYEnum : return "LevelsetfunctionSlopeY";
     715                case LevelsetObservationEnum : return "LevelsetObservation";
    715716                case LoadingforceXEnum : return "LoadingforceX";
    716717                case LoadingforceYEnum : return "LoadingforceY";
     
    718719                case MaskOceanLevelsetEnum : return "MaskOceanLevelset";
    719720                case MaskIceLevelsetEnum : return "MaskIceLevelset";
     721                case MaskIceRefLevelsetEnum : return "MaskIceRefLevelset";
    720722                case MasstransportSpcthicknessEnum : return "MasstransportSpcthickness";
    721723                case MaterialsRheologyBEnum : return "MaterialsRheologyB";
     
    840842                case SmbAccumulatedMeltEnum : return "SmbAccumulatedMelt";
    841843                case SmbAccumulatedPrecipitationEnum : return "SmbAccumulatedPrecipitation";
     844                case SmbAccumulatedRainEnum : return "SmbAccumulatedRain";
     845                case SmbAccumulatedRefreezeEnum : return "SmbAccumulatedRefreeze";
    842846                case SmbAccumulatedRunoffEnum : return "SmbAccumulatedRunoff";
    843847                case SmbAEnum : return "SmbA";
     
    908912                case SmbPrecipitationsPresentdayEnum : return "SmbPrecipitationsPresentday";
    909913                case SmbPrecipitationsReconstructedEnum : return "SmbPrecipitationsReconstructed";
     914                case SmbRainEnum : return "SmbRain";
    910915                case SmbReEnum : return "SmbRe";
    911916                case SmbRefreezeEnum : return "SmbRefreeze";
     
    10171022                case WaterfractionEnum : return "Waterfraction";
    10181023                case WaterheightEnum : return "Waterheight";
     1024                case WeightsLevelsetObservationEnum : return "WeightsLevelsetObservation";
    10191025                case WeightsSurfaceObservationEnum : return "WeightsSurfaceObservation";
    10201026                case OldAccumulatedDeltaBottomPressureEnum : return "OldAccumulatedDeltaBottomPressure";
     
    11601166                case CfsurfacelogvelEnum : return "Cfsurfacelogvel";
    11611167                case CfsurfacesquareEnum : return "Cfsurfacesquare";
     1168                case CflevelsetmisfitEnum : return "Cflevelsetmisfit";
    11621169                case ChannelEnum : return "Channel";
    11631170                case ChannelAreaEnum : return "ChannelArea";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r26242 r26271  
    728728              else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
    729729              else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
     730              else if (strcmp(name,"LevelsetObservation")==0) return LevelsetObservationEnum;
    730731              else if (strcmp(name,"LoadingforceX")==0) return LoadingforceXEnum;
    731732              else if (strcmp(name,"LoadingforceY")==0) return LoadingforceYEnum;
     
    733734              else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;
    734735              else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
     736              else if (strcmp(name,"MaskIceRefLevelset")==0) return MaskIceRefLevelsetEnum;
    735737              else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum;
    736738              else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
     
    750752              else if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
    751753              else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
    752               else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
    753               else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"Node")==0) return NodeEnum;
     757              if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
     758              else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
     759              else if (strcmp(name,"Node")==0) return NodeEnum;
    758760              else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum;
    759761              else if (strcmp(name,"OceantransportSpcbottompressure")==0) return OceantransportSpcbottompressureEnum;
     
    858860              else if (strcmp(name,"SmbAccumulatedMelt")==0) return SmbAccumulatedMeltEnum;
    859861              else if (strcmp(name,"SmbAccumulatedPrecipitation")==0) return SmbAccumulatedPrecipitationEnum;
     862              else if (strcmp(name,"SmbAccumulatedRain")==0) return SmbAccumulatedRainEnum;
     863              else if (strcmp(name,"SmbAccumulatedRefreeze")==0) return SmbAccumulatedRefreezeEnum;
    860864              else if (strcmp(name,"SmbAccumulatedRunoff")==0) return SmbAccumulatedRunoffEnum;
    861865              else if (strcmp(name,"SmbA")==0) return SmbAEnum;
     
    871875              else if (strcmp(name,"SmbC")==0) return SmbCEnum;
    872876              else if (strcmp(name,"SmbCcsnowValue")==0) return SmbCcsnowValueEnum;
    873               else if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
    874881              else if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
    875882              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
    876883              else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
     884              else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
    881885              else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
    882886              else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
     
    929933              else if (strcmp(name,"SmbPrecipitationsPresentday")==0) return SmbPrecipitationsPresentdayEnum;
    930934              else if (strcmp(name,"SmbPrecipitationsReconstructed")==0) return SmbPrecipitationsReconstructedEnum;
     935              else if (strcmp(name,"SmbRain")==0) return SmbRainEnum;
    931936              else if (strcmp(name,"SmbRe")==0) return SmbReEnum;
    932937              else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
     
    993998              else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
    994999              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
    995               else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
    9961004              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    9971005              else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
    9981006              else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
    9991007              else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"Temperature")==0) return TemperatureEnum;
     1008              else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
    10041009              else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
    10051010              else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
     
    10411046              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    10421047              else if (strcmp(name,"Waterheight")==0) return WaterheightEnum;
     1048              else if (strcmp(name,"WeightsLevelsetObservation")==0) return WeightsLevelsetObservationEnum;
    10431049              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
    10441050              else if (strcmp(name,"OldAccumulatedDeltaBottomPressure")==0) return OldAccumulatedDeltaBottomPressureEnum;
     
    11151121              else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
    11161122              else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
    1117               else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
    11181127              else if (strcmp(name,"Outputdefinition75")==0) return Outputdefinition75Enum;
    11191128              else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
     
    11211130              else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;
    11221131              else if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum;
     1132              else if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum;
    11271133              else if (strcmp(name,"Outputdefinition80")==0) return Outputdefinition80Enum;
    11281134              else if (strcmp(name,"Outputdefinition81")==0) return Outputdefinition81Enum;
     
    11871193              else if (strcmp(name,"Cfsurfacelogvel")==0) return CfsurfacelogvelEnum;
    11881194              else if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum;
     1195              else if (strcmp(name,"Cflevelsetmisfit")==0) return CflevelsetmisfitEnum;
    11891196              else if (strcmp(name,"Channel")==0) return ChannelEnum;
    11901197              else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum;
     
    12371244              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
    12381245              else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
    1239               else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
    12401250              else if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
    12411251              else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
     
    12441254              else if (strcmp(name,"FileParam")==0) return FileParamEnum;
    12451255              else if (strcmp(name,"FixedTimestepping")==0) return FixedTimesteppingEnum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
     1256              else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
    12501257              else if (strcmp(name,"FloatingAreaScaled")==0) return FloatingAreaScaledEnum;
    12511258              else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
     
    13601367              else if (strcmp(name,"Melange")==0) return MelangeEnum;
    13611368              else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
    1362               else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
    13631373              else if (strcmp(name,"MeshX")==0) return MeshXEnum;
    13641374              else if (strcmp(name,"MeshY")==0) return MeshYEnum;
     
    13671377              else if (strcmp(name,"MinVy")==0) return MinVyEnum;
    13681378              else if (strcmp(name,"MinVz")==0) return MinVzEnum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
     1379              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    13731380              else if (strcmp(name,"Moulin")==0) return MoulinEnum;
    13741381              else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
     
    14831490              else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
    14841491              else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
    1485               else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
    14861496              else if (strcmp(name,"Tetra")==0) return TetraEnum;
    14871497              else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
     
    14901500              else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum;
    14911501              else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum;
     1502              else if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum;
    14961503              else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum;
    14971504              else if (strcmp(name,"TotalFloatingBmbScaled")==0) return TotalFloatingBmbScaledEnum;
  • issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m

    r26204 r26271  
    263263        elseif strcmp(fieldname,'SmbPrecipitation'),
    264264                field = field*yts;
     265        elseif strcmp(fieldname,'SmbRain'),
     266                field = field*yts;
    265267        elseif strcmp(fieldname,'SmbRunoff'),
    266268                field = field*yts;
     
    278280                field = field*yts;
    279281        elseif strcmp(fieldname,'SmbMAdd'),
     282                field = field*yts;
     283        elseif strcmp(fieldname,'SmbWAdd'),
    280284                field = field*yts;
    281285        elseif strcmp(fieldname,'CalvingCalvingrate'),
  • issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py

    r26204 r26271  
    214214        elif fieldname == 'SmbPrecipitation':
    215215            field = field * yts
     216        elif fieldname == 'SmbRain':
     217            field = field * yts
    216218        elif fieldname == 'SmbRunoff':
    217219            field = field * yts
     
    229231            field = field * yts
    230232        elif fieldname == 'SmbMAdd':
     233            field = field * yts
     234        elif fieldname == 'SmbWAdd':
    231235            field = field * yts
    232236        elif fieldname == 'CalvingCalvingrate':
  • issm/trunk-jpl/test/NightlyRun/test243.m

    r26208 r26271  
    3030md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC',...
    3131        'SmbA','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF',...
    32         'SmbMeanULW','SmbNetLW','SmbNetSW','SmbAccumulatedMassBalance','SmbAccumulatedRunoff',...
    33         'SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation'};
     32        'SmbMeanULW','SmbNetLW','SmbNetSW','SmbWAdd','SmbRunoff','SmbRefreeze','SmbMelt',...
     33        'SmbEC','SmbPrecipitation','SmbRain','SmbAccumulatedMassBalance','SmbAccumulatedRunoff',...
     34        'SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation','SmbAccumulatedRain',...
     35        'SmbAccumulatedPrecipitation','SmbAccumulatedRefreeze'};
    3436
    3537%only run smb core:
     
    5355
    5456%Fields and tolerances to track changes
    55 field_names      ={'Layers','SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW','SmbAccumulatedMassBalance','SmbAccumulatedRunoff','SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation'};
    56 field_tolerances ={1e-12,2e-12,1e-12,2e-11,1e-11,2e-11,1e-11,1e-12,1e-11,1e-12,1e-12,1e-12,1e-11,2e-11,2e-11,1e-11,9e-10,2e-11,1e-11,9e-10,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,};
     57field_names      ={'Layers','SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW','SmbAccumulatedMassBalance','SmbAccumulatedRunoff','SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation','SmbAccumulatedRain','SmbAccumulatedRefreeze','SmbRunoff','SmbMelt','SmbEC','SmbPrecipitation','SmbRain','SmbRefreeze','SmbWAdd'};
     58field_tolerances ={1e-12,2e-12,1e-12,2e-11,1e-11,2e-11,1e-11,1e-12,1e-11,1e-12,1e-12,1e-12,1e-11,2e-11,2e-11,1e-11,9e-10,2e-11,1e-11,9e-10,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
    5759
    5860field_values={...
     
    7981        (md.results.TransientSolution(end).SmbAccumulatedMelt(1)),...
    8082        (md.results.TransientSolution(end).SmbAccumulatedEC(1)),...
    81         (md.results.TransientSolution(end).SmbAccumulatedPrecipitation(1))
     83        (md.results.TransientSolution(end).SmbAccumulatedPrecipitation(1)),...
     84        (md.results.TransientSolution(end).SmbAccumulatedRain(1)),...
     85        (md.results.TransientSolution(end).SmbAccumulatedRefreeze(1)),...
     86        (md.results.TransientSolution(200).SmbRunoff(1)),...
     87        (md.results.TransientSolution(200).SmbMelt(1)),...
     88        (md.results.TransientSolution(200).SmbEC(1)),...
     89        (md.results.TransientSolution(200).SmbPrecipitation(1)),...
     90        (md.results.TransientSolution(200).SmbRain(1)),...
     91        (md.results.TransientSolution(200).SmbRefreeze(1)),...
     92        (md.results.TransientSolution(200).SmbWAdd(1))...
    8293};
  • issm/trunk-jpl/test/NightlyRun/test243.py

    r26208 r26271  
    4545#smb settings
    4646md.smb.requested_outputs = [
    47     'SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbEC',
    48     'SmbA', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF',
    49     'SmbMeanULW', 'SmbNetLW', 'SmbNetSW','SmbAccumulatedMassBalance','SmbAccumulatedRunoff',
    50     'SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation'
     47        'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC',
     48        'SmbA','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF',
     49        'SmbMeanULW','SmbNetLW','SmbNetSW','SmbWAdd','SmbRunoff','SmbRefreeze','SmbMelt',
     50        'SmbEC','SmbPrecipitation','SmbRain','SmbAccumulatedMassBalance','SmbAccumulatedRunoff',
     51        'SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation','SmbAccumulatedRain',
     52        'SmbAccumulatedPrecipitation','SmbAccumulatedRefreeze'
    5153    ]
    5254
     
    7072
    7173#Fields and tolerances to track changes
    72 field_names = ['Layers', 'SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbA', 'SmbEC', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF', 'SmbMeanULW', 'SmbNetLW', 'SmbNetSW', 'SmbAccumulatedMassBalance','SmbAccumulatedRunoff','SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation']
    73 field_tolerances = [1e-12, 2e-12, 1e-12, 1e-11, 2e-11, 2e-11, 1e-11, 1e-12, 1e-11, 1e-12, 1e-12, 1e-12, 1e-11, 2e-11, 2e-11, 1e-11, 9e-10, 2e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11]
     74field_names = ['Layers','SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW','SmbAccumulatedMassBalance','SmbAccumulatedRunoff','SmbAccumulatedMelt','SmbAccumulatedEC','SmbAccumulatedPrecipitation','SmbAccumulatedRain','SmbAccumulatedRefreeze','SmbRunoff','SmbMelt','SmbEC','SmbPrecipitation','SmbRain','SmbRefreeze','SmbWAdd']
     75field_tolerances = [1e-12, 2e-12, 1e-12, 2e-11, 1e-11, 2e-11, 1e-11, 1e-12, 1e-11, 1e-12, 1e-12, 1e-12, 1e-11, 2e-11, 2e-11, 1e-11, 9e-10, 2e-11, 1e-11, 9e-10, 2e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11]
     76
     77
    7478# Shape is different in python solution (fixed using reshape) which can cause test failure
    7579field_values = [
     
    96100    md.results.TransientSolution[-1].SmbAccumulatedMelt[0],
    97101    md.results.TransientSolution[-1].SmbAccumulatedEC[0],
    98     md.results.TransientSolution[-1].SmbAccumulatedPrecipitation[0]
     102    md.results.TransientSolution[-1].SmbAccumulatedPrecipitation[0],
     103    md.results.TransientSolution[-1].SmbAccumulatedRain[0],
     104    md.results.TransientSolution[-1].SmbAccumulatedRefreeze[0],
     105    md.results.TransientSolution[199].SmbRunoff[0],
     106    md.results.TransientSolution[199].SmbMelt[0],
     107    md.results.TransientSolution[199].SmbEC[0],
     108    md.results.TransientSolution[199].SmbPrecipitation[0],
     109    md.results.TransientSolution[199].SmbRain[0],
     110    md.results.TransientSolution[199].SmbRefreeze[0],
     111    md.results.TransientSolution[199].SmbWAdd[0]
    99112    ]
Note: See TracChangeset for help on using the changeset viewer.