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 8266 – NEMO

Changeset 8266


Ignore:
Timestamp:
2017-07-03T12:17:53+02:00 (7 years ago)
Author:
clem
Message:

update outputs following simip requirements

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

Legend:

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

    r8239 r8266  
    2727 
    2828         <!-- 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  
     29         <field id="icethic"      long_name="Sea-ice thickness"                                    standard_name="sea_ice_thickness"                          unit="m"   /> 
     30         <field id="uice_mv"      long_name="X-component of sea ice velocity"                      standard_name="sea_ice_x_velocity"                         unit="m/s" />  
     31         <field id="vice_mv"      long_name="Y-component of sea ice velocity"                      standard_name="sea_ice_y_velocity"                         unit="m/s" />       
     32         <field id="icevel_mv"    long_name="Sea-ice speed"                                        standard_name="sea_ice_speed"                              unit="m/s" /> 
    3233         <field id="icepres"      long_name="Fraction of time steps with sea ice"                  standard_name="sea_ice_time_fraction"                      unit=""             /> 
    3334         <field id="iceconc"      long_name="Sea-ice area fraction"                                standard_name="sea_ice_area_fraction"                      unit=""             /> 
    3435         <field id="iceconc_pct"  long_name="Sea-ice area fraction in percent"                     standard_name="sea_ice_area_fraction_in_percent"           unit="%"             > iceconc * 100. </field > 
    3536         <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="icevolu"      long_name="Sea-ice volume per area"                              standard_name="sea_ice_thickness"                          unit="m"            /> 
    3738         <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=""             /> 
     39         <field id="snothic"      long_name="Snow thickness"                                       standard_name="surface_snow_thickness"                     unit="m"            /> 
     40 
     41         <field id="iceconc_cat_mv"     long_name="Sea-ice area fractions in thickness categories" standard_name="sea_ice_area_fraction_over_categories"      unit=""   grid_ref="grid_T_3D_ncatice" /> 
     42         <field id="iceconc_cat_pct_mv" long_name="Sea-ice area fractions in thickness categories" standard_name="sea_ice_area_fraction_over_categories"      unit="%"  grid_ref="grid_T_3D_ncatice"  > iceconc_cat_mv * 100. </field > 
     43         <field id="icethic_cat_mv"     long_name="Sea-ice thickness in thickness categories"      standard_name="sea_ice_thickness_over_categories"          unit="m"  grid_ref="grid_T_3D_ncatice" /> 
     44         <field id="snowthic_cat_mv"    long_name="Snow thickness in thickness categories"         standard_name="snow_thickness_over_categories"             unit="m"  grid_ref="grid_T_3D_ncatice" /> 
     45 
     46         <field id="icestK"       long_name="Surface temperature of sea ice"                       standard_name="sea_ice_surface_temperature"                unit="K"            />  
     47         <field id="icesntK"      long_name="Temperature at snow-ice interface"                    standard_name="sea_ice_snow_interface_temperature"         unit="K"            /> 
     48         <field id="icebotK"      long_name="Temperature at ice-ocean interface"                   standard_name="sea_ice_bottom_temperature"                 unit="K"            /> 
     49 
     50         <field id="iceage"       long_name="Age of sea ice"                                       standard_name="age_of_sea_ice"                             unit="s"            /> 
     51         <field id="icealb"       long_name="Sea-ice or snow albedo"                               standard_name="sea_ice_albedo"                             unit=""             /> 
    5152         <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"         /> 
     53         <field id="icesal"       long_name="Sea ice salinity"                                     standard_name="sea_ice_salinity"                           unit="g/kg"         /> 
    5454         <field id="icefb"        long_name="Sea-ice freeboard"                                    standard_name="sea_ice_freeboard"                          unit="m"            /> 
    5555 
    5656         <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> 
     57         <field id="isnhcneg"     long_name="Snow-heat content per unit area"     standard_name="thermal_energy_content_of_surface_snow"                              unit="J/m2" > </field> 
    5858 
    5959         <field id="wfxsum"       long_name="Freshwater flux from sea-ice surface"               standard_name="freshwater_flux_from_ice_surface"                   unit="kg/m2/s"      /> 
     
    7878         <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" /> 
    7979 
    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> 
     80         <field id="hfxsenso"     long_name="Net sensible heat flux under sea ice"               standard_name="ice_ocean_heat_flux"                          unit="W/m2" /> 
    8181         <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" />  
    8282         <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" /> 
    8383 
    84          <field id="msfx"         long_name="Salt flux from sea ice"                             standard_name="salt_flux_from_ice"                           unit="kg/m2/s" > sfx/86400000. </field> 
     84         <field id="sfx_mv"       long_name="Salt flux from sea ice"                             standard_name="salt_flux_from_ice"                           unit="kg/m2/s" /> 
    8585         <field id="wfxtot"       long_name="Freshwater flux from sea ice"                       standard_name="freshwater_flux_from_ice"                     unit="kg/m2/s" />  
    8686 
     
    129129         <field id="uice_ipa"     long_name="X-component of sea ice velocity"                              standard_name="sea_ice_x_velocity"                                 unit="m/s"          />  
    130130         <field id="vice_ipa"     long_name="Y-component of sea ice velocity"                              standard_name="sea_ice_y_velocity"                                 unit="m/s"          />       
     131         <field id="icevel"       long_name="Sea-ice speed"                                                standard_name="sea_ice_speed"                                      unit="m/s"          /> 
    131132          <field id="isst"         long_name="sea surface temperature"                                      standard_name="sea_surface_temperature"                            unit="degC"         /> 
    132133         <field id="isss"         long_name="sea surface salinity"                                         standard_name="sea_surface_salinity"                               unit="1e-3"         />  
     
    144145         <field id="icevmp"       long_name="melt pond volume"                                             standard_name="sea_ice_meltpond_volume"                            unit="m"            />  
    145146 
     147         <field id="iceconc_cat"  long_name="Sea-ice area fractions in thickness categories"               unit=""   grid_ref="grid_T_3D_ncatice" /> 
     148         <field id="icethic_cat"  long_name="Sea-ice thickness in thickness categories"                    unit="m"  grid_ref="grid_T_3D_ncatice" /> 
     149         <field id="snowthic_cat" long_name="Snow thickness in thickness categories"                       unit="m"  grid_ref="grid_T_3D_ncatice" /> 
    146150         <field id="iceage_cat"   long_name="Ice age for categories"                                       unit="days"   grid_ref="grid_T_3D_ncatice" /> 
    147151         <field id="salinity_cat" long_name="Sea-Ice Bulk salinity for categories"                         unit="g/kg"   grid_ref="grid_T_3D_ncatice" /> 
     
    153157 
    154158         <field id="micet"        long_name="Mean ice temperature"                                         unit="degC"     /> 
     159         <field id="miceage"      long_name="Age of sea ice"                                               unit="s"        /> 
     160         <field id="micesalt"     long_name="Sea ice salinity"                                             unit="g/kg"     /> 
    155161         <field id="icehc"        long_name="ice total heat content"                                       unit="J/m2"     />  
    156162         <field id="isnowhc"      long_name="snow total heat content"                                      unit="J/m2"     /> 
    157163         <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"     /> 
    160164         <field id="ibrinv"       long_name="brine volume"                                                 unit="%"        /> 
    161165         <field id="icecolf"      long_name="frazil ice collection thickness"                              unit="m"        /> 
     
    319323      </field_group> 
    320324 
    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"              /> 
     325      <!-- SIMIP daily fields --> <field_group id="SIday_fields">  
     326          <field field_ref="icepres"          name="sitimefrac"   />  
     327          <field field_ref="iceconc_pct"      name="siconc"       />  
     328          <field field_ref="icethic"          name="sithick"      default_value="-1.0e20" detect_missing_value="true" operation="average" />  
     329          <field field_ref="snothic"          name="sisnthick"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     330          <field field_ref="icestK"           name="sitemptop"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     331          <field field_ref="uice_mv"          name="siu"          default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     332          <field field_ref="vice_mv"          name="siv"          default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     333          <field field_ref="icevel_mv"        name="sispeed"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    331334      </field_group> 
    332335 
     
    337340          <field field_ref="iceconc_pct"      name="siconc"       /> 
    338341          <field field_ref="icemass"          name="simass"       /> 
     342          <field field_ref="icethic"          name="sithick"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    339343          <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  
     344          <field field_ref="snomass"          name="sisnmass"     default_value="-1.0e20" detect_missing_value="true" operation="average" />  
     345          <field field_ref="snothic"          name="sisnthick"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     346    
    345347          <!-- 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" /> 
     348          <field field_ref="iceconc_cat_pct_mv"  name="siitdconc"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     349          <field field_ref="icethic_cat_mv"      name="siitdthick"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     350          <field field_ref="snowthic_cat_mv"     name="siitdsnthick" default_value="-1.0e20" detect_missing_value="true" operation="average"/> 
    349351 
    350352          <!-- 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"        /> 
     353          <field field_ref="icestK"           name="sitemptop"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     354          <field field_ref="icesntK"          name="sitempsnic"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     355          <field field_ref="icebotK"          name="sitempbot"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     356          <field field_ref="iceage"           name="siage"        default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    356357          <field field_ref="icesmass"         name="sisaltmass"   /> 
    357           <field field_ref="micesalt"         name="sisali"      /> 
    358           <field field_ref="icefb"            name="sifb"         /> 
     358          <field field_ref="icesal"           name="sisali"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     359          <field field_ref="icefb"            name="sifb"         default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    359360          <field field_ref="icehcneg"         name="sihc"         /> 
    360           <field field_ref="isnhcneg"         name="sisnhc"       /> 
     361          <field field_ref="isnhcneg"         name="sisnhc"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    361362 
    362363          <!-- freshwater fluxes --> 
    363364          <field field_ref="wfxtot"           name="siflfwbot"    /> 
    364           <field field_ref="wfxsum"           name="siflfwdrain"  /> 
     365          <field field_ref="wfxsum"           name="siflfwdrain"  default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    365366 
    366367          <!-- area balance --> 
     
    384385 
    385386          <!-- heat balance --> 
    386           <field field_ref="hfxturneg"        name="siflsensupbot"    /> 
    387           <field field_ref="hfxconsu"         name="siflcondtop"      /> 
    388           <field field_ref="hfxconbo"         name="siflcondbot"      /> 
     387          <field field_ref="hfxsenso"         name="siflsensupbot"    default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     388          <field field_ref="hfxconsu"         name="siflcondtop"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     389          <field field_ref="hfxconbo"         name="siflcondbot"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    389390 
    390391          <!-- salt balance --> 
    391           <field field_ref="msfx"             name="siflsaltbot"      /> 
     392          <field field_ref="sfx_mv"           name="siflsaltbot"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    392393 
    393394          <!-- 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"   /> 
     395          <field field_ref="uice_mv"          name="siu"              default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     396          <field field_ref="vice_mv"          name="siv"              default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     397          <field field_ref="icevel_mv"        name="sispeed"          default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     398 
     399          <field field_ref="utau_ice"         name="sistrxdtop"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     400          <field field_ref="vtau_ice"         name="sistrydtop"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     401 
     402          <field field_ref="utau_oi"          name="sistrxubot"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     403          <field field_ref="vtau_oi"          name="sistryubot"       default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     404 
     405          <field field_ref="icestr"           name="sicompstren"      default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     406 
     407          <field field_ref="dssh_dx"          name="siforcetiltx"     default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     408          <field field_ref="dssh_dy"          name="siforcetilty"     default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     409 
     410          <field field_ref="corstrx"          name="siforcecoriolx"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     411          <field field_ref="corstry"          name="siforcecorioly"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     412 
     413          <field field_ref="intstrx"          name="siforceintstrx"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
     414          <field field_ref="intstry"          name="siforceintstry"   default_value="-1.0e20" detect_missing_value="true" operation="average" /> 
    413415 
    414416          <field field_ref="xmtrptot"         name="sidmasstranx"     /> 
     
    431433      </field_group> 
    432434 
    433       
    434435   </field_definition> 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r8233 r8266  
    127127      ELSEWHERE                       ;  zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
    128128      END WHERE 
    129       IF( iom_use('alb_ice' ) )         CALL iom_put( "alb_ice"  , zalb(:,:) )           ! ice albedo output 
     129      IF( iom_use('icealb'  ) )  CALL iom_put( "icealb"   , zalb(:,:) )          ! ice albedo output 
    130130 
    131131      zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + 0.066_wp * ( 1._wp - at_i_b )       
     
    181181 
    182182            ! add the snow melt water to snow mass flux to the ocean 
    183             wfx_snw(:,:)      = wfx_snw(:,:) + wfx_snw_sum(:,:)  
     183            wfx_snw(ji,jj) = wfx_snw(ji,jj) + wfx_snw_sum(ji,jj)  
    184184 
    185185            ! mass flux at the ocean/ice interface 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r8240 r8266  
    5454      ! 
    5555      INTEGER  ::  ji, jj, jk, jl  ! dummy loop indices 
    56       REAL(wp) ::  z2da, z2db, ztmp, zrho1, zrho2 
    57       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zswi2 
    58       REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, zswi    ! 2D workspace 
    59       REAL(wp), POINTER, DIMENSION(:,:)   ::  zfb          ! ice freeboard 
     56      REAL(wp) ::  z2da, z2db, ztmp, zrho1, zrho2, zmiss_val 
     57      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zswi2, zmiss2 
     58      REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, zswi, zmiss ! 2D workspace 
     59      REAL(wp), POINTER, DIMENSION(:,:)   ::  zfb              ! ice freeboard 
    6060      REAL(wp), POINTER, DIMENSION(:,:)   ::  zamask, zamask15 ! 15% concentration mask 
    6161 
     
    7272      IF( nn_timing == 1 )  CALL timing_start('limwri') 
    7373 
    74       CALL wrk_alloc( jpi,jpj,jpl, zswi2 ) 
    75       CALL wrk_alloc( jpi,jpj    , z2d, zswi ) 
    76       CALL wrk_alloc( jpi,jpj    , zfb, zamask, zamask15 ) 
    77       !----------------------------- 
    78       ! Mean category values 
    79       !----------------------------- 
     74      CALL wrk_alloc( jpi, jpj, jpl, zswi2, zmiss2 ) 
     75      CALL wrk_alloc( jpi, jpj     , z2d, zswi, zmiss ) 
     76      CALL wrk_alloc( jpi, jpj     , zfb, zamask, zamask15 ) 
     77 
     78      !---------------------------------------- 
     79      ! Brine volume, switches, missing values 
     80      !---------------------------------------- 
    8081 
    8182      ! brine volume 
     
    9798         END DO 
    9899      END DO 
    99       ! 
    100       ! fluxes 
     100 
     101      zmiss_val     = -1.0e20 
     102      zmiss(:,:)    = zmiss_val * ( 1. - zswi(:,:) ) 
     103      zmiss2(:,:,:) = zmiss_val * ( 1. - zswi2(:,:,:) ) 
     104 
     105      !---------------------------------------- 
     106      ! Standard outputs 
     107      !---------------------------------------- 
     108      ! fluxes  
    101109      ! pfrld is the lead fraction at the previous time step (actually between TRP and THD) 
    102110      IF( iom_use('qsr_oce') )   CALL iom_put( "qsr_oce" , qsr_oce(:,:) * pfrld(:,:) )                                   !     solar flux at ocean surface 
     
    114122 
    115123      ! velocity 
    116       IF ( iom_use( "uice_ipa" ) .OR. iom_use( "vice_ipa" ) .OR. iom_use( "icevel" ) ) THEN  
     124      IF ( iom_use('uice_ipa') ) CALL iom_put( "uice_ipa"     , u_ice      )       ! ice velocity u component 
     125      IF ( iom_use('vice_ipa') ) CALL iom_put( "vice_ipa"     , v_ice      )       ! ice velocity v component 
     126 
     127      IF ( ( iom_use( "icevel" ) ) .OR. ( iom_use( "icevel_mv" ) ) ) THEN  
    117128         DO jj = 2 , jpjm1 
    118129            DO ji = 2 , jpim1 
     
    123134         END DO 
    124135         CALL lbc_lnk( z2d, 'T', 1. ) 
    125          CALL iom_put( "uice_ipa"     , u_ice      )       ! ice velocity u component 
    126          CALL iom_put( "vice_ipa"     , v_ice      )       ! ice velocity v component 
    127          CALL iom_put( "icevel"       , z2d        )       ! ice velocity module 
     136         IF ( iom_use( "icevel" )  )   CALL iom_put( "icevel"       , z2d        )                                            ! ice velocity module 
     137         IF ( iom_use( "icevel_mv" ) ) CALL iom_put( "icevel_mv"    , z2d(:,:) * zswi(:,:) + zmiss(:,:) )                     ! ice velocity module (missing value) 
    128138      ENDIF 
    129139 
     
    142152      CALL iom_put( "isnowhc"     , et_s  * zswi        )        ! snow total heat content 
    143153      CALL iom_put( "ibrinv"      , bvm_i * zswi * 100. )        ! brine volume 
    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 
    146154      CALL iom_put( "snowpre"     , sprecip * 86400.    )        ! snow precipitation  
    147155      CALL iom_put( "micesalt"    , smt_i   * zswi      )        ! mean ice salinity 
    148156 
    149       CALL iom_put( "icestr"      , strength * zswi )            ! ice strength 
    150157      CALL iom_put( "idive"       , divu_i              )        ! divergence 
    151158      CALL iom_put( "ishear"      , shear_i             )        ! shear 
     
    257264      zrho1 = ( rau0 - rhoic ) / rau0; zrho2 = rhosn / rau0 
    258265 
    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 
     266      IF  ( iom_use( "icepres"  ) ) CALL iom_put( "icepres"     , zswi(:,:)                     )                         ! Ice presence (1 or 0)  
     267      IF  ( iom_use( "icemass"  ) ) CALL iom_put( "icemass"     , rhoic * vt_i(:,:) * zswi(:,:) )                         ! Ice mass per cell area  
     268      IF  ( iom_use( "icethic"  ) ) CALL iom_put( "icethic"     , htm_i(:,:) * zamask(:,:)  * zswi(:,:) + zmiss(:,:) )    ! Ice thickness  
     269      IF  ( iom_use( "snomass"  ) ) CALL iom_put( "snomass"     , rhosn * vt_s(:,:)         * zswi(:,:) + zmiss(:,:) )    ! Snow mass per cell area 
     270      IF  ( iom_use( "snothic"  ) ) CALL iom_put( "snothic"     , htm_s(:,:) * zamask(:,:)  * zswi(:,:) + zmiss(:,:) )    ! Snow thickness        
     271 
     272      IF  ( iom_use( "iceconc_cat_mv"  ) )  CALL iom_put( "iceconc_cat_mv" , a_i(:,:,:)  * zswi2(:,:,:) + zmiss2(:,:,:) ) ! Area for categories 
     273      IF  ( iom_use( "icethic_cat_mv"  ) )  CALL iom_put( "icethic_cat_mv" , ht_i(:,:,:) * zswi2(:,:,:) + zmiss2(:,:,:) ) ! Thickness for categories 
     274      IF  ( iom_use( "snowthic_cat_mv" ) )  CALL iom_put( "snowthic_cat_mv", ht_s(:,:,:) * zswi2(:,:,:) + zmiss2(:,:,:) ) ! Snow depth for categories 
     275 
     276      IF  ( iom_use( "icestK"   ) ) CALL iom_put( "icestK"      , tm_su(:,:)                * zswi(:,:) + zmiss(:,:) )    ! Ice surface temperature 
     277      IF  ( iom_use( "icesntK"  ) ) CALL iom_put( "icesntK"     , tm_si(:,:)                * zswi(:,:) + zmiss(:,:) )    ! Snow-ice interface temperature 
     278      IF  ( iom_use( "icebotK"  ) ) CALL iom_put( "icebotK"     , t_bo(:,:)                 * zswi(:,:) + zmiss(:,:) )    ! Ice bottom temperature 
     279      IF  ( iom_use( "iceage"   ) ) CALL iom_put( "iceage"      , om_i(:,:) * zamask15(:,:) * zswi(:,:) + zmiss(:,:) )    ! Ice age 
     280      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 
     281      IF  ( iom_use( "icesal"   ) ) CALL iom_put( "icesal"      , smt_i(:,:)                * zswi(:,:) + zmiss(:,:) )    ! Ice salinity 
     282 
    267283      IF  ( iom_use( "icefb"    ) ) THEN 
    268          zfb(:,:) = ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) ) * zswi(:,:)                              
     284         zfb(:,:) = ( zrho1 * htm_i(:,:) - zrho2 * htm_s(:,:) )                                          
    269285         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 
     286                                    CALL iom_put( "icefb"       , zfb(:,:)                  * zswi(:,:) + zmiss(:,:) )    ! Ice freeboard 
     287      ENDIF 
     288 
     289      IF  ( iom_use( "isnhcneg" ) ) CALL iom_put( "isnhcneg"    , - et_s(:,:)               * zswi(:,:) + zmiss(:,:) )    ! Snow total heat content 
     290 
     291      IF  ( iom_use( "dmithd"   ) ) CALL iom_put( "dmithd"      , - wfx_bog - wfx_bom - wfx_sum   &                       ! Sea-ice mass change from thermodynamics 
    273292              &                     - 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 
     293      IF  ( iom_use( "dmidyn"   ) ) CALL iom_put( "dmidyn"      ,   diag_dmi_dyn             )                            ! Sea-ice mass change from dynamics 
     294      IF  ( iom_use( "dmiopw"   ) ) CALL iom_put( "dmiopw"      , - wfx_opw                  )                            ! Sea-ice mass change through growth in open water 
     295      IF  ( iom_use( "dmibog"   ) ) CALL iom_put( "dmibog"      , - wfx_bog                  )                            ! Sea-ice mass change through basal growth 
     296      IF  ( iom_use( "dmisni"   ) ) CALL iom_put( "dmisni"      , - wfx_sni                  )                            ! Sea-ice mass change through snow-to-ice conversion 
     297      IF  ( iom_use( "dmisum"   ) ) CALL iom_put( "dmisum"      , - wfx_sum                  )                            ! Sea-ice mass change through surface melting 
     298      IF  ( iom_use( "dmibom"   ) ) CALL iom_put( "dmibom"      , - wfx_bom                  )                            ! Sea-ice mass change through bottom melting 
     299 
     300      IF  ( iom_use( "dmtsub"   ) ) CALL iom_put( "dmtsub"      , - wfx_sub                  )                            ! Sea-ice mass change through evaporation and sublimation 
     301      IF  ( iom_use( "dmssub"   ) ) CALL iom_put( "dmssub"      , - wfx_snw_sub              )                            ! Snow mass change through sublimation 
     302      IF  ( iom_use( "dmisub"   ) ) CALL iom_put( "dmisub"      , - wfx_ice_sub              )                            ! Sea-ice mass change through sublimation 
     303 
     304      IF  ( iom_use( "dmsspr"   ) ) CALL iom_put( "dmsspr"      , - wfx_spr                  )                            ! Snow mass change through snow fall 
     305      IF  ( iom_use( "dmsssi"   ) ) CALL iom_put( "dmsssi"      ,   wfx_sni*rhosn/rhoic      )                            ! Snow mass change through snow-to-ice conversion 
     306 
     307      IF  ( iom_use( "dmsmel"   ) ) CALL iom_put( "dmsmel"      , - wfx_snw_sum              )                            ! Snow mass change through melt 
     308      IF  ( iom_use( "dmsdyn"   ) ) CALL iom_put( "dmsdyn"      ,   diag_dms_dyn             )                            ! Snow mass change through dynamics 
     309 
     310      IF  ( iom_use( "hfxsenso" ) ) CALL iom_put( "hfxsenso"    ,   -fhtur(:,:)              * zswi(:,:) + zmiss(:,:) )   ! Sensible oceanic heat flux 
     311      IF  ( iom_use( "hfxconbo" ) ) CALL iom_put( "hfxconbo"    ,   diag_fc_bo               * zswi(:,:) + zmiss(:,:) )   ! Bottom conduction flux 
     312      IF  ( iom_use( "hfxconsu" ) ) CALL iom_put( "hfxconsu"    ,   diag_fc_su               * zswi(:,:) + zmiss(:,:) )   ! Surface conduction flux 
     313 
     314      IF  ( iom_use( "wfxtot"   ) ) CALL iom_put( "wfxtot"      ,   wfx_ice(:,:)             * zswi(:,:) + zmiss(:,:) )   ! Total freshwater flux from sea ice 
     315      IF  ( iom_use( "wfxsum"   ) ) CALL iom_put( "wfxsum"      ,   wfx_sum(:,:)             * zswi(:,:) + zmiss(:,:) )   ! Freshwater flux from sea-ice surface 
     316      IF  ( iom_use( "sfx_mv"   ) ) CALL iom_put( "sfx_mv"      ,   sfx(:,:) * 0.001         * zswi(:,:) + zmiss(:,:) )   ! Total salt flux 
     317 
     318      IF  ( iom_use( "uice_mv"  ) ) CALL iom_put( "uice_mv"     ,   u_ice(:,:)               * zswi(:,:) + zmiss(:,:) )   ! ice velocity u component 
     319      IF  ( iom_use( "vice_mv"  ) ) CALL iom_put( "vice_mv"     ,   v_ice(:,:)               * zswi(:,:) + zmiss(:,:) )   ! ice velocity v component 
     320       
     321      IF  ( iom_use( "xmtrpice" ) ) CALL iom_put( "xmtrpice"     ,  diag_xmtrp_ice(:,:)      )                            ! X-component of sea-ice mass transport (kg/s) 
     322      IF  ( iom_use( "ymtrpice" ) ) CALL iom_put( "ymtrpice"     ,  diag_ymtrp_ice(:,:)      )                            ! Y-component of sea-ice mass transport  
     323 
     324      IF  ( iom_use( "xmtrpsnw" ) ) CALL iom_put( "xmtrpsnw"     ,  diag_xmtrp_snw(:,:)      )                            ! X-component of snow mass transport (kg/s) 
     325      IF  ( iom_use( "ymtrpsnw" ) ) CALL iom_put( "ymtrpsnw"     ,  diag_ymtrp_snw(:,:)      )                            ! Y-component of snow mass transport 
     326 
     327      IF  ( iom_use( "xatrp"    ) ) CALL iom_put( "xatrp"        ,  diag_xatrp(:,:)              )                        ! X-component of ice area transport 
     328      IF  ( iom_use( "yatrp"    ) ) CALL iom_put( "yatrp"        ,  diag_yatrp(:,:)              )                        ! Y-component of ice area transport 
     329 
     330      IF  ( iom_use( "utau_ice" ) ) CALL iom_put( "utau_ice"     ,  utau_ice(:,:)            * zswi(:,:) + zmiss(:,:) )   ! Wind stress term in force balance (x) 
     331      IF  ( iom_use( "vtau_ice" ) ) CALL iom_put( "vtau_ice"     ,  vtau_ice(:,:)            * zswi(:,:) + zmiss(:,:) )   ! Wind stress term in force balance (y) 
     332 
     333      IF  ( iom_use( "utau_oi"  ) ) CALL iom_put( "utau_oi"     ,   diag_utau_oi(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Ocean stress term in force balance (x) 
     334      IF  ( iom_use( "vtau_oi"  ) ) CALL iom_put( "vtau_oi"     ,   diag_vtau_oi(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Ocean stress term in force balance (y) 
     335 
     336      IF  ( iom_use( "icestr"   ) ) CALL iom_put( "icestr"      ,   strength(:,:)            * zswi(:,:) + zmiss(:,:) )   ! Ice strength 
     337 
     338      IF  ( iom_use( "dssh_dx"  ) ) CALL iom_put( "dssh_dx"     ,   diag_dssh_dx(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Sea-surface tilt term in force balance (x) 
     339      IF  ( iom_use( "dssh_dy"  ) ) CALL iom_put( "dssh_dy"     ,   diag_dssh_dy(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Sea-surface tilt term in force balance (y) 
     340 
     341      IF  ( iom_use( "corstrx"  ) ) CALL iom_put( "corstrx"     ,   diag_corstrx(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Coriolis force term in force balance (x) 
     342      IF  ( iom_use( "corstry"  ) ) CALL iom_put( "corstry"     ,   diag_corstry(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Coriolis force term in force balance (y) 
     343 
     344      IF  ( iom_use( "intstrx"  ) ) CALL iom_put( "intstrx"     ,   diag_intstrx(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Internal force term in force balance (x) 
     345      IF  ( iom_use( "intstry"  ) ) CALL iom_put( "intstry"     ,   diag_intstry(:,:)        * zswi(:,:) + zmiss(:,:) )   ! Internal force term in force balance (y) 
     346 
     347      IF  ( iom_use( "normstr"  ) ) CALL iom_put( "normstr"     ,   diag_sig1(:,:) * zswi(:,:)   )                        ! Normal stress 
     348      IF  ( iom_use( "sheastr"  ) ) CALL iom_put( "sheastr"     ,   diag_sig2(:,:) * zswi(:,:)   )                        ! Shear stress 
    320349 
    321350      !-------------------------------- 
     
    369398      !     not yet implemented 
    370399       
    371       CALL wrk_dealloc( jpi, jpj, jpl, zswi2 ) 
    372       CALL wrk_dealloc( jpi, jpj     , z2d, zswi ) 
     400      CALL wrk_dealloc( jpi, jpj, jpl, zswi2, zmiss2 ) 
     401      CALL wrk_dealloc( jpi, jpj     , z2d, zswi, zmiss ) 
    373402      CALL wrk_dealloc( jpi, jpj     , zfb, zamask, zamask15 ) 
    374403 
Note: See TracChangeset for help on using the changeset viewer.