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/DOM/dommsk.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/DOM/dommsk.F90

    r2715 r3294  
    2525   USE oce             ! ocean dynamics and tracers 
    2626   USE dom_oce         ! ocean space and time domain 
    27    USE obc_oce         ! ocean open boundary conditions 
    2827   USE in_out_manager  ! I/O manager 
    2928   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    3029   USE lib_mpp 
    3130   USE dynspg_oce      ! choice/control of key cpp for surface pressure gradient 
     31   USE wrk_nemo        ! Memory allocation 
     32   USE timing          ! Timing 
    3233 
    3334   IMPLICIT NONE 
     
    3839 
    3940   !                            !!* Namelist namlbc : lateral boundary condition * 
    40    REAL(wp) ::   rn_shlat = 2.   ! type of lateral boundary condition on velocity 
     41   REAL(wp)        :: rn_shlat   = 2.   ! type of lateral boundary condition on velocity 
     42   LOGICAL, PUBLIC :: ln_vorlat  = .false.   !  consistency of vorticity boundary condition  
     43   !                                            with analytical eqs. 
     44 
    4145 
    4246   INTEGER, ALLOCATABLE, SAVE, DIMENSION(:,:) ::  icoord ! Workspace for dom_msk_nsa() 
     
    125129      !!               tmask_i  : interior ocean mask 
    126130      !!---------------------------------------------------------------------- 
    127       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released, iwrk_in_use, iwrk_not_released 
    128       USE wrk_nemo, ONLY:   zwf  =>  wrk_2d_1      ! 2D real    workspace 
    129       USE wrk_nemo, ONLY:   imsk => iwrk_2d_1      ! 2D integer workspace 
    130131      ! 
    131132      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
    132133      INTEGER  ::   iif, iil, ii0, ii1, ii   ! local integers 
    133134      INTEGER  ::   ijf, ijl, ij0, ij1       !   -       - 
    134       !! 
    135       NAMELIST/namlbc/ rn_shlat 
     135      INTEGER , POINTER, DIMENSION(:,:) ::  imsk 
     136      REAL(wp), POINTER, DIMENSION(:,:) ::  zwf 
     137      !! 
     138      NAMELIST/namlbc/ rn_shlat, ln_vorlat 
    136139      !!--------------------------------------------------------------------- 
    137        
    138       IF( wrk_in_use(2, 1) .OR. iwrk_in_use(2, 1) ) THEN 
    139          CALL ctl_stop('dom_msk: requested workspace arrays unavailable')   ;   RETURN 
    140       ENDIF 
    141  
     140      ! 
     141      IF( nn_timing == 1 )  CALL timing_start('dom_msk') 
     142      ! 
     143      CALL wrk_alloc( jpi, jpj, imsk ) 
     144      CALL wrk_alloc( jpi, jpj, zwf  ) 
     145      ! 
    142146      REWIND( numnam )              ! Namelist namlbc : lateral momentum boundary condition 
    143147      READ  ( numnam, namlbc ) 
     
    148152         WRITE(numout,*) '~~~~~~' 
    149153         WRITE(numout,*) '   Namelist namlbc' 
    150          WRITE(numout,*) '      lateral momentum boundary cond.    rn_shlat = ',rn_shlat 
     154         WRITE(numout,*) '      lateral momentum boundary cond.    rn_shlat  = ',rn_shlat 
     155         WRITE(numout,*) '      consistency with analytical form   ln_vorlat = ',ln_vorlat  
    151156      ENDIF 
    152157 
     
    390395      CALL lbc_lnk( fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    391396 
     397      ! CAUTION : The fmask may be further modified in dyn_vor_init ( dynvor.F90 ) 
    392398             
    393399      IF( nprint == 1 .AND. lwp ) THEN      ! Control print 
     
    436442      ENDIF 
    437443      ! 
    438       IF( wrk_not_released(2, 1)  .OR.   & 
    439          iwrk_not_released(2, 1)  )   CALL ctl_stop('dom_msk: failed to release workspace arrays') 
     444      CALL wrk_dealloc( jpi, jpj, imsk ) 
     445      CALL wrk_dealloc( jpi, jpj, zwf  ) 
     446      ! 
     447      IF( nn_timing == 1 )  CALL timing_stop('dom_msk') 
    440448      ! 
    441449   END SUBROUTINE dom_msk 
     
    460468      REAL(wp) ::   zaa 
    461469      !!--------------------------------------------------------------------- 
    462  
     470      ! 
     471      IF( nn_timing == 1 )  CALL timing_start('dom_msk_nsa') 
     472      ! 
    463473      IF(lwp) WRITE(numout,*) 
    464474      IF(lwp) WRITE(numout,*) 'dom_msk_nsa : noslip accurate boundary condition' 
     
    620630      ENDIF 
    621631      ! 
     632      IF( nn_timing == 1 )  CALL timing_stop('dom_msk_nsa') 
     633      ! 
    622634   END SUBROUTINE dom_msk_nsa 
    623635 
Note: See TracChangeset for help on using the changeset viewer.