- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trasbc.F90
r12236 r12340 43 43 !! * Substitutions 44 44 # include "vectopt_loop_substitute.h90" 45 # include "do_loop_substitute.h90" 45 46 !!---------------------------------------------------------------------- 46 47 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 123 124 ENDIF 124 125 ! !== Now sbc tracer content fields ==! 125 DO jj = 2, jpj 126 DO ji = fs_2, fs_jpim1 ! vector opt. 127 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) ! non solar heat flux 128 sbc_tsc(ji,jj,jp_sal) = r1_rau0 * sfx(ji,jj) ! salt flux due to freezing/melting 129 END DO 130 END DO 126 DO_2D_01_00 127 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) ! non solar heat flux 128 sbc_tsc(ji,jj,jp_sal) = r1_rau0 * sfx(ji,jj) ! salt flux due to freezing/melting 129 END_2D 131 130 IF( ln_linssh ) THEN !* linear free surface 132 DO jj = 2, jpj !==>> add concentration/dilution effect due to constant volume cell 133 DO ji = fs_2, fs_jpim1 ! vector opt. 134 sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 135 sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 136 END DO 137 END DO !==>> output c./d. term 131 DO_2D_01_00 132 sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 133 sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rau0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 134 END_2D 138 135 IF( iom_use('emp_x_sst') ) CALL iom_put( "emp_x_sst", emp (:,:) * pts(:,:,1,jp_tem,Kmm) ) 139 136 IF( iom_use('emp_x_sss') ) CALL iom_put( "emp_x_sss", emp (:,:) * pts(:,:,1,jp_sal,Kmm) ) … … 141 138 ! 142 139 DO jn = 1, jpts !== update tracer trend ==! 143 DO jj = 2, jpj 144 DO ji = fs_2, fs_jpim1 ! vector opt. 145 pts(ji,jj,1,jn,Krhs) = pts(ji,jj,1,jn,Krhs) + zfact * ( sbc_tsc_b(ji,jj,jn) + sbc_tsc(ji,jj,jn) ) / e3t(ji,jj,1,Kmm) 146 END DO 147 END DO 140 DO_2D_01_00 141 pts(ji,jj,1,jn,Krhs) = pts(ji,jj,1,jn,Krhs) + zfact * ( sbc_tsc_b(ji,jj,jn) + sbc_tsc(ji,jj,jn) ) / e3t(ji,jj,1,Kmm) 142 END_2D 148 143 END DO 149 144 ! … … 161 156 IF( ln_rnf ) THEN ! input of heat and salt due to river runoff 162 157 zfact = 0.5_wp 163 DO jj = 2, jpj 164 DO ji = fs_2, fs_jpim1 165 IF( rnf(ji,jj) /= 0._wp ) THEN 166 zdep = zfact / h_rnf(ji,jj) 167 DO jk = 1, nk_rnf(ji,jj) 168 pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs) & 169 & + ( rnf_tsc_b(ji,jj,jp_tem) + rnf_tsc(ji,jj,jp_tem) ) * zdep 170 IF( ln_rnf_sal ) pts(ji,jj,jk,jp_sal,Krhs) = pts(ji,jj,jk,jp_sal,Krhs) & 171 & + ( rnf_tsc_b(ji,jj,jp_sal) + rnf_tsc(ji,jj,jp_sal) ) * zdep 172 END DO 173 ENDIF 174 END DO 175 END DO 158 DO_2D_01_00 159 IF( rnf(ji,jj) /= 0._wp ) THEN 160 zdep = zfact / h_rnf(ji,jj) 161 DO jk = 1, nk_rnf(ji,jj) 162 pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs) & 163 & + ( rnf_tsc_b(ji,jj,jp_tem) + rnf_tsc(ji,jj,jp_tem) ) * zdep 164 IF( ln_rnf_sal ) pts(ji,jj,jk,jp_sal,Krhs) = pts(ji,jj,jk,jp_sal,Krhs) & 165 & + ( rnf_tsc_b(ji,jj,jp_sal) + rnf_tsc(ji,jj,jp_sal) ) * zdep 166 END DO 167 ENDIF 168 END_2D 176 169 ENDIF 177 170 … … 188 181 ! 189 182 IF( ln_linssh ) THEN 190 DO jj = 2, jpj 191 DO ji = fs_2, fs_jpim1 192 ztim = ssh_iau(ji,jj) / e3t(ji,jj,1,Kmm) 193 pts(ji,jj,1,jp_tem,Krhs) = pts(ji,jj,1,jp_tem,Krhs) + pts(ji,jj,1,jp_tem,Kmm) * ztim 194 pts(ji,jj,1,jp_sal,Krhs) = pts(ji,jj,1,jp_sal,Krhs) + pts(ji,jj,1,jp_sal,Kmm) * ztim 195 END DO 196 END DO 183 DO_2D_01_00 184 ztim = ssh_iau(ji,jj) / e3t(ji,jj,1,Kmm) 185 pts(ji,jj,1,jp_tem,Krhs) = pts(ji,jj,1,jp_tem,Krhs) + pts(ji,jj,1,jp_tem,Kmm) * ztim 186 pts(ji,jj,1,jp_sal,Krhs) = pts(ji,jj,1,jp_sal,Krhs) + pts(ji,jj,1,jp_sal,Kmm) * ztim 187 END_2D 197 188 ELSE 198 DO jj = 2, jpj 199 DO ji = fs_2, fs_jpim1 200 ztim = ssh_iau(ji,jj) / ( ht(ji,jj) + 1. - ssmask(ji, jj) ) 201 pts(ji,jj,:,jp_tem,Krhs) = pts(ji,jj,:,jp_tem,Krhs) + pts(ji,jj,:,jp_tem,Kmm) * ztim 202 pts(ji,jj,:,jp_sal,Krhs) = pts(ji,jj,:,jp_sal,Krhs) + pts(ji,jj,:,jp_sal,Kmm) * ztim 203 END DO 204 END DO 189 DO_2D_01_00 190 ztim = ssh_iau(ji,jj) / ( ht(ji,jj) + 1. - ssmask(ji, jj) ) 191 pts(ji,jj,:,jp_tem,Krhs) = pts(ji,jj,:,jp_tem,Krhs) + pts(ji,jj,:,jp_tem,Kmm) * ztim 192 pts(ji,jj,:,jp_sal,Krhs) = pts(ji,jj,:,jp_sal,Krhs) + pts(ji,jj,:,jp_sal,Kmm) * ztim 193 END_2D 205 194 ENDIF 206 195 !
Note: See TracChangeset
for help on using the changeset viewer.