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 6060 for branches/2015/dev_merge_2015/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90 – NEMO

Ignore:
Timestamp:
2015-12-16T10:25:22+01:00 (8 years ago)
Author:
timgraham
Message:

Merged dev_r5836_noc2_VVL_BY_DEFAULT into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90

    r5656 r6060  
    101101         WRITE(numout,*) 'trc_nxt : time stepping on passive tracers' 
    102102      ENDIF 
    103  
     103      ! 
    104104#if defined key_agrif 
    105105      CALL Agrif_trc                   ! AGRIF zoom boundaries 
    106106#endif 
    107       ! Update after tracer on domain lateral boundaries 
    108       DO jn = 1, jptra 
     107      DO jn = 1, jptra                 ! Update after tracer on domain lateral boundaries 
    109108         CALL lbc_lnk( tra(:,:,:,jn), 'T', 1. )    
    110109      END DO 
    111  
    112  
    113110#if defined key_bdy 
    114 !!      CALL bdy_trc( kt )               ! BDY open boundaries 
     111!!      CALL bdy_trc( kt )             ! BDY open boundaries 
    115112#endif 
    116113 
    117  
    118       ! set time step size (Euler/Leapfrog) 
     114      !                                ! set time step size (Euler/Leapfrog) 
    119115      IF( neuler == 0 .AND. kt ==  nittrc000 ) THEN  ;  r2dt(:) =     rdttrc(:)   ! at nittrc000             (Euler) 
    120116      ELSEIF( kt <= nittrc000 + nn_dttrc )     THEN  ;  r2dt(:) = 2.* rdttrc(:)   ! at nit000 or nit000+1 (Leapfrog) 
    121117      ENDIF 
    122118 
    123       ! trends computation initialisation 
    124       IF( l_trdtrc )  THEN 
    125          CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrdt )  !* store now fields before applying the Asselin filter 
     119      IF( l_trdtrc )  THEN             ! trends: store now fields before the Asselin filter application 
     120         CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrdt ) 
    126121         ztrdt(:,:,:,:)  = trn(:,:,:,:) 
    127122      ENDIF 
    128       ! Leap-Frog + Asselin filter time stepping 
    129       IF( neuler == 0 .AND. kt == nittrc000 ) THEN        ! Euler time-stepping at first time-step 
    130          !                                                ! (only swap) 
     123      !                                ! Leap-Frog + Asselin filter time stepping 
     124      IF( neuler == 0 .AND. kt == nittrc000 ) THEN    ! Euler time-stepping at first time-step (only swap) 
    131125         DO jn = 1, jptra 
    132126            DO jk = 1, jpkm1 
     
    134128            END DO 
    135129         END DO 
    136          !                                               
    137       ELSE 
    138          ! Leap-Frog + Asselin filter time stepping 
    139          IF( lk_vvl ) THEN   ;   CALL tra_nxt_vvl( kt, nittrc000, rdttrc, 'TRC', trb, trn, tra,      & 
    140            &                                                                sbc_trc, sbc_trc_b, jptra )      ! variable volume level (vvl)  
    141          ELSE                ;   CALL tra_nxt_fix( kt, nittrc000,         'TRC', trb, trn, tra, jptra )      ! fixed    volume level  
     130      ELSE                                            ! Asselin filter + swap 
     131         IF( ln_linssh ) THEN   ;   CALL tra_nxt_fix( kt, nittrc000,         'TRC', trb, trn, tra, jptra )  !     linear ssh 
     132         ELSE                   ;   CALL tra_nxt_vvl( kt, nittrc000, rdttrc, 'TRC', trb, trn, tra,      & 
     133           &                                                                   sbc_trc, sbc_trc_b, jptra )  ! non-linear ssh 
    142134         ENDIF 
     135         ! 
     136         DO jn = 1, jptra 
     137            CALL lbc_lnk( trb(:,:,:,jn), 'T', 1._wp )  
     138            CALL lbc_lnk( trn(:,:,:,jn), 'T', 1._wp ) 
     139            CALL lbc_lnk( tra(:,:,:,jn), 'T', 1._wp ) 
     140         END DO 
    143141      ENDIF 
    144  
    145       ! trends computation 
    146       IF( l_trdtrc ) THEN                                      ! trends 
     142      ! 
     143      IF( l_trdtrc ) THEN              ! trends: send Asselin filter trends to trdtra manager for further diagnostics 
    147144         DO jn = 1, jptra 
    148145            DO jk = 1, jpkm1 
    149                zfact = 1.e0 / r2dt(jk)   
     146               zfact = 1._wp / r2dt(jk)   
    150147               ztrdt(:,:,jk,jn) = ( trb(:,:,jk,jn) - ztrdt(:,:,jk,jn) ) * zfact  
    151148               CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt ) 
Note: See TracChangeset for help on using the changeset viewer.