- Timestamp:
- 2018-06-30T12:51:02+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/TOP/PISCES/P2Z/p2zexp.F90
r9788 r9863 4 4 !! TOP : LOBSTER Compute loss of organic matter in the sediments 5 5 !!====================================================================== 6 !! History : 7 !! 8 !! 9 !! 10 !! 11 !!---------------------------------------------------------------------- 12 !! p2z_exp 13 !!---------------------------------------------------------------------- 14 USE oce_trc 15 USE trc 16 USE sms_pisces 17 USE p2zsed 18 USE lbclnk 19 USE prtctl_trc 20 USE trd_oce 21 USE trdtrc 22 USE iom 6 !! History : - ! 1999 (O. Aumont, C. Le Quere) original code 7 !! - ! 2001-05 (O. Aumont, E. Kestenare) add sediment computations 8 !! 1.0 ! 2005-06 (A.-S. Kremeur) new temporal integration for sedpoc 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 !! 3.5 ! 2012-03 (C. Ethe) Merge PISCES-LOBSTER 11 !!---------------------------------------------------------------------- 12 !! p2z_exp : Compute loss of organic matter in the sediments 13 !!---------------------------------------------------------------------- 14 USE oce_trc ! 15 USE trc ! 16 USE sms_pisces ! 17 USE p2zsed ! 18 USE lbclnk ! 19 USE prtctl_trc ! Print control for debbuging 20 USE trd_oce ! 21 USE trdtrc ! 22 USE iom ! 23 23 24 24 IMPLICIT NONE … … 30 30 31 31 ! 32 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: dminl ! :fraction of sinking POC released in sediments33 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: dmin3 ! :fraction of sinking POC released at each level34 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: sedpocb ! :mass of POC in sediments35 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: sedpocn ! :mass of POC in sediments36 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: cmask ! :Coastal mask area37 REAL(wp) :: areacot ! :surface coastal area32 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: dminl ! fraction of sinking POC released in sediments 33 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: dmin3 ! fraction of sinking POC released at each level 34 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: sedpocb ! mass of POC in sediments 35 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: sedpocn ! mass of POC in sediments 36 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: cmask ! Coastal mask area 37 REAL(wp) :: areacot ! surface coastal area 38 38 39 39 !! * Substitutions … … 59 59 !! COLUMN BELOW THE SURFACE LAYER. 60 60 !!--------------------------------------------------------------------- 61 !! 62 INTEGER, INTENT( in ) :: kt ! ocean time-step index 61 INTEGER, INTENT( in ) :: kt ! ocean time-step index 63 62 !! 64 63 INTEGER :: ji, jj, jk, jl, ikt 65 64 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 66 65 REAL(wp), DIMENSION(jpi,jpj) :: zsedpoca 67 CHARACTER (len=25) :: charout66 CHARACTER (len=25) :: charout 68 67 !!--------------------------------------------------------------------- 69 68 ! … … 72 71 IF( kt == nittrc000 ) CALL p2z_exp_init 73 72 74 zsedpoca(:,:) = 0. 75 76 77 ! VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC 78 ! POC IN THE WATER COLUMN 73 zsedpoca(:,:) = 0._wp 74 75 76 ! VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC POC IN THE WATER COLUMN 79 77 ! (PARTS OF NEWLY FORMED MATTER REMAINING IN THE DIFFERENT 80 78 ! LAYERS IS DETERMINED BY DMIN3 DEFINED IN sms_p2z.F90 … … 93 91 94 92 95 zgeolpoc = 0.e0 ! Initialization 96 ! Release of nutrients from the "simple" sediment 97 DO jj = 2, jpjm1 93 zgeolpoc = 0._wp ! Initialization 94 DO jj = 2, jpjm1 ! Release of nutrients from the "simple" sediment 98 95 DO ji = fs_2, fs_jpim1 99 96 ikt = mbkt(ji,jj) … … 121 118 ! Time filter and swap of arrays 122 119 ! ------------------------------ 123 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! Euler time-stepping at first time-step 124 ! ! (only swap) 120 IF( l_1st_euler ) THEN ! Euler time-stepping at first time-step (only swap) 125 121 sedpocn(:,:) = zsedpoca(:,:) 126 122 ! 127 ELSE 123 ELSE ! Leap-Frog + Asselin filter 128 124 ! 129 125 DO jj = 1, jpj 130 126 DO ji = 1, jpi 131 zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj) 127 zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj) ! time laplacian on tracers 132 128 sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd ! sedpocb <-- filtered sedpocn 133 sedpocn(ji,jj) = zsedpoca(ji,jj) 129 sedpocn(ji,jj) = zsedpoca(ji,jj) ! sedpocn <-- sedpoca 134 130 END DO 135 131 END DO
Note: See TracChangeset
for help on using the changeset viewer.