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 4506 for branches/dev_r4028_CNRS_LIM3_MV2014/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90 – NEMO

Ignore:
Timestamp:
2014-02-21T15:20:39+01:00 (10 years ago)
Author:
vancop
Message:

[Heat conservation in LIM3, part HC1 (LIM_SRC_3_HC17)]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r4028_CNRS_LIM3_MV2014/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r4332 r4506  
    8181      LOGICAL  ::   iterate_frazil   ! iterate frazil ice collection thickness 
    8282      CHARACTER (len = 15) :: fieldid 
    83       ! 
     83 
     84      REAL(wp) ::   zQm          ! enthalpy exchanged with the ocean (J/m2, >0 towards ocean) 
     85      REAL(wp) ::   zEi          ! sea ice specific enthalpy (J/kg) 
     86      REAL(wp) ::   zEw          ! seawater specific enthalpy (J/kg) 
     87      REAL(wp) ::   zfmdt        ! mass flux x time step (kg/m2, >0 towards ocean) 
     88        
    8489      INTEGER , POINTER, DIMENSION(:) ::   zcatac      ! indexes of categories where new ice grows 
    8590      REAL(wp), POINTER, DIMENSION(:) ::   zswinew     ! switch for new ice or not 
     
    323328         CALL tab_2d_1d( nbpac, sfx_thd_1d(1:nbpac)     , sfx_thd, jpi, jpj, npac(1:nbpac) ) 
    324329         CALL tab_2d_1d( nbpac, rdm_ice_1d(1:nbpac)     , rdm_ice, jpi, jpj, npac(1:nbpac) ) 
     330         CALL tab_2d_1d( nbpac, rdq_ice_1d(1:nbpac)     , rdq_ice, jpi, jpj, npac(1:nbpac) ) 
    325331         CALL tab_2d_1d( nbpac, hicol_b   (1:nbpac)     , hicol  , jpi, jpj, npac(1:nbpac) ) 
    326332         CALL tab_2d_1d( nbpac, zvrel_ac  (1:nbpac)     , zvrel  , jpi, jpj, npac(1:nbpac) ) 
     
    365371               &                       + lfus * ( 1.0 - ( ztmelts - rtt ) / ( t_bo_b(ji) - rtt ) )   & 
    366372               &                       - rcp  *         ( ztmelts - rtt )  ) 
     373            ! MV HC 2014 comment I dont see why this line below is here... ? 
     374            ! This implies that ze_newice gets to rhoic*Lfus if it was negative, but this should never happen 
    367375            ze_newice(ji) =   MAX( ze_newice(ji) , 0._wp )    & 
    368376               &          +   MAX(  0.0 , SIGN( 1.0 , - ze_newice(ji) )  ) * rhoic * lfus 
     
    386394         !------------------- 
    387395         DO ji = 1, nbpac 
    388             zv_newice(ji) = - zqbgow(ji) / ze_newice(ji) 
     396 
     397            zEi           = - ze_newice(ji) / rhoic                ! specific enthalpy of forming ice [J/kg] 
     398 
     399            zEw           = rcp * ( t_bo_b(ji) - rt0 )             ! specific enthalpy of seawater at t_bo_b [J/kg] 
     400 
     401            zdE           = zEi - zEw                              ! specific enthalpy difference [J/kg] 
     402 
     403            zfmdt         = - zqbgow(ji) / zdE                     ! Fm.dt [kg/m2] (<0)  
     404 
     405            zv_newice(ji) = - zfmdt / rhoic 
     406 
     407            zQm           = zfmdt * zEw                            ! heat to the ocean >0 associated with mass flux   
     408 
     409            ! Contribution to energy flux to the ocean [J/m2], >0   
     410            rdq_ice_1d(ji) = rdq_ice_1d(ji) + zQm  
    389411 
    390412            ! A fraction zfrazb of frazil ice is accreted at the ice bottom 
     
    539561         END DO 
    540562!!gm ???  why the previous do loop  if ocerwriten by the following one ? 
     563!! MV HC 2014 just because it'snot the same index and the expression is different 
    541564         DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2) 
    542565            DO ji = 1, nbpac 
     
    623646         CALL tab_1d_2d( nbpac, sfx_thd, npac(1:nbpac), sfx_thd_1d(1:nbpac), jpi, jpj ) 
    624647         CALL tab_1d_2d( nbpac, rdm_ice, npac(1:nbpac), rdm_ice_1d(1:nbpac), jpi, jpj ) 
     648         CALL tab_1d_2d( nbpac, rdq_ice, npac(1:nbpac), rdq_ice_1d(1:nbpac), jpi, jpj ) 
    625649         ! 
    626650      ENDIF ! nbpac > 0 
Note: See TracChangeset for help on using the changeset viewer.