New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8239 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM – NEMO

Ignore:
Timestamp:
2017-06-28T17:55:50+02:00 (7 years ago)
Author:
clem
Message:

merge with v3_6_CMIP6_ice_diagnostics@r8238

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/field_def_nemo-lim.xml

    r8233 r8239  
    2626         <field id="v_imasstr"    long_name="Sea-ice mass transport along j-axis"                          standard_name="sea_ice_y_transport"                                unit="kg/s"         /> 
    2727 
     28         <!-- SIMIP LIM fields --> 
     29         <field id="icethic"      long_name="Sea-ice thickness"                                    standard_name="sea_ice_thickness"                          unit="m"            /> 
     30         <field id="icevel"       long_name="Sea-ice speed"                                        standard_name="sea_ice_speed"                              unit="m/s"          /> 
     31 
     32         <field id="icepres"      long_name="Fraction of time steps with sea ice"                  standard_name="sea_ice_time_fraction"                      unit=""             /> 
     33         <field id="iceconc"      long_name="Sea-ice area fraction"                                standard_name="sea_ice_area_fraction"                      unit=""             /> 
     34         <field id="iceconc_pct"  long_name="Sea-ice area fraction in percent"                     standard_name="sea_ice_area_fraction_in_percent"           unit="%"             > iceconc * 100. </field > 
     35         <field id="icemass"      long_name="Sea-ice mass per area"                                standard_name="sea_ice_amount"                             unit="kg/m2"        /> 
     36         <field id="icevolu"      long_name="Sea-ice volume per area"                              standard_name="sea_ice_volume"                             unit="m"            /> 
     37         <field id="snomass"      long_name="Snow mass per area"                                   standard_name="liquid_water_content_of_surface_snow"       unit="kg/m2"        /> 
     38         <field id="snowthic"     long_name="Snow thickness"                                       standard_name="surface_snow_thickness"                     unit="m"            /> 
     39 
     40         <field id="iceconc_cat"  long_name="Sea-ice area fractions in thickness categories"       standard_name="sea_ice_area_fraction_over_categories"      unit=""   grid_ref="grid_T_3D_ncatice" /> 
     41         <field id="icethic_cat"  long_name="Sea-ice thickness in thickness categories"            standard_name="sea_ice_thickness_over_categories"          unit="m"  grid_ref="grid_T_3D_ncatice" /> 
     42         <field id="snowthic_cat" long_name="Snow thickness in thickness categories"               standard_name="snow_thickness_over_categories"             unit="m"  grid_ref="grid_T_3D_ncatice" /> 
     43 
     44         <field id="icestK"       long_name="ice surface temperature"                              standard_name="sea_ice_surface_temperature        "        unit="C"     > icest + 273.15  </field > 
     45         <field id="icesntK"      long_name="Temperature at snow-ice interface"                    standard_name="sea_ice_snow_interface_temperature"         unit="degC"  > icesnt + 273.15 </field > 
     46         <field id="icebotK"      long_name="Temperature at ice-ocean interface"                   standard_name="sea_ice_bottom_temperature"                 unit="degC"  > icebot + 273.15 </field > 
     47         <field id="icebotK"      long_name="Temperature at ice-ocean interface"                   standard_name="sea_ice_bottom_temperature"                 unit="degC"  > icebot + 273.15 </field > 
     48 
     49         <field id="miceage"      long_name="Age of sea ice"                                       standard_name="age_of_sea_ice"                             unit="s"            /> 
     50         <field id="alb_ice"      long_name="Sea-ice or snow albedo"                               standard_name="sea_ice_albedo"                             unit=""             /> 
     51         <field id="icesmass"     long_name="Mass of salt in sea ice per area"                     standard_name="sea_ice_salt_mass"                          unit="kg/m2"        /> 
     52 
     53         <field id="micesalt"     long_name="Sea ice salinity"                                     standard_name="sea_ice_salinity"                           unit="g/kg"         /> 
     54         <field id="icefb"        long_name="Sea-ice freeboard"                                    standard_name="sea_ice_freeboard"                          unit="m"            /> 
     55 
     56         <field id="icehcneg"     long_name="Sea-ice heat content per unit area"  standard_name="integral_of_sea_ice_temperature_wrt_depth_expressed_as_heat_content" unit="J/m2" > (-1.0)*icehc </field> 
     57         <field id="isnhcneg"     long_name="Snow-heat content per unit area"     standard_name="thermal_energy_content_of_surface_snow"                              unit="J/m2" > (-1.0)*isnowhc      </field> 
     58 
     59         <field id="wfxsum"       long_name="Freshwater flux from sea-ice surface"               standard_name="freshwater_flux_from_ice_surface"                   unit="kg/m2/s"      /> 
     60 
     61         <field id="afxthd"       long_name="sea-ice area fraction change from thermodynamics"   standard_name="tendency_of_sea_ice_area_fraction_due_to_dynamics"  unit="s-1"   /> 
     62         <field id="afxdyn"       long_name="sea-ice area fraction change from dynamics"         standard_name="tendency_of_sea_ice_area_fraction_due_to_dynamics"  unit="s-1"   /> 
     63 
     64         <field id="dmithd"       long_name="sea-ice mass change from thermodynamics"            standard_name="tendency_of_sea_ice_amount_due_to_thermodynamics"   unit="kg/m2/s" /> 
     65         <field id="dmidyn"       long_name="sea-ice mass change from dynamics"                  standard_name="tendency_of_sea_ice_amount_due_to_dynamics"         unit="kg/m2/s" /> 
     66         <field id="dmiopw"       long_name="sea-ice mass change through growth in supercooled open water (aka frazil)"   standard_name="tendency_of_sea_ice_amount_due_to_freezing_in_open_water"   unit="kg/m2/s" /> 
     67         <field id="dmibog"       long_name="sea-ice mass change through basal growth"           standard_name="tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation"  unit="kg/m2/s" /> 
     68         <field id="dmisni"       long_name="sea-ice mass change through snow-to-ice conversion" standard_name="tendency_of_sea_ice_amount_due_to_snow_conversion"               unit="kg/m2/s" /> 
     69         <field id="dmtsub"       long_name="snow and sea ice mass change through sublimation"   standard_name="tendency_of_snow_and_ice_amount_due_to_sublimation"              unit="kg/m2/s" /> 
     70         <field id="dmssub"       long_name="sea-ice mass change through evaporation and sublimation" standard_name="water_evaporation_flux"                                     unit="kg/m2/s" /> 
     71         <field id="dmisub"       long_name="snow mass change through evaporation or sublimation"     standard_name="surface_snow_sublimation_flux"           unit="kg/m2/s" /> 
     72         <field id="dmisum"       long_name="sea-ice mass change through surface melting"        standard_name="tendency_of_sea_ice_amount_due_to_surface_melting"               unit="kg/m2/s" /> 
     73         <field id="dmibom"       long_name="sea-ice mass change through bottom melting"         standard_name="tendency_of_sea_ice_amount_due_to_basal_melting"                 unit="kg/m2/s" /> 
     74 
     75         <field id="dmsspr"       long_name="snow mass change through snow fall"                 standard_name="snowfall_flux"                                                   unit="kg/m2/s" /> 
     76         <field id="dmsmel"       long_name="snow mass change through melt"                      standard_name="surface_snow_melt_flux"                                          unit="kg/m2/s" /> 
     77         <field id="dmsdyn"       long_name="snow mass change through advection by sea-ice dynamics" standard_name="tendency_of_snow_mass_due_to_sea_ice_dynamics"               unit="kg/m2/s" /> 
     78         <field id="dmsssi"       long_name="snow mass change through snow-to-ice conversion"    standard_name="tendency_of_snow_mass_due_to_snow_to_ice_conversion"             unit="kg/m2/s" /> 
     79 
     80         <field id="hfxturneg"    long_name="Net sensible heat flux under sea ice"               standard_name="ice_ocean_heat_flux"                          unit="W/m2" > (-1.0)*hfxtur </field> 
     81         <field id="hfxconsu"     long_name="Net conductive heat flux in ice at the surface"     standard_name="conductive_heat_flux_at_sea_ice_surface"      unit="W/m2" />  
     82         <field id="hfxconbo"     long_name="Net conductive heat fluxes in ice at the bottom"    standard_name="conductive_heat_flux_at_sea_ice_bottom"       unit="W/m2" /> 
     83 
     84         <field id="msfx"         long_name="Salt flux from sea ice"                             standard_name="salt_flux_from_ice"                           unit="kg/m2/s" > sfx/86400000. </field> 
     85         <field id="wfxtot"       long_name="Freshwater flux from sea ice"                       standard_name="freshwater_flux_from_ice"                     unit="kg/m2/s" />  
     86 
     87         <field id="utau_ice"     long_name="X-component of atmospheric stress on sea ice"       standard_name="surface_downward_x_stress"                    unit="N/m2"    /> 
     88         <field id="vtau_ice"     long_name="Y-component of atmospheric stress on sea ice"       standard_name="surface_downward_y_stress"                    unit="N/m2"    /> 
     89 
     90         <field id="utau_oi"      long_name="X-component of ocean stress on sea ice"             standard_name="sea_ice_base_upward_x_stress"                 unit="N/m2"    /> 
     91         <field id="vtau_oi"      long_name="Y-component of ocean stress on sea ice"             standard_name="sea_ice_base_upward_y_stress"                 unit="N/m2"    /> 
     92 
     93         <field id="icestr"       long_name="Compressive sea ice strength"                       standard_name="compressive_strength_of_sea_ice"              unit="N/m"     /> 
     94 
     95         <field id="dssh_dx"      long_name="Sea-surface tilt term in force balance (x-component)"  standard_name="sea_surface_tilt_force_on_sea_ice_x"       unit="N/m2"    /> 
     96         <field id="dssh_dy"      long_name="Sea-surface tilt term in force balance (y-component)"  standard_name="sea_surface_tilt_force_on_sea_ice_y"       unit="N/m2"    /> 
     97 
     98         <field id="corstrx"      long_name="Coriolis force term in force balance (x-component)"    standard_name="coriolis_force_on_sea_ice_x"               unit="N/m2"    /> 
     99         <field id="corstry"      long_name="Coriolis force term in force balance (y-component)"    standard_name="coriolis_force_on_sea_ice_y"               unit="N/m2"    /> 
     100 
     101         <field id="intstrx"      long_name="Internal stress term in force balance (x-component)"   standard_name="internal_stress_in_sea_ice_x"              unit="N/m2"    /> 
     102         <field id="intstry"      long_name="Internal stress term in force balance (y-component)"   standard_name="internal_stress_in_sea_ice_y"              unit="N/m2"    /> 
     103 
     104         <field id="xmtrpice"     long_name="X-component of ice mass transport"                  standard_name="ice_x_transport"                              unit="kg/s" /> 
     105         <field id="ymtrpice"     long_name="Y-component of ice mass transport"                  standard_name="ice_y_transport"                              unit="kg/s" /> 
     106 
     107         <field id="xmtrpsnw"     long_name="X-component of snw mass transport"                  standard_name="snw_x_transport"                              unit="kg/s" /> 
     108         <field id="ymtrpsnw"     long_name="Y-component of snw mass transport"                  standard_name="snw_y_transport"                              unit="kg/s" /> 
     109 
     110         <field id="xatrp"        long_name="X-component of ice area transport"                  standard_name="area_x_transport"                             unit="m2/s" /> 
     111         <field id="yatrp"        long_name="Y-component of ice area transport"                  standard_name="area_y_transport"                             unit="m2/s" /> 
     112 
     113         <field id="xmtrptot"     long_name="X-component of sea-ice mass transport"              standard_name="sea_ice_x_transport"                          unit="kg/s" > xmtrpice + xmtrpsnw </field> 
     114         <field id="ymtrptot"     long_name="Y-component of sea-ice mass transport"              standard_name="sea_ice_y_transport"                          unit="kg/s" > ymtrpice + ymtrpsnw </field> 
     115 
     116         <field id="normstr"      long_name="Average normal stress in sea ice"                   standard_name="average_normal_stress"                        unit="N/m"     /> 
     117         <field id="sheastr"      long_name="Maximum shear stress in sea ice"                    standard_name="maximum_shear_stress"                         unit="N/m"     /> 
     118 
     119         <field id="idive"        long_name="Divergence of the sea-ice velocity field"           standard_name="divergence_of_sea_ice_velocity"               unit="s-1"     /> 
     120         <field id="ishear"       long_name="Maximum shear of sea-ice velocity field"            standard_name="maximum_shear_of_sea_ice_velocity"            unit="s-1"     /> 
     121 
     122 
     123 
    28124         <!-- LIM3 fields -->   
     125 
    29126         <field id="ice_cover"    long_name="Ice fraction"                                                 standard_name="sea_ice_area_fraction"                              unit="1"            /> 
    30   
    31          <field id="snowthic_cea" long_name="Snow thickness (cell average)"                                standard_name="surface_snow_thickness"                             unit="m"            /> 
    32          <field id="icethic_cea"  long_name="Ice thickness (cell average)"                                 standard_name="sea_ice_thickness"                                  unit="m"            /> 
    33  
    34          <field id="uice_ipa"     long_name="Ice velocity along i-axis at I-point (ice presence average)"  standard_name="sea_ice_x_velocity"                                 unit="m/s"          />       
    35          <field id="vice_ipa"     long_name="Ice velocity along j-axis at I-point (ice presence average)"  standard_name="sea_ice_y_velocity"                                 unit="m/s"          />                
    36          <field id="utau_ice"     long_name="Wind stress along i-axis over the ice at i-point"             standard_name="surface_downward_x_stress"                          unit="N/m2"         /> 
    37          <field id="vtau_ice"     long_name="Wind stress along j-axis over the ice at i-point"             standard_name="surface_downward_y_stress"                          unit="N/m2"         /> 
    38           
    39          <field id="iceconc"      long_name="ice concentration"                                            standard_name="sea_ice_area_fraction"                              unit="%"            /> 
     127         <field id="icepres"      long_name="Ice presence"                                                                                                                    unit=""             /> 
     128 
     129         <field id="uice_ipa"     long_name="X-component of sea ice velocity"                              standard_name="sea_ice_x_velocity"                                 unit="m/s"          />  
     130         <field id="vice_ipa"     long_name="Y-component of sea ice velocity"                              standard_name="sea_ice_y_velocity"                                 unit="m/s"          />       
    40131          <field id="isst"         long_name="sea surface temperature"                                      standard_name="sea_surface_temperature"                            unit="degC"         /> 
    41132         <field id="isss"         long_name="sea surface salinity"                                         standard_name="sea_surface_salinity"                               unit="1e-3"         />  
     
    48139         <field id="qtr_ice"      long_name="solar heat flux transmitted through ice: sum over categories"                                                                    unit="W/m2"         /> 
    49140         <field id="qemp_ice"     long_name="Downward Heat Flux from E-P over ice"                                                                                            unit="W/m2"         /> 
    50          <field id="micesalt"     long_name="Mean ice salinity"                                                                                                               unit="1e-3"         /> 
    51          <field id="miceage"      long_name="Mean ice age"                                                                                                                    unit="years"        /> 
    52          <field id="alb_ice"      long_name="Mean albedo over sea ice"                                                                                                        unit=""             /> 
    53141         <field id="albedo"       long_name="Mean albedo over sea ice and ocean"                                                                                              unit=""             /> 
    54142 
     
    57145 
    58146         <field id="iceage_cat"   long_name="Ice age for categories"                                       unit="days"   grid_ref="grid_T_3D_ncatice" /> 
    59          <field id="iceconc_cat"  long_name="Ice concentration for categories"                             unit="%"      grid_ref="grid_T_3D_ncatice" /> 
    60          <field id="icethic_cat"  long_name="Ice thickness for categories"                                 unit="m"      grid_ref="grid_T_3D_ncatice" /> 
    61          <field id="snowthic_cat" long_name="Snow thicknessi for categories"                               unit="m"      grid_ref="grid_T_3D_ncatice" /> 
    62147         <field id="salinity_cat" long_name="Sea-Ice Bulk salinity for categories"                         unit="g/kg"   grid_ref="grid_T_3D_ncatice" /> 
    63148         <field id="brinevol_cat" long_name="Brine volume for categories"                                  unit="%"      grid_ref="grid_T_3D_ncatice" /> 
     
    68153 
    69154         <field id="micet"        long_name="Mean ice temperature"                                         unit="degC"     /> 
    70          <field id="icehc"        long_name="ice total heat content"                                       unit="10^9J"    />  
    71          <field id="isnowhc"      long_name="snow total heat content"                                      unit="10^9J"    /> 
     155         <field id="icehc"        long_name="ice total heat content"                                       unit="J/m2"     />  
     156         <field id="isnowhc"      long_name="snow total heat content"                                      unit="J/m2"     /> 
    72157         <field id="icest"        long_name="ice surface temperature"                                      unit="degC"     /> 
     158         <field id="icesnt"       long_name="Temperature at snow-ice interface"                            unit="degC"     /> 
     159         <field id="icebot"       long_name="Temperature at ice-ocean interface"                           unit="degC"     /> 
    73160         <field id="ibrinv"       long_name="brine volume"                                                 unit="%"        /> 
    74161         <field id="icecolf"      long_name="frazil ice collection thickness"                              unit="m"        /> 
    75          <field id="icestr"       long_name="ice strength"                                                 unit="N/m"      /> 
    76          <field id="icevel"       long_name="ice velocity"                                                 unit="m/s"      /> 
    77          <field id="idive"        long_name="divergence"                                                   unit="1e-8s-1"  /> 
    78          <field id="ishear"       long_name="shear"                                                        unit="1e-8s-1"  /> 
    79          <field id="icevolu"      long_name="ice volume"                                                   unit="m"        /> 
    80162         <field id="snowvol"      long_name="snow volume"                                                  unit="m"        /> 
    81163         <field id="tau_icebfr"   long_name="ice friction on ocean bottom for landfast ice"                unit="N/2"      /> 
     
    97179         <field id="sfxopw"       long_name="salt flux from open water ice formation"                      unit="1e-3*kg/m2/day" /> 
    98180         <field id="sfxsub"       long_name="salt flux from sublimation"                                   unit="1e-3*kg/m2/day" /> 
    99          <field id="sfx"          long_name="salt flux total"                                              unit="1e-3*kg/m2/day" /> 
     181         <field id="sfx"          long_name="Salt flux from sea ice"                                       unit="1e-3*kg/m2/day" /> 
    100182 
    101183         <field id="vfxbog"       long_name="daily bottom thermo ice prod."                                unit="m/day"   /> 
     
    112194         <field id="vfxsub_err"   long_name="excess of snw sublimation sent to ocean"                      unit="m/day"   /> 
    113195         <field id="vfxspr"       long_name="snw precipitation on ice"                                     unit="m/day"   /> 
    114          <field id="vfxthin"      long_name="daily thermo ice prod. for thin ice(20cm) + open water"      unit="m/day"   /> 
    115  
    116          <field id="afxtot"       long_name="area tendency (total)"                                        unit="day-1"   /> 
    117          <field id="afxdyn"       long_name="area tendency (dynamics)"                                     unit="day-1"   /> 
    118          <field id="afxthd"       long_name="area tendency (thermo)"                                       unit="day-1"   /> 
     196         <field id="vfxthin"      long_name="daily thermo ice prod. for thin ice(20cm) + open water"       unit="m/day"   /> 
     197 
     198         <field id="afxtot"       long_name="area tendency (total)"                                        unit="s-1"   /> 
    119199 
    120200         <field id="hfxsum"       long_name="heat fluxes causing surface ice melt"                         unit="W/m2"  /> 
     
    140220         <field id="hfxtur"       long_name="turbulent heat flux at the ice base"                          unit="W/m2" /> 
    141221 
    142     <!-- sbcssm variables --> 
     222        <!-- sbcssm variables --> 
    143223         <field id="sst_m"    unit="degC" /> 
    144224         <field id="sss_m"    unit="psu"  /> 
     
    154234      <field_group id="SBC_scalar"  grid_ref="grid_T_2D" > 
    155235         <!-- available with ln_limdiaout --> 
    156          <field id="ibgfrcvoltop"    long_name="global mean ice/snow forcing at interface ice/snow-atm (volume equivalent ocean volume)"   unit="km3"       /> 
    157          <field id="ibgfrcvolbot"    long_name="global mean ice/snow forcing at interface ice/snow-ocean (volume equivalent ocean volume)" unit="km3"       /> 
    158          <field id="ibgfrctemtop"    long_name="global mean heat on top of ice/snw/ocean-atm "                                             unit="1e20J"     /> 
    159          <field id="ibgfrctembot"    long_name="global mean heat below ice (on top of ocean) "                                             unit="1e20J"     /> 
    160          <field id="ibgfrcsal"       long_name="global mean ice/snow forcing (salt equivalent ocean volume)"                               unit="pss*km3"   /> 
    161          <field id="ibgfrchfxtop"    long_name="global mean heat flux on top of ice/snw/ocean-atm "                                        unit="W/m2"      /> 
    162          <field id="ibgfrchfxbot"    long_name="global mean heat flux below ice (on top of ocean) "                                        unit="W/m2"      /> 
     236         <field id="ibgfrcvoltop"    long_name="global mean ice/snow forcing at interface ice/snow-atm (volume equivalent ocean volume)"   unit="km3"        /> 
     237         <field id="ibgfrcvolbot"    long_name="global mean ice/snow forcing at interface ice/snow-ocean (volume equivalent ocean volume)" unit="km3"        /> 
     238         <field id="ibgfrctemtop"    long_name="global mean heat on top of ice/snw/ocean-atm "                                             unit="1e20J"      /> 
     239         <field id="ibgfrctembot"    long_name="global mean heat below ice (on top of ocean) "                                             unit="1e20J"      /> 
     240         <field id="ibgfrcsal"       long_name="global mean ice/snow forcing (salt equivalent ocean volume)"                               unit="pss*km3"    /> 
     241         <field id="ibgfrchfxtop"    long_name="global mean heat flux on top of ice/snw/ocean-atm "                                        unit="W/m2"       /> 
     242         <field id="ibgfrchfxbot"    long_name="global mean heat flux below ice (on top of ocean) "                                        unit="W/m2"       /> 
    163243  
    164          <field id="ibgvolume"       long_name="drift in ice/snow volume (equivalent ocean volume)"            unit="km3"        /> 
    165          <field id="ibgsaltco"       long_name="drift in ice salt content (equivalent ocean volume)"           unit="pss*km3"    /> 
    166          <field id="ibgheatco"       long_name="drift in ice/snow heat content"                                unit="1e20J"      /> 
    167          <field id="ibgheatfx"       long_name="drift in ice/snow heat flux"                                   unit="W/m2"       /> 
    168  
    169          <field id="ibgvol_tot"      long_name="global mean ice volume"                                        unit="km3"        /> 
    170          <field id="sbgvol_tot"      long_name="global mean snow volume"                                       unit="km3"        /> 
    171          <field id="ibgarea_tot"     long_name="global mean ice area"                                          unit="km2"        /> 
    172          <field id="ibgsalt_tot"     long_name="global mean ice salt content"                                  unit="1e-3*km3"   /> 
    173          <field id="ibgheat_tot"     long_name="global mean ice heat content"                                  unit="1e20J"      /> 
    174          <field id="sbgheat_tot"     long_name="global mean snow heat content"                                 unit="1e20J"      /> 
     244         <field id="ibgvolume"       long_name="drift in ice/snow volume (equivalent ocean volume)"                                        unit="km3"        /> 
     245         <field id="ibgsaltco"       long_name="drift in ice salt content (equivalent ocean volume)"                                       unit="pss*km3"    /> 
     246         <field id="ibgheatco"       long_name="drift in ice/snow heat content"                                                            unit="1e20J"      /> 
     247         <field id="ibgheatfx"       long_name="drift in ice/snow heat flux"                                                               unit="W/m2"       /> 
     248 
     249         <field id="ibgvol_tot"      long_name="global mean ice volume"                                                                    unit="km3"        /> 
     250         <field id="sbgvol_tot"      long_name="global mean snow volume"                                                                   unit="km3"        /> 
     251         <field id="ibgarea_tot"     long_name="global mean ice area"                                                                      unit="km2"        /> 
     252         <field id="ibgsalt_tot"     long_name="global mean ice salt content"                                                              unit="1e-3*km3"   /> 
     253         <field id="ibgheat_tot"     long_name="global mean ice heat content"                                                              unit="1e20J"      /> 
     254         <field id="sbgheat_tot"     long_name="global mean snow heat content"                                                             unit="1e20J"      /> 
     255 
     256         <field id="NH_iceextt"      long_name="Sea ice extent North"                            standard_name="sea_ice_extent_n"          unit="1e6_km2"    /> 
     257         <field id="SH_iceextt"      long_name="Sea ice extent South"                            standard_name="sea_ice_extent_s"          unit="1e6_km2"    /> 
     258         <field id="NH_icevolu"      long_name="Sea ice volume North"                            standard_name="sea_ice_volume_n"          unit="1e3_km3"    /> 
     259         <field id="SH_icevolu"      long_name="Sea ice volume South"                            standard_name="sea_ice_volume_s"          unit="1e3_km3"    /> 
     260         <field id="NH_icearea"      long_name="Sea ice area North"                              standard_name="sea_ice_area_n"            unit="1e6_km2"    /> 
     261         <field id="SH_icearea"      long_name="Sea ice area South"                              standard_name="sea_ice_area_s"            unit="1e6_km2"    /> 
     262 
     263         <field id="strait_mifl"     long_name="Sea ice mass flux through straits"      standard_name="sea_ice_mass_transport_across_line" unit="kg/s"  grid_ref="grid_4strait"   /> 
     264         <field id="strait_arfl"     long_name="Sea ice area flux through straits"      standard_name="sea_ice_area_transport_across_line" unit="m2/s"  grid_ref="grid_4strait"   />   
     265         <field id="strait_msfl"     long_name="Sea ice snow flux through straits"      standard_name="snow_mass_transport_across_line"    unit="kg/s"  grid_ref="grid_4strait"   /> 
     266 
    175267      </field_group> 
    176268   
     
    181273       
    182274      <field_group id="myvarICE" > 
    183          <field field_ref="icethic_cea"      name="sithic"     long_name="sea_ice_thickness"        /> 
     275         <field field_ref="icethic"          name="sithic"     long_name="sea_ice_thickness"        /> 
    184276         <field field_ref="icevolu"          name="sivolu"  /> 
    185277         <field field_ref="iceconc"          name="siconc"  /> 
    186278      </field_group>     
    187        
     279 
     280      <field_group id="ICE_globalbudget"> 
     281 
     282      <field field_ref="ibgvol_tot"     grid_ref="grid_1point"  name="ibgvol_tot"   /> 
     283       <field field_ref="sbgvol_tot"     grid_ref="grid_1point"  name="sbgvol_tot"   /> 
     284      <field field_ref="ibgarea_tot"    grid_ref="grid_1point"  name="ibgarea_tot"  /> 
     285      <field field_ref="ibgsalt_tot"    grid_ref="grid_1point"  name="ibgsalt_tot"  /> 
     286      <field field_ref="ibgheat_tot"    grid_ref="grid_1point"  name="ibgheat_tot"  /> 
     287      <field field_ref="sbgheat_tot"    grid_ref="grid_1point"  name="sbgheat_tot"  /> 
     288 
     289      <field field_ref="ibgvolume"      grid_ref="grid_1point"  name="ibgvolume"    /> 
     290      <field field_ref="ibgsaltco"      grid_ref="grid_1point"  name="ibgsaltco"    /> 
     291      <field field_ref="ibgheatco"      grid_ref="grid_1point"  name="ibgheatco"    /> 
     292        <field field_ref="ibgheatfx"      grid_ref="grid_1point"  name="ibgheatfx"    /> 
     293 
     294      <field field_ref="ibgfrcvoltop"   grid_ref="grid_1point"  name="ibgfrcvoltop" /> 
     295      <field field_ref="ibgfrcvolbot"   grid_ref="grid_1point"  name="ibgfrcvolbot" /> 
     296      <field field_ref="ibgfrctemtop"   grid_ref="grid_1point"  name="ibgfrctemtop" /> 
     297      <field field_ref="ibgfrctembot"   grid_ref="grid_1point"  name="ibgfrctembot" /> 
     298      <field field_ref="ibgfrcsal"      grid_ref="grid_1point"  name="ibgfrcsal"    /> 
     299        <field field_ref="ibgfrchfxtop"   grid_ref="grid_1point"  name="ibgfrchfxtop" /> 
     300        <field field_ref="ibgfrchfxbot"   grid_ref="grid_1point"  name="ibgfrchfxbot" /> 
     301 
     302      </field_group> 
     303 
     304 
     305      <!--============================--> 
     306      <!-- SIMIP sea ice field groups --> 
     307      <!-- Notz et al 2016            --> 
     308      <!--============================--> 
     309 
     310      <!-- SIMIP monthly scalar variables --> 
     311      <field_group id="SImon_scalars"> 
     312        <!-- Integrated quantities --> 
     313        <field field_ref="NH_iceextt"     grid_ref="grid_1point"  name="siextentn"    /> 
     314        <field field_ref="SH_iceextt"     grid_ref="grid_1point"  name="siextents"    /> 
     315        <field field_ref="NH_icevolu"     grid_ref="grid_1point"  name="sivoln"       /> 
     316        <field field_ref="SH_icevolu"     grid_ref="grid_1point"  name="sivols"       /> 
     317        <field field_ref="NH_icearea"     grid_ref="grid_1point"  name="siarean"      /> 
     318        <field field_ref="SH_icearea"     grid_ref="grid_1point"  name="siareas"      /> 
     319      </field_group> 
     320 
     321      <!-- SIMIP daily fields --> 
     322      <field_group id="SIday_fields"> 
     323          <field field_ref="iceconc_pct"      name="siconc"       /> 
     324          <field field_ref="snowthic"         name="sisnthick"    /> 
     325          <field field_ref="icevel"           name="sispeed" /> 
     326          <field field_ref="icestK"           name="sitemptop"    /> 
     327          <field field_ref="icethic"          name="sithick"      /> 
     328          <field field_ref="icepres"          name="sitimefrac"   /> 
     329          <field field_ref="uice_ipa"         name="siu"              /> 
     330          <field field_ref="vice_ipa"         name="siv"              /> 
     331      </field_group> 
     332 
     333      <!-- SIMIP monthly fields --> 
     334      <field_group id="SImon_fields"> 
     335          <!-- Sea-ice state variables --> 
     336          <field field_ref="icepres"          name="sitimefrac"   /> 
     337          <field field_ref="iceconc_pct"      name="siconc"       /> 
     338          <field field_ref="icemass"          name="simass"       /> 
     339          <field field_ref="icevolu"          name="sivol"        /> 
     340          <field field_ref="snomass"          name="sisnmass"     /> 
     341          <field field_ref="snowthic"         name="sisnthick"    /> 
     342          <field field_ref="icethic"          name="sithick"      /> 
     343          <field field_ref="icevel"           name="sispeed" /> 
     344 
     345          <!-- category-dependent fields --> 
     346          <field field_ref="iceconc_cat"      name="siitdconc"    /> 
     347          <field field_ref="icethic_cat"      name="siitdthick"   /> 
     348          <field field_ref="snowthic_cat"     name="siitdsnthick" /> 
     349 
     350          <!-- additional state variables--> 
     351          <field field_ref="icestK"           name="sitemptop"    /> 
     352          <field field_ref="icesntK"          name="sitempsnic"   /> 
     353          <field field_ref="icebotK"          name="sitempbot"    /> 
     354          <field field_ref="miceage"          name="siage"        /> 
     355          <field field_ref="alb_ice"          name="sialb"        /> 
     356          <field field_ref="icesmass"         name="sisaltmass"   /> 
     357          <field field_ref="micesalt"         name="sisali"       /> 
     358          <field field_ref="icefb"            name="sifb"         /> 
     359          <field field_ref="icehcneg"         name="sihc"         /> 
     360          <field field_ref="isnhcneg"         name="sisnhc"       /> 
     361 
     362          <!-- freshwater fluxes --> 
     363          <field field_ref="wfxtot"           name="siflfwbot"    /> 
     364          <field field_ref="wfxsum"           name="siflfwdrain"  /> 
     365 
     366          <!-- area balance --> 
     367          <field field_ref="afxthd"           name="sidconcth"    /> 
     368          <field field_ref="afxdyn"           name="sidconcdyn"   /> 
     369 
     370          <!-- mass balance --> 
     371          <field field_ref="dmithd"           name="sidmassth"    /> 
     372          <field field_ref="dmidyn"           name="sidmassdyn"   /> 
     373          <field field_ref="dmiopw"           name="sidmassgrowthwat" /> 
     374          <field field_ref="dmibog"           name="sidmassgrowthbot" /> 
     375          <field field_ref="dmisni"           name="sidmasssi"        /> 
     376          <field field_ref="dmisub"           name="sidmassevapsubl"  /> 
     377          <field field_ref="dmisum"           name="sidmassmelttop"   /> 
     378          <field field_ref="dmibom"           name="sidmassmeltbot"   /> 
     379          <field field_ref="dmsspr"           name="sndmasssnf"       /> 
     380          <field field_ref="dmsmel"           name="sndmassmelt"      /> 
     381          <field field_ref="dmssub"           name="sndmasssubl"      /> 
     382          <field field_ref="dmsdyn"           name="sndmassdyn"       /> 
     383          <field field_ref="dmsssi"           name="sndmasssi"        /> 
     384 
     385          <!-- heat balance --> 
     386          <field field_ref="hfxturneg"        name="siflsensupbot"    /> 
     387          <field field_ref="hfxconsu"         name="siflcondtop"      /> 
     388          <field field_ref="hfxconbo"         name="siflcondbot"      /> 
     389 
     390          <!-- salt balance --> 
     391          <field field_ref="msfx"             name="siflsaltbot"      /> 
     392 
     393          <!-- sea-ice dynamics --> 
     394          <field field_ref="uice_ipa"         name="siu"              /> 
     395          <field field_ref="vice_ipa"         name="siv"              /> 
     396 
     397          <field field_ref="utau_ice"         name="sistrxdtop"       /> 
     398          <field field_ref="vtau_ice"         name="sistrydtop"       /> 
     399 
     400          <field field_ref="utau_oi"          name="sistrxubot"       /> 
     401          <field field_ref="vtau_oi"          name="sistryubot"       /> 
     402 
     403          <field field_ref="icestr"           name="sicompstren"      /> 
     404 
     405          <field field_ref="dssh_dx"          name="siforcetiltx"     /> 
     406          <field field_ref="dssh_dy"          name="siforcetilty"     /> 
     407 
     408          <field field_ref="corstrx"          name="siforcecoriolx"   /> 
     409          <field field_ref="corstry"          name="siforcecorioly"   /> 
     410 
     411          <field field_ref="intstrx"          name="siforceintstrx"   /> 
     412          <field field_ref="intstry"          name="siforceintstry"   /> 
     413 
     414          <field field_ref="xmtrptot"         name="sidmasstranx"     /> 
     415          <field field_ref="ymtrptot"         name="sidmasstrany"     /> 
     416 
     417          <field field_ref="normstr"          name="sistresave"       operation="instant" /> 
     418          <field field_ref="sheastr"          name="sistremax"        operation="instant" /> 
     419 
     420          <field field_ref="idive"            name="sidivvel"         operation="instant" /> 
     421          <field field_ref="ishear"           name="sishevel"         operation="instant" /> 
     422 
     423          <!-- sea ice fluxes across straits: 2D arrays to be post-processed  --> 
     424          <field field_ref="xmtrpice"         name="simassacrossline_x" /> 
     425          <field field_ref="ymtrpice"         name="simassacrossline_y" /> 
     426          <field field_ref="xmtrpsnw"         name="snmassacrossline_x" /> 
     427          <field field_ref="ymtrpsnw"         name="snmassacrossline_y" /> 
     428          <field field_ref="xatrp"            name="siareaacrossline_x" /> 
     429          <field field_ref="yatrp"            name="siareaacrossline_y" /> 
     430 
     431      </field_group> 
     432 
     433      
    188434   </field_definition> 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8233 r8239  
    108108   !! v_s         |      -      |    Snow volume per unit area    | m     | 
    109109   !! smv_i       |      -      |    Sea ice salt content         | ppt.m | 
    110    !! oa_i        !      -      !    Sea ice areal age content    | day   | 
     110   !! oa_i        !      -      !    Sea ice areal age content    |    | 
    111111   !! e_i         !      -      !    Ice enthalpy                 | J/m2  |  
    112112   !!      -      ! q_i_1d      !    Ice enthalpy per unit vol.   | J/m3  |  
     
    123123   !! sm_i        ! sm_i_1d     |    Sea ice bulk salinity        ! ppt   | 
    124124   !! s_i         ! s_i_1d      |    Sea ice salinity profile     ! ppt   | 
    125    !! o_i         !      -      |    Sea ice Age                  ! days  | 
     125   !! o_i         !      -      |    Sea ice Age                  ! s     | 
    126126   !! t_i         ! t_i_1d      |    Sea ice temperature          ! K     | 
    127127   !! t_s         ! t_s_1d      |    Snow temperature             ! K     | 
     
    328328   ! END MV MP 2016 
    329329   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_spr     !: snow precipitation on ice  [kg.m-2.s-1] 
    330    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_sub     !: snow/ice sublimation       [kg.m-2.s-1] 
     330   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_sub     !: sublimation of snow/ice    [kg.m-2.s-1] 
     331   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_sub !: snow sublimation           [kg.m-2.s-1] 
     332   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_ice_sub !: ice sublimation            [kg.m-2.s-1] 
     333 
     334   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_dyn !: dynamical component of wfx_snw    [kg.m-2.s-1] 
     335   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_snw_sum !: surface melt component of wfx_snw [kg.m-2.s-1] 
    331336 
    332337   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wfx_ice     !: ice-ocean mass exchange                   [kg.m-2.s-1] 
     
    395400   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   smv_i     !: Sea-Ice Bulk salinity times volume per area (ppt.m) 
    396401   !                                                                    !  this is an extensive variable that has to be transported 
    397    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   o_i       !: Sea-Ice Age (days) 
    398    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   oa_i      !: Sea-Ice Age times ice area (days) 
     402   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   o_i       !: Sea-Ice Age (s) 
     403   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   oa_i      !: Sea-Ice Age times ice area (s) 
    399404   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   bv_i      !: brine volume 
    400405 
     
    479484   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vice     !: ice volume variation   [m/s]  
    480485   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vsnw     !: snw volume variation   [m/s]  
     486 
     487   ! 
     488   !!-------------------------------------------------------------------------- 
     489   !! * SIMIP extra diagnostics 
     490   !!-------------------------------------------------------------------------- 
     491   ! Extra sea ice diagnostics to address the data request 
     492   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   t_si          !: Temperature at Snow-ice interface (K)  
     493   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   tm_si         !: mean temperature at the snow-ice interface (K)  
     494   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_dmi_dyn  !: Change in ice mass due to ice dynamics (kg/m2/s) 
     495   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_dms_dyn  !: Change in snow mass due to ice dynamics (kg/m2/s) 
     496   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_xmtrp_ice !: X-component of ice mass transport (kg/s) 
     497   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_ymtrp_ice !: Y-component of ice mass transport (kg/s) 
     498   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_xmtrp_snw !: X-component of snow mass transport (kg/s) 
     499   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_ymtrp_snw !: Y-component of snow mass transport (kg/s) 
     500   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_xatrp    !: X-component of area transport (m2/s) 
     501   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_yatrp    !: Y-component of area transport (m2/s) 
     502   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_fc_bo    !: Bottom conduction flux (W/m2) 
     503   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_fc_su    !: Surface conduction flux (W/m2) 
     504   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_utau_oi  !: X-direction ocean-ice stress 
     505   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vtau_oi  !: Y-direction ocean-ice stress   
     506   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_dssh_dx  !: X-direction sea-surface tilt term (N/m2) 
     507   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_dssh_dy  !: X-direction sea-surface tilt term (N/m2) 
     508   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_corstrx  !: X-direction coriolis stress (N/m2) 
     509   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_corstry  !: Y-direction coriolis stress (N/m2) 
     510   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_intstrx  !: X-direction internal stress (N/m2) 
     511   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_intstry  !: Y-direction internal stress (N/m2) 
     512   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_sig1     !: Average normal stress in sea ice    
     513   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_sig2     !: Maximum shear stress in sea ice 
     514   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_shear    !: Maximum shear of sea-ice velocity field 
     515 
    481516   ! 
    482517   !!---------------------------------------------------------------------- 
     
    493528      INTEGER :: ice_alloc 
    494529      ! 
    495       INTEGER :: ierr(15), ii 
     530      INTEGER :: ierr(18), ii 
    496531      !!----------------------------------------------------------------- 
    497532 
     
    507542 
    508543      ii = ii + 1 
    509       ALLOCATE( t_bo   (jpi,jpj) , frld   (jpi,jpj) , pfrld  (jpi,jpj) , phicif (jpi,jpj) ,     & 
    510          &      wfx_snw(jpi,jpj) , wfx_ice(jpi,jpj) , wfx_sub(jpi,jpj) , wfx_lam(jpi,jpj) ,     & 
     544      ALLOCATE( t_bo   (jpi,jpj) , frld       (jpi,jpj) , pfrld      (jpi,jpj) , phicif     (jpi,jpj) ,  & 
     545         &      wfx_snw(jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) ,  & 
     546         &      wfx_ice(jpi,jpj) , wfx_sub    (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam    (jpi,jpj) ,  & 
    511547         ! MV MP 2016 
    512548         &      wfx_pnd(jpi,jpj) , wfx_snw_sum(jpi,jpj) ,                                       & 
     
    568604 
    569605      ! MV MP 2016 
     606      ii = ii + 1 
    570607      ALLOCATE( sxap(jpi,jpj,jpl) , syap(jpi,jpj,jpl) , sxxap(jpi,jpj,jpl) , syyap(jpi,jpj,jpl) , sxyap(jpi,jpj,jpl) ,   & 
    571608         &      sxvp(jpi,jpj,jpl) , syvp(jpi,jpj,jpl) , sxxvp(jpi,jpj,jpl) , syyvp(jpi,jpj,jpl) , sxyvp(jpi,jpj,jpl) ,   & 
     
    590627         &      diag_trp_es(jpi,jpj) , diag_trp_smv(jpi,jpj) , diag_heat  (jpi,jpj),   & 
    591628         &      diag_smvi  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), STAT=ierr(ii) ) 
     629 
     630      ! * SIMIP diagnostics 
     631      ii = ii + 1 
     632      ALLOCATE( t_si (jpi,jpj,jpl)    , tm_si(jpi,jpj)        ,    &  
     633                diag_dmi_dyn(jpi,jpj) , diag_dms_dyn(jpi,jpj) ,    & 
     634                diag_xmtrp_ice(jpi,jpj), diag_ymtrp_ice(jpi,jpj),  & 
     635                diag_xmtrp_snw(jpi,jpj), diag_ymtrp_snw(jpi,jpj),  & 
     636                diag_xatrp(jpi,jpj)    , diag_yatrp(jpi,jpj)    ,  & 
     637                diag_fc_bo(jpi,jpj)   , diag_fc_su(jpi,jpj)   ,    & 
     638                diag_utau_oi(jpi,jpj) , diag_vtau_oi(jpi,jpj) ,    & 
     639                diag_dssh_dx(jpi,jpj) , diag_dssh_dy(jpi,jpj) ,    & 
     640                diag_corstrx(jpi,jpj) , diag_corstry(jpi,jpj) ,    & 
     641                diag_intstrx(jpi,jpj) , diag_intstry(jpi,jpj) ,    & 
     642                diag_sig1(jpi,jpj)    , diag_sig2(jpi,jpj)    ,    & 
     643                STAT = ierr(ii) ) 
    592644 
    593645      ice_alloc = MAXVAL( ierr(:) ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90

    r8233 r8239  
    302302                  ht_i(ji,jj,jl)  = zswitch(ji,jj) * zh_i_ini(ji,jj,jl)                       ! ice thickness 
    303303                  sm_i(ji,jj,jl)  = zswitch(ji,jj) * zsm_i_ini(ji,jj)                         ! salinity 
    304                   o_i(ji,jj,jl)   = zswitch(ji,jj) * 1._wp                                    ! age (1 day) 
     304                  o_i(ji,jj,jl)   = 0._wp                                                     ! age (0 day) 
    305305                  t_su(ji,jj,jl)  = zswitch(ji,jj) * zts_u_ini(ji,jj) + ( 1._wp - zswitch(ji,jj) ) * rt0 ! surf temp 
    306306 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r8233 r8239  
    500500      INTEGER ::   icells            ! number of cells with a_i > puny 
    501501      REAL(wp) ::   hL, hR, farea    ! left and right limits of integration 
     502      REAL(wp) ::   zwfx_snw         ! snow mass flux increment 
    502503 
    503504      INTEGER , POINTER, DIMENSION(:) ::   indxi, indxj   ! compressed indices 
     
    654655                  &                            - sm_i(ji,jj,jl1) * vsw(ij) * rhoic * r1_rdtice     ! and get  sm_i  from the ocean  
    655656            ENDIF 
    656                 
     657 
    657658            !------------------------------------------             
    658659            ! 3.7 Put the snow somewhere in the ocean 
     
    663664            !  During the next time step, thermo_rates will determine whether 
    664665            !  the ocean cools or new ice grows. 
    665             wfx_snw(ji,jj) = wfx_snw(ji,jj) + ( rhosn * vsrdg(ij) * ( 1._wp - rn_fsnowrdg )   &  
    666                &                              + rhosn * vsrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice  ! fresh water source for ocean 
     666            zwfx_snw           = ( rhosn * vsrdg(ij) * ( 1._wp - rn_fsnowrdg )   &  
     667               &                 + rhosn * vsrft(ij) * ( 1._wp - rn_fsnowrft ) ) * r1_rdtice  ! fresh water source for ocean 
     668 
     669            wfx_snw_dyn(ji,jj)  =   wfx_snw_dyn(ji,jj) + zwfx_snw 
     670            wfx_snw(ji,jj)      =   wfx_snw(ji,jj)     + zwfx_snw 
    667671 
    668672            hfx_dyn(ji,jj) = hfx_dyn(ji,jj) + ( - esrdg(ij) * ( 1._wp - rn_fsnowrdg )         &  
     
    789793      END DO ! jl1 (deforming categories) 
    790794 
     795      ! SIMIP diagnostics 
     796      diag_dmi_dyn(:,:) = - wfx_dyn(:,:)     + rhoic * diag_trp_vi(:,:) 
     797      diag_dms_dyn(:,:) = - wfx_snw_dyn(:,:) + rhosn * diag_trp_vs(:,:) 
     798       
    791799      ! 
    792800      CALL wrk_dealloc( jpij,        indxi, indxj ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r7753 r8239  
    117117      REAL(wp) ::   zm1, zm2, zm3, zmassU, zmassV                            ! ice/snow mass 
    118118      REAL(wp) ::   zdelta, zp_delf, zds2, zdt, zdt2, zdiv, zdiv2            ! temporary scalars 
    119       REAL(wp) ::   zTauO, zTauB, zTauE, zCor, zvel                          ! temporary scalars 
     119      REAL(wp) ::   zTauO, zTauB, zTauE, zvel                                ! temporary scalars 
    120120 
    121121      REAL(wp) ::   zsig1, zsig2                                             ! internal ice stress 
    122122      REAL(wp) ::   zresm                                                    ! Maximal error on ice velocity 
    123123      REAL(wp) ::   zintb, zintn                                             ! dummy argument 
     124      REAL(wp) ::   zfac_x, zfac_y 
    124125       
    125126      REAL(wp), POINTER, DIMENSION(:,:) ::   z1_e1t0, z1_e2t0                ! scale factors 
     
    140141                                                                             !   ocean surface (ssh_m) if ice is not embedded 
    141142                                                                             !   ice top surface if ice is embedded    
     143      REAL(wp), POINTER, DIMENSION(:,:) ::   zCorx, zCory                    ! Coriolis stress array 
     144      REAL(wp), POINTER, DIMENSION(:,:) ::   ztaux_oi, ztauy_oi              ! Ocean-to-ice stress array 
     145 
    142146      REAL(wp), POINTER, DIMENSION(:,:) ::   zswitchU, zswitchV              ! dummy arrays 
    143147      REAL(wp), POINTER, DIMENSION(:,:) ::   zmaskU, zmaskV                  ! mask for ice presence 
     
    154158      CALL wrk_alloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 
    155159      CALL wrk_alloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 
     160      CALL wrk_alloc( jpi,jpj, zCorx, zCory) 
     161      CALL wrk_alloc( jpi,jpj, ztaux_oi, ztauy_oi) 
    156162 
    157163#if defined key_agrif  
     
    427433                     &                              + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 
    428434 
     435                  ! Ocean-to-Ice stress 
     436                  ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     437 
    429438                  ! tau_bottom/v_ice 
    430439                  zvel  = MAX( zepsi, SQRT( v_ice(ji,jj) * v_ice(ji,jj) + u_iceV(ji,jj) * u_iceV(ji,jj) ) ) 
     
    432441 
    433442                  ! Coriolis at V-points (energy conserving formulation) 
    434                   zCor  = - 0.25_wp * r1_e2v(ji,jj) *  & 
     443                  zCory(ji,jj)  = - 0.25_wp * r1_e2v(ji,jj) *  & 
    435444                     &    ( zmf(ji,jj  ) * ( e2u(ji,jj  ) * u_ice(ji,jj  ) + e2u(ji-1,jj  ) * u_ice(ji-1,jj  ) )  & 
    436445                     &    + zmf(ji,jj+1) * ( e2u(ji,jj+1) * u_ice(ji,jj+1) + e2u(ji-1,jj+1) * u_ice(ji-1,jj+1) ) ) 
    437446 
    438447                  ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 
    439                   zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCor + zspgV(ji,jj) + zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     448                  zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + ztauy_oi(ji,jj) 
    440449 
    441450                  ! landfast switch => 0 = static friction ; 1 = sliding friction 
     
    451460                  ! Bouillon 2013 
    452461                  !!v_ice(ji,jj) = ( zmV_t(ji,jj) * ( zbeta * v_ice(ji,jj) + v_ice_b(ji,jj) )                  & 
    453                   !!   &           + zfV(ji,jj) + zCor + zTauV_ia(ji,jj) + zTauO * v_oce(ji,jj) + zspgV(ji,jj)  & 
     462                  !!   &           + zfV(ji,jj) + zCory(ji,jj) + zTauV_ia(ji,jj) + zTauO * v_oce(ji,jj) + zspgV(ji,jj)  & 
    454463                  !!   &           ) / MAX( zmV_t(ji,jj) * ( zbeta + 1._wp ) + zTauO - zTauB, zepsi ) * zswitchV(ji,jj) 
    455464 
     
    471480                     &                              + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 
    472481 
     482                  ! Ocean-to-Ice stress 
     483                  ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     484 
    473485                  ! tau_bottom/u_ice 
    474486                  zvel  = MAX( zepsi, SQRT( v_iceU(ji,jj) * v_iceU(ji,jj) + u_ice(ji,jj) * u_ice(ji,jj) ) ) 
     
    476488 
    477489                  ! Coriolis at U-points (energy conserving formulation) 
    478                   zCor  =   0.25_wp * r1_e1u(ji,jj) *  & 
     490                  zCorx(ji,jj)  =   0.25_wp * r1_e1u(ji,jj) *  & 
    479491                     &    ( zmf(ji  ,jj) * ( e1v(ji  ,jj) * v_ice(ji  ,jj) + e1v(ji  ,jj-1) * v_ice(ji  ,jj-1) )  & 
    480492                     &    + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 
    481493                   
    482494                  ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 
    483                   zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCor + zspgU(ji,jj) + zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     495                  zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + ztaux_oi(ji,jj) 
    484496 
    485497                  ! landfast switch => 0 = static friction ; 1 = sliding friction 
     
    495507                  ! Bouillon 2013 
    496508                  !!u_ice(ji,jj) = ( zmU_t(ji,jj) * ( zbeta * u_ice(ji,jj) + u_ice_b(ji,jj) )                  & 
    497                   !!   &           + zfU(ji,jj) + zCor + zTauU_ia(ji,jj) + zTauO * u_oce(ji,jj) + zspgU(ji,jj)  & 
     509                  !!   &           + zfU(ji,jj) + zCorx(ji,jj) + zTauU_ia(ji,jj) + zTauO * u_oce(ji,jj) + zspgU(ji,jj)  & 
    498510                  !!   &           ) / MAX( zmU_t(ji,jj) * ( zbeta + 1._wp ) + zTauO - zTauB, zepsi ) * zswitchU(ji,jj) 
    499511               END DO 
     
    516528                     &                              + ( v_iceU(ji,jj) - v_oceU(ji,jj) ) * ( v_iceU(ji,jj) - v_oceU(ji,jj) ) ) 
    517529 
     530                  ! Ocean-to-Ice stress 
     531                  ztaux_oi(ji,jj) = zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     532 
    518533                  ! tau_bottom/u_ice 
    519534                  zvel  = MAX( zepsi, SQRT( v_iceU(ji,jj) * v_iceU(ji,jj) + u_ice(ji,jj) * u_ice(ji,jj) ) ) 
     
    521536 
    522537                  ! Coriolis at U-points (energy conserving formulation) 
    523                   zCor  =   0.25_wp * r1_e1u(ji,jj) *  & 
     538                  zCorx(ji,jj)  =   0.25_wp * r1_e1u(ji,jj) *  & 
    524539                     &    ( zmf(ji  ,jj) * ( e1v(ji  ,jj) * v_ice(ji  ,jj) + e1v(ji  ,jj-1) * v_ice(ji  ,jj-1) )  & 
    525540                     &    + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 
    526541 
    527542                  ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 
    528                   zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCor + zspgU(ji,jj) + zTauO * ( u_oce(ji,jj) - u_ice(ji,jj) ) 
     543                  zTauE = zfU(ji,jj) + zTauU_ia(ji,jj) + zCorx(ji,jj) + zspgU(ji,jj) + ztaux_oi(ji,jj) 
    529544 
    530545                  ! landfast switch => 0 = static friction ; 1 = sliding friction 
     
    540555                  ! Bouillon 2013 
    541556                  !!u_ice(ji,jj) = ( zmU_t(ji,jj) * ( zbeta * u_ice(ji,jj) + u_ice_b(ji,jj) )                  & 
    542                   !!   &           + zfU(ji,jj) + zCor + zTauU_ia(ji,jj) + zTauO * u_oce(ji,jj) + zspgU(ji,jj)  & 
     557                  !!   &           + zfU(ji,jj) + zCorx(ji,jj) + zTauU_ia(ji,jj) + zTauO * u_oce(ji,jj) + zspgU(ji,jj)  & 
    543558                  !!   &           ) / MAX( zmU_t(ji,jj) * ( zbeta + 1._wp ) + zTauO - zTauB, zepsi ) * zswitchU(ji,jj) 
    544559               END DO 
     
    559574                     &                              + ( u_iceV(ji,jj) - u_oceV(ji,jj) ) * ( u_iceV(ji,jj) - u_oceV(ji,jj) ) ) 
    560575 
     576                  ! Ocean-to-Ice stress 
     577                  ztauy_oi(ji,jj) = zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     578 
    561579                  ! tau_bottom/v_ice 
    562580                  zvel  = MAX( zepsi, SQRT( v_ice(ji,jj) * v_ice(ji,jj) + u_iceV(ji,jj) * u_iceV(ji,jj) ) ) 
     
    564582                   
    565583                  ! Coriolis at V-points (energy conserving formulation) 
    566                   zCor  = - 0.25_wp * r1_e2v(ji,jj) *  & 
     584                  zCory(ji,jj)  = - 0.25_wp * r1_e2v(ji,jj) *  & 
    567585                     &    ( zmf(ji,jj  ) * ( e2u(ji,jj  ) * u_ice(ji,jj  ) + e2u(ji-1,jj  ) * u_ice(ji-1,jj  ) )  & 
    568586                     &    + zmf(ji,jj+1) * ( e2u(ji,jj+1) * u_ice(ji,jj+1) + e2u(ji-1,jj+1) * u_ice(ji-1,jj+1) ) ) 
    569587 
    570588                  ! Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io 
    571                   zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCor + zspgV(ji,jj) + zTauO * ( v_oce(ji,jj) - v_ice(ji,jj) ) 
     589                  zTauE = zfV(ji,jj) + zTauV_ia(ji,jj) + zCory(ji,jj) + zspgV(ji,jj) + ztauy_oi(ji,jj) 
    572590 
    573591                  ! landfast switch => 0 = static friction (tau_icebfr > zTauE); 1 = sliding friction 
     
    583601                  ! Bouillon 2013 
    584602                  !!v_ice(ji,jj) = ( zmV_t(ji,jj) * ( zbeta * v_ice(ji,jj) + v_ice_b(ji,jj) )                  & 
    585                   !!   &           + zfV(ji,jj) + zCor + zTauV_ia(ji,jj) + zTauO * v_oce(ji,jj) + zspgV(ji,jj)  & 
     603                  !!   &           + zfV(ji,jj) + zCory(ji,jj) + zTauV_ia(ji,jj) + zTauO * v_oce(ji,jj) + zspgV(ji,jj)  & 
    586604                  !!   &           ) / MAX( zmV_t(ji,jj) * ( zbeta + 1._wp ) + zTauO - zTauB, zepsi ) * zswitchV(ji,jj) 
    587605               END DO 
     
    662680 
    663681      !------------------------------------------------------------------------------! 
    664       ! 5) Control prints of residual and charge ellipse 
     682      ! 5) SIMIP diagnostics 
     683      !------------------------------------------------------------------------------! 
     684                            
     685      DO jj = 2, jpjm1 
     686         DO ji = 2, jpim1 
     687             rswitch  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice, 0 if no ice 
     688 
     689             ! Stress tensor invariants (normal and shear stress N/m) 
     690             diag_sig1(ji,jj) = ( zs1(ji,jj) + zs2(ji,jj) ) * rswitch                                 ! normal stress 
     691             diag_sig2(ji,jj) = SQRT( ( zs1(ji,jj) - zs2(ji,jj) )**2 + 4*zs12(ji,jj)**2 ) * rswitch   ! shear stress 
     692 
     693             ! Stress terms of the momentum equation (N/m2) 
     694             diag_dssh_dx(ji,jj) = zspgU(ji,jj) * rswitch    ! sea surface slope stress term 
     695             diag_dssh_dy(ji,jj) = zspgV(ji,jj) * rswitch 
     696 
     697             diag_corstrx(ji,jj) = zCorx(ji,jj) * rswitch    ! Coriolis stress term 
     698             diag_corstry(ji,jj) = zCory(ji,jj) * rswitch 
     699 
     700             diag_intstrx(ji,jj) = zfU(ji,jj)   * rswitch    ! internal stress term 
     701             diag_intstry(ji,jj) = zfV(ji,jj)   * rswitch 
     702            
     703             diag_utau_oi(ji,jj) = ztaux_oi(ji,jj) * rswitch  ! oceanic stress 
     704             diag_vtau_oi(ji,jj) = ztauy_oi(ji,jj) * rswitch 
     705 
     706             ! 2D ice mass, snow mass, area transport arrays (X, Y) 
     707             zfac_x = 0.5 * u_ice(ji,jj) * e2u(ji,jj) * rswitch 
     708             zfac_y = 0.5 * v_ice(ji,jj) * e1v(ji,jj) * rswitch 
     709 
     710             diag_xmtrp_ice(ji,jj) = rhoic * zfac_x * ( vt_i(ji+1,jj) + vt_i(ji,jj) ) ! ice mass transport, X-component 
     711             diag_ymtrp_ice(ji,jj) = rhoic * zfac_y * ( vt_i(ji,jj+1) + vt_i(ji,jj) ) !        ''           Y-   '' 
     712 
     713             diag_xmtrp_snw(ji,jj) = rhosn * zfac_x * ( vt_s(ji+1,jj) + vt_s(ji,jj) ) ! snow mass transport, X-component 
     714             diag_ymtrp_snw(ji,jj) = rhosn * zfac_y * ( vt_s(ji,jj+1) + vt_s(ji,jj) ) !          ''          Y-   '' 
     715 
     716             diag_xatrp(ji,jj)     = zfac_x * ( at_i(ji+1,jj) + at_i(ji,jj) )         ! area transport,      X-component 
     717             diag_yatrp(ji,jj)     = zfac_y * ( at_i(ji,jj+1) + at_i(ji,jj) )         !        ''            Y-   '' 
     718 
     719         END DO 
     720      END DO 
     721 
     722      CALL lbc_lnk_multi(   diag_sig1   , 'T',  1., diag_sig2   , 'T',  1.,   & 
     723                 &          diag_dssh_dx, 'U', -1., diag_dssh_dy, 'V', -1.,   & 
     724                 &          diag_corstrx, 'U', -1., diag_corstry, 'V', -1.,   &  
     725                 &          diag_intstrx, 'U', -1., diag_intstry, 'V', -1.    ) 
     726 
     727      CALL lbc_lnk_multi(   diag_utau_oi, 'U', -1., diag_vtau_oi, 'V', -1.    ) 
     728 
     729      ! 
     730      !------------------------------------------------------------------------------! 
     731      ! 6) Control prints of residual and charge ellipse 
    665732      !------------------------------------------------------------------------------! 
    666733      ! 
     
    703770      CALL wrk_dealloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 
    704771      CALL wrk_dealloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 
     772      CALL wrk_dealloc( jpi,jpj, zCorx, zCory ) 
     773      CALL wrk_dealloc( jpi,jpj, ztaux_oi, ztauy_oi ) 
    705774 
    706775   END SUBROUTINE lim_rhg 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r8233 r8239  
    8383      INTEGER  :: ji, jj, jk, jl   ! dummy loop indices 
    8484      INTEGER  :: nbpb             ! nb of icy pts for vertical thermo calculations 
    85       REAL(wp) :: zfric_u, zqld, zqfr 
     85      REAL(wp) :: zfric_u, zqld, zqfr, zqfr_neg 
    8686      REAL(wp) :: zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b  
    8787      REAL(wp), PARAMETER :: zfric_umin = 0._wp           ! lower bound for the friction velocity (cice value=5.e-04) 
     
    175175 
    176176            ! --- Energy needed to bring ocean surface layer until its freezing (<0, J.m-2) --- ! 
     177            ! includes supercooling potential energy (>0) or "above-freezing" energy (<0) 
    177178            zqfr = tmask(ji,jj,1) * rau0 * rcp * e3t_m(ji,jj) * ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ) 
    178179 
    179             ! --- Energy from the turbulent oceanic heat flux (W/m2) --- ! 
     180            ! --- Above-freezing sensible heat content (J/m2 grid) 
     181            zqfr_neg = tmask(ji,jj,1) * rau0 * rcp * e3t_m(ji,jj) * MIN( ( t_bo(ji,jj) - ( sst_m(ji,jj) + rt0 ) ), 0._wp ) 
     182 
     183            ! --- Sensible ocean-to-ice heat flux (W/m2) 
    180184            zfric_u      = MAX( SQRT( zfric(ji,jj) ), zfric_umin )  
    181             fhtur(ji,jj) = MAX( 0._wp, rswitch * rau0 * rcp * zch  * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ) ! W.m-2 
    182             fhtur(ji,jj) = rswitch * MIN( fhtur(ji,jj), - zqfr * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ) 
     185            fhtur(ji,jj) = rswitch * rau0 * rcp * zch  * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2 
     186 
     187            fhtur(ji,jj) = rswitch * MIN( fhtur(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ) 
    183188            ! upper bound for fhtur: the heat retrieved from the ocean must be smaller than the heat necessary to reach  
    184189            !                        the freezing point, so that we do not have SST < T_freeze 
    185190            !                        This implies: - ( fhtur(ji,jj) * at_i(ji,jj) * rtdice ) - zqfr >= 0 
    186191 
    187             !-- Energy Budget of the leads (J.m-2). Must be < 0 to form ice 
     192            !-- Energy Budget of the leads (J.m-2), source of lateral accretion. Must be < 0 to form ice 
    188193            qlead(ji,jj) = MIN( 0._wp , zqld - ( fhtur(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr ) 
    189194 
     
    470475         CALL tab_2d_1d( nbpb, wfx_snw_sum_1d(1:nbpb), wfx_snw_sum  , jpi, jpj, npb(1:nbpb) ) 
    471476         CALL tab_2d_1d( nbpb, wfx_sub_1d (1:nbpb), wfx_sub         , jpi, jpj, npb(1:nbpb) ) 
     477         CALL tab_2d_1d( nbpb, wfx_snw_sub_1d(1:nbpb), wfx_snw_sub  , jpi, jpj, npb(1:nbpb) ) 
     478         CALL tab_2d_1d( nbpb, wfx_ice_sub_1d(1:nbpb), wfx_ice_sub  , jpi, jpj, npb(1:nbpb) ) 
    472479         ! 
    473480         CALL tab_2d_1d( nbpb, wfx_bog_1d (1:nbpb), wfx_bog         , jpi, jpj, npb(1:nbpb) ) 
     
    500507         CALL tab_2d_1d( nbpb, hfx_err_rem_1d (1:nbpb), hfx_err_rem , jpi, jpj, npb(1:nbpb) ) 
    501508         ! 
     509         ! SIMIP diagnostics 
     510         CALL tab_2d_1d( nbpb, diag_fc_bo_1d   (1:nbpb), diag_fc_bo  , jpi, jpj, npb(1:nbpb) ) 
     511         CALL tab_2d_1d( nbpb, diag_fc_su_1d   (1:nbpb), diag_fc_su  , jpi, jpj, npb(1:nbpb) ) 
     512         ! 
    502513      CASE( 2 )            ! from 1D to 2D 
    503514         ! 
     
    522533         CALL tab_1d_2d( nbpb, wfx_snw_sum   , npb, wfx_snw_sum_1d(1:nbpb),jpi, jpj ) 
    523534         CALL tab_1d_2d( nbpb, wfx_sub       , npb, wfx_sub_1d(1:nbpb)   , jpi, jpj ) 
     535         CALL tab_1d_2d( nbpb, wfx_snw_sub   , npb, wfx_snw_sub_1d(1:nbpb), jpi, jpj ) 
     536         CALL tab_1d_2d( nbpb, wfx_ice_sub   , npb, wfx_ice_sub_1d(1:nbpb), jpi, jpj ) 
    524537         ! 
    525538         CALL tab_1d_2d( nbpb, wfx_bog       , npb, wfx_bog_1d(1:nbpb)   , jpi, jpj ) 
     
    554567         CALL tab_1d_2d( nbpb, qns_ice(:,:,jl), npb, qns_ice_1d(1:nbpb) , jpi, jpj) 
    555568         CALL tab_1d_2d( nbpb, ftr_ice(:,:,jl), npb, ftr_ice_1d(1:nbpb) , jpi, jpj ) 
    556          !          
     569         ! 
     570         ! SIMIP diagnostics          
     571         CALL tab_1d_2d( nbpb, t_si(:,:,jl)   , npb, t_si_1d    (1:nbpb)     , jpi, jpj ) 
     572         CALL tab_1d_2d( nbpb, diag_fc_bo     , npb, diag_fc_bo_1d(1:nbpb)   , jpi, jpj ) 
     573         CALL tab_1d_2d( nbpb, diag_fc_su     , npb, diag_fc_su_1d(1:nbpb)   , jpi, jpj ) 
    557574      END SELECT 
    558575      ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r8233 r8239  
    8787      REAL(wp) ::   zdE          ! specific enthalpy difference (J/kg) 
    8888      REAL(wp) ::   zfmdt        ! exchange mass flux x time step (J/m2), >0 towards the ocean 
    89       REAL(wp) ::   zsstK        ! SST in Kelvin 
     89      REAL(wp) ::   zsstK        ! SST (K) 
    9090 
    9191      REAL(wp), POINTER, DIMENSION(:) ::   zqprec      ! energy of fallen snow                       (J.m-3) 
     
    277277            &                              ) * a_i_1d(ji) * r1_rdtice 
    278278         ! Mass flux by sublimation 
    279          wfx_sub_1d(ji) =  wfx_sub_1d(ji) - rhosn * a_i_1d(ji) * zdh_s_sub(ji) * r1_rdtice 
     279         wfx_snw_sub_1d(ji) = wfx_snw_sub_1d(ji) - rhosn * a_i_1d(ji) * zdh_s_sub(ji) * r1_rdtice 
     280 
    280281         ! new snow thickness 
    281282         ht_s_1d(ji)    =  MAX( 0._wp , ht_s_1d(ji) + zdh_s_sub(ji) ) 
     
    378379            hfx_sub_1d(ji) = hfx_sub_1d(ji) + zdum * q_i_1d(ji,jk) * a_i_1d(ji) * r1_rdtice 
    379380            ! Mass flux > 0 
    380             wfx_sub_1d(ji) =  wfx_sub_1d(ji) - rhoic * a_i_1d(ji) * zdum * r1_rdtice 
     381            wfx_ice_sub_1d(ji) =  wfx_ice_sub_1d(ji) - rhoic * a_i_1d(ji) * zdum * r1_rdtice 
     382 
    381383            ! update remaining mass flux 
    382384            zevap_rema(ji)  = zevap_rema(ji) + zdum * rhoic 
     
    615617         IF( ln_limctl .AND. zq_rema(ji) < 0. .AND. lwp ) WRITE(numout,*) 'ALERTE zq_rema <0 = ', zq_rema(ji) 
    616618      END DO 
    617        
     619 
     620      ! Water fluxes 
     621      DO ji = kideb, kiut 
     622         wfx_sub_1d(ji) = wfx_snw_sub_1d(ji) + wfx_ice_sub_1d(ji) ! sum ice and snow sublimation contributions 
     623      END DO 
     624 
    618625      ! 
    619626      !------------------------------------------------------------------------------| 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r7813 r8239  
    734734      END DO  ! End of the do while iterative procedure 
    735735 
     736      ! MV SIMIP 2016 
     737      !--- Snow-ice interfacial temperature (diagnostic SIMIP) 
     738      DO ji = kideb, kiut 
     739         zfac        = 1. / MAX( epsi10 , rn_cdsn * zh_i(ji) + ztcond_i(ji,1) * zh_s(ji) ) 
     740         t_si_1d(ji) = ( rn_cdsn        * zh_i(ji) * t_s_1d(ji,1) + & 
     741            &            ztcond_i(ji,1) * zh_s(ji) * t_i_1d(ji,1) ) * zfac 
     742      END DO 
     743      WHERE( ( zh_s < 1.0e-3 ) ) ; t_si_1d(:) = t_su_1d(:) ; END WHERE 
     744      ! END MV SIMIP 2016 
     745 
    736746      IF( ln_limctl .AND. lwp ) THEN 
    737747         WRITE(numout,*) ' zerritmax : ', zerritmax 
     
    751761         fc_bo_i(ji)     =  - zkappa_i(ji,nlay_i) * ( zg1*(t_bo_1d(ji) - t_i_1d(ji,nlay_i)) ) 
    752762      END DO 
     763 
     764      ! MV SIMIP 2016 
     765      !--- Conduction fluxes (positive downwards) 
     766      diag_fc_bo_1d(:)   = diag_fc_bo_1d(:) + fc_bo_i(:) * a_i_1d(:) / at_i_1d(:) 
     767      diag_fc_su_1d(:)   = diag_fc_su_1d(:) + fc_su(:)   * a_i_1d(:) / at_i_1d(:) 
     768      ! END MV SIMIP 2016 
    753769 
    754770      ! --- computes sea ice energy of melting compulsory for limthd_dh --- ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90

    r7753 r8239  
    8080               IF( at_i(ji,jj) > rn_amax_2d(ji,jj) .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    8181                  a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    82                   oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    8382               ENDIF 
    8483            END DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90

    r7753 r8239  
    7777            IF( v_i(ji,jj,1) > 0._wp .AND. ht_i(ji,jj,1) < rn_himin ) THEN 
    7878               a_i (ji,jj,1) = a_i (ji,jj,1) * ht_i(ji,jj,1) / rn_himin 
    79                oa_i(ji,jj,1) = oa_i(ji,jj,1) * ht_i(ji,jj,1) / rn_himin 
    8079            ENDIF 
    8180         END DO 
     
    9594               IF( at_i(ji,jj) > rn_amax_2d(ji,jj) .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    9695                  a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    97                   oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    9896               ENDIF 
    9997            END DO 
     
    155153      ! ------------------------------------------------- 
    156154      DO jl  = 1, jpl 
    157          oa_i(:,:,jl) = oa_i(:,:,jl) + a_i(:,:,jl) * rdt_ice / rday   ! ice natural aging 
     155         oa_i(:,:,jl) = oa_i(:,:,jl) + a_i(:,:,jl) * rdt_ice          ! ice natural aging 
    158156         afx_thd(:,:) = afx_thd(:,:) + ( a_i(:,:,jl) - a_i_b(:,:,jl) ) * r1_rdtice 
    159157      END DO 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r8233 r8239  
    120120         tm_i(:,:)  = 0._wp 
    121121         tm_su(:,:) = 0._wp 
     122         tm_si(:,:) = 0._wp 
    122123         om_i (:,:) = 0._wp 
    123124         DO jl = 1, jpl 
     
    127128                  rswitch      = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi10 ) ) 
    128129                  tm_su(ji,jj) = tm_su(ji,jj) + rswitch * ( t_su(ji,jj,jl) - rt0 ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi10 ) 
    129                   om_i (ji,jj) = om_i (ji,jj) + rswitch *   oa_i(ji,jj,jl)                         / MAX( at_i(ji,jj) , epsi10 ) 
     130                  tm_si(ji,jj) = tm_si(ji,jj) + rswitch * ( t_si(ji,jj,jl) - rt0 ) * a_i(ji,jj,jl) / MAX( at_i(ji,jj) , epsi10 ) 
     131                  om_i (ji,jj) = om_i (ji,jj) + rswitch *   oa_i(ji,jj,jl)                         / MAX( at_i(ji,jj) , epsi06 ) 
    130132               END DO 
    131133            END DO 
     
    145147         tm_i  = tm_i  + rt0 
    146148         tm_su = tm_su + rt0 
     149         tm_si = tm_si + rt0 
    147150         ! 
    148151      ENDIF 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r8233 r8239  
    5454      ! 
    5555      INTEGER  ::  ji, jj, jk, jl  ! dummy loop indices 
    56       REAL(wp) ::  z1_365 
    57       REAL(wp) ::  z2da, z2db, ztmp 
     56      REAL(wp) ::  z2da, z2db, ztmp, zrho1, zrho2 
    5857      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zswi2 
    5958      REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, zswi    ! 2D workspace 
     59      REAL(wp), POINTER, DIMENSION(:,:)   ::  zfb          ! ice freeboard 
     60      REAL(wp), POINTER, DIMENSION(:,:)   ::  zamask, zamask15 ! 15% concentration mask 
     61 
     62      ! Global ice diagnostics (SIMIP) 
     63      REAL(wp) ::  zdiag_area_nh, &   ! area, extent, volume 
     64         &         zdiag_extt_nh, & 
     65         &         zdiag_area_sh, &  
     66         &         zdiag_extt_sh, &  
     67         &         zdiag_volu_nh, &  
     68         &         zdiag_volu_sh  
     69 
    6070      !!------------------------------------------------------------------- 
    6171 
     
    6474      CALL wrk_alloc( jpi,jpj,jpl, zswi2 ) 
    6575      CALL wrk_alloc( jpi,jpj    , z2d, zswi ) 
    66  
     76      CALL wrk_alloc( jpi,jpj    , zfb, zamask, zamask15 ) 
    6777      !----------------------------- 
    6878      ! Mean category values 
    6979      !----------------------------- 
    70       z1_365 = 1._wp / 365._wp 
    7180 
    7281      ! brine volume 
     
    7685      DO jj = 1, jpj 
    7786         DO ji = 1, jpi 
    78             zswi(ji,jj)  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) 
     87            zswi(ji,jj)      = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice, 0 if no ice 
     88            zamask(ji,jj)    = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.05   ) ) ! 1 if 5% ice, 0 if less - required to mask thickness and snow depth 
     89            zamask15(ji,jj)  = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.15   ) ) ! 1 if 15% ice, 0 if less 
    7990         END DO 
    8091      END DO 
     
    119130      IF ( iom_use( "tau_icebfr" ) )    CALL iom_put( "tau_icebfr"  , tau_icebfr             )  ! ice friction with ocean bottom (landfast ice)   
    120131      ! 
    121       IF ( iom_use( "miceage" ) )       CALL iom_put( "miceage"     , om_i * zswi * z1_365   )  ! mean ice age 
    122       IF ( iom_use( "icethic_cea" ) )   CALL iom_put( "icethic_cea" , htm_i * zswi           )  ! ice thickness mean 
    123       IF ( iom_use( "snowthic_cea" ) )  CALL iom_put( "snowthic_cea", htm_s * zswi           )  ! snow thickness mean 
     132      IF ( iom_use( "miceage" ) )       CALL iom_put( "miceage"     , om_i * zswi * zamask15 )  ! mean ice age 
    124133      IF ( iom_use( "micet" ) )         CALL iom_put( "micet"       , ( tm_i  - rt0 ) * zswi )  ! ice mean    temperature 
    125134      IF ( iom_use( "icest" ) )         CALL iom_put( "icest"       , ( tm_su - rt0 ) * zswi )  ! ice surface temperature 
     
    133142      CALL iom_put( "isnowhc"     , et_s  * zswi        )        ! snow total heat content 
    134143      CALL iom_put( "ibrinv"      , bvm_i * zswi * 100. )        ! brine volume 
    135       CALL iom_put( "utau_ice"    , utau_ice            )        ! wind stress over ice along i-axis at I-point 
    136       CALL iom_put( "vtau_ice"    , vtau_ice            )        ! wind stress over ice along j-axis at I-point 
     144      CALL iom_put( "utau_ice"    , utau_ice*zswi       )        ! wind stress over ice along i-axis at I-point 
     145      CALL iom_put( "vtau_ice"    , vtau_ice*zswi       )        ! wind stress over ice along j-axis at I-point 
    137146      CALL iom_put( "snowpre"     , sprecip * 86400.    )        ! snow precipitation  
    138147      CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity 
    139148 
    140       CALL iom_put( "icestr"      , strength * zswi )    ! ice strength 
    141       CALL iom_put( "idive"       , divu_i * 1.0e8      )    ! divergence 
    142       CALL iom_put( "ishear"      , shear_i * 1.0e8     )    ! shear 
     149      CALL iom_put( "icestr"      , strength * zswi )            ! ice strength 
     150      CALL iom_put( "idive"       , divu_i              )        ! divergence 
     151      CALL iom_put( "ishear"      , shear_i             )        ! shear 
    143152      CALL iom_put( "snowvol"     , vt_s   * zswi       )        ! snow volume 
    144153       
     
    186195      CALL iom_put( "vfxsnw"     , wfx_snw * ztmp       )        ! total snw growth/melt  
    187196      CALL iom_put( "vfxsub"     , wfx_sub * ztmp       )        ! sublimation (snow/ice)  
    188       CALL iom_put( "vfxsub_err" , wfx_err_sub * ztmp   )        ! "excess" of sublimation sent to ocean  
    189        
    190       CALL iom_put( "afxtot"     , afx_tot * rday       )        ! concentration tendency (total) 
    191       CALL iom_put( "afxdyn"     , afx_dyn * rday       )        ! concentration tendency (dynamics) 
    192       CALL iom_put( "afxthd"     , afx_thd * rday       )        ! concentration tendency (thermo) 
     197      CALL iom_put( "vfxsub_err" , wfx_err_sub * ztmp   )        ! "excess" of sublimation sent to ocean       
     198  
     199      CALL iom_put( "afxtot"     , afx_tot              )        ! concentration tendency (total) 
     200      CALL iom_put( "afxdyn"     , afx_dyn              )        ! concentration tendency (dynamics) 
     201      CALL iom_put( "afxthd"     , afx_thd              )        ! concentration tendency (thermo) 
    193202 
    194203      CALL iom_put ('hfxthd'     , hfx_thd(:,:)         )   !   
     
    218227      ! END MV MP 2016 
    219228 
    220        
    221       !-------------------------------- 
    222       ! Output values for each category 
    223       !-------------------------------- 
     229      !---------------------------------- 
     230      ! Output category-dependent fields 
     231      !---------------------------------- 
    224232      IF ( iom_use( "iceconc_cat"  ) )  CALL iom_put( "iceconc_cat"      , a_i   * zswi2   )        ! area for categories 
    225233      IF ( iom_use( "icethic_cat"  ) )  CALL iom_put( "icethic_cat"      , ht_i  * zswi2   )        ! thickness for categories 
     
    231239      IF ( iom_use( "snwtemp_cat"  ) )  CALL iom_put( "snwtemp_cat", ( SUM( t_s(:,:,:,:), dim=3 ) * r1_nlay_s - rt0 ) * zswi2 ) 
    232240      ! ice age 
    233       IF ( iom_use( "iceage_cat"   ) )  CALL iom_put( "iceage_cat" , o_i * zswi2 * z1_365 ) 
     241      IF ( iom_use( "iceage_cat"   ) )  CALL iom_put( "iceage_cat" , o_i * zswi2 )  
    234242      ! brine volume 
    235243      IF ( iom_use( "brinevol_cat" ) )  CALL iom_put( "brinevol_cat", bv_i * 100. * zswi2 ) 
     
    244252      ! END MV MP 2016 
    245253 
     254      !-------------------------------- 
     255      ! Add-ons for SIMIP 
     256      !-------------------------------- 
     257      zrho1 = ( rau0 - rhoic ) / rau0; zrho2 = rhosn / rau0 
     258 
     259      IF  ( iom_use( "icethic"  ) ) CALL iom_put( "icethic"     , htm_i * zamask             )          ! Ice thickness  
     260      IF  ( iom_use( "icepres"  ) ) CALL iom_put( "icepres"     , zswi                       )          ! Ice presence (1 or 0)  
     261      IF  ( iom_use( "snowthic" ) ) CALL iom_put( "snowthic"    , htm_s * zamask             )          ! Snow thickness        
     262      IF  ( iom_use( "icemass"  ) ) CALL iom_put( "icemass"     , rhoic * vt_i(:,:) * zswi   )          ! Ice mass per cell area  
     263      IF  ( iom_use( "snomass"  ) ) CALL iom_put( "snomass"     , rhosn * vt_s(:,:) * zswi   )          ! Snow mass per cell area 
     264      IF  ( iom_use( "icesnt"   ) ) CALL iom_put( "icesnt"      , ( tm_si - rt0 ) * zswi     )          ! Snow-ice interface temperature 
     265      IF  ( iom_use( "icebot"   ) ) CALL iom_put( "icebot"      , ( t_bo  - rt0 ) * zswi     )          ! Ice bottom temperature 
     266      IF  ( iom_use( "icesmass" ) ) CALL iom_put( "icesmass"    , SUM( smv_i, DIM = 3 ) * rhoic * 1.0e-3 * zswi )   ! Mass of salt in sea ice per cell area 
     267      IF  ( iom_use( "icefb"    ) ) THEN 
     268         zfb(:,:) = ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) ) * zswi(:,:)                              
     269         WHERE( zfb < 0._wp ) ;   zfb = 0._wp ;   END WHERE 
     270                                    CALL iom_put( "icefb"       , zfb                        )          ! Ice freeboard 
     271      ENDIF 
     272      IF  ( iom_use( "dmithd"   ) ) CALL iom_put( "dmithd"      , - wfx_bog - wfx_bom - wfx_sum   &     ! Sea-ice mass change from thermodynamics 
     273              &                     - wfx_sni - wfx_opw - wfx_res ) 
     274      IF  ( iom_use( "dmidyn"   ) ) CALL iom_put( "dmidyn"      ,   diag_dmi_dyn             )          ! Sea-ice mass change from dynamics 
     275      IF  ( iom_use( "dmiopw"   ) ) CALL iom_put( "dmiopw"      , - wfx_opw                  )          ! Sea-ice mass change through growth in open water 
     276      IF  ( iom_use( "dmibog"   ) ) CALL iom_put( "dmibog"      , - wfx_bog                  )          ! Sea-ice mass change through basal growth 
     277      IF  ( iom_use( "dmisni"   ) ) CALL iom_put( "dmisni"      , - wfx_sni                  )          ! Sea-ice mass change through snow-to-ice conversion 
     278      IF  ( iom_use( "dmisum"   ) ) CALL iom_put( "dmisum"      , - wfx_sum                  )          ! Sea-ice mass change through surface melting 
     279      IF  ( iom_use( "dmibom"   ) ) CALL iom_put( "dmibom"      , - wfx_bom                  )          ! Sea-ice mass change through bottom melting 
     280 
     281      IF  ( iom_use( "dmtsub"   ) ) CALL iom_put( "dmtsub"      , - wfx_sub                  )          ! Sea-ice mass change through evaporation and sublimation 
     282      IF  ( iom_use( "dmssub"   ) ) CALL iom_put( "dmssub"      , - wfx_snw_sub              )          ! Snow mass change through sublimation 
     283      IF  ( iom_use( "dmisub"   ) ) CALL iom_put( "dmisub"      , - wfx_ice_sub              )          ! Sea-ice mass change through sublimation 
     284 
     285      IF  ( iom_use( "dmsspr"   ) ) CALL iom_put( "dmsspr"      , - wfx_spr                  )          ! Snow mass change through snow fall 
     286      IF  ( iom_use( "dmsssi"   ) ) CALL iom_put( "dmsssi"      ,   wfx_sni*rhosn/rhoic      )          ! Snow mass change through snow-to-ice conversion 
     287 
     288      IF  ( iom_use( "dmsmel"   ) ) CALL iom_put( "dmsmel"      , - wfx_snw_sum              )          ! Snow mass change through melt 
     289      IF  ( iom_use( "dmsdyn"   ) ) CALL iom_put( "dmsdyn"      ,   diag_dms_dyn             )          ! Snow mass change through dynamics 
     290 
     291      IF  ( iom_use( "hfxconbo" ) ) CALL iom_put( "hfxconbo"    ,   diag_fc_bo               )          ! Bottom conduction flux 
     292      IF  ( iom_use( "hfxconsu" ) ) CALL iom_put( "hfxconsu"    ,   diag_fc_su               )          ! Surface conduction flux 
     293 
     294      IF  ( iom_use( "wfxtot"   ) ) CALL iom_put( "wfxtot"      ,   wfx_ice                  )          ! Total freshwater flux from sea ice 
     295      IF  ( iom_use( "wfxsum"   ) ) CALL iom_put( "wfxsum"      ,   wfx_sum                  )          ! Freshwater flux from sea-ice surface 
     296 
     297      IF  ( iom_use( "utau_oi"  ) ) CALL iom_put( "utau_oi"     ,   diag_utau_oi*zswi        )          ! X-component of ocean stress on sea ice 
     298      IF  ( iom_use( "vtau_oi"  ) ) CALL iom_put( "vtau_oi"     ,   diag_vtau_oi*zswi        )          ! Y-component of ocean stress on sea ice 
     299 
     300      IF  ( iom_use( "dssh_dx"  ) ) CALL iom_put( "dssh_dx"     ,   diag_dssh_dx*zswi        )          ! Sea-surface tilt term in force balance (x-component) 
     301      IF  ( iom_use( "dssh_dy"  ) ) CALL iom_put( "dssh_dy"     ,   diag_dssh_dy*zswi        )          ! Sea-surface tilt term in force balance (y-component) 
     302 
     303      IF  ( iom_use( "corstrx"  ) ) CALL iom_put( "corstrx"     ,   diag_corstrx*zswi        )          ! Coriolis force term in force balance (x-component) 
     304      IF  ( iom_use( "corstry"  ) ) CALL iom_put( "corstry"     ,   diag_corstry*zswi        )          ! Coriolis force term in force balance (y-component) 
     305 
     306      IF  ( iom_use( "intstrx"  ) ) CALL iom_put( "intstrx"     ,   diag_intstrx*zswi        )          ! Internal force term in force balance (x-component) 
     307      IF  ( iom_use( "intstry"  ) ) CALL iom_put( "intstry"     ,   diag_intstry*zswi        )          ! Internal force term in force balance (y-component) 
     308 
     309      IF  ( iom_use( "normstr"  ) ) CALL iom_put( "normstr"     ,   diag_sig1   *zswi        )          ! Normal stress 
     310      IF  ( iom_use( "sheastr"  ) ) CALL iom_put( "sheastr"     ,   diag_sig2   *zswi        )          ! Shear stress 
     311 
     312      IF  ( iom_use( "xmtrpice" ) ) CALL iom_put( "xmtrpice"     ,  diag_xmtrp_ice           )          ! X-component of sea-ice mass transport 
     313      IF  ( iom_use( "ymtrpice" ) ) CALL iom_put( "ymtrpice"     ,  diag_ymtrp_ice           )          ! Y-component of sea-ice mass transport 
     314 
     315      IF  ( iom_use( "xmtrpsnw" ) ) CALL iom_put( "xmtrpsnw"     ,  diag_xmtrp_snw           )          ! X-component of snow mass transport 
     316      IF  ( iom_use( "ymtrpsnw" ) ) CALL iom_put( "ymtrpsnw"     ,  diag_ymtrp_snw           )          ! Y-component of snow mass transport 
     317 
     318      IF  ( iom_use( "xatrp"    ) ) CALL iom_put( "xatrp"        ,  diag_xatrp               )          ! X-component of ice area transport 
     319      IF  ( iom_use( "yatrp"    ) ) CALL iom_put( "yatrp"        ,  diag_yatrp               )          ! Y-component of ice area transport 
     320 
     321      !-------------------------------- 
     322      ! Global ice diagnostics (SIMIP) 
     323      !-------------------------------- 
     324 
     325      IF ( iom_use( "NH_icearea" ) .OR. iom_use( "NH_icevolu" ) .OR. iom_use( "NH_iceextt" ) )   THEN   ! NH integrated diagnostics 
     326  
     327         WHERE( fcor > 0._wp ); zswi(:,:) = 1.0e-12 
     328         ELSEWHERE            ; zswi(:,:) = 0. 
     329         END WHERE  
     330 
     331         zdiag_area_nh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) ) 
     332         zdiag_volu_nh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) 
     333 
     334         WHERE( fcor > 0._wp .AND. at_i > 0.15 ); zswi(:,:) = 1.0e-12 
     335         ELSEWHERE                              ; zswi(:,:) = 0. 
     336         END WHERE  
     337 
     338         zdiag_extt_nh = glob_sum( zswi(:,:) * e12t(:,:) ) 
     339 
     340         IF ( iom_use( "NH_icearea" ) ) CALL iom_put( "NH_icearea" ,  zdiag_area_nh  ) 
     341         IF ( iom_use( "NH_icevolu" ) ) CALL iom_put( "NH_icevolu" ,  zdiag_volu_nh  ) 
     342         IF ( iom_use( "NH_iceextt" ) ) CALL iom_put( "NH_iceextt" ,  zdiag_extt_nh  ) 
     343 
     344      ENDIF 
     345 
     346      IF ( iom_use( "SH_icearea" ) .OR. iom_use( "SH_icevolu" ) .OR. iom_use( "SH_iceextt" ) )   THEN   ! SH integrated diagnostics 
     347 
     348         WHERE( fcor < 0._wp ); zswi(:,:) = 1.0e-12;  
     349         ELSEWHERE            ; zswi(:,:) = 0. 
     350         END WHERE  
     351 
     352         zdiag_area_sh = glob_sum( at_i(:,:) * zswi(:,:) * e12t(:,:) )  
     353         zdiag_volu_sh = glob_sum( vt_i(:,:) * zswi(:,:) * e12t(:,:) ) 
     354 
     355         WHERE( fcor < 0._wp .AND. at_i > 0.15 ); zswi(:,:) = 1.0e-12 
     356         ELSEWHERE                              ; zswi(:,:) = 0. 
     357         END WHERE  
     358 
     359         zdiag_extt_sh = glob_sum( zswi(:,:) * e12t(:,:) ) 
     360 
     361         IF ( iom_use( "SH_icearea" ) ) CALL iom_put( "SH_icearea", zdiag_area_sh ) 
     362         IF ( iom_use( "SH_icevolu" ) ) CALL iom_put( "SH_icevolu", zdiag_volu_sh ) 
     363         IF ( iom_use( "SH_iceextt" ) ) CALL iom_put( "SH_iceextt", zdiag_extt_sh ) 
     364 
     365      ENDIF  
     366 
    246367      !     !  Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s 
    247368      !     IF( kindic < 0 )   CALL lim_wri_state( 'output.abort' ) 
     
    250371      CALL wrk_dealloc( jpi, jpj, jpl, zswi2 ) 
    251372      CALL wrk_dealloc( jpi, jpj     , z2d, zswi ) 
     373      CALL wrk_dealloc( jpi, jpj     , zfb, zamask, zamask15 ) 
    252374 
    253375      IF( nn_timing == 1 )  CALL timing_stop('limwri') 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r8233 r8239  
    6060   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   wfx_snw_sum_1d 
    6161   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   wfx_sub_1d 
     62   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   wfx_snw_sub_1d  
     63   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   wfx_ice_sub_1d  
    6264 
    6365   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   wfx_bog_1d     
     
    9395 
    9496   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   t_su_1d       !: <==> the 2D  t_su 
     97   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   t_si_1d       !: <==> the 2D  t_si 
    9598   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   a_i_1d        !: <==> the 2D  a_i 
    9699   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ht_i_1d       !: <==> the 2D  ht_s 
     
    115118   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   h_i_old  !: ice thickness layer (m) 
    116119 
     120   ! Conduction flux diagnostics (SIMIP) 
     121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   diag_fc_bo_1d      !: <==> the 2D  diag_fc_bo 
     122   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   diag_fc_su_1d      !: <==> the 2D  diag_fc_su 
     123 
    117124   INTEGER , PUBLIC ::   jiindex_1d   ! 1D index of debugging point 
    118125 
     
    129136      !!---------------------------------------------------------------------! 
    130137      INTEGER ::   thd_ice_alloc   ! return value 
    131       INTEGER ::   ierr(4), ii 
     138      INTEGER ::   ierr(5), ii 
    132139      !!---------------------------------------------------------------------! 
    133140      ierr(:) = 0 
     
    150157         &      fhld_1d    (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d(jpij) ,  & 
    151158         &      wfx_sum_1d(jpij)  , wfx_sni_1d (jpij) , wfx_opw_1d (jpij) , wfx_res_1d(jpij) ,  & 
     159         &      wfx_snw_sub_1d(jpij), wfx_ice_sub_1d(jpij) ,                                    & 
    152160         &      dqns_ice_1d(jpij) , evap_ice_1d (jpij),                                         & 
    153161         &      qprec_ice_1d(jpij), qevap_ice_1d(jpij), i0         (jpij) ,                     &   
    154162         &      sfx_bri_1d (jpij) , sfx_bog_1d (jpij) , sfx_bom_1d (jpij) , sfx_sum_1d (jpij),  & 
    155163         &      sfx_sni_1d (jpij) , sfx_opw_1d (jpij) , sfx_res_1d (jpij) , sfx_sub_1d (jpij),  & 
    156          &      hicol_1d   (jpij) , STAT=ierr(ii) ) 
     164         &      dsm_i_fl_1d(jpij) , dsm_i_gd_1d(jpij) , dsm_i_se_1d(jpij) ,                     &      
     165         &      dsm_i_si_1d(jpij) , hicol_1d    (jpij)                     , STAT=ierr(ii) ) 
    157166      ! 
    158167      ii = ii + 1 
    159       ALLOCATE( t_su_1d   (jpij) , a_i_1d    (jpij) , ht_i_1d  (jpij) ,                      & 
     168      ALLOCATE( t_su_1d   (jpij) , t_si_1d  (jpij)  , a_i_1d   (jpij) , ht_i_1d  (jpij) ,    & 
    160169         &      ht_s_1d   (jpij) , fc_su     (jpij) , fc_bo_i  (jpij) ,                      &     
    161170         &      dh_s_tot  (jpij) , dh_i_surf (jpij) , dh_i_sub (jpij) ,                      &     
     
    168177         &      qh_i_old(jpij,0:nlay_i+1) , h_i_old(jpij,0:nlay_i+1) , STAT=ierr(ii) ) 
    169178      ! 
     179      ii = ii + 1 
     180      ALLOCATE( diag_fc_bo_1d(jpij)      , diag_fc_su_1d(jpij)      , STAT=ierr(ii) ) 
     181 
    170182      thd_ice_alloc = MAXVAL( ierr(:) ) 
    171183      IF( thd_ice_alloc /= 0 )   CALL ctl_warn( 'thd_ice_alloc: failed to allocate arrays.' ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r7768 r8239  
    195195#if defined key_lim3 || defined key_lim2 
    196196      CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 
     197      ! SIMIP diagnostics (4 main arctic straits) 
     198      CALL iom_set_axis_attr( "nstrait", (/ (REAL(ji,wp), ji=1,4) /) ) 
    197199#endif 
    198200      CALL iom_set_axis_attr( "icbcla", class_num ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r8233 r8239  
    634634      wfx_res(:,:) = 0._wp   ;   wfx_sub(:,:) = 0._wp 
    635635      wfx_spr(:,:) = 0._wp   ;   wfx_lam(:,:) = 0._wp   
     636      wfx_snw_dyn(:,:) = 0._wp ; wfx_snw_sum(:,:) = 0._wp 
     637      wfx_snw_sub(:,:) = 0._wp ; wfx_ice_sub(:,:) = 0._wp 
    636638 
    637639      ! MV MP 2016 
     
    654656      diag_heat(:,:) = 0._wp ;   diag_smvi(:,:) = 0._wp 
    655657      diag_vice(:,:) = 0._wp ;   diag_vsnw(:,:) = 0._wp 
     658 
     659      ! SIMIP diagnostics 
     660      diag_dms_dyn(:,:)  = 0._wp ; diag_dmi_dyn(:,:)  = 0._wp 
     661      diag_fc_bo(:,:)    = 0._wp ; diag_fc_su(:,:)    = 0._wp 
    656662 
    657663      tau_icebfr(:,:) = 0._wp; ! landfast ice param only (clem: important to keep the init here) 
Note: See TracChangeset for help on using the changeset viewer.