- Timestamp:
- 2019-12-16T14:38:32+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zprod.F90
r12236 r12258 95 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 96 96 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpligprod1, zpligprod2 97 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d98 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d99 97 !!--------------------------------------------------------------------- 100 98 ! 101 99 IF( ln_timing ) CALL timing_start('p5z_prod') 102 100 ! 103 zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 104 zprofed (:,:,:) = 0._wp ; zprofep (:,:,:) = 0._wp ; zprofen (:,:,:) = 0._wp 105 zpronewn(:,:,:) = 0._wp ; zpronewp(:,:,:) = 0._wp ; zpronewd(:,:,:) = 0._wp 106 zproregn(:,:,:) = 0._wp ; zproregp(:,:,:) = 0._wp ; zproregd(:,:,:) = 0._wp 107 zpropo4n(:,:,:) = 0._wp ; zpropo4p(:,:,:) = 0._wp ; zpropo4d(:,:,:) = 0._wp 108 zprdia (:,:,:) = 0._wp ; zprpic (:,:,:) = 0._wp ; zprbio (:,:,:) = 0._wp 109 zprodopn(:,:,:) = 0._wp ; zprodopp(:,:,:) = 0._wp ; zprodopd(:,:,:) = 0._wp 110 zysopt (:,:,:) = 0._wp 111 zrespn (:,:,:) = 0._wp ; zrespp (:,:,:) = 0._wp ; zrespd (:,:,:) = 0._wp 101 zprorcan(:,:,jpk) = 0._wp ; zprorcap(:,:,jpk) = 0._wp ; zprorcad(:,:,jpk) = 0._wp 102 zcroissn(:,:,jpk) = 0._wp ; zcroissp(:,:,jpk) = 0._wp ; zcroissd(:,:,jpk) = 0._wp 103 zprofed (:,:,jpk) = 0._wp ; zprofep (:,:,jpk) = 0._wp ; zprofen (:,:,jpk) = 0._wp 104 zpronewn(:,:,jpk) = 0._wp ; zpronewp(:,:,jpk) = 0._wp ; zpronewd(:,:,jpk) = 0._wp 105 zproregn(:,:,jpk) = 0._wp ; zproregp(:,:,jpk) = 0._wp ; zproregd(:,:,jpk) = 0._wp 106 zpropo4n(:,:,jpk) = 0._wp ; zpropo4p(:,:,jpk) = 0._wp ; zpropo4d(:,:,jpk) = 0._wp 107 zprdia (:,:,jpk) = 0._wp ; zprpic (:,:,jpk) = 0._wp ; zprbio (:,:,jpk) = 0._wp 108 zprodopn(:,:,jpk) = 0._wp ; zprodopp(:,:,jpk) = 0._wp ; zprodopd(:,:,jpk) = 0._wp 109 zysopt (:,:,jpk) = 0._wp 110 zrespn (:,:,jpk) = 0._wp ; zrespp (:,:,jpk) = 0._wp ; zrespd (:,:,jpk) = 0._wp 112 111 113 112 ! Computation of the optimal production … … 445 444 ! 446 445 IF( ln_ligand ) THEN 447 zpligprod1(:,:, :) = 0._wp ; zpligprod2(:,:,:) = 0._wp446 zpligprod1(:,:,jpk) = 0._wp ; zpligprod2(:,:,jpk) = 0._wp 448 447 DO jk = 1, jpkm1 449 448 DO jj = 1, jpj … … 466 465 & tpp = glob_sum( 'p5zprod', ( zprorcan(:,:,:) + zprorcad(:,:,:) + zprorcap(:,:,:) ) * cvol(:,:,:) ) 467 466 468 IF( lk_iomput ) THEN 469 IF( knt == nrdttrc ) THEN 470 ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 471 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 472 ! 473 IF( iom_use( "PPPHYN" ) .OR. iom_use( "PPPHYD" ) .OR. iom_use( "PPPHYP" ) ) THEN 474 zw3d(:,:,:) = zprorcan(:,:,:) * zfact * tmask(:,:,:) ! primary production by nanophyto 475 CALL iom_put( "PPPHYN" , zw3d ) 476 ! 477 zw3d(:,:,:) = zprorcap(:,:,:) * zfact * tmask(:,:,:) ! primary production by picophyto 478 CALL iom_put( "PPPHYP" , zw3d ) 479 ! 480 zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:) ! primary production by diatomes 481 CALL iom_put( "PPPHYD" , zw3d ) 482 ENDIF 483 IF( iom_use( "PPNEWN" ) .OR. iom_use( "PPNEWD" ) .OR. iom_use( "PPNEWP" ) ) THEN 484 zw3d(:,:,:) = zpronewn(:,:,:) * zfact * tmask(:,:,:) ! new primary production by nanophyto 485 CALL iom_put( "PPNEWN" , zw3d ) 486 ! 487 zw3d(:,:,:) = zpronewp(:,:,:) * zfact * tmask(:,:,:) ! new primary production by picophyto 488 CALL iom_put( "PPNEWP" , zw3d ) 489 ! 490 zw3d(:,:,:) = zpronewd(:,:,:) * zfact * tmask(:,:,:) ! new primary production by diatomes 491 CALL iom_put( "PPNEWD" , zw3d ) 492 ENDIF 493 IF( iom_use( "PBSi" ) ) THEN 494 zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) ! biogenic silica production 495 CALL iom_put( "PBSi" , zw3d ) 496 ENDIF 497 IF( iom_use( "PFeN" ) .OR. iom_use( "PFeD" ) .OR. iom_use( "PFeP" ) ) THEN 498 zw3d(:,:,:) = zprofen(:,:,:) * zfact * tmask(:,:,:) ! biogenic iron production by nanophyto 499 CALL iom_put( "PFeN" , zw3d ) 500 ! 501 zw3d(:,:,:) = zprofep(:,:,:) * zfact * tmask(:,:,:) ! biogenic iron production by picophyto 502 CALL iom_put( "PFeP" , zw3d ) 503 ! 504 zw3d(:,:,:) = zprofed(:,:,:) * zfact * tmask(:,:,:) ! biogenic iron production by diatomes 505 CALL iom_put( "PFeD" , zw3d ) 506 ENDIF 507 IF( iom_use( "LPRODP" ) ) THEN 508 zw3d(:,:,:) = zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) 509 CALL iom_put( "LPRODP" , zw3d ) 510 ENDIF 511 IF( iom_use( "LDETP" ) ) THEN 512 zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) 513 CALL iom_put( "LDETP" , zw3d ) 514 ENDIF 515 IF( iom_use( "Mumax" ) ) THEN 516 zw3d(:,:,:) = zprmaxn(:,:,:) * tmask(:,:,:) ! Maximum growth rate 517 CALL iom_put( "Mumax" , zw3d ) 518 ENDIF 519 IF( iom_use( "MuN" ) .OR. iom_use( "MuD" ) .OR. iom_use( "MuP" ) ) THEN 520 zw3d(:,:,:) = zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:) ! Realized growth rate for nanophyto 521 CALL iom_put( "MuN" , zw3d ) 522 ! 523 zw3d(:,:,:) = zprpic(:,:,:) * xlimpic(:,:,:) * tmask(:,:,:) ! Realized growth rate for picophyto 524 CALL iom_put( "MuP" , zw3d ) 525 ! 526 zw3d(:,:,:) = zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:) ! Realized growth rate for diatoms 527 CALL iom_put( "MuD" , zw3d ) 528 ENDIF 529 IF( iom_use( "LNlight" ) .OR. iom_use( "LDlight" ) .OR. iom_use( "LPlight" ) ) THEN 530 zw3d(:,:,:) = zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 531 CALL iom_put( "LNlight" , zw3d ) 532 ! 533 zw3d(:,:,:) = zprpic (:,:,:) / (zprmaxp(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 534 CALL iom_put( "LPlight" , zw3d ) 535 ! 536 zw3d(:,:,:) = zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 537 CALL iom_put( "LDlight" , zw3d ) 538 ENDIF 539 IF( iom_use( "MunetN" ) .OR. iom_use( "MunetD" ) .OR. iom_use( "MunetP" ) ) THEN 540 zw3d(:,:,:) = zcroissn(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for nanophyto 541 CALL iom_put( "MunetN" , zw3d ) 542 ! 543 zw3d(:,:,:) = zcroissp(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for picophyto 544 CALL iom_put( "MunetP" , zw3d ) 545 ! 546 zw3d(:,:,:) = zcroissd(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for diatomes 547 CALL iom_put( "MunetD" , zw3d ) 548 ! 549 ENDIF 550 551 IF( iom_use( "tintpp" ) ) CALL iom_put( "tintpp" , tpp * zfact ) ! global total integrated primary production molC/s 552 ! 553 DEALLOCATE( zw2d, zw3d ) 554 ENDIF 467 IF( lk_iomput .AND. knt == nrdttrc ) THEN 468 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 469 ! 470 CALL iom_put( "PPPHYP" , zprorcap(:,:,:) * zfact * tmask(:,:,:) ) ! primary production by picophyto 471 CALL iom_put( "PPPHYN" , zprorcan(:,:,:) * zfact * tmask(:,:,:) ) ! primary production by nanophyto 472 CALL iom_put( "PPPHYD" , zprorcad(:,:,:) * zfact * tmask(:,:,:) ) ! primary production by diatomes 473 CALL iom_put( "PPNEWN" , zpronewp(:,:,:) * zfact * tmask(:,:,:) ) ! new primary production by picophyto 474 CALL iom_put( "PPNEWN" , zpronewn(:,:,:) * zfact * tmask(:,:,:) ) ! new primary production by nanophyto 475 CALL iom_put( "PPNEWD" , zpronewd(:,:,:) * zfact * tmask(:,:,:) ) ! new primary production by diatomes 476 CALL iom_put( "PBSi" , zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) ) ! biogenic silica production 477 CALL iom_put( "PFeP" , zprofep(:,:,:) * zfact * tmask(:,:,:) ) ! biogenic iron production by picophyto 478 CALL iom_put( "PFeN" , zprofen(:,:,:) * zfact * tmask(:,:,:) ) ! biogenic iron production by nanophyto 479 CALL iom_put( "PFeD" , zprofed(:,:,:) * zfact * tmask(:,:,:) ) ! biogenic iron production by diatomes 480 CALL iom_put( "LPRODP" , zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 481 CALL iom_put( "LDETP" , zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 482 CALL iom_put( "Mumax" , zprmaxn(:,:,:) * tmask(:,:,:) ) ! Maximum growth rate 483 CALL iom_put( "MuP" , zprpic(:,:,:) * xlimpic(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for picophyto 484 CALL iom_put( "MuN" , zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for nanophyto 485 CALL iom_put( "MuD" , zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for diatoms 486 CALL iom_put( "LPlight" , zprpic(:,:,:) / (zprmaxp(:,:,:) + rtrn) * tmask(:,:,:) ) ! light limitation term 487 CALL iom_put( "LNlight" , zprbio(:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ) ! light limitation term 488 CALL iom_put( "LDlight" , zprdia(:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:) ) 489 CALL iom_put( "MunetP" , zcroissp(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for picophyto 490 CALL iom_put( "MunetN" , zcroissn(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for nanophyto 491 CALL iom_put( "MunetD" , zcroissd(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for diatoms 492 CALL iom_put( "TPP" , ( zprorcap(:,:,:) + zprorcan(:,:,:) + zprorcad(:,:,:) ) * zfact * tmask(:,:,:) ) ! total primary production 493 CALL iom_put( "TPNEW" , ( zpronewp(:,:,:) + zpronewn(:,:,:) + zpronewd(:,:,:) ) * zfact * tmask(:,:,:) ) ! total new production 494 CALL iom_put( "TPBFE" , ( zprofep (:,:,:) + zprofen (:,:,:) + zprofed (:,:,:) ) * zfact * tmask(:,:,:) ) ! total biogenic iron production 495 CALL iom_put( "tintpp" , tpp * zfact ) ! global total integrated primary production molC/s 555 496 ENDIF 556 497
Note: See TracChangeset
for help on using the changeset viewer.