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 6004 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90 – NEMO

Ignore:
Timestamp:
2015-12-04T17:05:58+01:00 (8 years ago)
Author:
gm
Message:

#1613: vvl by default, step III: Merge with the trunk (free surface simplification) (see wiki)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90

    r5883 r6004  
    7070      !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling.  
    7171      !!---------------------------------------------------------------------- 
    72       INTEGER, INTENT(in) ::   kt     ! ocean time-step index 
    73       ! 
    74       INTEGER  ::   ji, jj, jk            ! dummy loop indices 
    75       REAL(wp) ::   zbu, zbv    ! temporary scalars 
    76       REAL(wp) ::   zui, zvj, zfuj, zfvi, zl_u, zl_v   ! temporary scalars 
     72      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     73      ! 
     74      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     75      REAL(wp) ::   zui, zvj, zfuj, zfvi, zl_u, zl_v   ! local scalars 
    7776      REAL(wp), POINTER, DIMENSION(:,:,:  ) ::  zfu, zfv 
    7877      REAL(wp), POINTER, DIMENSION(:,:,:  ) ::  zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 
     
    8281      IF( nn_timing == 1 )  CALL timing_start('dyn_adv_ubs') 
    8382      ! 
    84       CALL wrk_alloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    85       CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
     83      CALL wrk_alloc( jpi,jpj,jpk,        zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
     84      CALL wrk_alloc( jpi,jpj,jpk,jpts,  zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    8685      ! 
    8786      IF( kt == nit000 ) THEN 
     
    139138      DO jk = 1, jpkm1                       ! ====================== ! 
    140139         !                                         ! horizontal volume fluxes 
    141          zfu(:,:,jk) = 0.25 * e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 
    142          zfv(:,:,jk) = 0.25 * e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
     140         zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 
     141         zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
    143142         ! 
    144143         DO jj = 1, jpjm1                          ! horizontal momentum fluxes at T- and F-point 
     
    178177         DO jj = 2, jpjm1                          ! divergence of horizontal momentum fluxes 
    179178            DO ji = fs_2, fs_jpim1   ! vector opt. 
    180                zbu = e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
    181                zbv = e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
    182                ! 
    183                ua(ji,jj,jk) = ua(ji,jj,jk) - (  zfu_t(ji+1,jj  ,jk) - zfu_t(ji  ,jj  ,jk)    & 
    184                   &                           + zfv_f(ji  ,jj  ,jk) - zfv_f(ji  ,jj-1,jk)  ) / zbu 
    185                va(ji,jj,jk) = va(ji,jj,jk) - (  zfu_f(ji  ,jj  ,jk) - zfu_f(ji-1,jj  ,jk)    & 
    186                   &                           + zfv_t(ji  ,jj+1,jk) - zfv_t(ji  ,jj  ,jk)  ) / zbv 
     179               ua(ji,jj,jk) = ua(ji,jj,jk) - (  zfu_t(ji+1,jj,jk) - zfu_t(ji,jj  ,jk)    & 
     180                  &                           + zfv_f(ji  ,jj,jk) - zfv_f(ji,jj-1,jk)  ) * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk) 
     181               va(ji,jj,jk) = va(ji,jj,jk) - (  zfu_f(ji,jj  ,jk) - zfu_f(ji-1,jj,jk)    & 
     182                  &                           + zfv_t(ji,jj+1,jk) - zfv_t(ji  ,jj,jk)  ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 
    187183            END DO 
    188184         END DO 
     
    217213         DO jj = 2, jpjm1 
    218214            DO ji = fs_2, fs_jpim1 
    219                zfw(ji,jj,jk) = 0.25 * e1e2t(ji,jj) * wn(ji,jj,jk) 
     215               zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * wn(ji,jj,jk) 
    220216            END DO 
    221217         END DO 
     
    245241         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    246242      ! 
    247       CALL wrk_dealloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    248       CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
     243      CALL wrk_dealloc( jpi,jpj,jpk,        zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
     244      CALL wrk_dealloc( jpi,jpj,jpk,jpts,  zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    249245      ! 
    250246      IF( nn_timing == 1 )  CALL timing_stop('dyn_adv_ubs') 
Note: See TracChangeset for help on using the changeset viewer.