Ignore:
Timestamp:
05/28/14 16:26:33 (11 years ago)
Author:
seroussi
Message:

NEW: reorganizing basal melting

File:
1 edited

Legend:

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

    r18062 r18068  
    29902990
    29912991        int        i,migration_style;
    2992         bool       oldfloating;
    2993         bool       floatingelement = false;
    29942992        bool       groundedelement = false;
    2995         IssmDouble bed_hydro,yts,gl_melting_rate;
     2993        IssmDouble bed_hydro,yts;
    29962994        IssmDouble rho_water,rho_ice,density;
    29972995        IssmDouble melting[NUMVERTICES],phi[NUMVERTICES];;
     
    30002998        /*Recover info at the vertices: */
    30012999        parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
    3002         parameters->FindParam(&gl_melting_rate,GroundinglineMeltingRateEnum);
    30033000        parameters->FindParam(&yts,ConstantsYtsEnum);
    30043001        GetInputListOnVertices(&h[0],ThicknessEnum);
     
    30103007        rho_ice     = matpar->GetRhoIce();
    30113008        density     = rho_ice/rho_water;
    3012         oldfloating = this->IsFloating(); //figure out if element is floating before we start to change everything
    30133009
    30143010        if(migration_style == ContactEnum){
     
    30233019                        }
    30243020                }
    3025 
    3026                 /*Add basal melting rate if element just ungrounded*/
    3027                 for(i=0;i<NUMVERTICES;i++){
    3028                         if(phi[i]<0.){
    3029                                 floatingelement=true;
    3030                                 break;
    3031                         }
    3032                 }
    3033                 if(!oldfloating && floatingelement==true){
    3034                         for(i=0;i<NUMVERTICES;i++) melting[i]=gl_melting_rate/yts;
    3035                         this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0],P1Enum));
    3036                 }
    30373021
    30383022                /*Update inputs*/
     
    30853069        this->inputs->AddInput(new TriaInput(MaskGroundediceLevelsetEnum,&phi[0],P1Enum));
    30863070
    3087         /*SubelementMigrationEnum: if one grounded, all grounded*/
    3088         if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){
    3089                 for(i=0;i<NUMVERTICES;i++){
    3090                         if(phi[i]>0.){
    3091                                 groundedelement=true;
    3092                                 break;
    3093                         }
    3094                 }
    3095                 floatingelement=!groundedelement;
    3096         }
    3097         else{
    3098                 /*Otherwise: if one floating, all floating*/
    3099                 for(i=0;i<NUMVERTICES;i++){
    3100                         if(phi[i]<=0.){
    3101                                 floatingelement=true;
    3102                                 break;
    3103                         }
    3104                 }
    3105         }
    3106 
    3107         /*Add basal melting rate if element just ungrounded*/
    3108         if(!oldfloating && floatingelement==true){
    3109                 for(i=0;i<NUMVERTICES;i++)melting[i]=gl_melting_rate/yts;
    3110                 this->inputs->AddInput(new TriaInput(BasalforcingsMeltingRateEnum,&melting[0],P1Enum));
    3111         }
    3112 
    31133071        /*Update inputs*/
    31143072        this->inputs->AddInput(new TriaInput(SurfaceEnum,&s[0],P1Enum));
Note: See TracChangeset for help on using the changeset viewer.