Changeset 9241
 Timestamp:
 20180116T13:59:31+01:00 (3 years ago)
 Location:
 branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r9240 r9241 48 48 LOGICAL :: ll_solub 49 49 50 INTEGER 51 INTEGER 52 INTEGER 53 INTEGER 54 INTEGER 55 INTEGER 56 INTEGER 57 INTEGER 50 INTEGER, PARAMETER :: jpriv = 7 !: Maximum number of river input fields 51 INTEGER, PARAMETER :: jr_dic = 1 !: index of dissolved inorganic carbon 52 INTEGER, PARAMETER :: jr_doc = 2 !: index of dissolved organic carbon 53 INTEGER, PARAMETER :: jr_din = 3 !: index of dissolved inorganic nitrogen 54 INTEGER, PARAMETER :: jr_don = 4 !: index of dissolved organic nitrogen 55 INTEGER, PARAMETER :: jr_dip = 5 !: index of dissolved inorganic phosporus 56 INTEGER, PARAMETER :: jr_dop = 6 !: index of dissolved organic phosphorus 57 INTEGER, PARAMETER :: jr_dsi = 7 !: index of dissolved silicate 58 58 59 59 … … 77 77 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hydrofe !: Hydrothermal vent supply of iron 78 78 79 REAL(wp), PUBLIC :: sumdepsi, rivalkinput, rivdicinput, nitdepinput 79 REAL(wp), PUBLIC :: sedsilfrac, sedcalfrac 80 REAL(wp), PUBLIC :: rivalkinput, rivdicinput 80 81 REAL(wp), PUBLIC :: rivdininput, rivdipinput, rivdsiinput 81 82 … … 267 268 ! dust input from the atmosphere 268 269 !  269 sumdepsi = 0._wp270 270 IF( ln_dust ) THEN 271 271 ! … … 365 365 ! nutrient input from dust 366 366 !  367 nitdepinput = 0._wp368 367 IF( ln_ndepo ) THEN 369 368 ! … … 473 472 ENDIF 474 473 ! 474 sedsilfrac = 0.03 ! percentage of silica loss in the sediments 475 sedcalfrac = 0.6 ! percentage of calcite loss in the sediments 476 ! 475 477 IF( nn_timing == 1 ) CALL timing_stop('p4z_sbc_init') 476 478 ! 
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r8610 r9241 61 61 INTEGER :: ji, jj, jk, ikt 62 62 #if ! defined key_sed 63 REAL(wp) :: zsumsedsi, zsumsedpo4, zsumsedcal64 63 REAL(wp) :: zrivalk, zrivsil, zrivno3 65 64 #endif … … 71 70 ! 72 71 CHARACTER (len=25) :: charout 73 REAL(wp), POINTER, DIMENSION(:,: ) :: zpdep, zsidep, zwork 1, zwork2, zwork372 REAL(wp), POINTER, DIMENSION(:,: ) :: zpdep, zsidep, zwork 74 73 REAL(wp), POINTER, DIMENSION(:,:) :: zsedcal, zsedsi, zsedc 75 74 REAL(wp), POINTER, DIMENSION(:,: ) :: zdenit2d, zironice, zbureff … … 83 82 ! 84 83 ! Allocate temporary workspace 85 CALL wrk_alloc( jpi, jpj, zdenit2d, z work1, zwork2, zwork3, zbureff )84 CALL wrk_alloc( jpi, jpj, zdenit2d, zbureff ) 86 85 CALL wrk_alloc( jpi, jpj, zsedcal, zsedsi, zsedc ) 87 86 CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) … … 90 89 zdenit2d(:,:) = 0.e0 91 90 zbureff (:,:) = 0.e0 92 zwork1 (:,:) = 0.e093 zwork2 (:,:) = 0.e094 zwork3 (:,:) = 0.e095 91 zsedsi (:,:) = 0.e0 96 92 zsedcal (:,:) = 0.e0 … … 247 243 END DO 248 244 249 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments.250 ! First, the total loss is computed.251 ! The factor for calcite comes from the alkalinity effect252 ! 253 DO jj = 1, jpj254 DO ji = 1, jpi255 IF( tmask(ji,jj,1) == 1 ) THEN256 ikt = mbkt(ji,jj)257 # if defined key_kriest258 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwscal (ji,jj)259 zwork2(ji,jj) = trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)260 # else261 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj)262 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)263 # endif264 ! For calcite, burial efficiency is made a function of saturation265 zfactcal = MIN( excess(ji,jj,ikt), 0.2 )266 zfactcal = MIN( 1., 1.3 * ( 0.2  zfactcal ) / ( 0.4  zfactcal ) )267 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal268 ENDIF269 END DO270 END DO271 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday272 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday273 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday274 245 #endif 275 246 … … 278 249 !  279 250 #if ! defined key_sed 280 zrivsil = 1._wp  ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn )251 zrivsil = 1._wp  sedsilfrac 281 252 #endif 282 253 … … 298 269 #if ! defined key_sed 299 270 tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil 271 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 272 ! The factor for calcite comes from the alkalinity effect 273 !  300 274 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 301 275 zfactcal = MIN( 1., 1.3 * ( 0.2  zfactcal ) / ( 0.4  zfactcal ) ) 302 zrivalk = 1._wp  ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn )276 zrivalk = sedcalfrac * zfactcal 303 277 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 304 278 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk … … 394 368 IF( iom_use("Nfix" ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) ) ! nitrogen fixation 395 369 IF( iom_use("INTNFIX") ) THEN ! nitrogen fixation rate in ocean ( vertically integrated ) 396 zwork1(:,:) = 0. 370 CALL wrk_alloc( jpi, jpj, zwork ) 371 zwork(:,:) = 0. 397 372 DO jk = 1, jpkm1 398 zwork 1(:,:) = zwork1(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * fse3t(:,:,jk) * tmask(:,:,jk)373 zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * fse3t(:,:,jk) * tmask(:,:,jk) 399 374 ENDDO 400 CALL iom_put( "INTNFIX" , zwork1 ) 375 CALL iom_put( "INTNFIX", zwork ) 376 CALL wrk_dealloc( jpi, jpj, zwork ) 401 377 ENDIF 402 378 IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * zfact ) … … 418 394 ENDIF 419 395 ! 420 CALL wrk_dealloc( jpi, jpj, zdenit2d, z work1, zwork2, zwork3, zbureff )396 CALL wrk_dealloc( jpi, jpj, zdenit2d, zbureff ) 421 397 CALL wrk_dealloc( jpi, jpj, zsedcal , zsedsi, zsedc ) 422 398 CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal )
Note: See TracChangeset
for help on using the changeset viewer.