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 2648 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OFF_SRC/dommsk.F90 – NEMO

Ignore:
Timestamp:
2011-03-03T17:13:18+01:00 (13 years ago)
Author:
cetlod
Message:

Changed OFF_SRC component to use dynamic memory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OFF_SRC/dommsk.F90

    r2528 r2648  
    1212   USE oce             ! ocean dynamics and tracers 
    1313   USE dom_oce         ! ocean space and time domain 
    14    USE in_out_manager  ! I/O manager 
     14   USE lib_mpp 
    1515 
    1616   IMPLICIT NONE 
     
    1919   PUBLIC   dom_msk    ! routine called by inidom.F90 
    2020 
    21 #if defined key_degrad 
    22    !! ------------------------------------------------ 
    23    !! Degradation method 
    24    !! -------------------------------------------------- 
    25    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) ::   facvol  !! volume for degraded regions 
    26 #endif 
     21   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   facvol  !! volume for degraded regions 
    2722 
    2823   !! * Substitutions 
     
    3429   !!---------------------------------------------------------------------- 
    3530CONTAINS 
     31 
    3632    
    3733   SUBROUTINE dom_msk 
     
    4945      !!               tpol     : ??? 
    5046      !!---------------------------------------------------------------------- 
     47      USE wrk_nemo, ONLY: iwrk_in_use, iwrk_not_released 
     48      USE wrk_nemo, ONLY: imsk => iwrk_2d_1 
    5149      INTEGER  ::   ji, jk                   ! dummy loop indices 
    5250      INTEGER  ::   iif, iil, ijf, ijl       ! local integers 
    53       INTEGER, DIMENSION(jpi,jpj) ::  imsk   ! 2D workspace 
    5451      !!--------------------------------------------------------------------- 
    5552      ! 
     53      IF( iwrk_in_use(2, 1) ) THEN 
     54         CALL ctl_stop('dom_msk: ERROR: requested workspace arrays unavailable.')  ;  RETURN 
     55      END IF 
     56      ! 
     57      CALL dom_msk_alloc 
     58 
    5659      ! Interior domain mask (used for global sum) 
    5760      ! -------------------- 
     
    9598      ENDIF 
    9699      ! 
     100      IF( iwrk_not_released(2, 1) ) CALL ctl_stop('dom_msk: failed to release workspace arrays.') 
     101      ! 
    97102   END SUBROUTINE dom_msk 
     103 
     104   SUBROUTINE dom_msk_alloc() 
     105      !!--------------------------------------------------------------------- 
     106      !!                 ***  ROUTINE dom_msk_alloc  *** 
     107      !!--------------------------------------------------------------------- 
     108#if defined key_degrad 
     109      INTEGER :: ierr  
     110 
     111      ALLOCATE( facvol(jpi,jpj,jpk), STAT=ierr ) 
     112      IF( ierr /= 0 )  & 
     113        &           CALL ctl_stop('STOP', 'dom_msk : unable to allocate facvol array') 
     114#endif 
     115 
     116   END SUBROUTINE dom_msk_alloc 
    98117 
    99118   !!====================================================================== 
Note: See TracChangeset for help on using the changeset viewer.