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 7968 for trunk – NEMO

Changeset 7968 for trunk


Ignore:
Timestamp:
2017-04-26T09:02:56+02:00 (7 years ago)
Author:
clem
Message:

commits following ticket #1889

Location:
trunk/NEMOGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/CONFIG/SHARED/field_def_nemo-opa.xml

    r7828 r7968  
    207207 
    208208         <!-- * variable related to ice shelf forcing * --> 
    209          <field id="fwfisf"       long_name="Ice shelf melting"                                            unit="Kg/m2/s"  /> 
     209         <field id="fwfisf"       long_name="Ice shelf melting"                             unit="kg/m2/s"  /> 
    210210         <field id="fwfisf3d"     long_name="Ice shelf melting"                             unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
    211211         <field id="qlatisf"      long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
     
    215215         <field id="isfgammat"    long_name="transfert coefficient for isf (temperature) "  unit="m/s"      /> 
    216216         <field id="isfgammas"    long_name="transfert coefficient for isf (salinity)    "  unit="m/s"      /> 
    217    <field id="stbl"         long_name="salinity in the Losh tbl                    "  unit="PSU"      /> 
     217         <field id="stbl"         long_name="salinity in the Losh tbl                    "  unit="PSU"      /> 
    218218         <field id="ttbl"         long_name="temperature in the Losh tbl                 "  unit="C"        /> 
    219219         <field id="utbl"         long_name="zonal current in the Losh tbl at T point    "  unit="m/s"      /> 
     
    238238         <field id="calving_cea"  long_name="Calving"                                   standard_name="water_flux_into_sea_water_from_icebergs"   unit="kg/m2/s"  /> 
    239239         <field id="iceberg_cea"  long_name="Iceberg"                                   standard_name="water_flux_into_sea_water_from_icebergs"   unit="kg/m2/s"  /> 
    240          <field id="iceshelf_cea"  long_name="Iceshelf"                                   standard_name="water_flux_into_sea_water_from_iceshelf"   unit="kg/m2/s"  /> 
     240         <field id="iceshelf_cea" long_name="Iceshelf"                                  standard_name="water_flux_into_sea_water_from_iceshelf"   unit="kg/m2/s"  /> 
     241 
    241242 
    242243         <!-- available if key_oasis3 + conservative method --> 
     
    253254         <field id="hflx_ice_cea"  long_name="heat flux due to ice thermodynamics"                      standard_name="heat_flux_into_sea_water_due_to_sea_ice_thermodynamics"                        unit="W/m2"     /> 
    254255         <field id="hflx_rnf_cea"  long_name="heat flux due to runoffs"                                 standard_name="temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water"          unit="W/m2"     /> 
    255          <field id="hflx_cal_cea"  long_name="heat flux due to calving"                                 standard_name="heat_flux_into_sea_water_due_to_iceberg_thermodynamics"                        unit="W/m2"     /> 
     256         <field id="hflx_cal_cea"  long_name="heat flux due to calving"                                 standard_name="heat_flux_into_sea_water_due_to_calving"                                       unit="W/m2"     /> 
     257         <field id="hflx_icb_cea"  long_name="heat flux due to iceberg"                                 standard_name="heat_flux_into_sea_water_due_to_icebergs"                                      unit="W/m2"     /> 
     258         <field id="hflx_isf_cea"  long_name="heat flux due to iceshelf"                                standard_name="heat_flux_into_sea_water_due_to_iceshelf"                                      unit="W/m2"     /> 
    256259         <field id="bicemel_cea"   long_name="Rate of Melt at Sea Ice Base (cell average)"              standard_name="tendency_of_sea_ice_amount_due_to_basal_melting"                               unit="kg/m2/s"  /> 
    257260         <field id="licepro_cea"   long_name="Lateral Sea Ice Growth Rate (cell average)"               standard_name="tendency_of_sea_ice_amount_due_to_lateral_growth_of_ice_floes"                 unit="kg/m2/s"  /> 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7952 r7968  
    15661566      !!             qsr_tot = pfrld * qsr_oce + ( 1 - pfrld ) * qsr_ice   => provided 
    15671567      !! 
    1568       !!             emp_tot = emp_oce + emp_ice                           => calving is provided and added to emp_tot (and emp_oce) 
    1569       !!                                                                      river runoff (rnf) is provided but not included here 
    1570       !! 
     1568      !!             emp_tot = emp_oce + emp_ice                           => calving is provided and added to emp_tot (and emp_oce). 
     1569      !!                                                                      runoff (which includes rivers+icebergs) and iceshelf 
     1570      !!                                                                      are provided but not included in emp here. Only runoff will 
     1571      !!                                                                      be included in emp in other parts of NEMO code 
    15711572      !! ** Action  :   update at each nf_ice time step: 
    15721573      !!                   qns_tot, qsr_tot  non-solar and solar total heat fluxes 
     
    15841585      ! 
    15851586      INTEGER ::   jl         ! dummy loop index 
    1586       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw 
     1587      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw 
    15871588      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice 
    15881589      REAL(wp), POINTER, DIMENSION(:,:  ) ::   zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice 
     
    15921593      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_ice_flx') 
    15931594      ! 
    1594       CALL wrk_alloc( jpi,jpj,     zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
     1595      CALL wrk_alloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
    15951596      CALL wrk_alloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    15961597      CALL wrk_alloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
     
    16151616         zemp_tot(:,:) =   frcv(jpr_tevp)%z3(:,:,1) - ztprecip(:,:) 
    16161617         zemp_ice(:,:) = ( frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) ) * zicefr(:,:) 
    1617          IF( iom_use('precip') )          & 
    1618             &  CALL iom_put( 'precip'       ,   frcv(jpr_rain)%z3(:,:,1) + frcv(jpr_snow)%z3(:,:,1)                              )  ! total  precipitation 
    1619          IF( iom_use('rain') )            & 
    1620             &  CALL iom_put( 'rain'         ,   frcv(jpr_rain)%z3(:,:,1)                                                         )  ! liquid precipitation  
    1621          IF( iom_use('rain_ao_cea') )   & 
    1622             &  CALL iom_put( 'rain_ao_cea'  , frcv(jpr_rain)%z3(:,:,1)* p_frld(:,:) * tmask(:,:,1)      )   ! liquid precipitation  
    1623          IF( iom_use('hflx_rain_cea') )   & 
    1624             CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) * tmask(:,:,1))   ! heat flux from liq. precip.  
    1625          IF( iom_use('hflx_prec_cea') )   & 
    1626             CALL iom_put( 'hflx_prec_cea', ztprecip * zcptn(:,:) * tmask(:,:,1) * p_frld(:,:) )   ! heat content flux from all precip  (cell avg) 
    1627          IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') )   & 
    1628             ztmp(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 
    1629          IF( iom_use('evap_ao_cea'  ) )   & 
    1630             CALL iom_put( 'evap_ao_cea'  , ztmp * tmask(:,:,1)                  )   ! ice-free oce evap (cell average) 
    1631          IF( iom_use('hflx_evap_cea') )   & 
    1632             CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * zcptn(:,:) * tmask(:,:,1) )   ! heat flux from from evap (cell average) 
    16331618      CASE( 'oce and ice'   )   ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp 
    16341619         zemp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 
     
    16391624 
    16401625#if defined key_lim3 
    1641       ! zsnw = snow fraction over ice after wind blowing 
     1626      ! zsnw = snow fraction over ice after wind blowing (=zicefr if no blowing) 
    16421627      zsnw(:,:) = 0._wp  ;  CALL lim_thd_snwblow( p_frld, zsnw ) 
    16431628       
     
    16521637      zevap_ice(:,:) = frcv(jpr_ievp)%z3(:,:,1) 
    16531638      ! since the sensitivity of evap to temperature (devap/dT) is not prescribed by the atmosphere, we set it to 0 
    1654       ! therefore, sublimation is not redistributed over the ice categories in case no subgrid scale fluxes are provided by atm. 
     1639      ! therefore, sublimation is not redistributed over the ice categories when no subgrid scale fluxes are provided by atm. 
    16551640      zdevap_ice(:,:) = 0._wp 
    16561641       
    1657       ! --- runoffs (included in emp later on) --- ! 
    1658       IF( srcv(jpr_rnf)%laction )   rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
    1659  
    1660       ! --- calving (put in emp_tot and emp_oce) --- ! 
    1661       IF( srcv(jpr_cal)%laction ) THEN  
     1642      ! --- Continental fluxes --- ! 
     1643      IF( srcv(jpr_rnf)%laction ) THEN   ! runoffs (included in emp later on) 
     1644         rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
     1645      ENDIF 
     1646      IF( srcv(jpr_cal)%laction ) THEN   ! calving (put in emp_tot and emp_oce) 
    16621647         zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) 
    16631648         zemp_oce(:,:) = zemp_oce(:,:) - frcv(jpr_cal)%z3(:,:,1) 
    1664          CALL iom_put( 'calving_cea', frcv(jpr_cal)%z3(:,:,1) ) 
    1665       ENDIF 
    1666  
    1667       IF( srcv(jpr_icb)%laction )  THEN  
     1649      ENDIF 
     1650      IF( srcv(jpr_icb)%laction ) THEN   ! iceberg added to runoffs 
    16681651         fwficb(:,:) = frcv(jpr_icb)%z3(:,:,1) 
    1669          rnf(:,:)    = rnf(:,:) + fwficb(:,:)   ! iceberg added to runoffs 
    1670          CALL iom_put( 'iceberg_cea', frcv(jpr_icb)%z3(:,:,1) ) 
    1671       ENDIF 
    1672       IF( srcv(jpr_isf)%laction )  THEN 
    1673         fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf (fwfisf <0 mean melting)   
    1674         CALL iom_put( 'iceshelf_cea', frcv(jpr_isf)%z3(:,:,1) ) 
    1675       ENDIF 
    1676  
     1652         rnf(:,:)    = rnf(:,:) + fwficb(:,:) 
     1653      ENDIF 
     1654      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting) 
     1655        fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1)   
     1656      ENDIF 
    16771657 
    16781658      IF( ln_mixcpl ) THEN 
     
    16981678      ENDIF 
    16991679 
    1700       IF( iom_use('subl_ai_cea') )   CALL iom_put( 'subl_ai_cea', zevap_ice(:,:) * zicefr(:,:)         )  ! Sublimation over sea-ice (cell average) 
    1701                                      CALL iom_put( 'snowpre'    , sprecip(:,:)                         )  ! Snow 
    1702       IF( iom_use('snow_ao_cea') )   CALL iom_put( 'snow_ao_cea', sprecip(:,:) * ( 1._wp - zsnw(:,:) ) )  ! Snow over ice-free ocean  (cell average) 
    1703       IF( iom_use('snow_ai_cea') )   CALL iom_put( 'snow_ai_cea', sprecip(:,:) *           zsnw(:,:)   )  ! Snow over sea-ice         (cell average) 
    17041680#else 
    1705       ! runoffs and calving (put in emp_tot) 
    1706       IF( srcv(jpr_rnf)%laction )   rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
    1707       IF( iom_use('hflx_rnf_cea') )   & 
    1708          CALL iom_put( 'hflx_rnf_cea' , rnf(:,:) * zcptn(:,:) ) 
    1709       IF( srcv(jpr_cal)%laction ) THEN  
     1681      zsnw(:,:) = zicefr(:,:) 
     1682      ! --- Continental fluxes --- ! 
     1683      IF( srcv(jpr_rnf)%laction ) THEN   ! runoffs (included in emp later on) 
     1684         rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
     1685      ENDIF 
     1686      IF( srcv(jpr_cal)%laction ) THEN   ! calving (put in emp_tot) 
    17101687         zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) 
    1711          CALL iom_put( 'calving_cea', frcv(jpr_cal)%z3(:,:,1) ) 
    1712       ENDIF 
    1713  
    1714  
    1715       IF( srcv(jpr_icb)%laction )  THEN  
     1688      ENDIF 
     1689      IF( srcv(jpr_icb)%laction ) THEN   ! iceberg added to runoffs 
    17161690         fwficb(:,:) = frcv(jpr_icb)%z3(:,:,1) 
    1717          rnf(:,:)    = rnf(:,:) + fwficb(:,:)   ! iceberg added to runoffs 
    1718          CALL iom_put( 'iceberg_cea', frcv(jpr_icb)%z3(:,:,1) ) 
    1719       ENDIF 
    1720       IF( srcv(jpr_isf)%laction )  THEN 
    1721         fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf (fwfisf <0 mean melting)   
    1722         CALL iom_put( 'iceshelf_cea', frcv(jpr_isf)%z3(:,:,1) ) 
    1723       ENDIF 
    1724  
     1691         rnf(:,:)    = rnf(:,:) + fwficb(:,:) 
     1692      ENDIF 
     1693      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting) 
     1694        fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1) 
     1695      ENDIF 
    17251696 
    17261697      IF( ln_mixcpl ) THEN 
     
    17361707      ENDIF 
    17371708 
    1738       IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea', frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) )  ! Sublimation over sea-ice (cell average) 
    1739                                     CALL iom_put( 'snowpre'    , sprecip(:,:)               )   ! Snow 
    1740       IF( iom_use('snow_ao_cea') )  CALL iom_put( 'snow_ao_cea', sprecip(:,:) * p_frld(:,:) )   ! Snow over ice-free ocean  (cell average) 
    1741       IF( iom_use('snow_ai_cea') )  CALL iom_put( 'snow_ai_cea', sprecip(:,:) * zicefr(:,:) )   ! Snow over sea-ice         (cell average) 
    17421709#endif 
    1743  
     1710      ! outputs 
     1711!!      IF( srcv(jpr_rnf)%laction )   CALL iom_put( 'runoffs' , rnf(:,:) * tmask(:,:,1)                                 )  ! runoff 
     1712!!      IF( srcv(jpr_isf)%laction )   CALL iom_put( 'iceshelf_cea', -fwfisf(:,:) * tmask(:,:,1)                         )  ! iceshelf 
     1713      IF( srcv(jpr_cal)%laction )   CALL iom_put( 'calving_cea' , frcv(jpr_cal)%z3(:,:,1) * tmask(:,:,1)                )  ! calving 
     1714      IF( srcv(jpr_icb)%laction )   CALL iom_put( 'iceberg_cea' , frcv(jpr_icb)%z3(:,:,1) * tmask(:,:,1)                )  ! icebergs 
     1715      IF( iom_use('snowpre') )      CALL iom_put( 'snowpre'     , sprecip(:,:)                                          )  ! Snow 
     1716      IF( iom_use('precip') )       CALL iom_put( 'precip'      , tprecip(:,:)                                          )  ! total  precipitation 
     1717      IF( iom_use('rain') )         CALL iom_put( 'rain'        , tprecip(:,:) - sprecip(:,:)                           )  ! liquid precipitation  
     1718      IF( iom_use('snow_ao_cea') )  CALL iom_put( 'snow_ao_cea' , sprecip(:,:) * ( 1._wp - zsnw(:,:) )                  )  ! Snow over ice-free ocean  (cell average) 
     1719      IF( iom_use('snow_ai_cea') )  CALL iom_put( 'snow_ai_cea' , sprecip(:,:) *           zsnw(:,:)                    )  ! Snow over sea-ice         (cell average) 
     1720      IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) * tmask(:,:,1) )  ! Sublimation over sea-ice (cell average) 
     1721      IF( iom_use('evap_ao_cea') )  CALL iom_put( 'evap_ao_cea' , ( frcv(jpr_tevp)%z3(:,:,1)  & 
     1722         &                                                        - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) ) * tmask(:,:,1) )  ! ice-free oce evap (cell average) 
     1723      ! note: runoff output is done in sbcrnf (which includes icebergs too) and iceshelf output is done in sbcisf 
     1724      ! 
    17441725      !                                                      ! ========================= ! 
    17451726      SELECT CASE( TRIM( sn_rcv_qns%cldes ) )                !   non solar heat fluxes   !   (qns) 
     
    17771758            &                                           + pist(:,:,1) * zicefr(:,:) ) ) 
    17781759      END SELECT 
    1779 !!gm 
    1780 !!    currently it is taken into account in leads budget but not in the zqns_tot, and thus not in  
    1781 !!    the flux that enter the ocean.... 
    1782 !!    moreover 1 - it is not diagnose anywhere....  
    1783 !!             2 - it is unclear for me whether this heat lost is taken into account in the atmosphere or not... 
    1784 !! 
    1785 !! similar job should be done for snow and precipitation temperature 
    17861760      !                                      
    1787       IF( srcv(jpr_cal)%laction ) THEN   ! Iceberg melting  
    1788          zqns_tot(:,:) = zqns_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) * lfus  ! add the latent heat of iceberg melting 
    1789                                                                          ! we suppose it melts at 0deg, though it should be temp. of surrounding ocean 
    1790          IF( iom_use('hflx_cal_cea') )   CALL iom_put( 'hflx_cal_cea', - frcv(jpr_cal)%z3(:,:,1) * lfus )   ! heat flux from calving 
    1791       ENDIF 
    1792  
    1793 !!chris      
    1794 !!    The heat content associated to the ice shelf in removed in the routine sbcisf.F90 
    1795       ! 
    1796       IF( srcv(jpr_icb)%laction )  zqns_tot(:,:) = zqns_tot(:,:) - frcv(jpr_icb)%z3(:,:,1) * lfus ! remove heat content associated to iceberg melting 
    1797  
     1761      ! --- calving (removed from qns_tot) --- ! 
     1762      IF( srcv(jpr_cal)%laction )   zqns_tot(:,:) = zqns_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) * lfus  ! remove latent heat of calving 
     1763                                                                                                    ! we suppose it melts at 0deg, though it should be temp. of surrounding ocean 
     1764      ! --- iceberg (removed from qns_tot) --- ! 
     1765      IF( srcv(jpr_icb)%laction )   zqns_tot(:,:) = zqns_tot(:,:) - frcv(jpr_icb)%z3(:,:,1) * lfus  ! remove latent heat of iceberg melting 
    17981766 
    17991767#if defined key_lim3       
     
    18501818      ENDIF 
    18511819 
    1852       ! some more outputs 
    1853       IF( iom_use('hflx_snow_cea') )    CALL iom_put('hflx_snow_cea',   sprecip(:,:) * ( zcptsnw(:,:) - Lfus ) )                       ! heat flux from snow (cell average) 
    1854       IF( iom_use('hflx_rain_cea') )    CALL iom_put('hflx_rain_cea', ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) )                ! heat flux from rain (cell average) 
    1855       IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea',sprecip(:,:) * ( zcptsnw(:,:) - Lfus ) * (1._wp - zsnw(:,:)) ) ! heat flux from snow (over ocean) 
    1856       IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea',sprecip(:,:) * ( zcptsnw(:,:) - Lfus ) * zsnw(:,:) )           ! heat flux from snow (over ice) 
    1857  
    18581820#else 
     1821      zcptsnw (:,:) = zcptn(:,:) 
     1822      zcptrain(:,:) = zcptn(:,:) 
     1823       
    18591824      ! clem: this formulation is certainly wrong... but better than it was... 
    1860       zqns_tot(:,:) = zqns_tot(:,:)                                 ! zqns_tot update over free ocean with: 
    1861          &          - ztmp(:,:)                           &            ! remove the latent heat flux of solid precip. melting 
    1862          &          - (  zemp_tot(:,:)                              ! remove the heat content of mass flux (assumed to be at SST) 
     1825      zqns_tot(:,:) = zqns_tot(:,:)                            &          ! zqns_tot update over free ocean with: 
     1826         &          - (  p_frld(:,:) * zsprecip(:,:) * lfus )  &          ! remove the latent heat flux of solid precip. melting 
     1827         &          - (  zemp_tot(:,:)                         &          ! remove the heat content of mass flux (assumed to be at SST) 
    18631828         &             - zemp_ice(:,:) ) * zcptn(:,:)  
    18641829 
     
    18731838         qns_ice(:,:,:) = zqns_ice(:,:,:) 
    18741839      ENDIF 
     1840 
    18751841#endif 
    1876  
     1842      ! outputs 
     1843      IF( srcv(jpr_cal)%laction )    CALL iom_put('hflx_cal_cea' , - frcv(jpr_cal)%z3(:,:,1) * lfus                                  ) ! latent heat from calving 
     1844      IF( srcv(jpr_icb)%laction )    CALL iom_put('hflx_icb_cea' , - frcv(jpr_icb)%z3(:,:,1) * lfus                                  ) ! latent heat from icebergs melting 
     1845      IF( iom_use('hflx_snow_cea') ) CALL iom_put('hflx_snow_cea',  sprecip(:,:) * ( zcptsnw(:,:) - Lfus )                           ) ! heat flux from snow (cell average) 
     1846      IF( iom_use('hflx_rain_cea') ) CALL iom_put('hflx_rain_cea',( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:)                    ) ! heat flux from rain (cell average) 
     1847      IF( iom_use('hflx_evap_cea') ) CALL iom_put('hflx_evap_cea',(frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) & ! heat flux from from evap (cell average) 
     1848         &                                                        ) * zcptn(:,:) * tmask(:,:,1) ) 
     1849      IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea',sprecip(:,:) * (zcptsnw(:,:) - Lfus) * (1._wp - zsnw(:,:))   ) ! heat flux from snow (over ocean) 
     1850      IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea',sprecip(:,:) * (zcptsnw(:,:) - Lfus) *          zsnw(:,:)    ) ! heat flux from snow (over ice) 
     1851      ! note: hflx for runoff and iceshelf are done in sbcrnf and sbcisf resp. 
     1852      ! 
    18771853      !                                                      ! ========================= ! 
    18781854      SELECT CASE( TRIM( sn_rcv_qsr%cldes ) )                !      solar heat fluxes    !   (qsr) 
     
    19801956      fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 
    19811957 
    1982       CALL wrk_dealloc( jpi,jpj,     zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
     1958      CALL wrk_dealloc( jpi,jpj,     zcptn, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
    19831959      CALL wrk_dealloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    19841960      CALL wrk_dealloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7816 r7968  
    168168 
    169169         ! output 
    170          CALL iom_put('qlatisf' , qisf) 
    171          CALL iom_put('fwfisf'  , fwfisf) 
     170         IF( iom_use('iceshelf_cea') )   CALL iom_put( 'iceshelf_cea', -fwfisf(:,:)                      )   ! isf mass flux 
     171         IF( iom_use('hflx_isf_cea') )   CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rau0 * rcp )   ! isf sensible+latent heat (W/m2) 
     172         IF( iom_use('qlatisf' ) )       CALL iom_put( 'qlatisf'     , qisf(:,:)                         )   ! isf latent heat 
     173         IF( iom_use('fwfisf'  ) )       CALL iom_put( 'fwfisf'      , fwfisf(:,:)                       )   ! isf mass flux (opposite sign) 
    172174 
    173175        ! Diagnostics 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r7753 r7968  
    138138         IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
    139139         !                                                           ! else use S=0 for runoffs (done one for all in the init) 
    140          CALL iom_put( "runoffs", rnf )         ! output runoffs arrays 
     140         IF( iom_use('runoffs') )        CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
     141         IF( iom_use('hflx_rnf_cea') )   CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rau0 * rcp )   ! output runoff sensible heat (W/m2) 
    141142      ENDIF 
    142143      ! 
Note: See TracChangeset for help on using the changeset viewer.