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 2300 for branches – NEMO

Changeset 2300 for branches


Ignore:
Timestamp:
2010-10-21T10:08:05+02:00 (14 years ago)
Author:
cetlod
Message:

update time stepping formulation of mass of POC in LOBSTER model

File:
1 edited

Legend:

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

    r2287 r2300  
    5656      !! 
    5757      INTEGER  ::   ji, jj, jk, jl, ikbot 
    58       REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t 
     58      REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd 
    5959      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrbio 
    6060      CHARACTER (len=25) :: charout 
     
    122122#endif 
    123123 
    124       ! Leap-frog scheme (only in explicit case, otherwise the  
    125       ! ----------------  time stepping is already done in trczdf) 
    126       IF( ln_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN 
    127          zfact = 2. * rdttra(jk) * FLOAT( nn_dttrc )  
    128          IF( neuler == 0 .AND. kt == nit000 )   zfact = rdttra(jk) * FLOAT(nn_dttrc)  
    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 == nit000 ) 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 
Note: See TracChangeset for help on using the changeset viewer.