Changes between Version 21 and Version 22 of ticket/0665_mass_heat_salt_fluxes


Ignore:
Timestamp:
2010-05-09T11:33:53+02:00 (10 years ago)
Author:
gm
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0665_mass_heat_salt_fluxes

    v21 v22  
    211211   '''LIM3''' : the modules involved in the change are : (see also the '''revision -''') 
    212212 
     213 
     214 
    213215      '''==>> TO BE DONE later''' 
    214216 
    215 '''(2) Non-solar flux including the heat content of mass exchanges''' 
     217'''(2) Non-solar flux including the heat content of mass exchanges'''   see '''revision 1859''' 
    216218 
    217219   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).  
     
    347349 
    348350 
    349 '''(3)''' Update ocean forcing  and ice foricng''' 
     351'''(3) Update ocean forcing  and ice forcing'''   see '''revision 1859''' except for LIM-3 (limsbc.F90) updated in '''revision XXXX''' 
    350352 
    351353   Modification of trasbc and limsbc(_2) modules in order to take into account the above changes (heat content of water exchanges and explicit salt flux) 
     
    462464}}} 
    463465 
    464       LIM-3 : '''limsbc_2.F90''' :  ''' ==>>>  TO BE DONE'''.  
     466      LIM-3 : '''limsbc.F90''' :  see '''revision XXX'''.  
     467         Add soce_r and sice_r  as in LIM-2 case 
     468 
     469         In routine '''lim_sbc_flx''' the computation of the heat, salt and mass fluxes has been completely revisited. In particular, the coupled case should be now OK, except for the albedo computation which has to be checked. 
     470 
     471         The heat flux is now computed as follows:   '''    ===>>>> CAUTION  heat content still not added ! ''' 
     472{{{ 
     473            ! 
     474            !==  solar heat flux at ocean surface  ==!   (N.B. use of frld before it changes due to the thermodynanics) 
     475#if defined key_coupled  
     476            zqsr =                           qsr_tot(ji,jj)                   &   ! total over a cell 
     477               & - ( 1. - pfrld(ji,jj) ) * ( qsr_ice(ji,jj,1) - fstric(ji,jj) )   ! minus the fraction intercepted by ice 
     478#else 
     479            zqsr =        pfrld(ji,jj)   * qsr(ji,jj)                         &   ! fraction over open ocean 
     480               & + ( 1. - pfrld(ji,jj) ) * fstric(ji,jj)                          ! plus the faction passing through the ice 
     481#endif 
     482 
     483            fscmbq(ji,jj) = ( 1.0 - pfrld(ji,jj) ) * fstric(ji,jj)           !!gm ???  to be checked 
     484             
     485            ! 
     486            !==  non solar heat flux at ocean surface  ==! 
     487            zqns = - zqsr                                                                     &   ! remove the solar part 
     488               &   + iflt  * ( fscmbq(ji,jj) )                                                &   ! total abl -> fscmbq is given to the ocean 
     489               &   + ifral * ( ial * qcmif(ji,jj) + (1 - ial) * qldif(ji,jj) ) * r1_rdt_ice   & 
     490               &   + ifrdv * (       qfvbq(ji,jj) +             qdtcn(ji,jj) ) * r1_rdt_ice   & 
     491               &   + fhmec(ji,jj)                                                             &   ! snow melt in ridging 
     492               &   + fheat_rpo(ji,jj)                                                         &   ! porous ridged ice formation 
     493               &   + fheat_res(ji,jj)                                                             ! residual heat flux (correction of ice thickness) 
     494            ! fscmbq  Part of the solar radiation transmitted through the ice and going to the ocean computed in limthd_zdf.F90 
     495            ! ffltbif Total heat content of the ice (brine pockets+ice) / delta_t 
     496            ! qcmif   Energy needed to bring the ocean surface layer until its freezing (ok) 
     497            ! qldif   heat balance of the lead (or of the open ocean) 
     498            ! qfvbq   i think this is wrong!  ---> Array used to store energy in case of total lateral ablation 
     499            ! qfvbq latent heat uptake/release after accretion/ablation 
     500            ! qdtcn Energy from the turbulent oceanic heat flux heat flux coming in the lead 
     501 
     502            IF( num_sal == 2 )   zqns = zqns + fhbri(ji,jj)   ! brine drainage  
     503 
     504            ! bottom radiative component is sent to the computation of the oceanic heat flux 
     505            !==  store residual heat flux  == ! (put in the ocean at the next time-step) 
     506            fsbbq(ji,jj) = ( 1.0 - ( ifvt + iflt ) ) * fscmbq(ji,jj)      
     507 
     508            !==  heat fluxes at the ocean interface  ==! 
     509            qsr(ji,jj) = zqsr                                       ! solar heat flux  
     510            qns(ji,jj) = zqns - fdtcn(ji,jj)                        ! non solar heat flux 
     511            !                           ! fdtcn : turbulent oceanic heat flux 
     512!lim2 
     513!            ! - heat content of mass exchanged between ocean and sea-ice 
     514!            zqhc = ( rdq_snw(ji,jj) + rdq_ice(ji,jj) ) * r1_rdt_ice    ! heat flux due to snow & ice heat content exchanges 
     515!            !             
     516!            qsr(ji,jj) = zqsr                                          ! solar heat flux  
     517!            qns(ji,jj) = zqns - fdtcn(ji,jj) + zqhc                    ! non solar heat flux 
     518!  
     519!lim2  
     520}}} 
     521 
     522         The mass and salt fluxes are now computed as follows:  
     523{{{ 
     524            !==  mass flux at the ocean-atmosphere interface  ==!   (open ocean fraction = leads area) 
     525#if defined key_coupled 
     526            !                                                         ! coupled mode:  
     527            zemp =   emp_tot(ji,jj)                                 &    ! net mass flux over the grid cell (ice+ocean area) 
     528               &   - emp_ice(ji,jj) * ( 1. - pfrld(ji,jj) )              ! minus the mass flux intercepted by sea-ice 
     529#else 
     530            !                                                         ! forced  mode:  
     531            zemp =   emp(ji,jj)     * ( 1.0 - at_i(ji,jj)        )  &    ! mass flux over open ocean fraction  
     532               &   - tprecip(ji,jj) *         at_i(ji,jj)           &    ! add liquid precip. over ice reaches directly the ocean 
     533               &   + sprecip(ji,jj) * ( 1. - pfrld(ji,jj)**betas )  &    ! remove snow is intercepted by sea-ice (previous frld) 
     534#endif             
     535            ! 
     536            !==  mass flux at the ocean/ice-snow interface  ==!   (sea ice fraction) 
     537            zemp_snw =   rdm_snw(ji,jj) * r1_rdt_ice                &    ! snow melting = pure water that enters the ocean 
     538               &       - fmmec  (ji,jj)                                  ! snow falling when ridging 
     539               ! 
     540            zemp_ice = + rdm_ice(ji,jj) * r1_rdt_ice                     ! Freezing minus Melting (F-M) 
     541            ! 
     542            !==  salt flux at the ice/ocean interface  ==!   (sea ice fraction) [PSU*kg/m2/s] 
     543            zfsalt =   fsalt_res(ji,jj)            &   ! Residual salt flux due to correction of ice thickness 
     544               &     + fseqv    (ji,jj)            &   ! Equivalent salt flux due to ice growth/melt 
     545               &     + fsbri    (ji,jj) * zinda    &   ! brine drainage  
     546               &     + fsalt_rpo(ji,jj)                ! porous ridged ice formation 
     547               ! 
     548            zcd    =   soce_r(ji,jj)    * zemp_ice     ! concentration/dilution term due to F-M 
     549            ! 
     550            !==  total salt and mass fluxes at the ocean interface  ==! 
     551            ! zswitch=1, salt flux only       : add concentration dilution term in salt flux  and no  F-M term in volume flux 
     552            !        =0, salt and mass fluxes : no  concentration dilution term in salt flux  and add F-M term in volume flux 
     553            emps(ji,jj) = zfsalt +                  zswitch  * zcd       ! salt flux (+ C/D if no ice/ocean mass exchange) 
     554            emp (ji,jj) = zemp   + zemp_snw + ( 1.- zswitch) * zemp_ice  ! mass flux (- F/M mass flux if no ice/ocean mass exchange) 
     555            !             
     556            fsbri(ji,jj) =  zinda * fsbri(ji,jj)       !  correcting brine and salt fluxes (diag.) 
     557            ! 
     558}}} 
    465559 
    466560