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/TOP_SRC/PISCES/trcini_pisces.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/TOP_SRC/PISCES/trcini_pisces.F90

    r2528 r2715  
    2121   USE oce_trc         ! ocean variables 
    2222   USE p4zche  
    23    USE lib_mpp 
     23   USE p4zche          !  
     24   USE p4zsink         !  
     25   USE p4zopt          !  
     26   USE p4zprod         ! 
     27   USE p4zrem          !  
     28   USE p4zsed          !  
     29   USE p4zflx          !  
    2430 
    2531   IMPLICIT NONE 
     
    2834   PUBLIC   trc_ini_pisces   ! called by trcini.F90 module 
    2935 
    30    !! * Module variables 
    31    REAL(wp) :: & 
    32       sco2   =  2.312e-3         , & 
    33       alka0  =  2.423e-3         , & 
    34       oxyg0  =  177.6e-6         , & 
    35       po4    =  2.174e-6         , & 
    36       bioma0 =  1.000e-8         , & 
    37       silic1 =  91.65e-6         , & 
    38       no3    =  31.04e-6 * 7.6 
     36   REAL(wp) :: sco2   =  2.312e-3_wp 
     37   REAL(wp) :: alka0  =  2.423e-3_wp 
     38   REAL(wp) :: oxyg0  =  177.6e-6_wp  
     39   REAL(wp) :: po4    =  2.174e-6_wp  
     40   REAL(wp) :: bioma0 =  1.000e-8_wp   
     41   REAL(wp) :: silic1 =  91.65e-6_wp   
     42   REAL(wp) :: no3    =  31.04e-6_wp * 7.6_wp 
    3943 
    4044#  include "top_substitute.h90" 
     
    4246   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
    4347   !! $Id$  
    44    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     48   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    4549   !!---------------------------------------------------------------------- 
    46  
    4750CONTAINS 
    4851 
     
    5356      !! ** Purpose :   Initialisation of the PISCES biochemical model 
    5457      !!---------------------------------------------------------------------- 
    55  
    56  
    57       !  Control consitency 
    58       CALL trc_ctl_pisces 
    59  
    60  
     58      ! 
    6159      IF(lwp) WRITE(numout,*) 
    6260      IF(lwp) WRITE(numout,*) ' trc_ini_pisces :   PISCES biochemical model initialisation' 
    6361      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
     62 
     63      CALL pisces_alloc()                          ! Allocate PISCES arrays 
    6464 
    6565      !                                            ! Time-step 
     
    126126      IF(lwp) WRITE(numout,*) 'Initialization of PISCES tracers done' 
    127127      IF(lwp) WRITE(numout,*) ' ' 
    128  
    129128      ! 
    130129   END SUBROUTINE trc_ini_pisces 
    131   
    132    SUBROUTINE trc_ctl_pisces 
     130 
     131 
     132   SUBROUTINE pisces_alloc 
    133133      !!---------------------------------------------------------------------- 
    134       !!                     ***  ROUTINE trc_ctl_pisces  *** 
     134      !!                     ***  ROUTINE pisces_alloc  *** 
    135135      !! 
    136       !! ** Purpose :   control the cpp options, namelist and files  
     136      !! ** Purpose :   Allocate all the dynamic arrays of PISCES  
    137137      !!---------------------------------------------------------------------- 
     138      USE p4zint , ONLY : p4z_int_alloc       
     139      USE p4zsink, ONLY : p4z_sink_alloc       
     140      USE p4zopt , ONLY : p4z_opt_alloc            
     141      USE p4zprod, ONLY : p4z_prod_alloc          
     142      USE p4zrem , ONLY : p4z_rem_alloc            
     143      USE p4zsed , ONLY : p4z_sed_alloc           
     144      USE p4zflx , ONLY : p4z_flx_alloc 
     145      ! 
     146      INTEGER :: ierr 
     147      !!---------------------------------------------------------------------- 
     148      ! 
     149      ierr =         sms_pisces_alloc()          ! Start of PISCES-related alloc routines... 
     150      ierr = ierr +     p4z_che_alloc() 
     151      ierr = ierr +     p4z_int_alloc() 
     152      ierr = ierr +    p4z_sink_alloc() 
     153      ierr = ierr +     p4z_opt_alloc() 
     154      ierr = ierr +    p4z_prod_alloc() 
     155      ierr = ierr +     p4z_rem_alloc() 
     156      ierr = ierr +     p4z_sed_alloc() 
     157      ierr = ierr +     p4z_flx_alloc() 
     158      ! 
     159      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
     160      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'pisces_alloc: unable to allocate PISCES arrays' ) 
     161      ! 
     162   END SUBROUTINE pisces_alloc 
    138163 
    139       IF(lwp) WRITE(numout,*) 
    140       IF(lwp) WRITE(numout,*) ' use PISCES biological model ' 
    141  
    142    ! Check number of tracers 
    143    ! ----------------------- 
    144 #if  defined key_kriest 
    145       IF( jp_pisces /= 23) CALL ctl_stop( ' PISCES must have 23 passive tracers. Change jp_pisces in par_pisces.F90' ) 
    146 #else 
    147       IF( jp_pisces /= 24) CALL ctl_stop( ' PISCES must have 24 passive tracers. Change jp_pisces in par_pisces.F90' ) 
    148 #endif 
    149  
    150    END SUBROUTINE trc_ctl_pisces 
    151    
    152164#else 
    153165   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.