Changeset 10966 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcdmp.F90
- Timestamp:
- 2019-05-10T18:43:09+02:00 (5 years ago)
- 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 63 63 64 64 65 SUBROUTINE trc_dmp( kt, K mm, Krhs )65 SUBROUTINE trc_dmp( kt, Kbb, Kmm, Krhs ) 66 66 !!---------------------------------------------------------------------- 67 67 !! *** ROUTINE trc_dmp *** … … 73 73 !! ** Method : Newtonian damping towards trdta computed 74 74 !! and add to the general tracer trends: 75 !! tr n = tra + restotr * (trdta - trb)75 !! tr(Kmm) = tr(Krhs) + restotr * (trdta - tr(Kbb)) 76 76 !! The trend is computed either throughout the water column 77 77 !! (nlmdmptr=0) or in area of weak vertical mixing (nlmdmptr=1) or 78 78 !! below the well mixed layer (nlmdmptr=2) 79 79 !! 80 !! ** Action : - update the tracer trends tr awith the newtonian80 !! ** Action : - update the tracer trends tr(:,:,:,:,Krhs) with the newtonian 81 81 !! damping trends. 82 82 !! - save the trends ('key_trdmxl_trc') 83 83 !!---------------------------------------------------------------------- 84 INTEGER, INTENT(in) :: kt ! ocean time-step index85 INTEGER, INTENT(in) :: K mm, Krhs ! time level indices84 INTEGER, INTENT(in) :: kt ! ocean time-step index 85 INTEGER, INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 86 86 ! 87 87 INTEGER :: ji, jj, jk, jn, jl ! dummy loop indices … … 101 101 DO jn = 1, jptra ! tracer loop 102 102 ! ! =========== 103 IF( l_trdtrc ) ztrtrd(:,:,:) = tr a(:,:,:,jn) ! save trends103 IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) ! save trends 104 104 ! 105 105 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file … … 114 114 DO jj = 2, jpjm1 115 115 DO ji = fs_2, fs_jpim1 ! vector opt. 116 tr a(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) ) 117 117 END DO 118 118 END DO … … 124 124 DO ji = fs_2, fs_jpim1 ! vector opt. 125 125 IF( avt(ji,jj,jk) <= avt_c ) THEN 126 tr a(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) ) 127 127 ENDIF 128 128 END DO … … 134 134 DO jj = 2, jpjm1 135 135 DO ji = fs_2, fs_jpim1 ! vector opt. 136 IF( gdept _n(ji,jj,jk) >= hmlp (ji,jj) ) THEN137 tr a(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) ) 138 138 END IF 139 139 END DO … … 146 146 ! 147 147 IF( l_trdtrc ) THEN 148 ztrtrd(:,:,:) = tr a(:,:,:,jn) - ztrtrd(:,:,:)148 ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:) 149 149 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_dmp, ztrtrd ) 150 150 END IF … … 160 160 WRITE(charout, FMT="('dmp ')") 161 161 CALL prt_ctl_trc_info(charout) 162 CALL prt_ctl_trc( tab4d=tr a, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )162 CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 163 163 ENDIF 164 164 ! … … 225 225 226 226 227 SUBROUTINE trc_dmp_clo( kt, K mm )227 SUBROUTINE trc_dmp_clo( kt, Kbb, Kmm ) 228 228 !!--------------------------------------------------------------------- 229 229 !! *** ROUTINE trc_dmp_clo *** … … 237 237 !! nctsi2(), nctsj2() : north-east Closed sea limits (i,j) 238 238 !!---------------------------------------------------------------------- 239 INTEGER, INTENT( in ) :: kt ! ocean time-step index240 INTEGER, INTENT( in ) :: K mm ! time level indices239 INTEGER, INTENT( in ) :: kt ! ocean time-step index 240 INTEGER, INTENT( in ) :: Kbb, Kmm ! time level indices 241 241 ! 242 242 INTEGER :: ji , jj, jk, jn, jl, jc ! dummy loop indicesa … … 361 361 DO jj = nctsj1(jc), nctsj2(jc) 362 362 DO ji = nctsi1(jc), nctsi2(jc) 363 tr n(ji,jj,jk,jn) = ztrcdta(ji,jj,jk)364 tr b(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) 365 365 END DO 366 366 END DO
Note: See TracChangeset
for help on using the changeset viewer.