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''' |