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 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90 – NEMO

Ignore:
Timestamp:
2011-03-30T17:58:35+02:00 (13 years ago)
Author:
rblod
Message:

First attempt to put dynamic allocation on the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r2528 r2715  
    2828   PUBLIC   zdf_bfr         ! called by step.F90 
    2929   PUBLIC   zdf_bfr_init    ! called by opa.F90 
    30     
     30 
    3131   !                                    !!* Namelist nambfr: bottom friction namelist * 
    3232   INTEGER  ::   nn_bfr    = 0           ! = 0/1/2/3 type of bottom friction  
     
    3737   LOGICAL  ::   ln_bfr2d  = .false.     ! logical switch for 2D enhancement 
    3838    
    39    REAL(wp), DIMENSION(jpi,jpj) ::   bfrcoef2d = 1.e-3_wp   ! 2D bottom drag coefficient 
     39   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::  bfrcoef2d   ! 2D bottom drag coefficient 
    4040 
    4141   !! * Substitutions 
     
    4343#  include "domzgr_substitute.h90" 
    4444   !!---------------------------------------------------------------------- 
    45    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     45   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
    4646   !! $Id$ 
    4747   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    4848   !!---------------------------------------------------------------------- 
    4949CONTAINS 
     50 
     51   INTEGER FUNCTION zdf_bfr_alloc() 
     52      !!---------------------------------------------------------------------- 
     53      !!                ***  FUNCTION zdf_bfr_alloc  *** 
     54      !!---------------------------------------------------------------------- 
     55      ALLOCATE( bfrcoef2d(jpi,jpj), STAT=zdf_bfr_alloc ) 
     56      ! 
     57      IF( lk_mpp             )   CALL mpp_sum ( zdf_bfr_alloc ) 
     58      IF( zdf_bfr_alloc /= 0 )   CALL ctl_warn('zdf_bfr_alloc: failed to allocate arrays.') 
     59   END FUNCTION zdf_bfr_alloc 
     60 
    5061 
    5162   SUBROUTINE zdf_bfr( kt ) 
     
    143154      IF(lwp) WRITE(numout,*) '   Namelist nam_bfr : set bottom friction parameters' 
    144155 
     156      !                              ! allocate zdfbfr arrays 
     157      IF( zdf_bfr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'zdf_bfr_init : unable to allocate arrays' ) 
     158 
    145159      SELECT CASE (nn_bfr) 
    146  
     160      ! 
    147161      CASE( 0 ) 
    148162         IF(lwp) WRITE(numout,*) '      free-slip ' 
     
    165179            CALL iom_get (inum, jpdom_data, 'bfr_coef',bfrcoef2d,1) ! bfrcoef2d is used as tmp array 
    166180            CALL iom_close(inum) 
    167             bfrcoef2d(:,:)= rn_bfri1 * ( 1 + rn_bfrien * bfrcoef2d(:,:) ) 
     181            bfrcoef2d(:,:) = rn_bfri1 * ( 1 + rn_bfrien * bfrcoef2d(:,:) ) 
    168182         ENDIF 
    169183         bfrua(:,:) = - bfrcoef2d(:,:) 
Note: See TracChangeset for help on using the changeset viewer.