Changeset 23849


Ignore:
Timestamp:
04/16/19 13:45:17 (6 years ago)
Author:
schlegel
Message:

CHG: calculate fluxes as means instead of sums and add flux output to GEMB tests

Location:
issm/trunk-jpl
Files:
9 edited

Legend:

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

    r23846 r23849  
    32743274        IssmDouble  netSW=0.0;
    32753275        IssmDouble  netLW=0.0;
    3276         IssmDouble  netULW=0.0;
    3277         IssmDouble  netLHF=0.0;
    3278         IssmDouble  netSHF=0.0;
     3276        IssmDouble  meanULW=0.0;
     3277        IssmDouble  meanLHF=0.0;
     3278        IssmDouble  meanSHF=0.0;
    32793279        IssmDouble* W = NULL;
    32803280        IssmDouble* a = NULL;
     
    35263526
    35273527                /*Calculate net shortwave [W m-2]*/
    3528                 netSW = netSW + cellsum(swf,m);
     3528                netSW = netSW + cellsum(swf,m)*smb_dt/dt;
    35293529
    35303530                /*Thermal profile computation:*/
     
    35503550
    35513551                /*Calculate net longwave [W m-2]*/
    3552                 netULW = netULW + ulw;
    3553                 netLW = netLW + dlw - ulw;
     3552                meanULW = meanULW + ulw*smb_dt/dt;
     3553                netLW = netLW + (dlw - ulw)*smb_dt/dt;
    35543554
    35553555                /*Calculate turbulent heat fluxes [W m-2]*/
     
    35743574                } /*}}}*/
    35753575
    3576                 netLHF = netLHF + lhf;
    3577                 netSHF = netSHF + shf;
     3576                meanLHF = meanLHF + lhf*smb_dt/dt;
     3577                meanSHF = meanSHF + shf*smb_dt/dt;
    35783578
    35793579                /*Sum component mass changes [kg m-2]*/
     
    36283628        this->AddInput(new DoubleInput(SmbRunoffEnum,sumR/dt/rho_ice));
    36293629        this->AddInput(new DoubleInput(SmbPrecipitationEnum,sumP/dt/rho_ice));
    3630         this->AddInput(new DoubleInput(SmbNetULWEnum,netULW));
     3630        this->AddInput(new DoubleInput(SmbMeanULWEnum,meanULW));
    36313631        this->AddInput(new DoubleInput(SmbNetLWEnum,netLW));
    36323632        this->AddInput(new DoubleInput(SmbNetSWEnum,netSW));
    3633         this->AddInput(new DoubleInput(SmbNetLHFEnum,netLHF));
    3634         this->AddInput(new DoubleInput(SmbNetSHFEnum,netSHF));
     3633        this->AddInput(new DoubleInput(SmbMeanLHFEnum,meanLHF));
     3634        this->AddInput(new DoubleInput(SmbMeanSHFEnum,meanSHF));
    36353635        this->AddInput(new DoubleInput(SmbDzAddEnum,sumdz_add));
    36363636        this->AddInput(new DoubleInput(SmbMAddEnum,sumMassAdd/dt));
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp

    r23846 r23849  
    824824                // upward longwave contribution
    825825                ulw = - (SB * pow(Ts,4.0)* teValue) * dt; // - deltatest here
    826                 ulwrf = ulwrf - ulw;
     826                ulwrf = ulwrf - ulw/dt0;
    827827
    828828                dT_ulw = ulw / TCs;
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r23846 r23849  
    11351135        SmbDzAddEnum,
    11361136        SmbFACEnum,
    1137         SmbNetULWEnum,
     1137        SmbMeanULWEnum,
    11381138        SmbNetLWEnum,
    11391139        SmbNetSWEnum,
    1140         SmbNetLHFEnum,
    1141         SmbNetSHFEnum,
     1140        SmbMeanLHFEnum,
     1141        SmbMeanSHFEnum,
    11421142        SMBforcingEnum,
    11431143        SMBgcmEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r23846 r23849  
    11391139                case SmbDzAddEnum : return "SmbDzAdd";
    11401140                case SmbFACEnum : return "SmbFAC";
    1141                 case SmbNetULWEnum : return "SmbNetULW";
     1141                case SmbMeanULWEnum : return "SmbMeanULW";
    11421142                case SmbNetLWEnum : return "SmbNetLW";
    11431143                case SmbNetSWEnum : return "SmbNetSW";
    1144                 case SmbNetLHFEnum : return "SmbNetLHF";
    1145                 case SmbNetSHFEnum : return "SmbNetSHF";
     1144                case SmbMeanLHFEnum : return "SmbMeanLHF";
     1145                case SmbMeanSHFEnum : return "SmbMeanSHF";
    11461146                case SMBforcingEnum : return "SMBforcing";
    11471147                case SMBgcmEnum : return "SMBgcm";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r23846 r23849  
    11661166              else if (strcmp(name,"SmbDzAdd")==0) return SmbDzAddEnum;
    11671167              else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum;
    1168               else if (strcmp(name,"SmbNetULW")==0) return SmbNetULWEnum;
     1168              else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
    11691169              else if (strcmp(name,"SmbNetLW")==0) return SmbNetLWEnum;
    11701170              else if (strcmp(name,"SmbNetSW")==0) return SmbNetSWEnum;
    1171               else if (strcmp(name,"SmbNetLHF")==0) return SmbNetLHFEnum;
    1172               else if (strcmp(name,"SmbNetSHF")==0) return SmbNetSHFEnum;
     1171              else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
     1172              else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
    11731173              else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
    11741174              else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
  • issm/trunk-jpl/test/NightlyRun/test243.m

    r23468 r23849  
    2828
    2929%smb settings
    30 md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC','SmbA','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC'};
     30md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC',...
     31        'SmbA','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF',...
     32        'SmbMeanULW','SmbNetLW','SmbNetSW'};
    3133
    3234%only run smb core:
     
    4547
    4648%Fields and tolerances to track changes
    47 field_names      ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC'};
    48 field_tolerances ={1e-11,1e-12,1e-11,2e-11,1e-11,1e-11,1e-12,2e-12,1e-12,1e-12,1e-12,1e-11};
     49field_names      ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance','SmbMAdd','SmbDzAdd','SmbFAC','SmbMeanSHF','SmbMeanLHF','SmbMeanULW','SmbNetLW','SmbNetSW'};
     50field_tolerances ={1e-11,1e-12,1e-11,2e-11,1e-11,1e-11,1e-12,4e-12,1e-12,1e-12,1e-12,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
    4951
    5052field_values={...
     
    6062        (md.results.TransientSolution(end).SmbMAdd(1)),...
    6163        (md.results.TransientSolution(end).SmbDzAdd(1)),...
    62         (md.results.TransientSolution(end).SmbFAC(1))
    63         };
     64        (md.results.TransientSolution(end).SmbFAC(1)),...
     65        (md.results.TransientSolution(end).SmbMeanSHF(1)),...
     66        (md.results.TransientSolution(end).SmbMeanLHF(1)),...
     67        (md.results.TransientSolution(end).SmbMeanULW(1)),...
     68        (md.results.TransientSolution(end).SmbNetLW(1)),...
     69        (md.results.TransientSolution(end).SmbNetSW(1))
     70};
  • issm/trunk-jpl/test/NightlyRun/test243.py

    r23793 r23849  
    4444
    4545#smb settings
    46 md.smb.requested_outputs = ['SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbEC', 'SmbA', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC']
     46md.smb.requested_outputs = ['SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbEC', 'SmbA', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF', 'SmbMeanULW', 'SmbNetLW', 'SmbNetSW']
    4747
    4848#only run smb core:
     
    6161
    6262#Fields and tolerances to track changes
    63 field_names = ['SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbA', 'SmbEC', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC']
    64 field_tolerances = [1e-11, 1e-12, 1e-11, 2e-11, 1e-11, 1e-11, 1e-12, 2e-12, 1e-12, 1e-12, 1e-12, 1e-11]
     63field_names = ['SmbDz', 'SmbT', 'SmbD', 'SmbRe', 'SmbGdn', 'SmbGsp', 'SmbA', 'SmbEC', 'SmbMassBalance', 'SmbMAdd', 'SmbDzAdd', 'SmbFAC', 'SmbMeanSHF', 'SmbMeanLHF', 'SmbMeanULW', 'SmbNetLW', 'SmbNetSW']
     64field_tolerances = [1e-11, 1e-12, 1e-11, 2e-11, 1e-11, 1e-11, 1e-12, 2e-12, 1e-12, 1e-12, 1e-12, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11, 1e-11]
    6565#shape is different in python solution (fixed using reshape) which can cause test failure:
    6666field_values = [md.results.TransientSolution[-1].SmbDz[0, 0:240].reshape(1, -1),
     
    7575                md.results.TransientSolution[-1].SmbMAdd[0],
    7676                md.results.TransientSolution[-1].SmbDzAdd[0],
    77                 md.results.TransientSolution[-1].SmbFAC[0]]
     77                md.results.TransientSolution[-1].SmbFAC[0],
     78                md.results.TransientSolution[-1].SmbMeanSHF[0],
     79                md.results.TransientSolution[-1].SmbMeanLHF[0],
     80                md.results.TransientSolution[-1].SmbMeanULW[0],
     81                md.results.TransientSolution[-1].SmbNetLW[0],
     82                md.results.TransientSolution[-1].SmbNetSW[0]]
Note: See TracChangeset for help on using the changeset viewer.