Ignore:
Timestamp:
02/13/12 19:45:12 (12 years ago)
Author:
rblod
Message:

Add possibility to choose where to apply the barotropic correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obcvol.F90

    r1 r23  
    8383      INTEGER ::   ji, jj, jk 
    8484      REAL(wp) ::   zubtpecor 
     85      REAL(wp) ::   zubtpecorE,zubtpecorW,zubtpecorS,zubtpecorN 
    8586      REAL(wp) ::   zCflxemp 
    8687      REAL(wp) ::   ztransw, ztranse, ztransn, ztranss, ztranst 
     
    105106 
    106107      zubtpecor = 0.e0 
     108      zubtpecorE = 0.e0 
     109      zubtpecorW = 0.e0 
     110      zubtpecorS = 0.e0 
     111      zubtpecorN = 0.e0 
    107112 
    108113      ! ... East open boundary 
     
    111116            DO jk = 1, jpkm1 
    112117               DO jj = 1, jpj 
    113                   zubtpecor = zubtpecor - ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 
     118                  zubtpecorE = zubtpecorE - ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 
    114119             &     uemsk(jj,jk)*MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    115120               END DO 
     
    123128            DO jk = 1, jpkm1 
    124129               DO jj = 1, jpj 
    125                   zubtpecor = zubtpecor + ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 
     130                  zubtpecorW = zubtpecorW + ua(ji,jj,jk)*e2u(ji,jj)*fse3u(ji,jj,jk) * & 
    126131             &    uwmsk(jj,jk) *MAX(obctmsk(ji,jj),obctmsk(ji+1,jj) ) 
    127132               END DO 
     
    135140            DO jk = 1, jpkm1 
    136141               DO ji = 1, jpi 
    137                   zubtpecor = zubtpecor - va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 
     142                  zubtpecorN = zubtpecorN - va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 
    138143             &    vnmsk(ji,jk) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    139144               END DO 
     
    147152            DO jk = 1, jpkm1 
    148153               DO ji = 1, jpi 
    149                   zubtpecor = zubtpecor + va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 
     154                  zubtpecorS = zubtpecorS + va(ji,jj,jk)*e1v(ji,jj)*fse3v(ji,jj,jk) * & 
    150155             &    vsmsk(ji,jk) * MAX(obctmsk(ji,jj),obctmsk(ji,jj+1) ) 
    151156               END DO 
     
    154159       ENDIF 
    155160 
    156       IF( lk_mpp )   CALL mpp_sum( zubtpecor )   ! sum over the global domain 
    157  
     161      IF( lk_mpp )   CALL mpp_sum( zubtpecorN )   ! sum over the global domain 
     162      IF( lk_mpp )   CALL mpp_sum( zubtpecorS )   ! sum over the global domain 
     163      IF( lk_mpp )   CALL mpp_sum( zubtpecorW )   ! sum over the global domain 
     164      IF( lk_mpp )   CALL mpp_sum( zubtpecorE )   ! sum over the global domain 
     165      zubtpecor = zubtpecorE +  zubtpecorW + zubtpecorN + zubtpecorS 
    158166 
    159167      ! 3. The normal velocity correction 
     
    165173         IF(lwp) WRITE(numout,*)'          cumulate flux EMP :', zCflxemp,' (m3/s)' 
    166174         IF(lwp) WRITE(numout,*)'          lateral transport :',zubtpecor,'(m3/s)' 
     175         IF(lwp) WRITE(numout,*)'          East  lateral transport (before corr.):',zubtpecorE,'(m3/s)' 
     176         IF(lwp) WRITE(numout,*)'          West  lateral transport (before corr.):',zubtpecorW,'(m3/s)' 
     177         IF(lwp) WRITE(numout,*)'          North lateral transport (before corr.):',zubtpecorN,'(m3/s)' 
     178         IF(lwp) WRITE(numout,*)'          South lateral transport (before corr.):',zubtpecorS,'(m3/s)' 
    167179         IF(lwp) WRITE(numout,*)'          net inflow        :',zubtpecor-zCflxemp,'(m3/s)' 
    168180      ENDIF 
     
    183195      ztranst = 0.e0  ! total 
    184196 
    185       IF( lp_obc_west ) THEN 
     197      IF( lp_obc_west .AND. lp_obc_west_barotp_corr ) THEN 
    186198         ! ... correction of the west velocity 
    187199         DO ji = fs_niw0, fs_niw1 ! Vector opt. 
     
    200212      END IF  
    201213 
    202       IF( lp_obc_east ) THEN 
     214      IF( lp_obc_east .AND. lp_obc_east_barotp_corr ) THEN 
    203215 
    204216         ! ... correction of the east velocity 
     
    221233      END IF  
    222234 
    223       IF( lp_obc_north ) THEN 
     235      IF( lp_obc_north .AND. lp_obc_north_barotp_corr ) THEN 
    224236 
    225237         ! ... correction of the north velocity 
     
    241253      END IF  
    242254 
    243       IF( lp_obc_south ) THEN 
     255      IF( lp_obc_south .AND. lp_obc_south_barotp_corr ) THEN 
    244256 
    245257         ! ... correction of the south velocity 
Note: See TracChangeset for help on using the changeset viewer.