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 8486 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv_umx.F90 – NEMO

Ignore:
Timestamp:
2017-09-01T15:49:35+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part1 - (now the code looks better txs to Gurvan's comments)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceadv_umx.F90

    r8409 r8486  
    44   !! LIM sea-ice model : sea-ice advection using the ULTIMATE-MACHO scheme 
    55   !!============================================================================== 
    6    !! History :  3.5  !  2014-11  (C. Rousset, G. Madec)  Original code 
    7    !!---------------------------------------------------------------------- 
    8  
     6   !! History :  3.6  !  2014-11  (C. Rousset, G. Madec)  Original code 
     7   !!---------------------------------------------------------------------- 
     8#if defined key_lim3 
     9   !!---------------------------------------------------------------------- 
     10   !!   'key_lim3'                                    LIM 3.0 sea-ice model 
    911   !!---------------------------------------------------------------------- 
    1012   !!   ice_adv_umx   : update the tracer trend with the 3D advection trends using a TVD scheme 
    11    !!   ultimate      : compute a tracer value at velocity points using ULTIMATE scheme at various orders 
    12    !!   macho         :  
     13   !!   ultimate_x(_y): compute a tracer value at velocity points using ULTIMATE scheme at various orders 
     14   !!   macho         : ??? 
    1315   !!   nonosc_2d     : compute monotonic tracer fluxes by a non-oscillatory algorithm  
    14    !!---------------------------------------------------------------------- 
    15 #if defined key_lim3 
    16    !!---------------------------------------------------------------------- 
    17    !!   'key_lim3' :                                  LIM 3.0 sea-ice model 
    1816   !!---------------------------------------------------------------------- 
    1917   USE phycst         ! physical constant 
    2018   USE dom_oce        ! ocean domain 
    21    USE sbc_oce, ONLY: nn_fsbc   ! ocean surface boundary condition 
    22    USE ice            ! ice variables 
     19   USE sbc_oce , ONLY : nn_fsbc   ! update frequency of surface boundary condition 
     20   USE ice            ! sea-ice variables 
    2321   ! 
    2422   USE in_out_manager ! I/O manager 
     
    3331   PUBLIC   ice_adv_umx    ! routine called by iceadv.F90 
    3432       
    35    REAL(wp) ::   z1_6   = 1._wp / 6._wp   ! =1/6 
    36    REAL(wp) ::   z1_120 = 1._wp / 120._wp ! =1/120 
     33   REAL(wp) ::   z1_6   = 1._wp /   6._wp   ! =1/6 
     34   REAL(wp) ::   z1_120 = 1._wp / 120._wp   ! =1/120 
    3735 
    3836   !! * Substitutions 
    3937#  include "vectopt_loop_substitute.h90" 
    4038   !!---------------------------------------------------------------------- 
    41    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     39   !! NEMO/ICE 4.0 , NEMO Consortium (2017) 
    4240   !! $Id: iceadv_umx.F90 4499 2014-02-18 15:14:31Z timgraham $ 
    4341   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    5856      !! ** Action : - pt  the after advective tracer 
    5957      !!---------------------------------------------------------------------- 
    60       INTEGER                     , INTENT(in   )           ::   kt         ! number of iteration 
    61       REAL(wp)                    , INTENT(in   )           ::   pdt        ! tracer time-step 
    62       REAL(wp), DIMENSION(jpi,jpj), INTENT(in   )           ::   puc, pvc   ! 2 ice velocity components => u*e2 
    63       REAL(wp), DIMENSION(jpi,jpj), INTENT(in   )           ::   pubox, pvbox   ! upstream velocity 
    64       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout)           ::   ptc        ! tracer content field 
     58      INTEGER                     , INTENT(in   ) ::   kt             ! number of iteration 
     59      REAL(wp)                    , INTENT(in   ) ::   pdt            ! tracer time-step 
     60      REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) ::   puc  , pvc     ! 2 ice velocity components => u*e2 
     61      REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) ::   pubox, pvbox   ! upstream velocity 
     62      REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   ptc            ! tracer content field 
    6563      ! 
    6664      INTEGER  ::   ji, jj           ! dummy loop indices   
     
    6866      REAL(wp) ::   zfp_ui, zfp_vj   !   -      - 
    6967      REAL(wp) ::   zfm_ui, zfm_vj   !   -      - 
    70       REAL(wp), DIMENSION(jpi,jpj) :: zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v 
     68      REAL(wp), DIMENSION(jpi,jpj) ::   zfu_ups, zfu_ho, zt_u, zt_ups 
     69      REAL(wp), DIMENSION(jpi,jpj) ::   zfv_ups, zfv_ho, zt_v, ztrd 
    7170      !!---------------------------------------------------------------------- 
    7271      ! 
     
    394393      ! 
    395394      SELECT CASE (k_order ) 
    396          ! 
    397       CASE( 1 )                                                   !==  1st order central TIM  ==! (Eq. 21) 
    398          !         
     395      ! 
     396      CASE( 1 )                                                !==  1st order central TIM  ==! (Eq. 21) 
    399397         DO jj = 1, jpjm1 
    400398            DO ji = 1, jpi 
     
    404402         END DO 
    405403         ! 
    406       CASE( 2 )                                                   !==  2nd order central TIM  ==! (Eq. 23) 
     404      CASE( 2 )                                                !==  2nd order central TIM  ==! (Eq. 23) 
    407405         DO jj = 1, jpjm1 
    408406            DO ji = 1, jpi 
     
    414412         CALL lbc_lnk( pt_v(:,:) , 'V',  1. ) 
    415413         ! 
    416       CASE( 3 )                                                   !==  3rd order central TIM  ==! (Eq. 24) 
    417          ! 
     414      CASE( 3 )                                                !==  3rd order central TIM  ==! (Eq. 24) 
    418415         DO jj = 1, jpjm1 
    419416            DO ji = 1, jpi 
     
    428425         END DO 
    429426         ! 
    430       CASE( 4 )                                                   !==  4th order central TIM  ==! (Eq. 27) 
    431          ! 
     427      CASE( 4 )                                                !==  4th order central TIM  ==! (Eq. 27) 
    432428         DO jj = 1, jpjm1 
    433429            DO ji = 1, jpi 
     
    442438         END DO 
    443439         ! 
    444       CASE( 5 )                                                   !==  5th order central TIM  ==! (Eq. 29) 
    445          ! 
     440      CASE( 5 )                                                !==  5th order central TIM  ==! (Eq. 29) 
    446441         DO jj = 1, jpjm1 
    447442            DO ji = 1, jpi 
     
    569564   !!   Default option           Dummy module      NO LIM 3.0 sea-ice model 
    570565   !!---------------------------------------------------------------------- 
    571 CONTAINS 
    572    ! 
    573    SUBROUTINE ice_adv_umx     ! Dummy routine 
    574       WRITE(*,*) 'ice_adv_umx: You should not have seen this print! error?' 
    575    END SUBROUTINE ice_adv_umx 
    576566#endif 
     567 
    577568   !!====================================================================== 
    578569END MODULE iceadv_umx 
Note: See TracChangeset for help on using the changeset viewer.