Changeset 25777


Ignore:
Timestamp:
11/23/20 09:10:36 (4 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixinf BckmannGoose

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

Legend:

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

    r25775 r25777  
    114114                        break;
    115115                case BeckmannGoosseFloatingMeltRateEnum:
     116                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
    116117                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    117118                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r25775 r25777  
    203203                        break;
    204204                case BeckmannGoosseFloatingMeltRateEnum:
     205                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
    205206                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    206207                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r25775 r25777  
    818818                                break;
    819819                        case BeckmannGoosseFloatingMeltRateEnum:
     820                                iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);
    820821                                iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    821822                                iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r25775 r25777  
    141141                        break;
    142142                case BeckmannGoosseFloatingMeltRateEnum:
     143                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum);
    143144                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);
    144145                        iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r25775 r25777  
    23732373
    23742374        int numvertices      = this->GetNumberOfVertices();
    2375         IssmDouble meltratefactor,T_f,ocean_heat_flux;
     2375        IssmDouble T_f,ocean_heat_flux;
    23762376        IssmDouble rho_water    = this->FindParam(MaterialsRhoSeawaterEnum);
    23772377        IssmDouble rho_ice      = this->FindParam(MaterialsRhoIceEnum);
     
    23802380        IssmDouble thermal_exchange_vel = this->FindParam(MaterialsThermalExchangeVelocityEnum);
    23812381
    2382         IssmDouble* base    = xNew<IssmDouble>(numvertices);
    2383         IssmDouble* values  = xNew<IssmDouble>(numvertices);
    2384         IssmDouble* oceansalinity   = xNew<IssmDouble>(numvertices);
    2385         IssmDouble* oceantemp       = xNew<IssmDouble>(numvertices);
     2382        IssmDouble base[MAXVERTICES];
     2383        IssmDouble values[MAXVERTICES];
     2384        IssmDouble oceansalinity [MAXVERTICES];
     2385        IssmDouble oceantemp[MAXVERTICES];
     2386        IssmDouble meltratefactor[MAXVERTICES];
    23862387
    23872388        this->GetInputListOnVertices(base,BaseEnum);
    23882389        this->GetInputListOnVertices(oceansalinity,BasalforcingsOceanSalinityEnum);
    23892390        this->GetInputListOnVertices(oceantemp,BasalforcingsOceanTempEnum);
    2390         parameters->FindParam(&meltratefactor,BasalforcingsMeltrateFactorEnum);
     2391        this->GetInputListOnVertices(meltratefactor,BasalforcingsMeltrateFactorEnum);
    23912392
    23922393        Gauss* gauss=this->NewGauss();
     
    23962397                // compute ocean_heat_flux according to beckmann_goosse2003
    23972398                // positive, if T_oc > T_ice ==> heat flux FROM ocean TO ice
    2398                 ocean_heat_flux = meltratefactor * rho_water * mixed_layer_capacity * thermal_exchange_vel * (oceantemp[i] - T_f); // in W/m^2
     2399                ocean_heat_flux = meltratefactor[i] * rho_water * mixed_layer_capacity * thermal_exchange_vel * (oceantemp[i] - T_f); // in W/m^2
    23992400
    24002401                // shelfbmassflux is positive if ice is freezing on; here it is always negative:
     
    24042405
    24052406        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
    2406         xDelete<IssmDouble>(base);
    2407         xDelete<IssmDouble>(values);
    2408         xDelete<IssmDouble>(oceantemp);
    2409         xDelete<IssmDouble>(oceansalinity);
    24102407        delete gauss;
    24112408}/*}}}*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r25775 r25777  
    245245                        break;
    246246                case BeckmannGoosseFloatingMeltRateEnum:
    247                         parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.meltrate_factor",BasalforcingsMeltrateFactorEnum));
    248247                        break;
    249248                default:
  • issm/trunk-jpl/src/m/classes/basalforcingsbeckmanngoosse.m

    r24145 r25777  
    1 %MISMIP BASAL FORCINGS class definition
     1%BECKMANNGOOSSE BASAL FORCINGS class definition
    22%
    33%   Usage:
     
    88                groundedice_melting_rate  = NaN;
    99                geothermalflux            = NaN;
    10                 meltrate_factor           = NaN;
    11                 ocean_temp                = NaN;
     10                meltrate_factor           = 0.;
     11                ocean_temp                = 0.;
    1212                ocean_salinity            = NaN;
    1313        end
     
    6464                                md = checkfield(md,'fieldname','basalforcings.ocean_temp','NaN',1,'Inf',1,'timeseries',1);
    6565                                md = checkfield(md,'fieldname','basalforcings.ocean_salinity','NaN',1,'Inf',1,'timeseries',1); 
    66                                 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
     66                                md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
    6767                        end
    6868                        if ismember('BalancethicknessAnalysis',analyses),
     
    7070                                md = checkfield(md,'fieldname','basalforcings.ocean_temp','NaN',1,'Inf',1,'timeseries',1);
    7171                                md = checkfield(md,'fieldname','basalforcings.ocean_salinity','NaN',1,'Inf',1,'timeseries',1);
    72                                 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
     72                                md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
    7373                        end
    7474                        if ismember('ThermalAnalysis',analyses) & ~(solution=='TransientSolution' & md.transient.isthermal==0),
    7575                                md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
    76                                 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
    7776                                md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
     77                                md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'universal',1,'NaN',1,'Inf',1);
    7878                        end
    7979                end % }}}
     
    9898
    9999
    100 WriteData(fid,prefix,'name','md.basalforcings.model','data',8,'format','Integer');
     100                        WriteData(fid,prefix,'name','md.basalforcings.model','data',8,'format','Integer');
    101101                        WriteData(fid,prefix,'data',floatingice_melting_rate,'format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    102102                        WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    103103                        WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    104                         WriteData(fid,prefix,'object',self,'fieldname','meltrate_factor','format','Double','name','md.basalforcings.meltrate_factor');
     104                        WriteData(fid,prefix,'object',self,'fieldname','meltrate_factor','format','DoubleMat','mattype',1,'name','md.basalforcings.meltrate_factor');
    105105                        WriteData(fid,prefix,'object',self,'fieldname','ocean_temp','format','DoubleMat','name','md.basalforcings.ocean_temp','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    106106                        WriteData(fid,prefix,'object',self,'fieldname','ocean_salinity','format','DoubleMat','name','md.basalforcings.ocean_salinity','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
  • issm/trunk-jpl/src/m/contrib/morlighem/modeldata/interpSmith2020.m

    r24875 r25777  
    44%       Available data:
    55%               Filtered mass-change maps, for display only, units of m(ice-equivalent)/yr:
    6 %               ais_floating_filt.tif
    7 %               ais_grounded_filt.tif
    8 %               gris_filt.tif
    9 
     6%               ais_floating_filt
     7%               ais_grounded_filt
     8%               gris_filt
     9%
    1010%               Raw mass-change maps, suitable for generation of basin-by-basin mass-change estimates, units of m(ice-equivalent)/yr:
    11 %               ais_floating.tif
    12 %               ais_grounded.tif
    13 %               gris.tif
     11%               ais_floating
     12%               ais_grounded
     13%               gris
    1414%
    1515%   Usage:
Note: See TracChangeset for help on using the changeset viewer.