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

Changeset 2607


Ignore:
Timestamp:
2011-02-22T18:14:26+01:00 (13 years ago)
Author:
trackstand2
Message:

Made module arrays allocatable and added calls to _alloc()s in nemo_alloc()

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

Legend:

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

    r2597 r2607  
    572572     USE tranxt,       ONLY: tra_nxt_alloc 
    573573     USE trazdf,       ONLY: tra_zdf_alloc 
     574 
     575     ! TOP-related alloc routines... 
    574576#if defined key_top 
     577     USE trcadv,       ONLY: trc_adv_alloc 
    575578     USE trc,          ONLY: trc_alloc 
     579     USE trcnxt,       ONLY: trc_nxt_alloc 
     580     USE trczdf,       ONLY: trc_zdf_alloc 
     581     USE trdmod_trc_oce,ONLY: trd_mod_trc_oce_alloc 
    576582#endif 
    577583#if defined key_top && ! defined key_iomput 
    578584     USE trcdia,       ONLY: trc_dia_alloc 
    579585#endif 
     586#if  defined key_top && defined key_trcdmp  
     587     USE trcdmp,       ONLY: trc_dmp_alloc 
     588#endif 
    580589#if  defined key_top  &&  defined key_dtatrc 
    581590     USE trcdta,       ONLY: trc_dta_alloc 
    582591#endif 
     592     ! ...end of TOP-related alloc routines 
     593 
     594     ! LOBSTER-related alloc routines... 
     595     USE sms_lobster,  ONLY: sms_lobster_alloc 
     596     ! ...end of LOBSTER-related alloc routines 
     597 
    583598     USE trc_oce,      ONLY: trc_oce_alloc 
    584599#if   defined key_trdmld   ||   defined key_esopa 
     
    730745     ierr = ierr + tra_nxt_alloc() 
    731746     ierr = ierr + tra_zdf_alloc() 
     747 
     748     ! Start of TOP-related alloc routines... 
    732749#if defined key_top 
     750     ierr = ierr + trc_adv_alloc() 
    733751     ierr = ierr + trc_alloc() 
     752     ierr = ierr + trc_nxt_alloc() 
     753     ierr = ierr + trc_zdf_alloc() 
     754     ierr = ierr + trd_mod_trc_oce_alloc() 
    734755#endif 
    735756#if defined key_top && ! defined key_iomput 
    736757     ierr = ierr + trc_dia_alloc() 
    737758#endif 
     759#if  defined key_top && defined key_trcdmp  
     760     ierr = ierr + trc_dmp_alloc() 
     761#endif 
    738762#if  defined key_top  &&  defined key_dtatrc 
    739763     ierr = ierr + trc_dta_alloc() 
    740764#endif 
     765     ! ...end of TOP-related alloc routines 
     766 
     767     ! Start of LOBSTER-related alloc routines 
     768     ierr = ierr + sms_lobster_alloc() 
     769     ! ...end of LOBSTER-related alloc routines 
     770 
    741771     ierr = ierr + trc_oce_alloc() 
    742772#if   defined key_trdmld   ||   defined key_esopa 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/LOBSTER/sms_lobster.F90

    r2528 r2607  
    7676   REAL(wp) ::   fdbod    !: zooplankton mortality fraction that goes to detritus 
    7777 
    78    REAL(wp), DIMENSION(jpk,jp_lobster) ::   remdmp   !: depth dependant damping coefficient of passive tracers  
     78   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   remdmp   !: depth dependant damping coefficient of passive tracers  
    7979    
    8080   !! Optical parameters                                 
     
    8888   REAL(wp) ::   rpig       !: chla/chla+phea ratio                     (NAMELIST) 
    8989                                                         
    90    INTEGER , DIMENSION(jpi,jpj)     ::   neln    !: number of levels in the euphotic layer 
    91    REAL(wp), DIMENSION(jpi,jpj)     ::   xze     !: euphotic layer depth 
    92    REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xpar    !: par (photosynthetic available radiation) 
     90   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:)    ::   neln    !: number of levels in the euphotic layer 
     91   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)    ::   xze     !: euphotic layer depth 
     92   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:,:) ::   xpar    !: par (photosynthetic available radiation) 
    9393 
    9494   !! Sediment parameters                                
     
    9898   REAL(wp) ::   areacot      !: ??? 
    9999                                                         
    100    REAL(wp), DIMENSION(jpi,jpj)     ::   dminl   !: fraction of sinking POC released in sediments 
    101    REAL(wp), DIMENSION(jpi,jpj,jpk) ::   dmin3   !: fraction of sinking POC released at each level 
     100   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:)   ::   dminl   !: fraction of sinking POC released in sediments 
     101   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:,:) ::   dmin3   !: fraction of sinking POC released at each level 
    102102                                                         
    103    REAL(wp), DIMENSION(jpi,jpj) ::   sedpocb     !: mass of POC in sediments 
    104    REAL(wp), DIMENSION(jpi,jpj) ::   sedpocn     !: mass of POC in sediments 
    105    REAL(wp), DIMENSION(jpi,jpj) ::   sedpoca     !: mass of POC in sediments 
     103   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:) ::   sedpocb     !: mass of POC in sediments 
     104   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:) ::   sedpocn     !: mass of POC in sediments 
     105   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:) ::   sedpoca     !: mass of POC in sediments 
    106106                                                         
    107    REAL(wp), DIMENSION(jpi,jpj) ::   fbod        !: rapid sinking particles 
    108    REAL(wp), DIMENSION(jpi,jpj) ::   cmask       !: ??? 
     107   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:) ::   fbod        !: rapid sinking particles 
     108   REAL(wp), ALLOCATABLE, SAVE,  DIMENSION(:,:) ::   cmask       !: ??? 
     109 
     110   !!====================================================================== 
     111 
     112CONTAINS 
     113 
     114   FUNCTION sms_lobster_alloc() 
     115      !!---------------------------------------------------------------------- 
     116      !!        *** ROUTINE sms_lobster_alloc *** 
     117      !!---------------------------------------------------------------------- 
     118      USE in_out_manager, ONLY: ctl_warn 
     119      INTEGER :: sms_lobster_alloc 
     120      !!---------------------------------------------------------------------- 
     121 
     122      ALLOCATE(remdmp(jpk,jp_lobster),                                & 
     123               neln(jpi,jpj),    xze(jpi,jpj),     xpar(jpi,jpj,jpk), & 
     124               dminl(jpi,jpj),   dmin3(jpi,jpj,jpk),                  & 
     125               sedpocb(jpi,jpj), sedpocn(jpi,jpj), sedpoca(jpi,jpj),  & 
     126               fbod(jpi,jpj),    cmask(jpi,jpj)  ,                    & 
     127               Stat=sms_lobster_alloc) 
     128 
     129      IF(sms_lobster_alloc /= 0)THEN 
     130         CALL ctl_warn('sms_lobster_alloc : failed to allocate arrays.') 
     131      END IF 
     132 
     133   END FUNCTION sms_lobster_alloc 
    109134 
    110135#else 
     
    115140 
    116141   !!====================================================================== 
     142 
    117143END MODULE sms_lobster 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/prtctl_trc.F90

    r2593 r2607  
    158158      END DO 
    159159      ! 
     160      IF(.NOT. wrk_release(3, 1,2))THEN 
     161         CALL ctl_stop('prt_ctl_trc : failed to release workspace arrays.') 
     162      END IF 
     163      ! 
    160164   END SUBROUTINE prt_ctl_trc 
    161165 
     
    185189         WRITE(j_id,*) clinfo 
    186190      END DO 
    187       ! 
    188       IF(.NOT. wrk_release(3, 1,2))THEN 
    189          CALL ctl_stop('prt_ctl_trc : failed to release workspace arrays.') 
    190       END IF 
    191191      ! 
    192192   END SUBROUTINE prt_ctl_trc_info 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r2593 r2607  
    3636   !! passive tracers fields (before,now,after) 
    3737   !! -------------------------------------------------- 
    38    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk) :: cvol   !: volume correction -degrad option-  
     38   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: cvol   !: volume correction -degrad option-  
    3939   REAL(wp), PUBLIC ::   trai                          !: initial total tracer 
    4040   REAL(wp), PUBLIC ::   areatot                       !: total volume  
    4141 
    42    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trn   !: traceur concentration for actual time step 
    43    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   tra   !: traceur concentration for next time step 
    44    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step 
     42   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) ::   trn   !: traceur concentration for actual time step 
     43   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) ::   tra   !: traceur concentration for next time step 
     44   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) ::   trb   !: traceur concentration for before time step 
    4545 
    4646   !! interpolated gradient 
    4747   !!--------------------------------------------------   
    48    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtru   !: horizontal gradient at u-points at bottom ocean level 
    49    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jptra) ::   gtrv   !: horizontal gradient at v-points at bottom ocean level 
     48   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) ::   gtru   !: horizontal gradient at u-points at bottom ocean level 
     49   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:) ::   gtrv   !: horizontal gradient at v-points at bottom ocean level 
    5050    
    5151   !! passive tracers restart (input and output) 
     
    6363   !! -------------------------------------------------- 
    6464   INTEGER , PUBLIC ::   nn_writetrc   !: time step frequency for concentration outputs (namelist) 
    65    REAL(wp), PUBLIC, DIMENSION(jpk) ::   rdttrc        !: vertical profile of passive tracer time step 
     65   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   rdttrc        !: vertical profile of passive tracer time step 
    6666    
    6767# if defined key_diatrc && ! defined key_iomput 
     
    7676   CHARACTER(len=80), PUBLIC, DIMENSION (jpdia3d) ::   ctrc3l      !: 3d output field long name 
    7777 
    78    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,    jpdia2d) ::   trc2d    !:  additional 2d outputs   
    79    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jpdia3d) ::   trc3d    !:  additional 3d outputs   
     78   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,  :) ::   trc2d    !:  additional 2d outputs   
     79   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION (:,:,:,:) ::   trc3d    !:  additional 3d outputs   
    8080    
    8181# endif 
     
    9191   !! Biological trends 
    9292   !! ----------------- 
    93    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk,jpdiabio) :: trbio   !: biological trends 
     93   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trbio   !: biological trends 
    9494# endif 
    9595 
     
    119119      !!                    *** ROUTINE trc_alloc *** 
    120120      !!------------------------------------------------------------------- 
     121      USE in_out_manager, ONLY: ctl_warn 
     122      ! 
    121123      INTEGER :: trc_alloc 
    122124      !!------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.