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 2629 – NEMO

Changeset 2629


Ignore:
Timestamp:
2011-02-28T08:58:31+01:00 (13 years ago)
Author:
gm
Message:

dynamic mem: #785 ; TOP_SRC/TRD: move dyn allocation from nemogcm to trd... (continuation)

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdmld.F90

    r2613 r2629  
    1515   !!   'key_trdmld'                          mixed layer trend diagnostics 
    1616   !!---------------------------------------------------------------------- 
    17    !!---------------------------------------------------------------------- 
    1817   !!   trd_mld          : T and S cumulated trends averaged over the mixed layer 
    1918   !!   trd_mld_zint     : T and S trends vertical integration 
     
    2322   USE dom_oce         ! ocean space and time domain variables 
    2423   USE trdmod_oce      ! ocean variables trends 
     24   USE trdmld_oce      ! ocean variables trends 
    2525   USE ldftra_oce      ! ocean active tracers lateral physics 
    2626   USE zdf_oce         ! ocean vertical physics 
     
    3737   USE prtctl          ! Print control 
    3838   USE restart         ! for lrst_oce 
     39   USE lib_mpp         ! MPP library 
    3940 
    4041   IMPLICIT NONE 
     
    4445   PUBLIC   trd_mld_init   ! routine called by opa.F90 
    4546   PUBLIC   trd_mld_zint   ! routine called by tracers routines 
    46    PUBLIC   trd_mld_alloc  ! routine called by nemogcm.F90 
    4747 
    4848   CHARACTER (LEN=40) ::  clhstnam         ! name of the trends NetCDF file 
     
    6060   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    6161   !! $Id$  
    62    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     62   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    6363   !!---------------------------------------------------------------------- 
    64  
    6564CONTAINS 
    6665 
    67    FUNCTION trd_mld_alloc() 
     66   INTEGER FUNCTION trd_mld_alloc() 
    6867      !!---------------------------------------------------------------------- 
    6968      !!                  ***  ROUTINE trd_mld_alloc  *** 
    7069      !!---------------------------------------------------------------------- 
    71       IMPLICIT none 
    72       INTEGER :: trd_mld_alloc 
    73       !!---------------------------------------------------------------------- 
    74       ! 
    75       ALLOCATE(ndextrd1(jpi*jpj), Stat=trd_mld_alloc) 
    76       ! 
     70      ALLOCATE( ndextrd1(jpi*jpj) , STAT=trd_mld_alloc ) 
     71      ! 
     72      IF( lk_mpp             )   CALL mpp_sum ( trd_mld_alloc ) 
    7773      IF( trd_mld_alloc /= 0 )   CALL ctl_warn('trd_mld_alloc: failed to allocate array ndextrd1.') 
    78       ! 
    7974   END FUNCTION trd_mld_alloc 
    8075 
     
    10095      USE wrk_nemo, ONLY: wrk_use, wrk_release 
    10196      USE wrk_nemo, ONLY: zvlmsk => wrk_2d_1 
    102       !! 
    103       INTEGER, INTENT( in ) ::   ktrd                             ! ocean trend index 
    104       CHARACTER(len=2), INTENT( in ) :: ctype                     ! surface/bottom (2D arrays) or 
    105       !                                                           ! interior (3D arrays) physics 
    106       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) ::  pttrdmld ! temperature trend  
    107       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) ::  pstrdmld ! salinity trend  
     97      ! 
     98      INTEGER                         , INTENT( in ) ::   ktrd       ! ocean trend index 
     99      CHARACTER(len=2)                , INTENT( in ) ::   ctype      ! 2D surface/bottom or 3D interior physics 
     100      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) ::   pttrdmld   ! temperature trend  
     101      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) ::   pstrdmld   ! salinity trend  
     102      ! 
    108103      INTEGER ::   ji, jj, jk, isum 
    109104      !!---------------------------------------------------------------------- 
    110105 
    111       IF(.NOT. wrk_use(2, 1))THEN 
    112          CALL ctl_stop('trd_mld_zint : requested workspace arrays unavailable.') 
    113          RETURN 
    114       END IF 
     106      IF(.NOT. wrk_use(2, 1) ) THEN 
     107         CALL ctl_stop('trd_mld_zint : requested workspace arrays unavailable')   ;   RETURN 
     108      ENDIF 
    115109 
    116110      ! I. Definition of control surface and associated fields 
     
    201195      END SELECT 
    202196      ! 
    203       IF(.NOT. wrk_release(2, 1))THEN 
    204          CALL ctl_stop('trd_mld_zint : failed to release workspace arrays.') 
    205       END IF 
     197      IF(.NOT. wrk_release(2, 1) )   CALL ctl_stop('trd_mld_zint : failed to release workspace arrays') 
    206198      ! 
    207199   END SUBROUTINE trd_mld_zint 
     
    263255      USE wrk_nemo, ONLY: ztmlatf2 => wrk_2d_13, zsmlatf2 => wrk_2d_14     
    264256      USE wrk_nemo, ONLY: wrk_3d_1, wrk_3d_2                     ! / 
    265       !! 
     257      ! 
    266258      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    267       !! 
     259      ! 
    268260      INTEGER :: ji, jj, jk, jl, ik, it, itmod 
    269261      LOGICAL :: lldebug = .TRUE. 
     
    277269       
    278270      ! Check that the workspace arrays are all OK to be used 
    279       IF( (.NOT. wrk_use(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14)) .OR. & 
    280           (.NOT. wrk_use(3, 1,2)) )THEN 
    281          CALL ctl_stop('trd_mld : requested workspace arrays unavailable.') 
    282          RETURN 
     271      IF( .NOT. wrk_use(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14)  .OR. & 
     272          .NOT. wrk_use(3, 1,2)                                 ) THEN 
     273         CALL ctl_stop('trd_mld : requested workspace arrays unavailable')   ;   RETURN 
    283274      ELSE IF(jpltrd > jpk) THEN 
    284275         ! ARPDBG, is this reasonable or will this cause trouble in the future? 
     
    749740      IF( lrst_oce )   CALL trd_mld_rst_write( kt )  
    750741 
    751       IF( (.NOT. wrk_release(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14)) .OR. & 
    752           (.NOT. wrk_release(3, 1,2)) )THEN 
    753          CALL ctl_stop('trd_mld : failed to release workspace arrays.') 
    754       END IF 
    755  
     742      IF( .NOT. wrk_release(2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14)  .OR. & 
     743          .NOT. wrk_release(3, 1,2)                                )   & 
     744          CALL ctl_stop('trd_mld : failed to release workspace arrays.') 
     745      ! 
    756746   END SUBROUTINE trd_mld 
    757747 
     
    763753      !! ** Purpose :   computation of vertically integrated T and S budgets 
    764754      !!      from ocean surface down to control surface (NetCDF output) 
    765       !! 
    766       !!---------------------------------------------------------------------- 
    767       !! * Local declarations 
     755      !!---------------------------------------------------------------------- 
    768756      INTEGER :: jl 
    769757      INTEGER :: inum   ! logical unit 
    770  
    771758      REAL(wp) ::   zjulian, zsto, zout 
    772  
    773759      CHARACTER (LEN=40) ::   clop 
    774760      CHARACTER (LEN=12) ::   clmxl, cltu, clsu 
    775  
    776761      !!---------------------------------------------------------------------- 
    777762 
     
    810795         nwarn = nwarn + 1 
    811796      END IF 
     797 
     798      !                                   ! allocate trdmld arrays 
     799      IF( trd_mld_alloc()    /= 0 )   CALL ctl_stop( 'STOP', 'trd_mld_init : unable to allocate trdmld     arrays' ) 
     800      IF( trdmld_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trd_mld_init : unable to allocate trdmld_oce arrays' ) 
    812801 
    813802      ! I.2 Initialize arrays to zero or read a restart file 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdmld_oce.F90

    r2613 r2629  
    44   !! Ocean trends :   set tracer and momentum trend variables 
    55   !!====================================================================== 
    6    !! History :  9.0  !  04-08  (C. Talandier)  New trends organization 
     6   !! History :  1.0  ! 2004-08  (C. Talandier)  New trends organization 
    77   !!---------------------------------------------------------------------- 
    8    USE par_oce         ! ocean parameters 
     8   USE par_oce        ! ocean parameters 
    99 
    1010   IMPLICIT NONE 
    1111   PRIVATE 
    1212 
    13    ! Routine accessibility 
    14    PUBLIC trdmld_oce_alloc    ! Called in nemogcm.F90 
     13   PUBLIC   trdmld_oce_alloc    ! Called in trdmld.F90 
    1514 
    1615#if defined key_trdmld 
     
    2019#endif 
    2120   !!* mixed layer trends indices 
    22    INTEGER, PARAMETER, PUBLIC ::   jpltrd = 11    !: number of mixed-layer trends arrays 
    23    INTEGER, PUBLIC            ::   jpktrd         !: max level for mixed-layer trends diag. 
     21   INTEGER, PARAMETER, PUBLIC ::   jpltrd = 11      !: number of mixed-layer trends arrays 
     22   INTEGER, PUBLIC            ::   jpktrd           !: max level for mixed-layer trends diag. 
    2423   ! 
    2524   INTEGER, PUBLIC, PARAMETER ::   jpmld_xad =  1   !:  zonal       
     
    4544   CHARACTER(LEN=80) , PUBLIC :: clname, ctrd(jpltrd+1,2) 
    4645 
    47    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   nmld   !: mixed layer depth indexes  
    48    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   nbol   !: mixed-layer depth indexes when read from file 
     46   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   nmld   !: mixed layer depth indexes  
     47   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   nbol   !: mixed-layer depth indexes when read from file 
    4948 
    5049   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   wkx    !: 
    5150 
    52    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::  & 
     51   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  & 
    5352      rmld   ,                      & !: mld depth (m) corresponding to nmld 
    5453      tml    , sml  ,               & !: \ "now" mixed layer temperature/salinity 
     
    8483   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
    8584   !! $Id$  
    86    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     85   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    8786   !!---------------------------------------------------------------------- 
    8887CONTAINS 
    8988 
    90   FUNCTION trdmld_oce_alloc() 
     89  INTEGER FUNCTION trdmld_oce_alloc() 
    9190     !!---------------------------------------------------------------------- 
     91     !!                 ***  FUNCTION trdmld_oce_alloc   *** 
    9292     !!---------------------------------------------------------------------- 
    9393     USE in_out_manager, ONLY: ctl_warn 
    94      INTEGER :: trdmld_oce_alloc 
     94     USE lib_mpp 
    9595     INTEGER :: ierr(5) 
    9696     !!---------------------------------------------------------------------- 
     
    107107        &      tml(jpi,jpj)    , sml(jpi,jpj),     &  
    108108        &      tmlb(jpi,jpj)   , smlb(jpi,jpj) ,   & 
    109         &      tmlbb(jpi,jpj)  , smlbb(jpi,jpj),   & 
    110         &      Stat = ierr(1)) 
     109        &      tmlbb(jpi,jpj)  , smlbb(jpi,jpj), STAT = ierr(1) ) 
    111110 
    112111     ALLOCATE( tmlbn(jpi,jpj)  , smlbn(jpi,jpj),   & 
    113112        &      tmltrdm(jpi,jpj), smltrdm(jpi,jpj), & 
    114113        &      tml_sum(jpi,jpj), tml_sumb(jpi,jpj),& 
    115         &      tmltrd_atf_sumb(jpi,jpj), Stat=ierr(2)) 
     114        &      tmltrd_atf_sumb(jpi,jpj)           , STAT=ierr(2) ) 
    116115 
    117116     ALLOCATE( sml_sum(jpi,jpj), sml_sumb(jpi,jpj), & 
    118117        &      smltrd_atf_sumb(jpi,jpj),            & 
    119118        &      rmld_sum(jpi,jpj), rmldbn(jpi,jpj),  & 
    120         &      tmlatfb(jpi,jpj), tmlatfn(jpi,jpj),  &  
    121         &      Stat = ierr(3)) 
     119        &      tmlatfb(jpi,jpj), tmlatfn(jpi,jpj), STAT = ierr(3) ) 
    122120 
    123121     ALLOCATE( smlatfb(jpi,jpj), smlatfn(jpi,jpj), &  
    124122        &      tmlatfm(jpi,jpj), smlatfm(jpi,jpj), & 
    125         &      tmltrd(jpi,jpj,jpltrd),   smltrd(jpi,jpj,jpltrd), & 
    126         &      Stat=ierr(4)) 
     123        &      tmltrd(jpi,jpj,jpltrd),   smltrd(jpi,jpj,jpltrd), STAT=ierr(4)) 
    127124 
    128125     ALLOCATE( tmltrd_sum(jpi,jpj,jpltrd),tmltrd_csum_ln(jpi,jpj,jpltrd),      & 
    129126        &      tmltrd_csum_ub(jpi,jpj,jpltrd), smltrd_sum(jpi,jpj,jpltrd),     & 
    130         &      smltrd_csum_ln(jpi,jpj,jpltrd), smltrd_csum_ub(jpi,jpj,jpltrd), & 
    131         &      Stat=ierr(5)) 
     127        &      smltrd_csum_ln(jpi,jpj,jpltrd), smltrd_csum_ub(jpi,jpj,jpltrd), STAT=ierr(5) ) 
    132128#endif 
    133129      ! 
    134       trdmld_oce_alloc = MAXVAL(ierr) 
    135       ! 
     130      trdmld_oce_alloc = MAXVAL( ierr ) 
     131      IF( lk_mpp                )   CALL mpp_sum ( trdmld_oce_alloc ) 
    136132      IF( trdmld_oce_alloc /= 0 )   CALL ctl_warn('trdmld_oce_alloc: failed to allocate arrays.') 
    137133      ! 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdmod.F90

    r2613 r2629  
    3939   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    4040   !! $Id$ 
    41    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     41   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    4242   !!---------------------------------------------------------------------- 
    4343 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdmod_oce.F90

    r2528 r2629  
    7575   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    7676   !! $Id$ 
    77    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     77   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    7878   !!====================================================================== 
    7979END MODULE trdmod_oce 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r2590 r2629  
    44   !! Ocean diagnostics:  ocean tracers trends 
    55   !!===================================================================== 
    6    !! History :  9.0  !  2004-08  (C. Talandier) Original code 
    7    !!                 !  2005-04  (C. Deltel)    Add Asselin trend in the ML budget 
    8    !!      NEMO  3.3  !  2010-06  (C. Ethe) merge TRA-TRC  
     6   !! History :  1.0  !  2004-08  (C. Talandier) Original code 
     7   !!            2.0  !  2005-04  (C. Deltel)    Add Asselin trend in the ML budget 
     8   !!            3.3  !  2010-06  (C. Ethe) merge TRA-TRC  
    99   !!---------------------------------------------------------------------- 
    1010#if  defined key_trdtra || defined key_trdmld || defined key_trdmld_trc  
     
    1212   !!   trd_tra      : Call the trend to be computed 
    1313   !!---------------------------------------------------------------------- 
    14    USE dom_oce            ! ocean domain  
    15    USE trdmod_oce         ! ocean active mixed layer tracers trends  
    16    USE trdmod             ! ocean active mixed layer tracers trends  
    17    USE trdmod_trc         ! ocean passive mixed layer tracers trends  
     14   USE dom_oce          ! ocean domain  
     15   USE trdmod_oce       ! ocean active mixed layer tracers trends  
     16   USE trdmod           ! ocean active mixed layer tracers trends  
     17   USE trdmod_trc       ! ocean passive mixed layer tracers trends  
     18   USE in_out_manager   ! I/O manager 
    1819 
    1920   IMPLICIT NONE 
    2021   PRIVATE 
    2122 
    22    PUBLIC trd_tra          ! called by all  traXX modules 
    23    PUBLIC trd_tra_alloc    ! called by nemogcm.F90 
     23   PUBLIC   trd_tra          ! called by all  traXX modules 
    2424  
    25    !! * Module declaration 
    2625   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt  !: 
    2726 
     
    3029#  include "vectopt_loop_substitute.h90" 
    3130   !!---------------------------------------------------------------------- 
    32    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     31   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
    3332   !! $Id$ 
    34    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    35    !!---------------------------------------------------------------------- 
    36  
     33   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     34   !!---------------------------------------------------------------------- 
    3735CONTAINS 
    3836 
    39    FUNCTION trd_tra_alloc() 
     37   INTEGER FUNCTION trd_tra_alloc() 
    4038      !!---------------------------------------------------------------------------- 
    41       !!                  ***  ROUTINE trd_tra_alloc  *** 
     39      !!                  ***  FUNCTION trd_tra_alloc  *** 
    4240      !!---------------------------------------------------------------------------- 
    43       IMPLICIT none 
    44       INTEGER trd_tra_alloc 
    45       !!---------------------------------------------------------------------------- 
    46  
    47       ALLOCATE(trdtx(jpi,jpj,jpk), trdty(jpi,jpj,jpk), trdt(jpi,jpj,jpk), & 
    48                Stat=trd_tra_alloc) 
    49  
    50       IF(trd_tra_alloc /= 0)THEN 
    51          CALL ctl_warn('trd_tra_alloc: failed to allocate arrays.') 
    52       END IF 
    53  
    54     END FUNCTION trd_tra_alloc 
     41      ALLOCATE( trdtx(jpi,jpj,jpk) , trdty(jpi,jpj,jpk) , trdt(jpi,jpj,jpk) , STAT=trd_tra_alloc) 
     42      ! 
     43      IF( lk_mpp             )   CALL mpp_sum ( trd_tra_alloc ) 
     44      IF( trd_tra_alloc /= 0 )   CALL ctl_warn('trd_tra_alloc: failed to allocate arrays') 
     45   END FUNCTION trd_tra_alloc 
     46 
    5547 
    5648   SUBROUTINE trd_tra( kt, ctype, ktra, ktrd, ptrd, pun, ptra ) 
     
    7971      !!---------------------------------------------------------------------- 
    8072 
    81       IF(.NOT. wrk_use(3, 1))THEN 
    82          CALL ctl_stop('trd_tra: requested workspace array unavailable.') 
    83          RETURN 
    84       END IF 
    85  
     73      IF(.NOT. wrk_use(3, 1) ) THEN 
     74         CALL ctl_stop('trd_tra: requested workspace array unavailable.')   ;   RETURN 
     75      ENDIF 
     76 
     77      IF( .NOT. ALLOCATED( trdtx ) ) THEN       ! allocate trdtra arrays 
     78         IF( trd_tra_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trd_tra : unable to allocate arrays' ) 
     79      ENDIF 
     80       
    8681      ! Control of optional arguments 
    8782      IF( ctype == 'TRA' .AND. ktra == jp_tem ) THEN  
     
    141136      ENDIF 
    142137      ! 
    143       IF(.NOT. wrk_release(3, 1))THEN 
    144          CALL ctl_stop('trd_tra: failed to release workspace array.') 
    145       END IF 
     138      IF(.NOT. wrk_release(3, 1) )   CALL ctl_stop('trd_tra: failed to release workspace array.') 
    146139      ! 
    147140   END SUBROUTINE trd_tra 
     141 
    148142 
    149143   SUBROUTINE trd_tra_adv( pf, pun, ptn, cdir, ptrd ) 
     
    194188#   else 
    195189   !!---------------------------------------------------------------------- 
    196    !!   Default case :                                         Empty module 
     190   !!   Default case :          Dummy module           No trend diagnostics 
    197191   !!---------------------------------------------------------------------- 
    198192   USE par_oce      ! ocean variables trends 
    199  
    200193CONTAINS 
    201  
    202194   SUBROUTINE trd_tra( kt, ctype, ktra, ktrd, ptrd, pu, ptra ) 
    203195      !!---------------------------------------------------------------------- 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90

    r2590 r2629  
    2626   USE ioipsl          ! NetCDF library 
    2727   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     28   USE lib_mpp         ! MPP library 
    2829 
    2930   IMPLICIT NONE 
     
    6667CONTAINS 
    6768 
    68    FUNCTION trd_vor_alloc() 
     69   INTEGER FUNCTION trd_vor_alloc() 
    6970      !!---------------------------------------------------------------------------- 
    7071      !!                  ***  ROUTINE trd_vor_alloc  *** 
    7172      !!---------------------------------------------------------------------------- 
    72       IMPLICIT none 
    73       INTEGER trd_vor_alloc 
    74       !!---------------------------------------------------------------------------- 
    75  
    76       ALLOCATE(vor_avr(jpi,jpj),    vor_avrb(jpi,jpj), vor_avrbb(jpi,jpj),  & 
    77                vor_avrbn(jpi,jpj),  rotot(jpi,jpj),    vor_avrtot(jpi,jpj), & 
    78                vor_avrres(jpi,jpj), vortrd(jpi,jpj,jpltot_vor),             & 
    79                ndexvor1(jpi*jpj),   Stat=trd_vor_alloc) 
    80  
    81       IF(trd_vor_alloc /= 0)THEN 
    82          CALL ctl_warn('trd_vor_alloc: failed to allocate arrays') 
    83       END IF 
    84  
     73      ALLOCATE( vor_avr(jpi,jpj),    vor_avrb(jpi,jpj), vor_avrbb(jpi,jpj),  & 
     74         &      vor_avrbn(jpi,jpj),  rotot(jpi,jpj),    vor_avrtot(jpi,jpj), & 
     75         &      vor_avrres(jpi,jpj), vortrd(jpi,jpj,jpltot_vor),             & 
     76         &      ndexvor1(jpi*jpj),   STAT=trd_vor_alloc) 
     77         ! 
     78      IF( lk_mpp             )   CALL mpp_sum ( trd_vor_alloc ) 
     79      IF( trd_vor_alloc /= 0 )   CALL ctl_warn('trd_vor_alloc: failed to allocate arrays') 
    8580   END FUNCTION trd_vor_alloc 
     81 
    8682 
    8783   SUBROUTINE trd_vor_zint_2d( putrdvor, pvtrdvor, ktrd ) 
     
    482478      IF( kt == nitend )   CALL histclo( nidvor ) 
    483479      ! 
    484       IF(.NOT. wrk_release(2, 1,2))THEN 
    485          CALL ctl_stop('trd_vor : failed to release workspace arrays.') 
    486       END IF 
     480      IF(.NOT. wrk_release(2, 1,2) )   CALL ctl_stop('trd_vor : failed to release workspace arrays') 
    487481      ! 
    488482   END SUBROUTINE trd_vor 
     
    521515         WRITE(numout,*) ' ' 
    522516      ENDIF 
     517 
     518      IF( trd_vor_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trd_vor_init : unable to allocate trdvor arrays' ) 
     519 
    523520 
    524521      ! cumulated trends array init 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r2628 r2629  
    477477#endif 
    478478 
    479      ! TRD-related alloc routines... 
    480 #if   defined key_trdmld   ||   defined key_esopa 
    481       USE trdmld,       ONLY: trd_mld_alloc 
    482 #endif 
    483       USE trdmld_oce,   ONLY: trdmld_oce_alloc 
    484 #if  defined key_trdtra || defined key_trdmld || defined key_trdmld_trc  
    485       USE trdtra,       ONLY: trd_tra_alloc 
    486 #endif 
    487 #if defined key_trdvor   ||   defined key_esopa 
    488       USE trdvor,       ONLY: trd_vor_alloc 
    489 #endif 
    490479      USE wrk_nemo,     ONLY: wrk_alloc 
    491480 
     
    510499#endif 
    511500 
    512 #if   defined key_trdmld   ||   defined key_esopa 
    513       ierr = ierr + trd_mld_alloc() 
    514 #endif 
    515       ierr = ierr + trdmld_oce_alloc() 
    516 #if  defined key_trdtra || defined key_trdmld || defined key_trdmld_trc  
    517       ierr = ierr + trd_tra_alloc() 
    518 #endif 
    519 #if defined key_trdvor   ||   defined key_esopa 
    520       ierr = ierr + trd_vor_alloc() 
    521 #endif 
    522501      ierr = ierr + wrk_alloc() 
    523502 
Note: See TracChangeset for help on using the changeset viewer.