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 10966 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcdmp.F90 – NEMO

Ignore:
Timestamp:
2019-05-10T18:43:09+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TOP routines in TOP/TRP directory and all knock on effects of these conversions. SETTE tested (GYRE_PISCES only)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcdmp.F90

    r10963 r10966  
    6363 
    6464 
    65    SUBROUTINE trc_dmp( kt, Kmm, Krhs ) 
     65   SUBROUTINE trc_dmp( kt, Kbb, Kmm, Krhs ) 
    6666      !!---------------------------------------------------------------------- 
    6767      !!                   ***  ROUTINE trc_dmp  *** 
     
    7373      !! ** Method  :   Newtonian damping towards trdta computed  
    7474      !!      and add to the general tracer trends: 
    75       !!                     trn = tra + restotr * (trdta - trb) 
     75      !!                     tr(Kmm) = tr(Krhs) + restotr * (trdta - tr(Kbb)) 
    7676      !!         The trend is computed either throughout the water column 
    7777      !!      (nlmdmptr=0) or in area of weak vertical mixing (nlmdmptr=1) or 
    7878      !!      below the well mixed layer (nlmdmptr=2) 
    7979      !! 
    80       !! ** Action  : - update the tracer trends tra with the newtonian  
     80      !! ** Action  : - update the tracer trends tr(:,:,:,:,Krhs) with the newtonian  
    8181      !!                damping trends. 
    8282      !!              - save the trends ('key_trdmxl_trc') 
    8383      !!---------------------------------------------------------------------- 
    84       INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    85       INTEGER, INTENT(in) ::   Kmm, Krhs  ! time level indices 
     84      INTEGER, INTENT(in) ::   kt              ! ocean time-step index 
     85      INTEGER, INTENT(in) ::   Kbb, Kmm, Krhs  ! time level indices 
    8686      ! 
    8787      INTEGER ::   ji, jj, jk, jn, jl   ! dummy loop indices 
     
    101101         DO jn = 1, jptra                                           ! tracer loop 
    102102            !                                                       ! =========== 
    103             IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)    ! save trends  
     103            IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs)    ! save trends  
    104104            ! 
    105105            IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file 
     
    114114                     DO jj = 2, jpjm1 
    115115                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    116                            tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
     116                           tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - tr(ji,jj,jk,jn,Kbb) ) 
    117117                        END DO 
    118118                     END DO 
     
    124124                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    125125                           IF( avt(ji,jj,jk) <= avt_c )  THEN  
    126                               tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
     126                              tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - tr(ji,jj,jk,jn,Kbb) ) 
    127127                           ENDIF 
    128128                        END DO 
     
    134134                     DO jj = 2, jpjm1 
    135135                        DO ji = fs_2, fs_jpim1   ! vector opt. 
    136                            IF( gdept_n(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    137                               tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 
     136                           IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
     137                              tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - tr(ji,jj,jk,jn,Kbb) ) 
    138138                           END IF 
    139139                        END DO 
     
    146146            ! 
    147147            IF( l_trdtrc ) THEN 
    148                ztrtrd(:,:,:) = tra(:,:,:,jn) -  ztrtrd(:,:,:) 
     148               ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) -  ztrtrd(:,:,:) 
    149149               CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_dmp, ztrtrd ) 
    150150            END IF 
     
    160160         WRITE(charout, FMT="('dmp ')") 
    161161         CALL prt_ctl_trc_info(charout) 
    162          CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
     162         CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    163163      ENDIF 
    164164      ! 
     
    225225 
    226226 
    227    SUBROUTINE trc_dmp_clo( kt, Kmm ) 
     227   SUBROUTINE trc_dmp_clo( kt, Kbb, Kmm ) 
    228228      !!--------------------------------------------------------------------- 
    229229      !!                  ***  ROUTINE trc_dmp_clo  *** 
     
    237237      !!                nctsi2(), nctsj2() : north-east Closed sea limits (i,j) 
    238238      !!---------------------------------------------------------------------- 
    239       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    240       INTEGER, INTENT( in ) ::   Kmm     ! time level indices 
     239      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
     240      INTEGER, INTENT( in ) ::   Kbb, Kmm     ! time level indices 
    241241      ! 
    242242      INTEGER :: ji , jj, jk, jn, jl, jc                    ! dummy loop indicesa 
     
    361361                      DO jj = nctsj1(jc), nctsj2(jc) 
    362362                         DO ji = nctsi1(jc), nctsi2(jc) 
    363                             trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) 
    364                             trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 
     363                            tr(ji,jj,jk,jn,Kmm) = ztrcdta(ji,jj,jk) 
     364                            tr(ji,jj,jk,jn,Kbb) = tr(ji,jj,jk,jn,Kmm) 
    365365                         END DO 
    366366                      END DO 
Note: See TracChangeset for help on using the changeset viewer.