Changeset 10985 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcsbc.F90
- Timestamp:
- 2019-05-15T21:19:35+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/trcsbc.F90
r10966 r10985 37 37 CONTAINS 38 38 39 SUBROUTINE trc_sbc ( kt, Kmm, Krhs )39 SUBROUTINE trc_sbc ( kt, Kmm, ptr, Krhs ) 40 40 !!---------------------------------------------------------------------- 41 41 !! *** ROUTINE trc_sbc *** … … 58 58 !! 59 59 !!---------------------------------------------------------------------- 60 INTEGER, INTENT(in) :: kt ! ocean time-step index 61 INTEGER, INTENT(in) :: Kmm, Krhs ! time level indices 60 INTEGER, INTENT(in ) :: kt ! ocean time-step index 61 INTEGER, INTENT(in ) :: Kmm, Krhs ! time level indices 62 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 62 63 ! 63 64 INTEGER :: ji, jj, jn ! dummy loop indices … … 119 120 DO jj = 2, jpj 120 121 DO ji = fs_2, fs_jpim1 ! vector opt. 121 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * tr(ji,jj,1,jn,Kmm)122 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 122 123 END DO 123 124 END DO … … 138 139 ztfx = zftra ! net tracer flux 139 140 ! 140 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * tr(ji,jj,1,jn,Kmm) )141 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * ptr(ji,jj,1,jn,Kmm) ) 141 142 IF ( zdtra < 0. ) THEN 142 zratio = -zdtra * zse3t * r2dttrc / ( tr(ji,jj,1,jn,Kmm) + zrtrn )143 zratio = -zdtra * zse3t * r2dttrc / ( ptr(ji,jj,1,jn,Kmm) + zrtrn ) 143 144 zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 144 145 ENDIF … … 153 154 DO jn = 1, jptra 154 155 ! 155 IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) ! save trends156 IF( l_trdtrc ) ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) ! save trends 156 157 ! 157 158 DO jj = 2, jpj 158 159 DO ji = fs_2, fs_jpim1 ! vector opt. 159 160 zse3t = zfact / e3t(ji,jj,1,Kmm) 160 tr(ji,jj,1,jn,Krhs) =tr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t161 ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 161 162 END DO 162 163 END DO 163 164 ! 164 165 IF( l_trdtrc ) THEN 165 ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:)166 ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) - ztrtrd(:,:,:) 166 167 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_nsr, ztrtrd ) 167 168 END IF … … 184 185 IF( ln_ctl ) THEN 185 186 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) 186 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )187 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 187 188 ENDIF 188 189 IF( l_trdtrc ) DEALLOCATE( ztrtrd ) … … 197 198 !!---------------------------------------------------------------------- 198 199 CONTAINS 199 SUBROUTINE trc_sbc (kt) ! Empty routine 200 INTEGER, INTENT(in) :: kt 200 SUBROUTINE trc_sbc ( kt, Kmm, ptr, Krhs ) ! Empty routine 201 INTEGER, INTENT(in ) :: kt ! ocean time-step index 202 INTEGER, INTENT(in ) :: Kmm, Krhs ! time level indices 203 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 201 204 WRITE(*,*) 'trc_sbc: You should not have seen this print! error?', kt 202 205 END SUBROUTINE trc_sbc
Note: See TracChangeset
for help on using the changeset viewer.