Changeset 2628 for branches/dev_r2586_dynamic_mem
- Timestamp:
- 2011-02-27T19:38:47+01:00 (13 years ago)
- 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 477 477 #endif 478 478 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... 510 480 #if defined key_trdmld || defined key_esopa 511 481 USE trdmld, ONLY: trd_mld_alloc … … 539 509 ierr = ierr + obc_oce_alloc() 540 510 #endif 541 542 ! Start of TOP-related alloc routines...543 #if defined key_top544 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 #endif550 #if defined key_top && ! defined key_iomput551 ierr = ierr + trc_dia_alloc()552 #endif553 #if defined key_top && defined key_trcdmp554 ierr = ierr + trc_dmp_alloc()555 #endif556 #if defined key_top && defined key_dtatrc557 ierr = ierr + trc_dta_alloc()558 #endif559 #if defined key_top && ( defined key_trdmld_trc || defined key_esopa )560 ierr = ierr + trd_mld_trc_alloc()561 #endif562 ! ...end of TOP-related alloc routines563 564 ! Start of LOBSTER-related alloc routines565 #if defined key_lobster566 ierr = ierr + sms_lobster_alloc()567 #endif568 ! ...end of LOBSTER-related alloc routines569 511 570 512 #if defined key_trdmld || defined key_esopa -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r2610 r2628 4 4 !! TOP : Manage the passive tracer initialization 5 5 !!====================================================================== 6 !! History : - ! 1991-03 () original code7 !! 1.0 !2005-03 (O. Aumont, A. El Moussaoui) F908 !! - ! 2005-10 (C. Ethe) print control9 !! 2.0 ! 2005-10 (C. Ethe, G. Madec) revised architecture6 !! 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 10 10 !!---------------------------------------------------------------------- 11 11 #if defined key_top … … 13 13 !! 'key_top' TOP models 14 14 !!---------------------------------------------------------------------- 15 !! ----------------------------------------------------------------------16 !! t rc_init : Initialization for passive tracer15 !! trc_init : Initialization for passive tracer 16 !! top_alloc : allocate the TOP arrays 17 17 !!---------------------------------------------------------------------- 18 18 USE oce_trc … … 40 40 !! * Substitutions 41 41 # 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 !!---------------------------------------------------------------------- 43 47 CONTAINS 44 48 … … 57 61 INTEGER :: jk, jn ! dummy loop indices 58 62 CHARACTER (len=25) :: charout 59 60 63 !!--------------------------------------------------------------------- 61 64 … … 64 67 IF(lwp) WRITE(numout,*) '~~~~~~~' 65 68 66 ! ! masked grid volume 69 CALL top_alloc() ! allocate TOP arrays 70 71 72 ! ! masked grid volume 67 73 DO jk = 1, jpk 68 74 cvol(:,:,jk) = e1t(:,:) * e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) 69 75 END DO 70 76 71 ! total volume of the ocean77 ! ! total volume of the ocean 72 78 #if ! defined key_degrad 73 79 areatot = glob_sum( cvol(:,:,:) ) … … 76 82 #endif 77 83 78 CALL trc_nam! read passive tracers namelists79 80 ! restart for passive tracer (input)84 CALL trc_nam ! read passive tracers namelists 85 86 ! ! restart for passive tracer (input) 81 87 IF( ln_rsttr ) THEN 82 88 IF(lwp) WRITE(numout,*) ' read a restart file for passive tracer : ', cn_trcrst_in … … 136 142 ENDIF 137 143 138 tra(:,:,:,:) = 0. 144 tra(:,:,:,:) = 0._wp 139 145 140 146 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 level142 143 144 ! ! Computation content of all tracers145 trai = 0. e0147 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 146 152 DO jn = 1, jptra 147 153 #if ! defined key_degrad … … 152 158 END DO 153 159 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 166 171 WRITE(charout, FMT="('ini ')") 167 172 CALL prt_ctl_trc_info( charout ) 168 173 CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 169 174 ENDIF 170 175 ! 171 176 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 172 239 173 240 #else … … 180 247 #endif 181 248 182 !!----------------------------------------------------------------------183 !! NEMO/TOP 3.3 , NEMO Consortium (2010)184 !! $Id$185 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)186 249 !!====================================================================== 187 250 END MODULE trcini
Note: See TracChangeset
for help on using the changeset viewer.