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 2528 for trunk/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcexp.F90 – NEMO

Ignore:
Timestamp:
2010-12-27T18:33:53+01:00 (13 years ago)
Author:
rblod
Message:

Update NEMOGCM from branch nemo_v3_3_beta

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcexp.F90

    r1795 r2528  
    1919   USE lbclnk 
    2020   USE trc 
    21    USE trctrp_lec 
     21   USE trcnam_trp 
    2222   USE prtctl_trc      ! Print control for debbuging 
    23    USE trdmld_trc 
    24    USE trdmld_trc_oce 
     23   USE trdmod_oce 
     24   USE trdmod_trc 
    2525   USE iom 
    2626 
     
    3333#  include "top_substitute.h90" 
    3434   !!---------------------------------------------------------------------- 
    35    !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     35   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
    3636   !! $Id$  
    37    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     37   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
    3838   !!---------------------------------------------------------------------- 
    3939 
     
    5555      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
    5656      !! 
    57       INTEGER  ::   ji, jj, jk, jl, ikbot 
    58       REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t 
     57      INTEGER  ::   ji, jj, jk, jl, ikt 
     58      REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd 
    5959      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrbio 
    6060      CHARACTER (len=25) :: charout 
     
    7575      IF( l_trdtrc )THEN 
    7676         ALLOCATE( ztrbio(jpi,jpj,jpk) ) 
    77          ztrbio(:,:,:) = tra(:,:,:,jpno3) 
     77         ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) 
    7878      ENDIF 
    7979 
     
    8282            DO ji = fs_2, fs_jpim1 
    8383               ze3t = 1. / fse3t(ji,jj,jk) 
    84                tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj) 
     84               tra(ji,jj,jk,jp_lob_no3) = tra(ji,jj,jk,jp_lob_no3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj) 
    8585            END DO 
    8686         END DO 
     
    9595      DO jj = 2, jpjm1 
    9696         DO ji = fs_2, fs_jpim1 
    97             ikbot = mbathy(ji,jj) - 1 
    98             tra(ji,jj,ikbot,jpno3) = tra(ji,jj,ikbot,jpno3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikbot)  
     97            ikt = mbkt(ji,jj)  
     98            tra(ji,jj,ikt,jp_lob_no3) = tra(ji,jj,ikt,jp_lob_no3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikt)  
    9999            ! Deposition of organic matter in the sediment 
    100             zwork = vsed * trn(ji,jj,ikbot,jpdet) 
     100            zwork = vsed * trn(ji,jj,ikt,jp_lob_det) 
    101101            sedpoca(ji,jj) = ( zwork + dminl(ji,jj) * fbod(ji,jj)   & 
    102102               &           - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rdt 
     
    107107      DO jj = 2, jpjm1 
    108108         DO ji = fs_2, fs_jpim1 
    109             tra(ji,jj,1,jpno3) = tra(ji,jj,1,jpno3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1) 
     109            tra(ji,jj,1,jp_lob_no3) = tra(ji,jj,1,jp_lob_no3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1) 
    110110         END DO 
    111111      END DO 
     
    114114  
    115115      ! Oa & Ek: diagnostics depending on jpdia2d !          left as example 
    116 #if defined key_trc_diaadd 
     116#if defined key_diatrc 
    117117# if ! defined key_iomput 
    118118      trc2d(:,:,jp_lob0_2d + 18) = sedpocn(:,:) 
     
    122122#endif 
    123123 
    124       ! Leap-frog scheme (only in explicit case, otherwise the  
    125       ! ----------------  time stepping is already done in trczdf) 
    126       IF( l_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN 
    127          zfact = 2. * rdttra(jk) * FLOAT( ndttrc )  
    128          IF( neuler == 0 .AND. kt == nittrc000 )   zfact = rdttra(jk) * FLOAT(ndttrc)  
    129          sedpoca(:,:) =  sedpocb(:,:) + zfact * sedpoca(:,:)  
    130       ENDIF 
    131  
    132124       
    133125      ! Time filter and swap of arrays 
    134126      ! ------------------------------ 
    135       IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd  ) THEN         ! centred or tvd scheme 
    136          IF( neuler == 0 .AND. kt == nittrc000 ) THEN 
    137             DO jj = 1, jpj 
    138                DO ji = 1, jpi 
    139                   sedpocb(ji,jj) = sedpocn(ji,jj) 
    140                   sedpocn(ji,jj) = sedpoca(ji,jj) 
    141                   sedpoca(ji,jj) = 0.e0 
    142                END DO 
    143             END DO 
    144          ELSE 
    145             DO jj = 1, jpj 
    146                DO ji = 1, jpi 
    147                   sedpocb(ji,jj) = atfp  * ( sedpocb(ji,jj) + sedpoca(ji,jj) )    & 
    148                      &           + atfp1 *   sedpocn(ji,jj) 
    149                   sedpocn(ji,jj) = sedpoca(ji,jj) 
    150                   sedpoca(ji,jj) = 0.e0 
    151                END DO 
    152             END DO 
    153          ENDIF 
    154       ELSE                                                   !  case of smolar scheme or muscl 
    155          sedpocb(:,:) = sedpoca(:,:) 
    156          sedpocn(:,:) = sedpoca(:,:) 
    157          sedpoca(:,:) = 0.e0 
     127      IF( neuler == 0 .AND. kt == nit000 ) THEN        ! Euler time-stepping at first time-step 
     128        !                                             ! (only swap) 
     129        sedpocn(:,:) = sedpoca(:,:) 
     130        !                                               
     131      ELSE 
     132        ! 
     133        DO jj = 1, jpj 
     134           DO ji = 1, jpi 
     135              zsedpocd = sedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
     136              sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
     137              sedpocn(ji,jj) = sedpoca(ji,jj)                                       ! sedpocn <-- sedpoca 
     138           END DO 
     139        END DO 
     140        !  
    158141      ENDIF 
     142      sedpoca(:,:) = 0.e0 
    159143      ! 
    160144      IF( l_trdtrc ) THEN 
    161          ztrbio(:,:,:) = tra(:,:,:,jpno3) - ztrbio(:,:,:) 
     145         ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) - ztrbio(:,:,:) 
    162146         jl = jp_lob0_trd + 16 
    163147         CALL trd_mod_trc( ztrbio, jl, kt )   ! handle the trend 
Note: See TracChangeset for help on using the changeset viewer.