New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9863 for NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/TOP/PISCES/P2Z/p2zexp.F90 – NEMO

Ignore:
Timestamp:
2018-06-30T12:51:02+02:00 (6 years ago)
Author:
gm
Message:

#1911 (ENHANCE-04): simplified implementation of the Euler stepping at nit000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/TOP/PISCES/P2Z/p2zexp.F90

    r9788 r9863  
    44   !! TOP :   LOBSTER Compute loss of organic matter in the sediments 
    55   !!====================================================================== 
    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 
     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            ! 
    2323 
    2424   IMPLICIT NONE 
     
    3030 
    3131   ! 
    32    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 
     32   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 
    3838 
    3939   !! * Substitutions 
     
    5959      !!              COLUMN BELOW THE SURFACE LAYER. 
    6060      !!--------------------------------------------------------------------- 
    61       !! 
    62       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
     61      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index       
    6362      !! 
    6463      INTEGER  ::   ji, jj, jk, jl, ikt 
    6564      REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 
    6665      REAL(wp), DIMENSION(jpi,jpj)   ::  zsedpoca 
    67       CHARACTER (len=25) :: charout 
     66      CHARACTER (len=25) ::   charout 
    6867      !!--------------------------------------------------------------------- 
    6968      ! 
     
    7271      IF( kt == nittrc000 )   CALL p2z_exp_init 
    7372 
    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 
    7977      ! (PARTS OF NEWLY FORMED MATTER REMAINING IN THE DIFFERENT 
    8078      ! LAYERS IS DETERMINED BY DMIN3 DEFINED IN sms_p2z.F90 
     
    9391    
    9492 
    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 
    9895         DO ji = fs_2, fs_jpim1 
    9996            ikt = mbkt(ji,jj)  
     
    121118      ! Time filter and swap of arrays 
    122119      ! ------------------------------ 
    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) 
    125121        sedpocn(:,:) = zsedpoca(:,:) 
    126122        !                                               
    127       ELSE 
     123      ELSE                          ! Leap-Frog + Asselin filter 
    128124        ! 
    129125        DO jj = 1, jpj 
    130126           DO ji = 1, jpi 
    131               zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
     127              zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)     ! time laplacian on tracers 
    132128              sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
    133               sedpocn(ji,jj) = zsedpoca(ji,jj)                                       ! sedpocn <-- sedpoca 
     129              sedpocn(ji,jj) = zsedpoca(ji,jj)                                      ! sedpocn <-- sedpoca 
    134130           END DO 
    135131        END DO 
Note: See TracChangeset for help on using the changeset viewer.