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 13 and Version 14 of ticket/0665_mass_heat_salt_fluxes


Ignore:
Timestamp:
2010-05-04T09:41:46+02:00 (14 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0665_mass_heat_salt_fluxes

    v13 v14  
    6666      • '''limthd_2.F90''' : introduce the new variable names, and pass the new variables (rdq_snw, rdq_ice) to the lim_thd_zdf and lim_thd_lac routines 
    6767 
    68       Note 1: we suppress the change of ssit from Celcius to Kelvin and vice versa  by adding a " + rt0 " at the 2 places it is used. 
     68      Note 1: we suppress the change of sst_m from Celcius to Kelvin and vice versa  by adding a " + rt0 " at the 2 places it is used. 
    6969 
    7070      Note 2: zfontn has been suppressed as the heat associated with the melting of solid precipitation is now added to qns in sbc modules  ('''==>>  TO BE DONE in SBC''') 
    7171 
    72       • '''limthd_lac_2.F90''' : introduce the new variable name (rdm_ice), and add the computation of rdq_ice) : 
     72      • '''limthd_lac_2.F90''' : introduce the new variable name (rdm_ice), and add the update of rdq_ice : the last DO loop of lim_thd_lac routine is transformed as follows : 
     73{{{ 
     74      DO ji = kideb , kiut 
     75         dvlbq_1d  (ji) = ( 1. - frld_1d(ji) ) * h_ice_1d(ji) - ( 1. - zfrl_old(ji) ) * zhice_old(ji) 
     76         rdmicif_1d(ji) = rdmicif_1d(ji) + rhoic * dvlbq_1d(ji) 
     77      END DO 
     78}}} 
     79      becomes 
     80{{{ 
     81      DO ji = kideb , kiut 
     82         dvlbq_1d  (ji) = ( 1. - frld_1d(ji) ) * h_ice_1d(ji) - ( 1. - zfrl_old(ji) ) * zhice_old(ji) 
     83         rdm_ice_1d(ji) = rdm_ice_1d(ji) + rhoic * dvlbq_1d(ji) 
     84         rdq_ice_1d(ji) = rdq_ice_1d(ji) + rcpic * dvlbq_1d(ji) * ( tfu_1d(ji) - rt0 )      ! heat content relative to rt0 
     85      END DO 
     86}}} 
     87 
    7388 
    7489      • '''limthd_zdf_2.F90''' : introduce the new variable names (rdm_snw, rdm_ice), and and add the computation/update of rdq_snw, rdq_ice : 
     90 
     91      § " 9.1. Surface ablation and update of snow thickness and qstbif_1d ", the lines 
     92{{{ 
     93          !--volume of snow lost after surface melting and the associated mass 
     94          dvsbq_1d(ji) =  ( 1.0 - frld_1d(ji) ) * ( h_snow_1d(ji) - zhsnw_old(ji) - zsprecip(ji) ) 
     95          dvsbq_1d(ji) =  MIN( zzero , dvsbq_1d(ji) ) 
     96          rdmsnif_1d(ji) =  rhosn * dvsbq_1d(ji) 
     97}}} 
     98      becomes 
     99{{{ 
     100          !--volume of snow lost after surface melting and the associated mass 
     101          dvsbq_1d(ji) =  ( 1.0 - frld_1d(ji) ) * ( h_snow_1d(ji) - zhsnw_old(ji) - zsprecip(ji) ) 
     102          dvsbq_1d(ji) =  MIN( zzero , dvsbq_1d(ji) ) 
     103          ztmp = rhosn * dvsbq_1d(ji) 
     104          rdm_snw_1d(ji) =  ztmp 
     105          !--heat content of the water provided to the ocean (referenced to rt0) 
     106          rdq_snw_1d(ji) =  cpic * ztmp * ( rt0_snow - rt0 ) 
     107}}} 
     108 
     109      § " 9.4. Case of total ablation (ice is gone but snow may be left) ", the lines : 
     110{{{ 
     111          !---updating new ice thickness and computing the newly formed ice mass 
     112          zhicnew   =  zihgnew * zhicnew 
     113          rdmicif_1d(ji) =  rdmicif_1d(ji) + ( 1.0 - frld_1d(ji) ) * ( zhicnew - h_ice_1d(ji) ) * rhoic 
     114          !---updating new snow thickness and computing the newly formed snow mass 
     115          zhsnfi   = zhsn + zdhsnm 
     116          h_snow_1d(ji) = MAX( zzero , zhsnfi ) 
     117          rdmsnif_1d(ji) =  rdmsnif_1d(ji) + ( 1.0 - frld_1d(ji) ) * ( h_snow_1d(ji) - zhsn ) * rhosn 
     118}}} 
     119      becomes 
     120{{{           
     121          !---updating new ice thickness and computing the newly formed ice mass 
     122          zhicnew   =  zihgnew * zhicnew 
     123          ztmp    =  ( 1.0 - frld_1d(ji) ) * ( zhicnew - h_ice_1d(ji) ) * rhoic 
     124          rdm_ice_1d(ji) =  rdm_ice_1d(ji) + ztmp 
     125          !---heat content of the water provided to the ocean (referenced to rt0) 
     126          ! use of rt0_ice is OK for melting ice, in case of freezing tfu_1d should be used. This is done in 9.5 section (see below) 
     127          rdq_ice_1d(ji) =  cpic * ztmp * ( rt0_ice - rt0 ) 
     128          !---updating new snow thickness and computing the newly formed snow mass 
     129          zhsnfi   = zhsn + zdhsnm 
     130          h_snow_1d(ji) = MAX( zzero , zhsnfi ) 
     131          ztmp = ( 1.0 - frld_1d(ji) ) * ( h_snow_1d(ji) - zhsn ) * rhosn 
     132          rdm_snw_1d(ji) = rdm_snw_1d(ji) + ztmp 
     133          !---updating the heat content of the water provided to the ocean (referenced to rt0) 
     134          rdq_snw_1d(ji) = rdq_snw_1d(ji) + cpic * ztmp * ( rt0_snow - rt0 ) 
     135}}} 
     136 
     137      § " 9.5. Update internal temperature and ice thickness. ", the following lines have been added at the end : 
     138{{{ 
     139          ! update the ice heat content given to the ocean in freezing case (part from rt0_ice to tfu_1d) 
     140         ztmp = ( 1. - zidhb ) * rhoic * dvbbq_1d(ji) 
     141         rdqicif_1d(ji) = rdqicif_1d(ji) + cpic * ztmp * ( tfu_1d(ji) - rt0_ice ) 
     142}}} 
     143 
     144      § " 10. Surface accretion. ", the lines : 
     145{{{ 
     146          !---  volume change of ice and snow (used for ocean-ice freshwater flux computation) 
     147          rdmicif_1d(ji) = rdmicif_1d(ji) + ( 1.0 - frld_1d(ji) )   * ( zhicnew - h_ice_1d (ji) ) * rhoic 
     148          rdmsnif_1d(ji) = rdmsnif_1d(ji) + ( 1.0 - frld_1d(ji) )   * ( zhsnnew - h_snow_1d(ji) ) * rhosn 
     149}}} 
     150      becomes 
     151{{{ 
     152          !---  volume change of ice and snow (used for ocean-ice freshwater flux computation) 
     153          ztmp = ( 1.0 - frld_1d(ji) ) * ( zhicnew - h_ice_1d (ji) ) * rhoic 
     154          rdm_ice_1d(ji) = rdm_ice_1d(ji) + ztmp 
     155          rdq_ice_1d(ji) = rdq_ice_1d(ji) + cpic * ztmp * ( tfu_1d(ji) - rt0 ) 
     156!!gm BUG ??   snow ==>  only needed for nn_ice_embd == 0  (standard levitating sea-ice) 
     157          ztmp = ( 1.0 - frld_1d(ji) )   * ( zhsnnew - h_snow_1d(ji) ) * rhosn 
     158         rdm_snw_1d(ji) = rdm_snw_1d(ji) + ztmp 
     159         rdq_snw_1d(ji) = rdq_snw_1d(ji) + cpic * ztmp * ( rt0_snow - rt0 ) 
     160}}} 
     161      and, at last, § " 11. Lateral ablation (Changes in sea/ice fraction) ", the lines : 
     162{{{ 
     163          !--variation of ice volume and ice mass  
     164          dvlbq_1d(ji)   = zihic * ( zfrl_old(ji) - frld_1d(ji) ) * h_ice_1d(ji) 
     165          rdmicif_1d(ji) = rdmicif_1d(ji) + dvlbq_1d(ji) * rhoic 
     166          !--variation of snow volume and snow mass  
     167          zdvsnvol    = zihsn * ( zfrl_old(ji) - frld_1d(ji) ) * h_snow_1d(ji) 
     168          rdmsnif_1d(ji) = rdmsnif_1d(ji) + zdvsnvol * rhosn 
     169}}} 
     170      becomes 
     171{{{ 
     172          !--variation of ice volume and ice mass  
     173          dvlbq_1d(ji)   = zihic * ( zfrl_old(ji) - frld_1d(ji) ) * h_ice_1d(ji) 
     174          ztmp = dvlbq_1d(ji) * rhoic 
     175          rdm_ice_1d(ji) = rdm_ice_1d(ji) + ztmp 
     176!!gm 
     177!!gm   This should be split in two parts: 
     178!!gm         1-  heat required to bring sea-ice at tfu  : this part should be added to the heat flux taken from the ocean 
     179!!gm                 cpic * ztmp * 0.5 * ( tbif_1d(ji,2) + tbif_1d(ji,3) - 2.* rt0_ice ) 
     180!!gm         2-  heat content of lateral ablation referenced to rt0 : this part only put in rdq_ice_1d 
     181!!gm                 cpic * ztmp * ( rt0_ice - rt0 ) 
     182!!gm   Currently we put all the heat in rdq_ice_1d 
     183          rdq_ice_1d(ji) = rdq_ice_1d(ji) + cpic * ztmp * 0.5 * ( tbif_1d(ji,2) + tbif_1d(ji,3) - 2.* rt0 ) 
     184          ! 
     185          !--variation of snow volume and snow mass  
     186          zdvsnvol = zihsn * ( zfrl_old(ji) - frld_1d(ji) ) * h_snow_1d(ji) 
     187          ztmp     = zdvsnvol * rhosn 
     188          rdm_snw_1d(ji) = rdm_snw_1d(ji) + ztmp 
     189!!gm 
     190!!gm   This should be split in two parts: 
     191!!gm         1-  heat required to bring snow at tfu  : this part should be added to the heat flux taken from the ocean 
     192!!gm                 cpic * ztmp * ( tbif_1d(ji,1) - rt0_snow ) 
     193!!gm         2-  heat content of lateral ablation referenced to rt0 : this part only put in rdqicif_1d 
     194!!gm                 cpic * ztmp * ( rt0_snow - rt0 ) 
     195!!gm   Currently we put all the heat in rdqicif_1d 
     196          rdq_snw_1d(ji) = rdq_snw_1d(ji) + cpic * ztmp * ( tbif_1d(ji,1) - rt0 ) 
     197}}} 
    75198 
    76199      • '''phycst.F90''' : style changes + :