Changeset 4996 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
- Timestamp:
- 2014-12-22T12:56:38+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r4800 r4996 33 33 34 34 !! * Module variables 35 REAL(wp) :: ryyss !: number of seconds per year36 REAL(wp) :: r1_ryyss !: inverse of ryyss37 35 REAL(wp) :: r1_rday !: inverse of rday 38 36 … … 83 81 ! 84 82 IF( kt == nittrc000 .AND. jnt == 1 ) THEN 85 ryyss = nyear_len(1) * rday ! number of seconds per year and per month86 83 r1_rday = 1. / rday 87 r1_ryyss = 1. / ryyss88 84 IF( ln_check_mass .AND. lwp) & 89 85 & CALL ctl_opn( numnit, 'nitrogen.budget', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea ) … … 119 115 ! 120 116 trn(:,:,1,jpfer) = trn(:,:,1,jpfer) + zironice(:,:) 121 ! 122 IF( l n_diatrc .AND. lk_iomput .AND. jnt == nrdttrc) &117 ! 118 IF( lk_iomput .AND. jnt == nrdttrc .AND. iom_use( "Ironice" ) ) & 123 119 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 120 ! 124 121 CALL wrk_dealloc( jpi, jpj, zironice ) 125 122 ! … … 150 147 trn(:,:,1,jpsil) = trn(:,:,1,jpsil) + zsidep (:,:) 151 148 trn(:,:,:,jpfer) = trn(:,:,:,jpfer) + zirondep(:,:,:) 152 ! 153 IF( ln_diatrc ) THEN 154 zfact = 1.e+3 * rfact2r 155 IF( lk_iomput ) THEN 156 IF( jnt == nrdttrc ) THEN 157 CALL iom_put( "Irondep", zirondep(:,:,1) * zfact * fse3t(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 158 CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 159 ENDIF 160 ELSE 161 trc2d(:,:,jp_pcs0_2d + 11) = zirondep(:,:,1) * zfact * fse3t(:,:,1) * tmask(:,:,1) 149 ! 150 IF( lk_iomput ) THEN 151 IF( jnt == nrdttrc ) THEN 152 IF( iom_use( "Irondep" ) ) & 153 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 154 IF( iom_use( "pdust" ) ) & 155 & CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 162 156 ENDIF 157 ELSE 158 IF( ln_diatrc ) & 159 & trc2d(:,:,jp_pcs0_2d + 11) = zirondep(:,:,1) * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) 163 160 ENDIF 164 161 CALL wrk_dealloc( jpi, jpj, zpdep, zsidep ) … … 190 187 trn(:,:,:,jpfer) = trn(:,:,:,jpfer) + ironsed(:,:,:) * rfact2 191 188 ! 192 IF( l n_diatrc .AND. lk_iomput .AND. jnt == nrdttrc) &189 IF( lk_iomput .AND. jnt == nrdttrc .AND. iom_use( "Ironsed" ) ) & 193 190 & CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments 194 191 ENDIF … … 199 196 trn(:,:,:,jpfer) = trn(:,:,:,jpfer) + hydrofe(:,:,:) * rfact2 200 197 ! 201 IF( l n_diatrc .AND. lk_iomput .AND. jnt == nrdttrc) &198 IF( lk_iomput .AND. jnt == nrdttrc .AND. iom_use( "HYDR" ) ) & 202 199 & CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 203 200 ENDIF 204 205 201 206 202 ! OA: Warning, the following part is necessary, especially with Kriest … … 385 381 END DO 386 382 387 388 IF( ln_check_mass ) THEN 389 ! Global budget of N SMS : denitrification in the water column and in the sediment 390 ! nitrogen fixation by the diazotrophs 391 ! -------------------------------------------------------------------------------- 392 zrdenittot = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 393 zsdenittot = glob_sum ( zwork4(:,:) * e1e2t(:,:) ) 394 znitrpottot = glob_sum ( znitrpot(:,:,:) * nitrfix * cvol(:,:,:) ) 395 IF( kt == nitend .AND. jnt == nrdttrc ) THEN 396 zfact = 1.e+3 * rfact2r * rno3 * ryyss * 14. / 1e12 397 IF(lwp) WRITE(numnit,9100) ndastp, znitrpottot * nitrfix * zfact, zrdenittot * zfact , zsdenittot * zfact 383 ! Global budget of N SMS : denitrification in the water column and in the sediment 384 ! nitrogen fixation by the diazotrophs 385 ! -------------------------------------------------------------------------------- 386 zrdenittot = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 387 zsdenittot = glob_sum ( zwork4(:,:) * e1e2t(:,:) ) 388 znitrpottot = glob_sum ( znitrpot(:,:,:) * nitrfix * cvol(:,:,:) ) 389 zfact = 1.e+3 * rfact2r * rno3 * 14. / 1.e12 * ryyss ! conversion molC/l/kt ----> TgN/m3/year 390 ! 391 IF( ln_check_mass .AND. ( kt == nitend .AND. jnt == nrdttrc ) .AND. ( lwp ) ) & 392 & WRITE(numnit,9100) ndastp, znitrpottot * zfact , & 393 & zrdenittot * zfact , & 394 & zsdenittot * zfact 395 ! 396 IF( lk_iomput ) THEN 397 IF( jnt == nrdttrc ) THEN 398 zfact = 1.e+3 * rfact2r * rno3 ! conversion from molC/l/kt to molN/m3/s 399 IF( iom_use("Nfix" ) ) CALL iom_put( "Nfix" , znitrpot(:,:,:) * nitrfix * zfact * tmask(:,:,:) ) ! nitrogen fixation 400 IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", zwork4(:,:) * zfact * tmask(:,:,1) ) ! Nitrate reduction in the sediments 401 IF( iom_use("tnfix" ) ) CALL iom_put( "tnfix" , znitrpottot * zfact ) ! Global nitrogen fixation 402 IF( iom_use("tdenit" ) ) CALL iom_put( "tdenit" , zrdenittot * zfact ) ! Total denitrification 403 IF( iom_use("INTNFIX") ) THEN ! nitrogen fixation rate in ocean ( vertically integrated ) 404 zwork1(:,:) = 0. 405 DO jk = 1, jpkm1 406 zwork1(:,:) = zwork1(:,:) + znitrpot(:,:,jk) * nitrfix * zfact * fse3t(:,:,jk) * tmask(:,:,jk) 407 ENDDO 408 CALL iom_put( "INTNFIX" , zwork1 ) 409 ENDIF 398 410 ENDIF 399 ENDIF 400 ! 401 IF( ln_diatrc ) THEN 402 zfact = 1.e+3 * rfact2r 403 IF( lk_iomput ) THEN 404 IF( jnt == nrdttrc ) THEN 405 CALL iom_put( "Nfix" , znitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) ) ! nitrogen fixation 406 CALL iom_put( "Sdenit", zwork4(:,:) * rno3 * zfact * tmask(:,:,1) ) ! Nitrate reduction in the sediments 407 ENDIF 408 ELSE 409 trc2d(:,:,jp_pcs0_2d + 12) = znitrpot(:,:,1) * nitrfix * zfact * fse3t(:,:,1) * tmask(:,:,1) 410 ENDIF 411 ELSE 412 IF( ln_diatrc ) & 413 & trc2d(:,:,jp_pcs0_2d + 12) = znitrpot(:,:,1) * nitrfix * rno3 * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) 411 414 ENDIF 412 415 !
Note: See TracChangeset
for help on using the changeset viewer.