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 2628 for branches/dev_r2586_dynamic_mem – NEMO

Ignore:
Timestamp:
2011-02-27T19:38:47+01:00 (13 years ago)
Author:
gm
Message:

dynamic mem: #785 ; TOP_SRC: move dyn allocation from nemogcm to trcini (continuation)

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO
Files:
2 edited

Legend:

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

    r2625 r2628  
    477477#endif 
    478478 
    479      ! TOP-related alloc routines... 
    480 #if defined key_top 
    481       USE trcadv,       ONLY: trc_adv_alloc 
    482       USE trc,          ONLY: trc_alloc 
    483       USE trcnxt,       ONLY: trc_nxt_alloc 
    484       USE trczdf,       ONLY: trc_zdf_alloc 
    485       USE trdmod_trc_oce,ONLY: trd_mod_trc_oce_alloc 
    486 #endif 
    487 #if defined key_top && ! defined key_iomput 
    488       USE trcdia,       ONLY: trc_dia_alloc 
    489 #endif 
    490 #if  defined key_top && defined key_trcdmp  
    491       USE trcdmp,       ONLY: trc_dmp_alloc 
    492 #endif 
    493 #if  defined key_top  &&  defined key_dtatrc 
    494       USE trcdta,       ONLY: trc_dta_alloc 
    495 #endif 
    496 #if   defined key_top && ( defined key_trdmld_trc   ||   defined key_esopa ) 
    497       USE trdmld_trc,   ONLY: trd_mld_trc_alloc 
    498 #endif 
    499 #if defined key_cfc 
    500      USE trcsms_cfc,   ONLY: trc_sms_cfc_alloc 
    501 #endif 
    502       ! ...end of TOP-related alloc routines 
    503  
    504       ! LOBSTER-related alloc routines... 
    505 #if defined key_lobster 
    506       USE sms_lobster,  ONLY: sms_lobster_alloc 
    507 #endif 
    508       ! ...end of LOBSTER-related alloc routines 
    509  
     479     ! TRD-related alloc routines... 
    510480#if   defined key_trdmld   ||   defined key_esopa 
    511481      USE trdmld,       ONLY: trd_mld_alloc 
     
    539509      ierr = ierr + obc_oce_alloc() 
    540510#endif 
    541  
    542       ! Start of TOP-related alloc routines... 
    543 #if defined key_top 
    544       ierr = ierr + trc_adv_alloc() 
    545       ierr = ierr + trc_alloc() 
    546       ierr = ierr + trc_nxt_alloc() 
    547       ierr = ierr + trc_zdf_alloc() 
    548       ierr = ierr + trd_mod_trc_oce_alloc() 
    549 #endif 
    550 #if defined key_top && ! defined key_iomput 
    551       ierr = ierr + trc_dia_alloc() 
    552 #endif 
    553 #if  defined key_top && defined key_trcdmp  
    554       ierr = ierr + trc_dmp_alloc() 
    555 #endif 
    556 #if  defined key_top  &&  defined key_dtatrc 
    557       ierr = ierr + trc_dta_alloc() 
    558 #endif 
    559 #if   defined key_top && ( defined key_trdmld_trc   ||   defined key_esopa ) 
    560       ierr = ierr + trd_mld_trc_alloc() 
    561 #endif 
    562       ! ...end of TOP-related alloc routines 
    563  
    564       ! Start of LOBSTER-related alloc routines 
    565 #if defined key_lobster 
    566       ierr = ierr + sms_lobster_alloc() 
    567 #endif 
    568       ! ...end of LOBSTER-related alloc routines 
    569511 
    570512#if   defined key_trdmld   ||   defined key_esopa 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r2610 r2628  
    44   !! TOP :   Manage the passive tracer initialization 
    55   !!====================================================================== 
    6    !! History :    -   !  1991-03  ()  original code 
    7    !!             1.0  ! 2005-03 (O. Aumont, A. El Moussaoui) F90 
    8    !!              -   !  2005-10 (C. Ethe) print control 
    9    !!             2.0  !  2005-10 (C. Ethe, G. Madec) revised architecture 
     6   !! History :   -   ! 1991-03 (O. Marti)  original code 
     7   !!            1.0  ! 2005-03 (O. Aumont, A. El Moussaoui) F90 
     8   !!            2.0  ! 2005-10 (C. Ethe, G. Madec) revised architecture 
     9   !!            4.0  ! 2011-01 (A. R. Porter, STFC Daresbury) dynamical allocation 
    1010   !!---------------------------------------------------------------------- 
    1111#if defined key_top 
     
    1313   !!   'key_top'                                                TOP models 
    1414   !!---------------------------------------------------------------------- 
    15    !!---------------------------------------------------------------------- 
    16    !!   trc_init :   Initialization for passive tracer 
     15   !!   trc_init  :   Initialization for passive tracer 
     16   !!   top_alloc :   allocate the TOP arrays 
    1717   !!---------------------------------------------------------------------- 
    1818   USE oce_trc 
     
    4040    !! * Substitutions 
    4141#  include "domzgr_substitute.h90" 
    42    
     42   !!---------------------------------------------------------------------- 
     43   !! NEMO/TOP 4.0 , NEMO Consortium (2011) 
     44   !! $Id$  
     45   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     46   !!---------------------------------------------------------------------- 
    4347CONTAINS 
    4448    
     
    5761      INTEGER ::   jk, jn    ! dummy loop indices 
    5862      CHARACTER (len=25) :: charout 
    59  
    6063      !!--------------------------------------------------------------------- 
    6164 
     
    6467      IF(lwp) WRITE(numout,*) '~~~~~~~' 
    6568 
    66       !                 ! masked grid volume 
     69      CALL top_alloc()              ! allocate TOP arrays 
     70 
     71 
     72      !                             ! masked grid volume 
    6773      DO jk = 1, jpk 
    6874         cvol(:,:,jk) = e1t(:,:) * e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk)  
    6975      END DO 
    7076 
    71       ! total volume of the ocean 
     77      !                             ! total volume of the ocean 
    7278#if ! defined key_degrad 
    7379      areatot = glob_sum( cvol(:,:,:) ) 
     
    7682#endif 
    7783 
    78                                   CALL trc_nam      ! read passive tracers namelists 
    79  
    80       ! restart for passive tracer (input) 
     84      CALL trc_nam                  ! read passive tracers namelists 
     85 
     86      !                             ! restart for passive tracer (input) 
    8187      IF( ln_rsttr ) THEN 
    8288         IF(lwp) WRITE(numout,*) '       read a restart file for passive tracer : ', cn_trcrst_in 
     
    136142      ENDIF 
    137143  
    138       tra(:,:,:,:) = 0. 
     144      tra(:,:,:,:) = 0._wp 
    139145       
    140146      IF( ln_zps .AND. .NOT. lk_c1d )   &              ! Partial steps: before horizontal gradient of passive 
    141       &                     CALL zps_hde( nit000, jptra, trn, gtru, gtrv )       ! tracers at the bottom ocean level 
    142  
    143  
    144       !                 ! Computation content of all tracers 
    145       trai = 0.e0 
     147         CALL zps_hde( nit000, jptra, trn, gtru, gtrv )       ! tracers at the bottom ocean level 
     148 
     149 
     150      !            
     151      trai = 0._wp         ! Computation content of all tracers 
    146152      DO jn = 1, jptra 
    147153#if ! defined key_degrad 
     
    152158      END DO       
    153159 
    154       !                 ! control print 
    155       IF(lwp) WRITE(numout,*) 
    156       IF(lwp) WRITE(numout,*) 
    157       IF(lwp) WRITE(numout,*) '          *** Total number of passive tracer jptra = ', jptra 
    158       IF(lwp) WRITE(numout,*) '          *** Total volume of ocean                = ', areatot 
    159       IF(lwp) WRITE(numout,*) '          *** Total inital content of all tracers  = ', trai 
    160       IF(lwp) WRITE(numout,*) 
    161  
    162       IF( ln_ctl )   CALL prt_ctl_trc_init      ! control print 
    163       ! 
    164  
    165       IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
     160      IF(lwp) THEN               ! control print 
     161         WRITE(numout,*) 
     162         WRITE(numout,*) 
     163         WRITE(numout,*) '          *** Total number of passive tracer jptra = ', jptra 
     164         WRITE(numout,*) '          *** Total volume of ocean                = ', areatot 
     165         WRITE(numout,*) '          *** Total inital content of all tracers  = ', trai 
     166         WRITE(numout,*) 
     167      ENDIF 
     168 
     169      IF(ln_ctl) THEN            ! print mean trends (used for debugging) 
     170         CALL prt_ctl_trc_init 
    166171         WRITE(charout, FMT="('ini ')") 
    167172         CALL prt_ctl_trc_info( charout ) 
    168173         CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 
    169174      ENDIF 
    170  
     175      ! 
    171176   END SUBROUTINE trc_init 
     177 
     178 
     179   SUBROUTINE top_alloc 
     180      !!---------------------------------------------------------------------- 
     181      !!                     ***  ROUTINE top_alloc  *** 
     182      !! 
     183      !! ** Purpose :   Allocate all the dynamic arrays of the OPA modules 
     184      !!---------------------------------------------------------------------- 
     185      ! 
     186      USE trcadv        , ONLY:   trc_adv_alloc          ! TOP-related alloc routines... 
     187      USE trc           , ONLY:   trc_alloc 
     188      USE trcnxt        , ONLY:   trc_nxt_alloc 
     189      USE trczdf        , ONLY:   trc_zdf_alloc 
     190      USE trdmod_trc_oce, ONLY:   trd_mod_trc_oce_alloc 
     191#if ! defined key_iomput 
     192      USE trcdia        , ONLY:   trc_dia_alloc 
     193#endif 
     194#if defined key_trcdmp  
     195      USE trcdmp        , ONLY:   trc_dmp_alloc 
     196#endif 
     197#if defined key_dtatrc 
     198      USE trcdta        , ONLY:   trc_dta_alloc 
     199#endif 
     200#if defined key_trdmld_trc   ||   defined key_esopa 
     201      USE trdmld_trc    , ONLY:   trd_mld_trc_alloc 
     202#endif 
     203#if defined key_cfc 
     204     USE trcsms_cfc     , ONLY:   trc_sms_cfc_alloc 
     205#endif 
     206#if defined key_lobster 
     207      USE sms_lobster   , ONLY:   sms_lobster_alloc      ! LOBSTER-related alloc routines... 
     208#endif 
     209      ! 
     210      INTEGER :: ierr 
     211      !!---------------------------------------------------------------------- 
     212      ! 
     213      ierr =        trc_adv_alloc()          ! Start of TOP-related alloc routines... 
     214      ierr = ierr + trc_alloc() 
     215      ierr = ierr + trc_nxt_alloc() 
     216      ierr = ierr + trc_zdf_alloc() 
     217      ierr = ierr + trd_mod_trc_oce_alloc() 
     218#if ! defined key_iomput 
     219      ierr = ierr + trc_dia_alloc() 
     220#endif 
     221#if defined key_trcdmp  
     222      ierr = ierr + trc_dmp_alloc() 
     223#endif 
     224#if defined key_dtatrc 
     225      ierr = ierr + trc_dta_alloc() 
     226#endif 
     227#if defined key_trdmld_trc   ||   defined key_esopa 
     228      ierr = ierr + trd_mld_trc_alloc() 
     229#endif 
     230      ! 
     231#if defined key_lobster 
     232      ierr = ierr + sms_lobster_alloc()      ! Start of LOBSTER-related alloc routines 
     233#endif 
     234      ! 
     235      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
     236      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'top_alloc : unable to allocate standard ocean arrays' ) 
     237      ! 
     238   END SUBROUTINE top_alloc 
    172239 
    173240#else 
     
    180247#endif 
    181248 
    182    !!---------------------------------------------------------------------- 
    183    !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
    184    !! $Id$  
    185    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    186249   !!====================================================================== 
    187250END MODULE trcini 
Note: See TracChangeset for help on using the changeset viewer.