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 719 for trunk/NEMO/LIM_SRC/limthd.F90 – NEMO

Ignore:
Timestamp:
2007-10-16T16:59:56+02:00 (17 years ago)
Author:
ctlod
Message:

get back to the nemo_v2_3 version for trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC/limthd.F90

    • Property svn:keywords changed from Id to Author Date Id Revision
    r717 r719  
    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    !!--------------------------------------------------------------------- 
    106#if defined key_ice_lim 
    117   !!---------------------------------------------------------------------- 
     
    1511   !!   lim_thd_init : initialisation of sea-ice thermodynamic 
    1612   !!---------------------------------------------------------------------- 
     13   !! * Modules used 
    1714   USE phycst          ! physical constants 
    1815   USE dom_oce         ! ocean space and time domain variables 
     
    2118   USE ice             ! LIM sea-ice variables 
    2219   USE ice_oce         ! sea-ice/ocean variables 
    23    USE sbc_oce         !  
    24    USE sbc_ice         !  
     20   USE flx_oce         ! sea-ice/ocean forcings variables  
    2521   USE thd_ice         ! LIM thermodynamic sea-ice variables 
    2622   USE dom_ice         ! LIM sea-ice domain 
     
    3430   PRIVATE 
    3531 
    36    PUBLIC   lim_thd    ! called by lim_step 
    37  
    38    REAL(wp)  ::   epsi20 = 1.e-20   ,  &  ! constant values 
    39       &           epsi16 = 1.e-16   ,  & 
    40       &           epsi04 = 1.e-04   ,  & 
    41       &           zzero  = 0.e0     ,  & 
    42       &           zone   = 1.e0 
     32   !! * Routine accessibility 
     33   PUBLIC lim_thd       ! called by lim_step 
     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 
    4342 
    4443   !! * Substitutions 
     
    4746   !!-------- ------------------------------------------------------------- 
    4847   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)  
    49    !! $Id$ 
    50    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     48   !! $Header$  
     49   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    5150   !!---------------------------------------------------------------------- 
    5251 
     
    6968      !!             - back to the geographic grid 
    7069      !! 
    71       !! References :   Goosse et al. 1996, Bul. Soc. Roy. Sc. Liege, 65, 87-90 
     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 
    7276      !!--------------------------------------------------------------------- 
    7377      INTEGER, INTENT(in) ::   kt     ! number of iteration 
    74       !! 
     78 
    7579      INTEGER  ::   ji, jj,    &   ! dummy loop indices 
    7680         nbpb  ,               &   ! nb of icy pts for thermo. cal. 
     
    8892         zfontn             ,  &   ! heat flux from snow thickness 
    8993         zfntlat, zpareff          ! test. the val. of lead heat budget 
    90       REAL(wp), DIMENSION(jpi,jpj) ::   zhicifp,   &  ! ice thickness for outputs 
    91          &                              zqlbsbq       ! link with lead energy budget qldif 
    92       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmsk      ! working array 
     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 
    9399      !!------------------------------------------------------------------- 
    94100 
    95       IF( kt == nit000 )   CALL lim_thd_init  ! Initialization (first time-step only) 
     101      IF( kt == nit000  )   CALL lim_thd_init  ! Initialization (first time-step only) 
    96102    
    97103      !-------------------------------------------! 
     
    182188            !  temperature and turbulent mixing (McPhee, 1992) 
    183189            zfric_u        = MAX ( MIN( SQRT( ust2s(ji,jj) ) , zfric_umax ) , zfric_umin )  ! friction velocity 
    184 !!gm old    fdtcn(ji,jj)  = zindb * rau0 * rcp * 0.006  * zfric_u * ( sst_io(ji,jj) - tfu(ji,jj) )  
    185             fdtcn(ji,jj)  = zindb * rau0 * rcp * 0.006  * zfric_u * ( sst_m(ji,jj) - tfu(ji,jj) )  
     190            fdtcn(ji,jj)  = zindb * rau0 * rcp * 0.006  * zfric_u * ( sst_io(ji,jj) - tfu(ji,jj) )  
    186191            qdtcn(ji,jj)  = zindb * fdtcn(ji,jj) * frld(ji,jj) * rdt_ice 
    187192                         
    188193            !  partial computation of the lead energy budget (qldif) 
    189194            zfontn         = ( sprecip(ji,jj) / rhosn ) * xlsn  !   energy for melting 
    190             zfnsol         = qns(ji,jj)                         !  total non solar flux over the ocean 
    191             qldif(ji,jj)   = tms(ji,jj) * ( qsr(ji,jj) * ( 1.0 - thcm(ji,jj) )   & 
     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) )   & 
    192197               &                               + zfnsol + fdtcn(ji,jj) - zfontn     & 
    193198               &                               + ( 1.0 - zindb ) * fsbbq(ji,jj) )   & 
     
    201206             
    202207            !  energy needed to bring ocean surface layer until its freezing 
    203 !!gm old    qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( tfu(ji,jj) - sst_io(ji,jj) ) * ( 1 - zinda ) 
    204             qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( tfu(ji,jj) - sst_m(ji,jj) ) * ( 1 - zinda ) 
     208            qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( tfu(ji,jj) - sst_io(ji,jj) ) * ( 1 - zinda ) 
    205209             
    206210            !  calculate oceanic heat flux. 
     
    254258         CALL tab_2d_1d( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0     , jpi, jpj, npb(1:nbpb) ) 
    255259         CALL tab_2d_1d( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0     , jpi, jpj, npb(1:nbpb) ) 
    256          CALL tab_2d_1d( nbpb, qns_ice_1d (1:nbpb)     , qns_ice    , jpi, jpj, npb(1:nbpb) ) 
     260         CALL tab_2d_1d( nbpb, qnsr_ice_1d(1:nbpb)     , qnsr_ice   , jpi, jpj, npb(1:nbpb) ) 
    257261#if ! defined key_coupled 
    258262         CALL tab_2d_1d( nbpb, qla_ice_1d (1:nbpb)     , qla_ice    , jpi, jpj, npb(1:nbpb) ) 
     
    390394      IF(ln_ctl) THEN 
    391395         CALL prt_ctl_info(' lim_thd  end  ') 
    392          CALL prt_ctl(tab2d_1=hicif      , clinfo1=' hicif   : ', tab2d_2=hsnif      , clinfo2=' hsnif  : ') 
    393          CALL prt_ctl(tab2d_1=frld       , clinfo1=' frld    : ', tab2d_2=hicifp     , clinfo2=' hicifp : ') 
    394          CALL prt_ctl(tab2d_1=phicif     , clinfo1=' phicif  : ', tab2d_2=pfrld      , clinfo2=' pfrld  : ') 
    395          CALL prt_ctl(tab2d_1=sist       , clinfo1=' sist    : ', tab2d_2=tbif(:,:,1), clinfo2=' tbif 1 : ') 
    396          CALL prt_ctl(tab2d_1=tbif(:,:,2), clinfo1=' tbif 2  : ', tab2d_2=tbif(:,:,3), clinfo2=' tbif 3 : ') 
    397          CALL prt_ctl(tab2d_1=fdtcn      , clinfo1=' fdtcn   : ', tab2d_2=qdtcn      , clinfo2=' qdtcn  : ') 
    398          CALL prt_ctl(tab2d_1=qstoif     , clinfo1=' qstoif  : ', tab2d_2=fsbbq      , clinfo2=' fsbbq  : ') 
    399       ENDIF 
    400        ! 
    401    END SUBROUTINE lim_thd 
    402  
    403  
    404    SUBROUTINE lim_thd_init 
     396         CALL prt_ctl(tab2d_1=hicif , clinfo1=' lim_thd: hicif   : ', tab2d_2=hsnif , clinfo2=' hsnif  : ') 
     397         CALL prt_ctl(tab2d_1=frld  , clinfo1=' lim_thd: frld    : ', tab2d_2=hicifp, clinfo2=' hicifp : ') 
     398         CALL prt_ctl(tab2d_1=phicif, clinfo1=' lim_thd: phicif  : ', tab2d_2=pfrld , clinfo2=' pfrld  : ') 
     399         CALL prt_ctl(tab2d_1=sist  , clinfo1=' lim_thd: sist    : ') 
     400         CALL prt_ctl(tab2d_1=tbif(:,:,1), clinfo1=' lim_thd: tbif 1  : ') 
     401         CALL prt_ctl(tab2d_1=tbif(:,:,2), clinfo1=' lim_thd: tbif 2  : ') 
     402         CALL prt_ctl(tab2d_1=tbif(:,:,3), clinfo1=' lim_thd: tbif 3  : ') 
     403         CALL prt_ctl(tab2d_1=fdtcn , clinfo1=' lim_thd: fdtcn   : ', tab2d_2=qdtcn , clinfo2=' qdtcn  : ') 
     404         CALL prt_ctl(tab2d_1=qstoif, clinfo1=' lim_thd: qstoif  : ', tab2d_2=fsbbq , clinfo2=' fsbbq  : ') 
     405      ENDIF 
     406 
     407    END SUBROUTINE lim_thd 
     408 
     409 
     410    SUBROUTINE lim_thd_init 
    405411      !!------------------------------------------------------------------- 
    406412      !!                   ***  ROUTINE lim_thd_init ***  
     
    413419      !! 
    414420      !! ** input   :   Namelist namicether 
     421      !! 
     422      !! history : 
     423      !!  8.5  ! 03-08 (C. Ethe) original code 
    415424      !!------------------------------------------------------------------- 
    416425      NAMELIST/namicethd/ hmelt , hiccrit, hicmin, hiclim, amax  ,        & 
Note: See TracChangeset for help on using the changeset viewer.