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_zdf_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_zdf_2.F90

    r823 r888  
    44   !!                thermodynamic growth and decay of the ice  
    55   !!====================================================================== 
     6   !! History :  1.0  !  01-04 (LIM) Original code 
     7   !!            2.0  !  02-08 (C. Ethe, G. Madec) F90 
     8   !!---------------------------------------------------------------------- 
    69#if defined key_lim2 
    710   !!---------------------------------------------------------------------- 
    811   !!   'key_lim2'                                    LIM 2.0 sea-ice model 
     12   !!---------------------------------------------------------------------- 
    913   !!---------------------------------------------------------------------- 
    1014   !!   lim_thd_zdf_2 : vertical accr./abl. and lateral ablation of sea ice 
     
    2226   PRIVATE 
    2327 
    24    !! * Routine accessibility 
    25    PUBLIC lim_thd_zdf_2      ! called by lim_thd_2 
    26  
    27    !! * Module variables 
    28    REAL(wp)  ::           &  ! constant values 
    29       epsi20 = 1.e-20  ,  & 
    30       epsi13 = 1.e-13  ,  & 
    31       zzero  = 0.e0    ,  & 
    32       zone   = 1.e0 
     28   PUBLIC   lim_thd_zdf_2        ! called by lim_thd_2 
     29 
     30   REAL(wp) ::   epsi20 = 1.e-20  ,  &  ! constant values 
     31      &          epsi13 = 1.e-13  ,  & 
     32      &          zzero  = 0.e0    ,  & 
     33      &          zone   = 1.e0 
    3334   !!---------------------------------------------------------------------- 
    3435   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)  
    35    !! $Header$  
    36    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    37    !!---------------------------------------------------------------------- 
     36   !! $ Id: $ 
     37   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     38   !!---------------------------------------------------------------------- 
     39 
    3840CONTAINS 
    3941 
     
    6466      !!              - Performs lateral ablation 
    6567      !! 
    66       !! References : 
    67       !!   Fichefet T. and M. Maqueda 1997, J. Geophys. Res., 102(C6), 12609-12646    
    68       !!   Fichefet T. and M. Maqueda 1999, Clim. Dyn, 15(4), 251-268   
     68      !! References : Fichefet T. and M. Maqueda 1997, J. Geophys. Res., 102(C6), 12609-12646    
     69      !!              Fichefet T. and M. Maqueda 1999, Clim. Dyn, 15(4), 251-268   
     70      !!------------------------------------------------------------------ 
     71      INTEGER, INTENT(in) ::   kideb    ! Start point on which the  the computation is applied 
     72      INTEGER, INTENT(in) ::   kiut     ! End point on which the  the computation is applied 
    6973      !! 
    70       !! History : 
    71       !!   original    : 01-04 (LIM) 
    72       !!   addition    : 02-08 (C. Ethe, G. Madec) 
    73       !!------------------------------------------------------------------ 
    74       !! * Arguments 
    75       INTEGER , INTENT (in) ::  & 
    76          kideb ,  &  ! Start point on which the  the computation is applied 
    77          kiut        ! End point on which the  the computation is applied 
    78  
    79       !! * Local variables 
    8074      INTEGER ::   ji       ! dummy loop indices 
    81  
    82       REAL(wp) , DIMENSION(jpij,2) ::  & 
    83          zqcmlt        ! energy due to surface( /1 ) and bottom melting( /2 ) 
    84  
     75      REAL(wp), DIMENSION(jpij,2) ::   zqcmlt        ! energy due to surface( /1 ) and bottom melting( /2 ) 
    8576      REAL(wp), DIMENSION(jpij) ::  & 
    8677         ztsmlt      &    ! snow/ice surface melting temperature 
     
    9788         , zts_old   &    ! previous surface temperature 
    9889         , zidsn , z1midsn , zidsnic ! tempory variables 
    99  
    100       REAL(wp), DIMENSION(jpij) :: & 
     90      REAL(wp), DIMENSION(jpij) ::   & 
    10191          zfnet       &  ! net heat flux at the top surface( incl. conductive heat flux) 
    10292          , zsprecip  &    ! snow accumulation 
     
    10999          , zfrld_1d    &    ! new sea/ice fraction 
    110100          , zep            ! internal temperature of the 2nd layer of the snow/ice system 
    111  
    112101       REAL(wp), DIMENSION(3) :: &  
    113102          zplediag  &    ! principle diagonal, subdiag. and supdiag. of the  
     
    115104          , zsupdiag  &    ! of the temperatures inside the snow-ice system 
    116105          , zsmbr          ! second member 
    117  
    118106       REAL(wp) :: &  
    119107          zhsu     &     ! thickness of surface layer 
     
    130118          , zb2 , zd2 , zb3 , zd3 & 
    131119          , ztint          ! equivalent temperature at the snow-ice interface 
    132  
    133120       REAL(wp) :: &  
    134121          zexp      &     ! exponential function of the ice thickness 
     
    148135          , zdtic        &  ! ice internal temp. increment 
    149136          , zqnes          ! conductive energy due to ice melting in the first ice layer 
    150  
    151137       REAL(wp) :: &  
    152138          ztbot     &      ! temperature at the bottom surface 
     
    162148          , zc1, zpc1, zc2, zpc2, zp1, zp2 & ! tempory variables 
    163149          , ztb2, ztb3 
    164  
    165150       REAL(wp) :: &  
    166151          zdrmh         &   ! change in snow/ice thick. after snow-ice formation 
     
    181166       !     Computation of energies due to surface and bottom melting  
    182167       !----------------------------------------------------------------------- 
    183         
    184168        
    185169       DO ji = kideb , kiut 
     
    201185       END DO 
    202186 
    203  
    204187       !------------------------------------------- 
    205188       !  2. Calculate some intermediate variables.   
     
    265248       !     - qstbif_1d, total energy stored in brine pockets (updating) 
    266249       !------------------------------------------------------------------- 
    267  
    268250 
    269251       DO ji = kideb , kiut 
     
    288270       END DO 
    289271 
    290  
    291272       !-------------------------------------------------------------------------------- 
    292273       !  4. Computation of the surface temperature : determined by considering the  
     
    333314          !---computation of the energy balance function  
    334315          zfts    = - z1mi0 (ji) * qsr_ice_1d(ji)   & ! net absorbed solar radiation 
    335              &      - qnsr_ice_1d(ji)                & ! total non solar radiation 
    336              &      - zfcsu (ji)                  ! conductive heat flux from the surface 
     316             &      - qns_ice_1d(ji)                & ! total non solar radiation 
     317             &      - zfcsu (ji)                      ! conductive heat flux from the surface 
    337318          !---computation of surface temperature increment   
    338319          zdts    = -zfts / zdfts 
     
    360341          sist_1d(ji) = MIN( ztsmlt(ji) , sist_1d(ji) ) 
    361342#if ! defined key_coupled 
    362           qnsr_ice_1d(ji) = qnsr_ice_1d(ji) + dqns_ice_1d(ji) * ( sist_1d(ji) - zts_old(ji) ) 
     343          qns_ice_1d(ji) = qns_ice_1d(ji) + dqns_ice_1d(ji) * ( sist_1d(ji) - zts_old(ji) ) 
    363344          qla_ice_1d (ji) = qla_ice_1d (ji) + dqla_ice_1d(ji) * ( sist_1d(ji) - zts_old(ji) ) 
    364345#endif 
     
    366347       END DO 
    367348 
    368       
    369  
    370349       !     5.2. Calculate available heat for surface ablation.  
    371350       !--------------------------------------------------------------------- 
    372351 
    373352       DO ji = kideb, kiut 
    374           zfnet(ji) = qnsr_ice_1d(ji) + z1mi0(ji) * qsr_ice_1d(ji) + zfcsu(ji)           
     353          zfnet(ji) = qns_ice_1d(ji) + z1mi0(ji) * qsr_ice_1d(ji) + zfcsu(ji)           
    375354          zfnet(ji) = MAX( zzero , zfnet(ji) ) 
    376355          zfnet(ji) = zfnet(ji) * MAX( zzero , SIGN( zone , sist_1d(ji) - ztsmlt(ji) ) ) 
     
    730709          dvnbq_1d(ji) = ( 1.0 - frld_1d(ji) ) * ( zhicnew - h_ice_1d(ji) ) 
    731710          dmgwi_1d(ji) = dmgwi_1d(ji) + ( 1.0 -frld_1d(ji) ) * ( h_snow_1d(ji) - zhsnnew ) * rhosn 
    732           !  case of natural freshwater flux 
    733 #if defined key_lim_fdd   
    734           rdmicif_1d(ji) = rdmicif_1d(ji) + ( 1.0 - frld_1d(ji) )   * ( zhicnew - h_ice_1d(ji) )  * rhoic 
     711          !---  volume change of ice and snow (used for ocean-ice freshwater flux computation) 
     712          rdmicif_1d(ji) = rdmicif_1d(ji) + ( 1.0 - frld_1d(ji) )   * ( zhicnew - h_ice_1d (ji) ) * rhoic 
    735713          rdmsnif_1d(ji) = rdmsnif_1d(ji) + ( 1.0 - frld_1d(ji) )   * ( zhsnnew - h_snow_1d(ji) ) * rhosn 
    736714 
    737 #else 
    738           rdmicif_1d(ji) = rdmicif_1d(ji) + ( 1.0 - frld_1d(ji) ) * (  ( zhicnew - h_ice_1d(ji) ) * rhoic   & 
    739              &                                                    + ( zhsnnew - h_snow_1d(ji) ) * rhosn ) 
    740 #endif 
    741  
    742715          !---  Actualize new snow and ice thickness. 
    743  
    744716          h_snow_1d(ji)  = zhsnnew 
    745           h_ice_1d(ji)  = zhicnew 
     717          h_ice_1d (ji)  = zhicnew 
    746718 
    747719       END DO 
     
    799771          qstbif_1d(ji) = zdrfrl2 * qstbif_1d(ji) 
    800772          frld_1d(ji)    = zfrld_1d(ji) 
    801  
    802        END DO 
    803         
     773          ! 
     774       END DO 
     775       !  
    804776    END SUBROUTINE lim_thd_zdf_2 
     777 
    805778#else 
    806    !!====================================================================== 
    807    !!                       ***  MODULE limthd_zdf_2   *** 
    808    !!                              no sea ice model   
    809    !!====================================================================== 
     779   !!---------------------------------------------------------------------- 
     780   !!   Default Option                                     NO sea-ice model 
     781   !!---------------------------------------------------------------------- 
    810782CONTAINS 
    811783   SUBROUTINE lim_thd_zdf_2          ! Empty routine 
    812784   END SUBROUTINE lim_thd_zdf_2 
    813785#endif 
    814  END MODULE limthd_zdf_2 
     786 
     787   !!====================================================================== 
     788END MODULE limthd_zdf_2 
Note: See TracChangeset for help on using the changeset viewer.