Changeset 10321 for NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z
- Timestamp:
- 2018-11-16T15:59:30+01:00 (5 years ago)
- Location:
- NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z
- Files:
-
- 2 deleted
- 23 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zagg.F90
- Property svn:keywords set to Id
r9950 r10321 25 25 26 26 !!---------------------------------------------------------------------- 27 !! NEMO/TOP 3.3, NEMO Consortium (2018)27 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 28 28 !! $Id$ 29 !! Software governed by the CeCILL licen ce (./LICENSE)29 !! Software governed by the CeCILL license (see ./LICENSE) 30 30 !!---------------------------------------------------------------------- 31 31 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zbio.F90
- Property svn:keywords set to Id
r9950 r10321 15 15 USE p4zsink ! vertical flux of particulate matter due to sinking 16 16 USE p4zopt ! optical model 17 USE p4z ice! Co-limitations of differents nutrients17 USE p4zlim ! Co-limitations of differents nutrients 18 18 USE p4zprod ! Growth rate of the 2 phyto groups 19 19 USE p4zmort ! Mortality terms for phytoplankton 20 20 USE p4zmicro ! Sources and sinks of microzooplankton 21 21 USE p4zmeso ! Sources and sinks of mesozooplankton 22 USE p5z ice! Co-limitations of differents nutrients22 USE p5zlim ! Co-limitations of differents nutrients 23 23 USE p5zprod ! Growth rate of the 2 phyto groups 24 24 USE p5zmort ! Mortality terms for phytoplankton … … 39 39 40 40 !!---------------------------------------------------------------------- 41 !! NEMO/TOP 3.3, NEMO Consortium (2018)41 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 42 42 !! $Id$ 43 !! Software governed by the CeCILL licen ce (./LICENSE)43 !! Software governed by the CeCILL license (see ./LICENSE) 44 44 !!---------------------------------------------------------------------- 45 45 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zche.F90
r9950 r10321 37 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tempis ! In situ temperature 38 38 39 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akb3 !: ???40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akw3 !: ???41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akf3 !: ???42 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aks3 !: ???43 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak1p3 !: ???44 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak2p3 !: ???45 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak3p3 !: ???46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aksi3 !: ???47 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: borat !: ???48 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fluorid !: ???49 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sulfat !: ???39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akb3 !: ??? 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akw3 !: ??? 41 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: akf3 !: ??? 42 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aks3 !: ??? 43 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak1p3 !: ??? 44 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak2p3 !: ??? 45 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ak3p3 !: ??? 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aksi3 !: ??? 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: borat !: ??? 48 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fluorid !: ??? 49 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sulfat !: ??? 50 50 51 51 !!* Variable for chemistry of the CO2 cycle … … 131 131 132 132 !!---------------------------------------------------------------------- 133 !! NEMO/TOP 3.3, NEMO Consortium (2018)133 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 134 134 !! $Id$ 135 !! Software governed by the CeCILL licen ce (./LICENSE)135 !! Software governed by the CeCILL license (see ./LICENSE) 136 136 !!---------------------------------------------------------------------- 137 137 CONTAINS … … 233 233 END DO 234 234 235 236 237 235 ! CHEMICAL CONSTANTS - DEEP OCEAN 238 236 ! ------------------------------- … … 449 447 ! 450 448 END SUBROUTINE p4z_che 451 452 449 453 450 SUBROUTINE ahini_for_at(p_hini) -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zfechem.F90
- Property svn:keywords set to Id
r9950 r10321 36 36 37 37 !!---------------------------------------------------------------------- 38 !! NEMO/TOP 3.3, NEMO Consortium (2018)38 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 39 39 !! $Id$ 40 !! Software governed by the CeCILL licen ce (./LICENSE)40 !! Software governed by the CeCILL license (see ./LICENSE) 41 41 !!---------------------------------------------------------------------- 42 42 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zflx.F90
r9950 r10321 53 53 54 54 !!---------------------------------------------------------------------- 55 !! NEMO/TOP 3.3, NEMO Consortium (2018)55 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 56 56 !! $Id$ 57 !! Software governed by the CeCILL licen ce (./LICENSE)57 !! Software governed by the CeCILL license (see ./LICENSE) 58 58 !!---------------------------------------------------------------------- 59 59 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zint.F90
r9950 r10321 20 20 21 21 !!---------------------------------------------------------------------- 22 !! NEMO/TOP 3.3, NEMO Consortium (2018)22 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 23 23 !! $Id$ 24 !! Software governed by the CeCILL licen ce (./LICENSE)24 !! Software governed by the CeCILL license (see ./LICENSE) 25 25 !!---------------------------------------------------------------------- 26 26 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zligand.F90
- Property svn:keywords set to Id
r9950 r10321 27 27 28 28 !!---------------------------------------------------------------------- 29 !! NEMO/TOP 3.3, NEMO Consortium (2018)29 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 30 30 !! $Id$ 31 !! Software governed by the CeCILL licen ce (./LICENSE)31 !! Software governed by the CeCILL license (see ./LICENSE) 32 32 !!---------------------------------------------------------------------- 33 33 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zlim.F90
r10320 r10321 69 69 !!---------------------------------------------------------------------- 70 70 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 71 !! $Id : p4zlim.F90 10069 2018-08-28 14:12:24Z nicolasmartin $71 !! $Id$ 72 72 !! Software governed by the CeCILL license (see ./LICENSE) 73 73 !!---------------------------------------------------------------------- -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zlys.F90
- Property svn:keywords set to Id
r9950 r10321 36 36 37 37 !!---------------------------------------------------------------------- 38 !! NEMO/TOP 3.3, NEMO Consortium (2018)38 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 39 39 !! $Id$ 40 !! Software governed by the CeCILL licen ce (./LICENSE)40 !! Software governed by the CeCILL license (see ./LICENSE) 41 41 !!---------------------------------------------------------------------- 42 42 -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zmeso.F90
- Property svn:keywords set to Id
r9950 r10321 44 44 45 45 !!---------------------------------------------------------------------- 46 !! NEMO/TOP 3.3, NEMO Consortium (2018)46 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 47 47 !! $Id$ 48 !! Software governed by the CeCILL licen ce (./LICENSE)48 !! Software governed by the CeCILL license (see ./LICENSE) 49 49 !!---------------------------------------------------------------------- 50 50 CONTAINS … … 108 108 zdenom = zfoodlim / ( xkgraz2 + zfoodlim ) 109 109 zdenom2 = zdenom / ( zfood + rtrn ) 110 zgraze2 = grazrat2 * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpmes) 110 zgraze2 = grazrat2 * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpmes) * (1. - nitrfac(ji,jj,jk)) 111 111 112 112 zgrazd = zgraze2 * xprefc * zcompadi * zdenom2 -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zmicro.F90
- Property svn:keywords set to Id
r9950 r10321 14 14 USE trc ! passive tracers common variables 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 USE p4z ice! Co-limitations16 USE p4zlim ! Co-limitations 17 17 USE p4zprod ! production 18 18 USE iom ! I/O manager … … 42 42 43 43 !!---------------------------------------------------------------------- 44 !! NEMO/TOP 3.3, NEMO Consortium (2018)44 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 45 45 !! $Id$ 46 !! Software governed by the CeCILL licen ce (./LICENSE)46 !! Software governed by the CeCILL license (see ./LICENSE) 47 47 !!---------------------------------------------------------------------- 48 48 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zmort.F90
r9950 r10321 14 14 USE sms_pisces ! PISCES Source Minus Sink variables 15 15 USE p4zprod ! Primary productivity 16 USE p4z ice! Phytoplankton limitation terms16 USE p4zlim ! Phytoplankton limitation terms 17 17 USE prtctl_trc ! print control for debugging 18 18 … … 30 30 31 31 !!---------------------------------------------------------------------- 32 !! NEMO/TOP 3.3, NEMO Consortium (2018)32 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 33 33 !! $Id$ 34 !! Software governed by the CeCILL licen ce (./LICENSE)34 !! Software governed by the CeCILL license (see ./LICENSE) 35 35 !!---------------------------------------------------------------------- 36 36 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zopt.F90
- Property svn:keywords set to Id
r9950 r10321 43 43 44 44 !!---------------------------------------------------------------------- 45 !! NEMO/TOP 3.3, NEMO Consortium (2018)45 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 46 46 !! $Id$ 47 !! Software governed by the CeCILL licen ce (./LICENSE)47 !! Software governed by the CeCILL license (see ./LICENSE) 48 48 !!---------------------------------------------------------------------- 49 49 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zpoc.F90
- Property svn:keywords set to Id
r9950 r10321 38 38 39 39 !!---------------------------------------------------------------------- 40 !! NEMO/TOP 3.3, NEMO Consortium (2018)40 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 41 41 !! $Id$ 42 !! Software governed by the CeCILL licen ce (./LICENSE)42 !! Software governed by the CeCILL license (see ./LICENSE) 43 43 !!---------------------------------------------------------------------- 44 44 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zprod.F90
- Property svn:keywords set to Id
r9950 r10321 15 15 USE trc ! passive tracers common variables 16 16 USE sms_pisces ! PISCES Source Minus Sink variables 17 USE p4z ice! Co-limitations of differents nutrients17 USE p4zlim ! Co-limitations of differents nutrients 18 18 USE prtctl_trc ! print control for debugging 19 19 USE iom ! I/O manager … … 49 49 50 50 !!---------------------------------------------------------------------- 51 !! NEMO/TOP 3.3, NEMO Consortium (2018)51 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 52 52 !! $Id$ 53 !! Software governed by the CeCILL licen ce (./LICENSE)53 !! Software governed by the CeCILL license (see ./LICENSE) 54 54 !!---------------------------------------------------------------------- 55 55 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zrem.F90
- Property svn:keywords set to Id
r9950 r10321 17 17 USE p4zche ! chemical model 18 18 USE p4zprod ! Growth rate of the 2 phyto groups 19 USE p4z ice19 USE p4zlim 20 20 USE prtctl_trc ! print control for debugging 21 21 USE iom ! I/O manager … … 43 43 44 44 !!---------------------------------------------------------------------- 45 !! NEMO/TOP 3.3, NEMO Consortium (2018)45 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 46 46 !! $Id$ 47 !! Software governed by the CeCILL licen ce (./LICENSE)47 !! Software governed by the CeCILL license (see ./LICENSE) 48 48 !!---------------------------------------------------------------------- 49 49 CONTAINS … … 116 116 zammonic = zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 117 117 denitr(ji,jj,jk) = zammonic * ( 1. - nitrfac2(ji,jj,jk) ) 118 zoxyrem = zammonic * nitrfac2(ji,jj,jk) 118 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, denitr(ji,jj,jk) ) 119 zoxyrem = zammonic - denitr(ji,jj,jk) 119 120 ! 120 121 zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) ) … … 189 190 & / ( 1.+ emoy(ji,jj,jk) ) * ( 1. + fr_i(ji,jj) * emoy(ji,jj,jk) ) 190 191 zdenitnh4 = nitrif * xstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 192 zdenitnh4 = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenita, zdenitnh4 ) 191 193 ! Update of the tracers trends 192 194 ! ---------------------------- -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zsbc.F90
r9950 r10321 37 37 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 38 38 REAL(wp) :: hratio !: Fe:3He ratio assumed for vent iron supply 39 REAL(wp) :: distcoast !: Distance off the coast for Iron from sediments 39 40 REAL(wp), PUBLIC :: fep_rats !: Fep/Fer ratio from sed sources 40 41 REAL(wp), PUBLIC :: fep_rath !: Fep/Fer ratio from hydro sources … … 74 75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hydrofe !: Hydrothermal vent supply of iron 75 76 76 REAL(wp), PUBLIC :: rivalkinput, rivdicinput, nitdepinput, sumdepsi 77 REAL(wp), PUBLIC :: rivdininput, rivdipinput, rivdsiinput 77 REAL(wp), PUBLIC :: sedsilfrac, sedcalfrac 78 REAL(wp), PUBLIC :: rivalkinput, rivdicinput 79 REAL(wp), PUBLIC :: rivdininput, rivdipinput, rivdsiinput 78 80 79 81 !! * Substitutions 80 82 # include "vectopt_loop_substitute.h90" 81 83 !!---------------------------------------------------------------------- 82 !! NEMO/TOP 3.3, NEMO Consortium (2018)84 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 83 85 !! $Id$ 84 !! Software governed by the CeCILL licen ce (./LICENSE)86 !! Software governed by the CeCILL license (see ./LICENSE) 85 87 !!---------------------------------------------------------------------- 86 88 CONTAINS … … 109 111 IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_dust > 1 ) ) THEN 110 112 CALL fld_read( kt, 1, sf_dust ) 111 IF( nn_ice_tr == -1 .AND. .NOT.ln_ironice ) THEN ; dust(:,:) = sf_dust(1)%fnow(:,:,1)112 ELSE ; dust(:,:) = sf_dust(1)%fnow(:,:,1) * ( 1.-fr_i(:,:) )113 IF( nn_ice_tr == -1 .AND. .NOT.ln_ironice ) THEN ; dust(:,:) = MAX( rtrn, sf_dust(1)%fnow(:,:,1) ) 114 ELSE ; dust(:,:) = MAX( rtrn, sf_dust(1)%fnow(:,:,1) * ( 1.-fr_i(:,:) ) ) 113 115 ENDIF 114 116 ENDIF … … 173 175 zcoef = rno3 * 14E6 * ryyss 174 176 CALL fld_read( kt, 1, sf_ndepo ) 175 nitdep(:,:) = sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1)177 nitdep(:,:) = MAX( rtrn, sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1) ) 176 178 ENDIF 177 179 IF( .NOT.ln_linssh ) THEN 178 180 zcoef = rno3 * 14E6 * ryyss 179 nitdep(:,:) = sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1)181 nitdep(:,:) = MAX( rtrn, sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1) ) 180 182 ENDIF 181 183 ENDIF … … 205 207 INTEGER :: ik50 ! last level where depth less than 50 m 206 208 INTEGER :: isrow ! index for ORCA1 starting row 207 REAL(wp) :: zexpide, zdenitide, zmaskt 209 REAL(wp) :: zexpide, zdenitide, zmaskt, zsurfc, zsurfp,ze3t, ze3t2, zcslp 208 210 REAL(wp) :: ztimes_dust, ztimes_riv, ztimes_ndep 209 211 REAL(wp), DIMENSION(nbtimes) :: zsteps ! times records 210 212 REAL(wp), DIMENSION(:), ALLOCATABLE :: rivinput 211 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: z dust, zndepo, zriver, zcmask213 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zriver, zcmask 212 214 ! 213 215 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files … … 220 222 & sn_riverdip, sn_riverdop, sn_riverdsi, sn_ndepo, sn_ironsed, sn_hydrofe, & 221 223 & ln_dust, ln_solub, ln_river, ln_ndepo, ln_ironsed, ln_ironice, ln_hydrofe, & 222 & sedfeinput, d ustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, &224 & sedfeinput, distcoast, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, & 223 225 & hratio, fep_rats, fep_rath, lgw_rath 224 226 !!---------------------------------------------------------------------- … … 248 250 WRITE(numout,*) ' fe input from hydrothermal vents ln_hydrofe = ', ln_hydrofe 249 251 WRITE(numout,*) ' coastal release of iron sedfeinput = ', sedfeinput 252 WRITE(numout,*) ' distance off the coast distcoast = ', distcoast 250 253 WRITE(numout,*) ' solubility of the dust dustsolub = ', dustsolub 251 254 WRITE(numout,*) ' Mineral Fe content of the dust mfrac = ', mfrac … … 307 310 CALL iom_open ( TRIM( sn_dust%clname ) , numdust ) 308 311 CALL iom_gettime( numdust, zsteps, kntime=ntimes_dust) ! get number of record in file 309 ALLOCATE( zdust(jpi,jpj,ntimes_dust) ) 310 DO jm = 1, ntimes_dust 311 CALL iom_get( numdust, jpdom_data, TRIM( sn_dust%clvar ), zdust(:,:,jm), jm ) 312 END DO 313 CALL iom_close( numdust ) 314 ztimes_dust = 1._wp / REAL(ntimes_dust, wp) 315 sumdepsi = 0.e0 316 DO jm = 1, ntimes_dust 317 sumdepsi = sumdepsi + glob_sum( zdust(:,:,jm) * e1e2t(:,:) * tmask(:,:,1) * ztimes_dust ) 318 END DO 319 sumdepsi = sumdepsi / ( nyear_len(1) * rday ) * 12. * 8.8 * 0.075 * mfrac / 28.1 320 DEALLOCATE( zdust) 321 ENDIF 322 ELSE 323 sumdepsi = 0._wp 312 END IF 324 313 END IF 325 314 … … 419 408 CALL iom_open ( TRIM( sn_ndepo%clname ), numdepo ) 420 409 CALL iom_gettime( numdepo, zsteps, kntime=ntimes_ndep) 421 ALLOCATE( zndepo(jpi,jpj,ntimes_ndep) ) 422 DO jm = 1, ntimes_ndep 423 CALL iom_get( numdepo, jpdom_data, TRIM( sn_ndepo%clvar ), zndepo(:,:,jm), jm ) 424 END DO 425 CALL iom_close( numdepo ) 426 ztimes_ndep = 1._wp / REAL(ntimes_ndep, wp) 427 nitdepinput = 0._wp 428 DO jm = 1, ntimes_ndep 429 nitdepinput = nitdepinput + glob_sum( zndepo(:,:,jm) * e1e2t(:,:) * tmask(:,:,1) * ztimes_ndep ) 430 ENDDO 431 nitdepinput = nitdepinput / rno3 / 14E6 432 DEALLOCATE( zndepo) 433 ENDIF 434 ELSE 435 nitdepinput = 0._wp 410 ENDIF 436 411 ENDIF 437 412 … … 459 434 DO jj = 2, jpjm1 460 435 DO ji = fs_2, fs_jpim1 461 IF( tmask(ji,jj,jk) /= 0. ) THEN 462 zmaskt = tmask(ji+1,jj,jk) * tmask(ji-1,jj,jk) * tmask(ji,jj+1,jk) & 463 & * tmask(ji,jj-1,jk) * tmask(ji,jj,jk+1) 464 IF( zmaskt == 0. ) zcmask(ji,jj,jk ) = MAX( 0.1, zcmask(ji,jj,jk) ) 465 END IF 436 ze3t = e3t_0(ji,jj,jk) 437 zsurfc = e1u(ji,jj) * ( 1. - umask(ji ,jj ,jk) ) & 438 + e1u(ji,jj) * ( 1. - umask(ji-1,jj ,jk) ) & 439 + e2v(ji,jj) * ( 1. - vmask(ji ,jj ,jk) ) & 440 + e2v(ji,jj) * ( 1. - vmask(ji ,jj-1,jk) ) 441 zsurfp = zsurfc * ze3t / e1e2t(ji,jj) 442 ! estimation of the coastal slope : 5 km off the coast 443 ze3t2 = ze3t * ze3t 444 zcslp = SQRT( ( distcoast*distcoast + ze3t2 ) / ze3t2 ) 445 ! 446 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) + zcslp * zsurfp 466 447 END DO 467 448 END DO … … 519 500 WRITE(numout,*) ' DIC Supply : ', rivdicinput*1E3*12./1E12 ,' TgC/yr' 520 501 WRITE(numout,*) 521 WRITE(numout,*) ' Total input of elements from atmospheric supply' 522 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 523 WRITE(numout,*) ' N Supply : ', nitdepinput*rno3*1E3/1E12*14.,' TgN/yr' 524 WRITE(numout,*) 525 ENDIF 502 ENDIF 503 ! 504 sedsilfrac = 0.03 ! percentage of silica loss in the sediments 505 sedcalfrac = 0.6 ! percentage of calcite loss in the sediments 526 506 ! 527 507 END SUBROUTINE p4z_sbc_init -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zsed.F90
r9950 r10321 14 14 USE trc ! passive tracers common variables 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 USE p4z ice! Co-limitations of differents nutrients16 USE p4zlim ! Co-limitations of differents nutrients 17 17 USE p4zsbc ! External source of nutrients 18 18 USE p4zint ! interpolation and computation of various fields 19 USE sed ! Sediment module 19 20 USE iom ! I/O manager 20 21 USE prtctl_trc ! print control for debugging … … 29 30 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,: ) :: sdenit !: Nitrate reduction in the sediments 30 31 REAL(wp) :: r1_rday !: inverse of rday 32 LOGICAL, SAVE :: lk_sed 31 33 32 34 !!---------------------------------------------------------------------- 33 !! NEMO/TOP 3.3, NEMO Consortium (2018)35 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 34 36 !! $Id$ 35 !! Software governed by the CeCILL licen ce (./LICENSE)37 !! Software governed by the CeCILL license (see ./LICENSE) 36 38 !!---------------------------------------------------------------------- 37 39 CONTAINS … … 49 51 ! 50 52 INTEGER, INTENT(in) :: kt, knt ! ocean time step 51 INTEGER :: ji, jj, jk, ikt 52 REAL(wp) :: zsumsedsi, zsumsedpo4, zsumsedcal 53 REAL(wp) :: zrivalk, zrivsil, zrivno3 53 INTEGER :: ji, jj, jk, ikt 54 REAL(wp) :: zrivalk, zrivsil, zrivno3 54 55 REAL(wp) :: zwflux, zfminus, zfplus 55 56 REAL(wp) :: zlim, zfact, zfactcal … … 62 63 ! 63 64 CHARACTER (len=25) :: charout 64 REAL(wp), DIMENSION(jpi,jpj ) :: zwork1, zwork2, zwork3 65 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff 65 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff, zwork 66 66 REAL(wp), DIMENSION(jpi,jpj ) :: zwsbio3, zwsbio4, zwscal 67 67 REAL(wp), DIMENSION(jpi,jpj ) :: zsedcal, zsedsi, zsedc … … 73 73 IF( ln_timing ) CALL timing_start('p4z_sed') 74 74 ! 75 IF( kt == nittrc000 .AND. knt == 1 ) THEN 76 r1_rday = 1. / rday 77 IF (ln_sediment .AND. ln_sed_2way) THEN 78 lk_sed = .TRUE. 79 ELSE 80 lk_sed = .FALSE. 81 ENDIF 82 ENDIF 83 ! 75 84 IF( kt == nittrc000 .AND. knt == 1 ) r1_rday = 1. / rday 76 85 ! … … 82 91 zdenit2d(:,:) = 0.e0 83 92 zbureff (:,:) = 0.e0 84 zwork1 (:,:) = 0.e0 85 zwork2 (:,:) = 0.e0 86 zwork3 (:,:) = 0.e0 93 zwork (:,:) = 0.e0 87 94 zsedsi (:,:) = 0.e0 88 95 zsedcal (:,:) = 0.e0 … … 189 196 ENDIF 190 197 191 ! Add the external input of iron from sediment mobilization192 ! ------------------------------------------------------193 IF( ln_ironsed ) THEN194 tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact2195 IF( ln_ligand ) tra(:,:,:,jpfep) = tra(:,:,:,jpfep) + ( ironsed(:,:,:) * fep_rats ) * rfact2196 !197 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) ) &198 & CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments199 ENDIF200 201 198 ! Add the external input of iron from hydrothermal vents 202 199 ! ------------------------------------------------------ … … 235 232 236 233 IF( .NOT.lk_sed ) THEN 234 ! 235 ! Add the external input of iron from sediment mobilization 236 ! ------------------------------------------------------ 237 IF( ln_ironsed ) THEN 238 tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact2 239 IF( ln_ligand ) tra(:,:,:,jpfep) = tra(:,:,:,jpfep) + ( ironsed(:,:,:) * fep_rats ) * rfact2 240 ! 241 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) ) & 242 & CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments 243 ENDIF 244 237 245 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 238 246 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model … … 255 263 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 256 264 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 257 ENDIF 258 END DO 259 END DO 260 261 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 262 ! First, the total loss is computed. 263 ! The factor for calcite comes from the alkalinity effect 264 ! ------------------------------------------------------------- 265 DO jj = 1, jpj 266 DO ji = 1, jpi 267 IF( tmask(ji,jj,1) == 1 ) THEN 268 ikt = mbkt(ji,jj) 269 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 270 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 271 ! For calcite, burial efficiency is made a function of saturation 272 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 273 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 274 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 275 ENDIF 276 END DO 277 END DO 278 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 279 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 280 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 265 ENDIF 266 END DO 267 END DO 281 268 ! 282 269 ENDIF … … 285 272 ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 286 273 ! ------------------------------------------------------ 287 IF( .NOT.lk_sed ) zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn )274 IF( .NOT.lk_sed ) zrivsil = 1._wp - sedsilfrac 288 275 289 276 DO jj = 1, jpj … … 312 299 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 313 300 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 314 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn )301 zrivalk = sedcalfrac * zfactcal 315 302 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 316 303 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk … … 492 479 IF( iom_use("Nfix" ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) ) ! nitrogen fixation 493 480 IF( iom_use("INTNFIX") ) THEN ! nitrogen fixation rate in ocean ( vertically integrated ) 494 zwork 1(:,:) = 0.481 zwork(:,:) = 0. 495 482 DO jk = 1, jpkm1 496 zwork 1(:,:) = zwork1(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t_n(:,:,jk) * tmask(:,:,jk)483 zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t_n(:,:,jk) * tmask(:,:,jk) 497 484 ENDDO 498 CALL iom_put( "INTNFIX" , zwork 1)485 CALL iom_put( "INTNFIX" , zwork ) 499 486 ENDIF 500 487 IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * zfact ) -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zsink.F90
- Property svn:keywords set to Id
r9950 r10321 39 39 40 40 !!---------------------------------------------------------------------- 41 !! NEMO/TOP 3.3, NEMO Consortium (2018)41 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 42 42 !! $Id$ 43 !! Software governed by the CeCILL licen ce (./LICENSE)43 !! Software governed by the CeCILL license (see ./LICENSE) 44 44 !!---------------------------------------------------------------------- 45 45 CONTAINS -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p4zsms.F90
- Property svn:keywords set to Id
r9950 r10321 40 40 41 41 !!---------------------------------------------------------------------- 42 !! NEMO/TOP 3.3, NEMO Consortium (2018)42 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 43 43 !! $Id$ 44 !! Software governed by the CeCILL licen ce (./LICENSE)44 !! Software governed by the CeCILL license (see ./LICENSE) 45 45 !!---------------------------------------------------------------------- 46 46 CONTAINS … … 101 101 ENDIF 102 102 ! 103 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients 104 ! 105 #if ! defined key_sed_off 103 106 CALL p4z_che ! computation of chemical constants 104 107 CALL p4z_int( kt ) ! computation of various rates for biogeochemistry 105 108 ! 106 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients107 108 109 DO jnt = 1, nrdttrc ! Potential time splitting if requested 109 110 ! … … 149 150 END DO 150 151 END IF 151 ! 152 IF( lk_sed ) THEN 152 #endif 153 ! 154 IF( ln_sediment ) THEN 153 155 ! 154 156 CALL sed_model( kt ) ! Main program of Sediment model 157 ! 158 IF( ln_top_euler ) THEN 159 DO jn = jp_pcs0, jp_pcs1 160 trn(:,:,:,jn) = trb(:,:,:,jn) 161 END DO 162 ENDIF 155 163 ! 156 164 ENDIF … … 352 360 IF(lwp) WRITE(numout,*) 353 361 354 IF( cn_cfg == "orca" .AND. .NOT. lk_c1d ) THEN ! ORCA configuration (not 1D) ! 355 ! ! --------------------------- ! 356 ! set total alkalinity, phosphate, nitrate & silicate 357 zarea = 1._wp / glob_sum( cvol(:,:,:) ) * 1e6 358 359 zalksumn = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 360 zpo4sumn = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 361 zno3sumn = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 362 zsilsumn = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 362 IF( cn_cfg == "ORCA" .OR. cn_cfg == "orca") THEN 363 IF( .NOT. lk_c1d ) THEN ! ORCA configuration (not 1D) ! 364 ! ! --------------------------- ! 365 ! set total alkalinity, phosphate, nitrate & silicate 366 zarea = 1._wp / glob_sum( cvol(:,:,:) ) * 1e6 367 368 zalksumn = glob_sum( trn(:,:,:,jptal) * cvol(:,:,:) ) * zarea 369 zpo4sumn = glob_sum( trn(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 370 zno3sumn = glob_sum( trn(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 371 zsilsumn = glob_sum( trn(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 363 372 364 IF(lwp) WRITE(numout,*) ' TALKN mean : ', zalksumn365 trn(:,:,:,jptal) = trn(:,:,:,jptal) * alkmean / zalksumn366 367 IF(lwp) WRITE(numout,*) ' PO4N mean : ', zpo4sumn368 trn(:,:,:,jppo4) = trn(:,:,:,jppo4) * po4mean / zpo4sumn369 370 IF(lwp) WRITE(numout,*) ' NO3N mean : ', zno3sumn371 trn(:,:,:,jpno3) = trn(:,:,:,jpno3) * no3mean / zno3sumn372 373 IF(lwp) WRITE(numout,*) ' SiO3N mean : ', zsilsumn374 trn(:,:,:,jpsil) = MIN( 400.e-6,trn(:,:,:,jpsil) * silmean / zsilsumn )375 !376 !377 IF( .NOT. ln_top_euler ) THEN378 zalksumb = glob_sum( trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea379 zpo4sumb = glob_sum( trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r380 zno3sumb = glob_sum( trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3381 zsilsumb = glob_sum( trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea373 IF(lwp) WRITE(numout,*) ' TALKN mean : ', zalksumn 374 trn(:,:,:,jptal) = trn(:,:,:,jptal) * alkmean / zalksumn 375 376 IF(lwp) WRITE(numout,*) ' PO4N mean : ', zpo4sumn 377 trn(:,:,:,jppo4) = trn(:,:,:,jppo4) * po4mean / zpo4sumn 378 379 IF(lwp) WRITE(numout,*) ' NO3N mean : ', zno3sumn 380 trn(:,:,:,jpno3) = trn(:,:,:,jpno3) * no3mean / zno3sumn 381 382 IF(lwp) WRITE(numout,*) ' SiO3N mean : ', zsilsumn 383 trn(:,:,:,jpsil) = MIN( 400.e-6,trn(:,:,:,jpsil) * silmean / zsilsumn ) 384 ! 385 ! 386 IF( .NOT. ln_top_euler ) THEN 387 zalksumb = glob_sum( trb(:,:,:,jptal) * cvol(:,:,:) ) * zarea 388 zpo4sumb = glob_sum( trb(:,:,:,jppo4) * cvol(:,:,:) ) * zarea * po4r 389 zno3sumb = glob_sum( trb(:,:,:,jpno3) * cvol(:,:,:) ) * zarea * rno3 390 zsilsumb = glob_sum( trb(:,:,:,jpsil) * cvol(:,:,:) ) * zarea 382 391 383 IF(lwp) WRITE(numout,*) ' ' 384 IF(lwp) WRITE(numout,*) ' TALKB mean : ', zalksumb 385 trb(:,:,:,jptal) = trb(:,:,:,jptal) * alkmean / zalksumb 386 387 IF(lwp) WRITE(numout,*) ' PO4B mean : ', zpo4sumb 388 trb(:,:,:,jppo4) = trb(:,:,:,jppo4) * po4mean / zpo4sumb 389 390 IF(lwp) WRITE(numout,*) ' NO3B mean : ', zno3sumb 391 trb(:,:,:,jpno3) = trb(:,:,:,jpno3) * no3mean / zno3sumb 392 393 IF(lwp) WRITE(numout,*) ' SiO3B mean : ', zsilsumb 394 trb(:,:,:,jpsil) = MIN( 400.e-6,trb(:,:,:,jpsil) * silmean / zsilsumb ) 392 IF(lwp) WRITE(numout,*) ' ' 393 IF(lwp) WRITE(numout,*) ' TALKB mean : ', zalksumb 394 trb(:,:,:,jptal) = trb(:,:,:,jptal) * alkmean / zalksumb 395 396 IF(lwp) WRITE(numout,*) ' PO4B mean : ', zpo4sumb 397 trb(:,:,:,jppo4) = trb(:,:,:,jppo4) * po4mean / zpo4sumb 398 399 IF(lwp) WRITE(numout,*) ' NO3B mean : ', zno3sumb 400 trb(:,:,:,jpno3) = trb(:,:,:,jpno3) * no3mean / zno3sumb 401 402 IF(lwp) WRITE(numout,*) ' SiO3B mean : ', zsilsumb 403 trb(:,:,:,jpsil) = MIN( 400.e-6,trb(:,:,:,jpsil) * silmean / zsilsumb ) 404 ENDIF 395 405 ENDIF 396 406 ! -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p5zlim.F90
r10320 r10321 123 123 !!---------------------------------------------------------------------- 124 124 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 125 !! $Id : p5zlim.F90 10070 2018-08-28 14:30:54Z nicolasmartin $125 !! $Id$ 126 126 !! Software governed by the CeCILL license (see ./LICENSE) 127 127 !!---------------------------------------------------------------------- -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p5zmeso.F90
- Property svn:executable deleted
- Property svn:keywords set to Id
r9950 r10321 51 51 52 52 !!---------------------------------------------------------------------- 53 !! NEMO/TOP 3.3, NEMO Consortium (2018)53 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 54 54 !! $Id$ 55 !! Software governed by the CeCILL licen ce (./LICENSE)55 !! Software governed by the CeCILL license (see ./LICENSE) 56 56 !!---------------------------------------------------------------------- 57 57 -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p5zmicro.F90
- Property svn:executable deleted
- Property svn:keywords set to Id
r9950 r10321 15 15 USE trc ! passive tracers common variables 16 16 USE sms_pisces ! PISCES Source Minus Sink variables 17 USE p5z ice! Phytoplankton limitation terms17 USE p5zlim ! Phytoplankton limitation terms 18 18 USE iom ! I/O manager 19 19 USE prtctl_trc ! print control for debugging … … 51 51 52 52 !!---------------------------------------------------------------------- 53 !! NEMO/TOP 3.3, NEMO Consortium (2018)53 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 54 54 !! $Id$ 55 !! Software governed by the CeCILL licen ce (./LICENSE)55 !! Software governed by the CeCILL license (see ./LICENSE) 56 56 !!---------------------------------------------------------------------- 57 57 -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p5zmort.F90
- Property svn:executable deleted
- Property svn:keywords set to Id
r9950 r10321 14 14 USE trc ! passive tracers common variables 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 USE p5z ice! Phytoplankton limitation terms16 USE p5zlim ! Phytoplankton limitation terms 17 17 USE prtctl_trc ! print control for debugging 18 18 … … 33 33 34 34 !!---------------------------------------------------------------------- 35 !! NEMO/TOP 3.3, NEMO Consortium (2018)35 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 36 36 !! $Id$ 37 !! Software governed by the CeCILL licen ce (./LICENSE)37 !! Software governed by the CeCILL license (see ./LICENSE) 38 38 !!---------------------------------------------------------------------- 39 39 -
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/PISCES/P4Z/p5zprod.F90
- Property svn:executable deleted
- Property svn:keywords set to Id
r9950 r10321 16 16 USE trc ! passive tracers common variables 17 17 USE sms_pisces ! PISCES Source Minus Sink variables 18 USE p5z ice! Co-limitations of differents nutrients18 USE p5zlim ! Co-limitations of differents nutrients 19 19 USE prtctl_trc ! print control for debugging 20 20 USE iom ! I/O manager … … 53 53 54 54 !!---------------------------------------------------------------------- 55 !! NEMO/TOP 3.3, NEMO Consortium (2018)55 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 56 56 !! $Id$ 57 !! Software governed by the CeCILL licen ce (./LICENSE)57 !! Software governed by the CeCILL license (see ./LICENSE) 58 58 !!---------------------------------------------------------------------- 59 59 CONTAINS
Note: See TracChangeset
for help on using the changeset viewer.