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/LIM_SRC_2/limrhg_2.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/LIM_SRC_2/limrhg_2.F90

    r2528 r2715  
    3333   PRIVATE 
    3434 
    35    PUBLIC   lim_rhg_2 ! routine called by lim_dyn 
     35   PUBLIC   lim_rhg_2         ! routine called by lim_dyn 
     36   PUBLIC   lim_rhg_alloc_2   ! routine called by lim_dyn_alloc_2 
    3637 
    3738   REAL(wp) ::   rzero   = 0._wp   ! constant value: zero 
    3839   REAL(wp) ::   rone    = 1._wp   !            and  one 
     40 
     41   ! 2D workspaces for lim_rhg_2. Can't use wrk_nemo module for them because 
     42   ! extent in 2nd dimension is > jpj. 
     43   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zu0, zv0 
     44   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zu_n, zv_n 
     45   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zu_a, zv_a 
     46   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zviszeta, zviseta 
     47   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zzfrld, zztms 
     48   REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::   zi1, zi2, zmasst, zpresh 
    3949 
    4050   !! * Substitutions 
     
    4656   !!---------------------------------------------------------------------- 
    4757CONTAINS 
     58 
     59   INTEGER FUNCTION lim_rhg_alloc_2() 
     60      !!------------------------------------------------------------------- 
     61      !!               ***  FUNCTION lim_rhg_alloc_2  *** 
     62      !!------------------------------------------------------------------- 
     63      ALLOCATE( zu0(jpi,0:jpj+1),      zv0(jpi,0:jpj+1),     & 
     64         &      zu_n(jpi,0:jpj+1),     zv_n(jpi,0:jpj+1),    & 
     65         &      zu_a(jpi,0:jpj+1),     zv_a(jpi,0:jpj+1),    & 
     66         &      zviszeta(jpi,0:jpj+1), zviseta(jpi,0:jpj+1), & 
     67         &      zzfrld(jpi,0:jpj+1),   zztms(jpi,0:jpj+1),   & 
     68         &      zi1(jpi,0:jpj+1),      zi2(jpi,0:jpj+1),     & 
     69         &      zmasst(jpi,0:jpj+1),   zpresh(jpi,0:jpj+1),  & 
     70         &      Stat=lim_rhg_alloc_2) 
     71         ! 
     72      IF( lim_rhg_alloc_2 /= 0 )   CALL ctl_warn('lim_rhg_alloc_2 : failed to allocate arrays') 
     73      ! 
     74   END FUNCTION lim_rhg_alloc_2 
     75 
    4876 
    4977   SUBROUTINE lim_rhg_2( k_j1, k_jpj ) 
     
    5987      !!              at I-point 
    6088      !!------------------------------------------------------------------- 
     89      USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
     90      USE wrk_nemo, ONLY: zfrld => wrk_2d_1, zmass => wrk_2d_2, zcorl => wrk_2d_3 
     91      USE wrk_nemo, ONLY: za1ct => wrk_2d_4, za2ct => wrk_2d_5, zresr => wrk_2d_6 
     92      USE wrk_nemo, ONLY: zc1u  => wrk_2d_7, zc1v  => wrk_2d_8, zc2u => wrk_2d_9 
     93      USE wrk_nemo, ONLY: zc2v  => wrk_2d_10, zsang => wrk_2d_11 
     94      !! 
    6195      INTEGER, INTENT(in) ::   k_j1    ! southern j-index for ice computation 
    6296      INTEGER, INTENT(in) ::   k_jpj   ! northern j-index for ice computation 
     
    79113      REAL(wp) ::   zs21_11, zs21_12, zs21_21, zs21_22 
    80114      REAL(wp) ::   zs22_11, zs22_12, zs22_21, zs22_22 
    81       REAL(wp), DIMENSION(jpi,  jpj  ) ::   zfrld, zmass, zcorl 
    82       REAL(wp), DIMENSION(jpi,  jpj  ) ::   za1ct, za2ct, zresr 
    83       REAL(wp), DIMENSION(jpi,  jpj  ) ::   zc1u, zc1v, zc2u, zc2v 
    84       REAL(wp), DIMENSION(jpi,  jpj  ) ::   zsang 
    85       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu0, zv0 
    86       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_n, zv_n 
    87       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_a, zv_a 
    88       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zviszeta, zviseta 
    89       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zzfrld, zztms 
    90       REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zi1, zi2, zmasst, zpresh 
    91115      !!------------------------------------------------------------------- 
    92116       
Note: See TracChangeset for help on using the changeset viewer.