- Timestamp:
- 2020-01-27T15:31:53+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcsbc.F90
r12236 r12340 30 30 !! * Substitutions 31 31 # include "vectopt_loop_substitute.h90" 32 # include "do_loop_substitute.h90" 32 33 !!---------------------------------------------------------------------- 33 34 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 120 121 ! 121 122 DO jn = 1, jptra 122 DO jj = 2, jpj 123 DO ji = fs_2, fs_jpim1 ! vector opt. 124 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 125 END DO 126 END DO 123 DO_2D_01_00 124 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 125 END_2D 127 126 END DO 128 127 ! … … 130 129 ! 131 130 DO jn = 1, jptra 132 DO jj = 2, jpj 133 DO ji = fs_2, fs_jpim1 ! vector opt. 134 sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 135 END DO 136 END DO 131 DO_2D_01_00 132 sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 133 END_2D 137 134 END DO 138 135 ! … … 140 137 ! 141 138 DO jn = 1, jptra 142 DO jj = 2, jpj 143 DO ji = fs_2, fs_jpim1 ! vector opt. 144 zse3t = 1. / e3t(ji,jj,1,Kmm) 145 ! tracer flux at the ice/ocean interface (tracer/m2/s) 146 zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice 147 ! ! only used in the levitating sea ice case 148 ! tracer flux only : add concentration dilution term in net tracer flux, no F-M in volume flux 149 ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 150 ztfx = zftra ! net tracer flux 151 ! 152 zdtra = r1_rau0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) ) 153 IF ( zdtra < 0. ) THEN 154 zdtra = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / r2dttrc ) ! avoid negative concentrations to arise 155 ENDIF 156 sbc_trc(ji,jj,jn) = zdtra 157 END DO 158 END DO 139 DO_2D_01_00 140 zse3t = 1. / e3t(ji,jj,1,Kmm) 141 ! tracer flux at the ice/ocean interface (tracer/m2/s) 142 zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice 143 ! ! only used in the levitating sea ice case 144 ! tracer flux only : add concentration dilution term in net tracer flux, no F-M in volume flux 145 ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 146 ztfx = zftra ! net tracer flux 147 ! 148 zdtra = r1_rau0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) ) 149 IF ( zdtra < 0. ) THEN 150 zdtra = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / r2dttrc ) ! avoid negative concentrations to arise 151 ENDIF 152 sbc_trc(ji,jj,jn) = zdtra 153 END_2D 159 154 END DO 160 155 END SELECT … … 166 161 IF( l_trdtrc ) ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) ! save trends 167 162 ! 168 DO jj = 2, jpj 169 DO ji = fs_2, fs_jpim1 ! vector opt. 170 zse3t = zfact / e3t(ji,jj,1,Kmm) 171 ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 172 END DO 173 END DO 163 DO_2D_01_00 164 zse3t = zfact / e3t(ji,jj,1,Kmm) 165 ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 166 END_2D 174 167 ! 175 168 IF( l_trdtrc ) THEN
Note: See TracChangeset
for help on using the changeset viewer.