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 888 for trunk/NEMO/LIM_SRC_2/limthd_2.F90 – NEMO

Ignore:
Timestamp:
2008-04-11T19:05:03+02:00 (16 years ago)
Author:
ctlod
Message:

merge dev_001_SBC branche with the trunk to include the New Surface Module package, see ticket: #113

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC_2/limthd_2.F90

    r823 r888  
    44   !!              LIM thermo ice model : ice thermodynamic 
    55   !!====================================================================== 
     6   !! History :  1.0  !  00-01 (LIM) 
     7   !!            2.0  !  02-07 (C. Ethe, G. Madec) F90 
     8   !!            2.0  !  03-08 (C. Ethe)  add lim_thd_init 
     9   !!--------------------------------------------------------------------- 
    610#if defined key_lim2 
    711   !!---------------------------------------------------------------------- 
     
    1822   USE ice_2           ! LIM sea-ice variables 
    1923   USE ice_oce         ! sea-ice/ocean variables 
    20    USE flx_oce         ! sea-ice/ocean forcings variables  
     24   USE sbc_oce         !  
     25   USE sbc_ice         !  
    2126   USE thd_ice_2       ! LIM thermodynamic sea-ice variables 
    2227   USE dom_ice_2       ! LIM sea-ice domain 
     
    3035   PRIVATE 
    3136 
    32    !! * Routine accessibility 
    33    PUBLIC lim_thd_2       ! called by lim_step_2 
    34  
    35    !! * Module variables 
    36    REAL(wp)  ::            &  ! constant values 
    37       epsi20 = 1.e-20   ,  & 
    38       epsi16 = 1.e-16   ,  & 
    39       epsi04 = 1.e-04   ,  & 
    40       zzero  = 0.e0     ,  & 
    41       zone   = 1.e0 
     37   PUBLIC   lim_thd_2  ! called by lim_step 
     38 
     39   REAL(wp)  ::   epsi20 = 1.e-20   ,  &  ! constant values 
     40      &           epsi16 = 1.e-16   ,  & 
     41      &           epsi04 = 1.e-04   ,  & 
     42      &           zzero  = 0.e0     ,  & 
     43      &           zone   = 1.e0 
    4244 
    4345   !! * Substitutions 
     
    4648   !!-------- ------------------------------------------------------------- 
    4749   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)  
    48    !! $Header$  
    49    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     50   !! $ Id: $ 
     51   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    5052   !!---------------------------------------------------------------------- 
    5153 
     
    6870      !!             - back to the geographic grid 
    6971      !! 
    70       !! ** References : 
    71       !!       H. Goosse et al. 1996, Bul. Soc. Roy. Sc. Liege, 65, 87-90 
    72       !! 
    73       !! History : 
    74       !!   1.0  !  00-01 (LIM) 
    75       !!   2.0  !  02-07 (C. Ethe, G. Madec) F90 
     72      !! References :   Goosse et al. 1996, Bul. Soc. Roy. Sc. Liege, 65, 87-90 
    7673      !!--------------------------------------------------------------------- 
    7774      INTEGER, INTENT(in) ::   kt     ! number of iteration 
    78  
     75      !! 
    7976      INTEGER  ::   ji, jj,    &   ! dummy loop indices 
    8077         nbpb  ,               &   ! nb of icy pts for thermo. cal. 
     
    9289         zfontn             ,  &   ! heat flux from snow thickness 
    9390         zfntlat, zpareff          ! test. the val. of lead heat budget 
    94       REAL(wp), DIMENSION(jpi,jpj) :: & 
    95          zhicifp            ,  &   ! ice thickness for outputs 
    96          zqlbsbq                   ! link with lead energy budget qldif 
    97       REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    98          zmsk                      ! working array 
     91      REAL(wp), DIMENSION(jpi,jpj) ::   zhicifp,   &  ! ice thickness for outputs 
     92         &                              zqlbsbq       ! link with lead energy budget qldif 
     93      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmsk      ! working array 
    9994      !!------------------------------------------------------------------- 
    10095 
    101       IF( kt == nit000  )   CALL lim_thd_init_2  ! Initialization (first time-step only) 
     96      IF( kt == nit000 )   CALL lim_thd_init_2  ! Initialization (first time-step only) 
    10297    
    10398      !-------------------------------------------! 
     
    173168      !-------------------------------------------------------------------------- 
    174169 
     170      sst_m(:,:) = sst_m(:,:) + rt0 
     171 
    175172      !CDIR NOVERRCHK 
    176173      DO jj = 1, jpj 
     
    188185            !  temperature and turbulent mixing (McPhee, 1992) 
    189186            zfric_u        = MAX ( MIN( SQRT( ust2s(ji,jj) ) , zfric_umax ) , zfric_umin )  ! friction velocity 
    190             fdtcn(ji,jj)  = zindb * rau0 * rcp * 0.006  * zfric_u * ( sst_io(ji,jj) - tfu(ji,jj) )  
     187            fdtcn(ji,jj)  = zindb * rau0 * rcp * 0.006  * zfric_u * ( sst_m(ji,jj) - tfu(ji,jj) )  
    191188            qdtcn(ji,jj)  = zindb * fdtcn(ji,jj) * frld(ji,jj) * rdt_ice 
    192189                         
    193190            !  partial computation of the lead energy budget (qldif) 
    194191            zfontn         = ( sprecip(ji,jj) / rhosn ) * xlsn  !   energy for melting 
    195             zfnsol         = qnsr_oce(ji,jj)  !  total non solar flux 
    196             qldif(ji,jj)   = tms(ji,jj) * ( qsr_oce(ji,jj) * ( 1.0 - thcm(ji,jj) )   & 
     192            zfnsol         = qns(ji,jj)                         !  total non solar flux over the ocean 
     193            qldif(ji,jj)   = tms(ji,jj) * ( qsr(ji,jj) * ( 1.0 - thcm(ji,jj) )   & 
    197194               &                               + zfnsol + fdtcn(ji,jj) - zfontn     & 
    198195               &                               + ( 1.0 - zindb ) * fsbbq(ji,jj) )   & 
     
    206203             
    207204            !  energy needed to bring ocean surface layer until its freezing 
    208             qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( tfu(ji,jj) - sst_io(ji,jj) ) * ( 1 - zinda ) 
     205            qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( tfu(ji,jj) - sst_m(ji,jj) ) * ( 1 - zinda ) 
    209206             
    210207            !  calculate oceanic heat flux. 
     
    216213      END DO 
    217214       
     215      sst_m(:,:) = sst_m(:,:) - rt0 
    218216       
    219217      !         Select icy points and fulfill arrays for the vectorial grid. 
     
    258256         CALL tab_2d_1d_2( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0     , jpi, jpj, npb(1:nbpb) ) 
    259257         CALL tab_2d_1d_2( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0     , jpi, jpj, npb(1:nbpb) ) 
    260          CALL tab_2d_1d_2( nbpb, qnsr_ice_1d(1:nbpb)     , qnsr_ice   , jpi, jpj, npb(1:nbpb) ) 
     258         CALL tab_2d_1d_2( nbpb, qns_ice_1d (1:nbpb)     , qns_ice    , jpi, jpj, npb(1:nbpb) ) 
    261259#if ! defined key_coupled 
    262260         CALL tab_2d_1d_2( nbpb, qla_ice_1d (1:nbpb)     , qla_ice    , jpi, jpj, npb(1:nbpb) ) 
     
    404402         CALL prt_ctl(tab2d_1=qstoif, clinfo1=' lim_thd: qstoif  : ', tab2d_2=fsbbq , clinfo2=' fsbbq  : ') 
    405403      ENDIF 
    406  
     404       ! 
    407405    END SUBROUTINE lim_thd_2 
    408406 
     
    419417      !! 
    420418      !! ** input   :   Namelist namicether 
    421       !! 
    422       !! history : 
    423       !!  8.5  ! 03-08 (C. Ethe) original code 
    424419      !!------------------------------------------------------------------- 
    425420      NAMELIST/namicethd/ hmelt , hiccrit, hicmin, hiclim, amax  ,        & 
Note: See TracChangeset for help on using the changeset viewer.