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 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90

    r5930 r7351  
    1010   !!            3.4  !  2011     (D. Storkey) rewrite in preparation for OBC-BDY merge 
    1111   !!---------------------------------------------------------------------- 
    12 #if   defined key_bdy 
     12#if defined key_bdy 
    1313   !!---------------------------------------------------------------------- 
    14    !!   'key_bdy'      unstructured open boundary conditions 
     14   !!   'key_bdy'                     unstructured open boundary conditions 
    1515   !!---------------------------------------------------------------------- 
    16    USE oce             ! ocean dynamics and tracers  
    17    USE bdy_oce         ! ocean open boundary conditions 
    18    USE sbc_oce         ! ocean surface boundary conditions 
    19    USE dom_oce         ! ocean space and time domain  
    20    USE phycst          ! physical constants 
    21    USE sbcisf          ! ice shelf 
     16   USE oce            ! ocean dynamics and tracers  
     17   USE bdy_oce        ! ocean open boundary conditions 
     18   USE sbc_oce        ! ocean surface boundary conditions 
     19   USE dom_oce        ! ocean space and time domain  
     20   USE phycst         ! physical constants 
     21   USE sbcisf         ! ice shelf 
    2222   ! 
    23    USE in_out_manager  ! I/O manager 
    24    USE lib_mpp         ! for mppsum 
    25    USE timing          ! Timing 
    26    USE lib_fortran     ! Fortran routines library 
     23   USE in_out_manager ! I/O manager 
     24   USE lib_mpp        ! for mppsum 
     25   USE timing         ! Timing 
     26   USE lib_fortran    ! Fortran routines library 
    2727 
    2828   IMPLICIT NONE 
    2929   PRIVATE 
    3030 
    31    PUBLIC bdy_vol       
     31   PUBLIC   bdy_vol    ! called by ??? 
    3232 
    33    !! * Substitutions 
    34 #  include "domzgr_substitute.h90" 
    3533   !!---------------------------------------------------------------------- 
    36    !! NEMO/OPA 3.6 , NEMO Consortium (2014) 
     34   !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
    3735   !! $Id$  
    3836   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     
    4543      !! 
    4644      !! ** Purpose :   This routine controls the volume of the system.  
    47       !!      A correction velocity is calculated 
    48       !!      to correct the total transport through the unstructured OBC.  
     45      !!      A correction velocity is calculated to correct the total transport  
     46      !!      through the unstructured OBC.  
    4947      !!      The total depth used is constant (H0) to be consistent with the  
    50       !!      linear free surface coded in OPA 8.2 
     48      !!      linear free surface coded in OPA 8.2    <<<=== !!gm  ???? true ???? 
    5149      !! 
    5250      !! ** Method  :   The correction velocity (zubtpecor here) is defined calculating 
     
    7270      !!            (set nn_volctl to 1 in tne namelist for this option) 
    7371      !!---------------------------------------------------------------------- 
    74       INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    75       !! 
     72      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     73      ! 
    7674      INTEGER  ::   ji, jj, jk, jb, jgrd 
    7775      INTEGER  ::   ib_bdy, ii, ij 
     
    9391      ! ----------------------------------------------------------------------- 
    9492!!gm replace these lines : 
    95       z_cflxemp = SUM ( ( emp(:,:)-rnf(:,:)+fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:) ) / rau0 
     93      z_cflxemp = SUM ( ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:) ) / rau0 
    9694      IF( lk_mpp )   CALL mpp_sum( z_cflxemp )     ! sum over the global domain 
    9795!!gm   by : 
     
    110108               ii = idx%nbi(jb,jgrd) 
    111109               ij = idx%nbj(jb,jgrd) 
    112                zubtpecor = zubtpecor + idx%flagu(jb,jgrd) * ua(ii,ij, jk) * e2u(ii,ij) * fse3u(ii,ij,jk) 
     110               zubtpecor = zubtpecor + idx%flagu(jb,jgrd) * ua(ii,ij, jk) * e2u(ii,ij) * e3u_n(ii,ij,jk) 
    113111            END DO 
    114112         END DO 
     
    118116               ii = idx%nbi(jb,jgrd) 
    119117               ij = idx%nbj(jb,jgrd) 
    120                zubtpecor = zubtpecor + idx%flagv(jb,jgrd) * va(ii,ij, jk) * e1v(ii,ij) * fse3v(ii,ij,jk)  
     118               zubtpecor = zubtpecor + idx%flagv(jb,jgrd) * va(ii,ij, jk) * e1v(ii,ij) * e3v_n(ii,ij,jk)  
    121119            END DO 
    122120         END DO 
     
    127125      ! The normal velocity correction 
    128126      ! ------------------------------ 
    129       IF( nn_volctl==1 ) THEN   ;   zubtpecor = ( zubtpecor - z_cflxemp) / bdysurftot  
    130       ELSE                      ;   zubtpecor =   zubtpecor             / bdysurftot 
     127      IF( nn_volctl==1 ) THEN   ;   zubtpecor = ( zubtpecor - z_cflxemp ) / bdysurftot  
     128      ELSE                      ;   zubtpecor =   zubtpecor               / bdysurftot 
    131129      END IF 
    132130 
     
    143141               ij = idx%nbj(jb,jgrd) 
    144142               ua(ii,ij,jk) = ua(ii,ij,jk) - idx%flagu(jb,jgrd) * zubtpecor * umask(ii,ij,jk) 
    145                ztranst = ztranst + idx%flagu(jb,jgrd) * ua(ii,ij,jk) * e2u(ii,ij) * fse3u(ii,ij,jk) 
     143               ztranst = ztranst + idx%flagu(jb,jgrd) * ua(ii,ij,jk) * e2u(ii,ij) * e3u_n(ii,ij,jk) 
    146144            END DO 
    147145         END DO 
     
    152150               ij = idx%nbj(jb,jgrd) 
    153151               va(ii,ij,jk) = va(ii,ij,jk) -idx%flagv(jb,jgrd) * zubtpecor * vmask(ii,ij,jk) 
    154                ztranst = ztranst + idx%flagv(jb,jgrd) * va(ii,ij,jk) * e1v(ii,ij) * fse3v(ii,ij,jk) 
     152               ztranst = ztranst + idx%flagv(jb,jgrd) * va(ii,ij,jk) * e1v(ii,ij) * e3v_n(ii,ij,jk) 
    155153            END DO 
    156154         END DO 
     
    161159      ! Check the cumulated transport through unstructured OBC once barotropic velocities corrected 
    162160      ! ------------------------------------------------------ 
    163       IF( lwp .AND. MOD( kt, nwrite ) == 0) THEN 
     161      IF( lwp .AND. MOD( kt, nwrite ) == 0 ) THEN 
    164162         IF(lwp) WRITE(numout,*) 
    165163         IF(lwp) WRITE(numout,*)'bdy_vol : time step :', kt 
     
    171169      END IF  
    172170      ! 
    173       IF( nn_timing == 1 ) CALL timing_stop('bdy_vol') 
     171      IF( nn_timing == 1 )   CALL timing_stop('bdy_vol') 
    174172      ! 
    175173      END IF ! ln_vol 
Note: See TracChangeset for help on using the changeset viewer.