Changeset 3174
- Timestamp:
- 2011-11-23T21:48:06+01:00 (12 years ago)
- Location:
- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r3160 r3174 40 40 PUBLIC trc_sms_pisces ! called in trcsms.F90 41 41 42 LOGICAL :: ln_check_mass = .false. !: Flag to check mass conservation 43 44 INTEGER :: numno3 !: logical unit for NO3 budget 45 INTEGER :: numalk !: logical unit for talk budget 46 INTEGER :: numsil !: logical unit for Si budget 47 42 48 !!---------------------------------------------------------------------- 43 49 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 70 76 IF( kt == nittrc000 ) CALL trc_sms_pisces_init ! Initialization (first time-step only) 71 77 IF( ln_rsttr .AND. ln_pisdmp .AND. MOD( kt - 1, nn_pisdmp ) == 0 ) CALL trc_sms_pisces_dmp( kt ) ! Relaxation of some tracers 78 CALL trc_sms_pisces_mass_conserv( kt ) 72 79 73 80 IF( ndayflxtr /= nday_year ) THEN ! New days … … 101 108 CALL lbc_lnk( tra(:,:,:,jn), 'T', 1. ) 102 109 END DO 103 104 110 105 111 IF( l_trdtrc ) THEN … … 219 225 END SUBROUTINE trc_sms_pisces_init 220 226 227 SUBROUTINE trc_sms_pisces_mass_conserv ( kt ) 228 !!---------------------------------------------------------------------- 229 !! *** ROUTINE trc_sms_pisces_mass_conserv *** 230 !! 231 !! ** Purpose : Mass conservation check 232 !! 233 !!--------------------------------------------------------------------- 234 ! 235 INTEGER, INTENT( in ) :: kt ! ocean time-step index 236 !! 237 REAL(wp) :: zalkbudget, zno3budget, zsilbudget 238 ! 239 NAMELIST/nampismass/ ln_check_mass 240 !!--------------------------------------------------------------------- 241 242 IF( kt == nittrc000 ) THEN 243 REWIND( numnatp ) 244 READ ( numnatp, nampismass ) 245 IF(lwp) THEN ! control print 246 WRITE(numout,*) ' ' 247 WRITE(numout,*) ' Namelist parameter for mass conservation checking' 248 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 249 WRITE(numout,*) ' Flag to check mass conservation of NO3/Si/TALK ln_check_mass = ', ln_check_mass 250 ENDIF 251 252 IF( ln_check_mass .AND. lwp) THEN ! Open budget file of NO3, ALK, Si 253 CALL ctl_opn( numno3, 'no3.budget' , 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 254 CALL ctl_opn( numsil, 'sil.budget' , 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 255 CALL ctl_opn( numalk, 'talk.budget', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) 256 ENDIF 257 ENDIF 258 259 IF( ln_check_mass ) THEN ! Compute the budget of NO3, ALK, Si 260 zno3budget = glob_sum( ( trn(:,:,:,jpno3) + trn(:,:,:,jpnh4) & 261 & + trn(:,:,:,jpphy) + trn(:,:,:,jpdia) & 262 & + trn(:,:,:,jpzoo) + trn(:,:,:,jpmes) & 263 & + trn(:,:,:,jppoc) + trn(:,:,:,jpgoc) & 264 & + trn(:,:,:,jpdoc) ) * cvol(:,:,:) ) 265 ! 266 zsilbudget = glob_sum( ( trn(:,:,:,jpsil) + trn(:,:,:,jpdsi) & 267 & + trn(:,:,:,jpbsi) ) * cvol(:,:,:) ) 268 ! 269 zalkbudget = glob_sum( ( trn(:,:,:,jpno3) * rno3 & 270 & + trn(:,:,:,jptal) & 271 & + trn(:,:,:,jpcal) * 2. ) * cvol(:,:,:) ) 272 273 IF( lwp ) THEN 274 WRITE(numno3,9500) kt, zno3budget / areatot 275 WRITE(numsil,9500) kt, zsilbudget / areatot 276 WRITE(numalk,9500) kt, zalkbudget / areatot 277 ENDIF 278 ENDIF 279 9500 FORMAT(i4,e18.10) 280 ! 281 END SUBROUTINE trc_sms_pisces_mass_conserv 282 221 283 #else 222 284 !!====================================================================== -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r3169 r3174 58 58 !!--------------------------------------------------------------------- 59 59 INTEGER :: jk, jn, jl ! dummy loop indices 60 INTEGER :: ierr ! local integer61 60 CHARACTER (len=25) :: charout 62 61 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrcdta ! 4D workspace -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r3166 r3174 98 98 END DO 99 99 IF( lwp ) WRITE(numstr,9300) kt, ztrai / areatot 100 9300 FORMAT( ' iter :',i4,' global content :',e18.10)100 9300 FORMAT(i4,e18.10) 101 101 ! 102 102 IF( nn_timing == 1 ) CALL timing_stop('trc_stp')
Note: See TracChangeset
for help on using the changeset viewer.