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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r2715 r3294  
    2626   USE sbc_oce         ! surface boundary condition: ocean 
    2727   USE obc_oce         ! Lateral open boundary condition 
     28   USE bdy_oce         ! Lateral open boundary condition 
    2829   USE sol_oce         ! ocean elliptic solver 
    2930   USE phycst          ! physical constants 
     
    3334   USE solpcg          ! preconditionned conjugate gradient solver 
    3435   USE solsor          ! Successive Over-relaxation solver 
    35    USE obcdyn          ! ocean open boundary condition (obc_dyn routines) 
    36    USE obcvol          ! ocean open boundary condition (obc_vol routines) 
    37    USE bdy_oce         ! Unstructured open boundaries condition 
    38    USE bdydyn          ! Unstructured open boundaries condition (bdy_dyn routine)  
    39    USE bdyvol          ! Unstructured open boundaries condition (bdy_vol routine) 
     36   USE obcdyn          ! ocean open boundary condition on dynamics 
     37   USE obcvol          ! ocean open boundary condition (obc_vol routine) 
     38   USE bdydyn          ! ocean open boundary condition on dynamics 
     39   USE bdyvol          ! ocean open boundary condition (bdy_vol routine) 
    4040   USE cla             ! cross land advection 
    4141   USE in_out_manager  ! I/O manager 
    4242   USE lib_mpp         ! distributed memory computing library 
     43   USE wrk_nemo        ! Memory Allocation 
    4344   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    4445   USE prtctl          ! Print control 
     
    4950   USE agrif_opa_interp 
    5051#endif 
     52   USE timing          ! Timing 
    5153 
    5254   IMPLICIT NONE 
     
    103105      !! References : Roullet and Madec 1999, JGR. 
    104106      !!--------------------------------------------------------------------- 
    105       USE oce, ONLY:   zub   => ta , zvb   => sa   ! (ta,sa) used as workspace 
    106       !! 
    107107      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index 
    108108      INTEGER, INTENT(  out) ::   kindic   ! solver convergence flag (<0 if not converge) 
     
    110110      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    111111      REAL(wp) ::   z2dt, z2dtg, zgcb, zbtd, ztdgu, ztdgv   ! local scalars 
     112      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zub, zvb 
    112113      !!---------------------------------------------------------------------- 
     114      ! 
     115      IF( nn_timing == 1 )  CALL timing_start('dyn_spg_flt') 
     116      ! 
     117      CALL wrk_alloc( jpi,jpj,jpk, zub, zvb ) 
    113118      ! 
    114119      IF( kt == nit000 ) THEN 
     
    187192#endif 
    188193#if defined key_bdy 
    189       CALL bdy_dyn_frs( kt )       ! Update velocities on unstructured boundary using the Flow Relaxation Scheme 
    190       CALL bdy_vol( kt )           ! Correction of the barotropic component velocity to control the volume of the system 
     194      CALL bdy_dyn( kt )      ! Update velocities on each open boundary 
     195      CALL bdy_vol( kt )      ! Correction of the barotropic component velocity to control the volume of the system 
    191196#endif 
    192197#if defined key_agrif 
     
    304309#if defined key_obc 
    305310            ! caution : grad D = 0 along open boundaries 
     311            ! Remark: The filtering force could be reduced here in the FRS zone 
     312            !         by multiplying spgu/spgv by (1-alpha) ??   
    306313            spgu(ji,jj) = z2dt * ztdgu * obcumask(ji,jj) 
    307314            spgv(ji,jj) = z2dt * ztdgv * obcvmask(ji,jj) 
    308315#elif defined key_bdy 
    309316            ! caution : grad D = 0 along open boundaries 
    310             ! Remark: The filtering force could be reduced here in the FRS zone 
    311             !         by multiplying spgu/spgv by (1-alpha) ??   
    312317            spgu(ji,jj) = z2dt * ztdgu * bdyumask(ji,jj) 
    313             spgv(ji,jj) = z2dt * ztdgv * bdyvmask(ji,jj)            
     318            spgv(ji,jj) = z2dt * ztdgv * bdyvmask(ji,jj) 
    314319#else 
    315320            spgu(ji,jj) = z2dt * ztdgu 
     
    345350      ! -------------------------------------------------- 
    346351      IF( lrst_oce ) CALL flt_rst( kt, 'WRITE' ) 
     352      ! 
     353      CALL wrk_dealloc( jpi,jpj,jpk, zub, zvb ) 
     354      ! 
     355      IF( nn_timing == 1 )  CALL timing_stop('dyn_spg_flt') 
    347356      ! 
    348357   END SUBROUTINE dyn_spg_flt 
Note: See TracChangeset for help on using the changeset viewer.