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.
ticket/0665_mass_heat_salt_fluxes (diff) – NEMO

Changes between Version 17 and Version 18 of ticket/0665_mass_heat_salt_fluxes


Ignore:
Timestamp:
2010-05-05T11:00:30+02:00 (14 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0665_mass_heat_salt_fluxes

    v17 v18  
    1313{{{ 
    1414* check out of NEMO directory: 
    15  
    1615svn co svn+ssh://gm@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/DEV_r1837_mass_heat_salt_fluxes/NEMO 
    1716 
    1817* commit : 
    19  
    2018svn ci  -m  "ticket:#665  blah_blah"    list_of_file 
    21  
    2219}}} 
    2320 
     
    214211      '''==>> TO BE DONE later''' 
    215212 
    216  
    217 '''(2) introduction of a explicit a salt flux'''  
     213'''(2) Non-solar flux including the heat content of mass exchanges''' 
     214 
     215   the definition of qns is modified as follows: the non solar part of the surface heat flux takes now also into account the heat content changes due to the change in volume associated with evaporation, precipitation, ice freezing and ice melting. This heat content is evaluated using the temperature (expressed in Celcius) of the mass of water exchanged between the different media (ocean, atmosphere and ice).  
     216 
     217   Note that the latent heat flux associated to the meltin of solid precipitation is now taken into account directly in qns in sbc... routines, instead of been added in limthd(_2) (cf. step (1)) 
     218 
     219   • ocean-atmosphere mass exchanges :   
     220 
     221      # liquid precipitation are assumed to be at the air temperature expressed in Celcius) 
     222 
     223      # solid precipitation are assumed to be at least below the the melting temperature of snow (rtt_snow) : min( Tair , rtt_snow ) 
     224 
     225      # evaporation are at the SST. Note that sst_m is used. This is thus different from the former implicit value assumed for both precip and evap (use of tn in trasbc.F90) 
     226 
     227      The associated modified modules are : sbcmod.F90 ; sb 
     228 
     229      • '''sbcmod.F90''' : initialize emps to zero. The following lines have been added 
     230{{{ 
     231      emps(:,:) = 0.e0                             ! the salt flux will be computed (i.e. will be non-zero) only if  
     232      !                                            ! sea-ice is present, or lk_vvl=F, or surface salt restoring is used. 
     233}}} 
     234 
     235      • '''sbcblk_core.F90''' : add in qns the latent flux of solid precipitation + heat content of precip. and evap. In blk_oce_core routine, the following lines 
     236{{{ 
     237!CDIR COLLAPSE 
     238      qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)      ! Downward Non Solar flux 
     239!CDIR COLLAPSE 
     240      emp (:,:) = zevap(:,:) - sf(jp_prec)%fnow(:,:) * rn_pfac * tmask(:,:,1) 
     241}}} 
     242      becomes 
     243{{{ 
     244!CDIR COLLAPSE 
     245      qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)      &                    ! Downward Non Solar flux 
     246         &     - sf(jp_snow)%fnow(:,:) * lfus                                ! including melting of solid precip 
     247!CDIR COLLAPSE 
     248      emp (:,:) = (  zevap(:,:)                         &                    ! mass flux (evap. - precip.) 
     249         &         - sf(jp_prec)%fnow(:,:) * rn_pfac  ) * tmask(:,:,1) 
     250!CDIR COLLAPSE 
     251      qns(:,:) = qns(:,:)                                                &   ! heat content due to mass flux (T in Celcius) 
     252         &     - zevap(:,:) * pst(ji,jj) * rcp                           &      ! evaporation at SST 
     253         &     + ( sf(jp_prec)%fnow(:,:) - sf(jp_snow)%fnow(:,:) )       &      ! liquid precip at Tair 
     254         &     * ( sf(jp_tair)%fnow(:,:) - rt0 ) * rcp                   &    
     255         &     + sf(jp_snow)%fnow(:,:)                                   &      ! solid  precip at min(Tair,Tsnow) 
     256         &     * ( MIN( sf(jp_tair)%fnow(:,:), rt0_snow ) - rt0 ) * cpic  
     257}}} 
     258 
     259      • '''sbcblk_clio.F90''' : add in qns the latent flux of solid precipitation (only if sea-ice present, otherwise the solid precipitation are not computed) + heat content of precip. and evap. In  blk_oce_clio routine, the following lines 
     260{{{ 
     261!CDIR COLLAPSE 
     262!CDIR NOVERRCHK 
     263      DO jj = 1, jpj 
     264!CDIR NOVERRCHK 
     265         DO ji = 1, jpi 
     266            qns (ji,jj) = zqlw(ji,jj) - zqsb(ji,jj) - zqla(ji,jj)      ! Downward Non Solar flux 
     267            emp (ji,jj) = zqla(ji,jj) / cevap - sf(jp_prec)%fnow(ji,jj) / rday * tmask(ji,jj,1) 
     268         END DO 
     269      END DO 
     270      emps(:,:) = emp(:,:) 
     271}}} 
     272      becomes 
     273{{{ 
     274      zcevap = rcp /  cevap    ! convert zqla ==> evap (Kg/m2/s) ==> m/s ==> W/m2 
     275      zcprec = rcp /  rday     ! convert prec ( mm/day ==> m/s)  ==> W/m2 
     276 
     277!CDIR COLLAPSE 
     278      qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)                    ! Downward Non Solar flux 
     279!CDIR COLLAPSE 
     280      emp(:,:) = zqla(:,:) / cevap                                &   ! freshwater flux 
     281         &     - sf(jp_prec)%fnow(:,:) / rday * tmask(:,:,1) 
     282      !                                                               ! add heat content of mass exhanges 
     283!CDIR COLLAPSE 
     284      qns(:,:) = qns(:,:)                                                 & 
     285         &     - zqla(:,:)             * pst(:,:)              * zcevap   &   ! evaporation at SST in Celcius 
     286         &     + sf(jp_prec)%fnow(:,:) * sf(jp_tair)%fnow(:,:) * zcprec       ! precipitation at Tair in Celcius 
     287      ! NB: if sea-ice model, the snow precip are computed and the associated heat is added to qns (see blk_ice_clio) 
     288}}} 
     289      and in blk_ice_clio, add the following lines: 
     290{{{ 
     291      ! ----------------------------------------------------------------------------- ! 
     292      !    Correct the OCEAN non solar flux with the existence of solid precipitation ! 
     293      ! ---------------=====--------------------------------------------------------- ! 
     294!CDIR COLLAPSE 
     295      qns(:,:) = qns(:,:)                                           &   ! update the non-solar heat flux with: 
     296         &     - p_spr(:,:) * lfus                                                  &   ! melting solid precip 
     297         &     + p_spr(:,:) * MIN( sf(jp_tair)%fnow(:,:), rt0_snow - rt0 ) * cpic   &   ! solid P at least below melting 
     298         &     - p_spr(:,:) * sf(jp_tair)%fnow(:,:)                        * rcp        ! remove solid precip 
     299}}} 
     300 
     301 
     302 
     303'''(3) introduction of a explicit a salt flux'''  
    218304 
    219305   The emps field is suppress by introducing '''fsalt''', the salt flux at the ocean surface (only non zero below sea-ice) 
     
    225311 
    226312 
    227 '''(3) Non-solar flux including the heat content of mass exchanges''' 
    228  
    229    the definition of qns is modified as follows: the non solar part of the surface heat flux takes now also into account the heat content changes due to the change in volume associated with evaporation, precipitation, ice freezing and ice melting. 
    230  
    231313 
    232314'''(4) Update ocean and ice forcing''' 
     
    236318 
    237319'''N.B.''' 
     320   • introduce (as was done for sea-ice embedment) the air temperature as an argument of both blk_ice_core and blk_ice_clio routines 
     321 
    238322   • Philosophical change: in near future it appears that the use of key_vvl should be replaced by key_linssh. In other words, the defaut option of NEMO will be a non-linear free surface (and thus variable volume for the model levels). This has to be discussed prior to its implementation. 
     323 
     324   • In the same idea : the embedded sea-ice should become the defaut case, with in option the 2 levitating cases. A test should then force a levitating sea-ice if key_linssh defined 
    239325 
    240326----