Changeset 10115 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
- Timestamp:
- 2018-09-12T15:59:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_eiv.F90
r7806 r10115 165 165 CALL iom_put( "voce_eiv", v_eiv ) ! j-eiv current 166 166 CALL iom_put( "woce_eiv", w_eiv ) ! vert. eiv current 167 ! 167 168 IF( iom_use('weiv_masstr') ) THEN ! vertical mass transport & its square value 168 z2d(:,:) = rau0 * e12t(:,:) 169 DO jk = 1, jpk 170 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 171 END DO 172 CALL iom_put( "weiv_masstr" , z3d ) 173 ENDIF 169 z2d(:,:) = rau0 * e12t(:,:) 170 DO jk = 1, jpk 171 z3d(:,:,jk) = w_eiv(:,:,jk) * z2d(:,:) 172 END DO 173 CALL iom_put( "weiv_masstr" , z3d ) 174 ENDIF 175 ! 174 176 IF( iom_use("ueiv_masstr") .OR. iom_use("ueiv_heattr") .OR. iom_use('ueiv_heattr3d') & 175 177 & .OR. iom_use("ueiv_salttr") .OR. iom_use('ueiv_salttr3d') ) THEN 176 178 z3d(:,:,jpk) = 0.e0 177 179 z2d(:,:) = 0.e0 … … 182 184 CALL iom_put( "ueiv_masstr", z3d ) ! mass transport in i-direction 183 185 ENDIF 184 186 ! 185 187 IF( iom_use('ueiv_heattr') .OR. iom_use('ueiv_heattr3d') ) THEN 186 188 zztmp = 0.5 * rcp … … 204 206 ENDIF 205 207 ENDIF 206 208 ! 207 209 IF( iom_use('ueiv_salttr') .OR. iom_use('ueiv_salttr3d') ) THEN 208 210 zztmp = 0.5 * 0.001 … … 226 228 ENDIF 227 229 ENDIF 228 230 ! 229 231 IF( iom_use("veiv_masstr") .OR. iom_use("veiv_heattr") .OR. iom_use('veiv_heattr3d') & 230 232 .OR. iom_use("veiv_salttr") .OR. iom_use('veiv_salttr3d') ) THEN … … 235 237 CALL iom_put( "veiv_masstr", z3d ) ! mass transport in j-direction 236 238 ENDIF 237 239 ! 238 240 IF( iom_use('veiv_heattr') .OR. iom_use('veiv_heattr3d') ) THEN 239 241 zztmp = 0.5 * rcp … … 257 259 ENDIF 258 260 ENDIF 259 261 ! 260 262 IF( iom_use('veiv_salttr') .OR. iom_use('veiv_salttr3d') ) THEN 261 263 zztmp = 0.5 * 0.001 … … 279 281 ENDIF 280 282 ENDIF 281 283 ! 282 284 IF( iom_use('weiv_masstr') .OR. iom_use('weiv_heattr3d') .OR. iom_use('weiv_salttr3d')) THEN ! vertical mass transport & its square value 283 285 z2d(:,:) = rau0 * e12t(:,:) … … 287 289 CALL iom_put( "weiv_masstr" , z3d ) ! mass transport in k-direction 288 290 ENDIF 289 291 ! 290 292 IF( iom_use('weiv_heattr3d') ) THEN 291 293 zztmp = 0.5 * rcp … … 300 302 CALL iom_put( "weiv_heattr3d", zztmp * z3d_T ) ! 3D heat transport in k-direction 301 303 ENDIF 302 304 ! 303 305 IF( iom_use('weiv_salttr3d') ) THEN 304 306 zztmp = 0.5 * 0.001 … … 313 315 CALL iom_put( "weiv_salttr3d", zztmp * z3d_T ) ! 3D salt transport in k-direction 314 316 ENDIF 315 316 END IF 317 ! 318 IF( ln_diaptr .AND. cdtype == 'TRA' ) THEN 319 z3d(:,:,:) = 0._wp 320 DO jk = 1, jpkm1 321 DO jj = 2, jpjm1 322 DO ji = fs_2, fs_jpim1 ! vector opt. 323 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 324 & * e1v(ji,jj) * fse3v(ji,jj,jk) 325 END DO 326 END DO 327 END DO 328 CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 329 z3d(:,:,:) = 0._wp 330 DO jk = 1, jpkm1 331 DO jj = 2, jpjm1 332 DO ji = fs_2, fs_jpim1 ! vector opt. 333 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 334 & * e1v(ji,jj) * fse3v(ji,jj,jk) 335 END DO 336 END DO 337 END DO 338 CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 339 ENDIF 340 341 IF( ln_KE_trd ) CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 317 ! 318 IF( ln_diaptr ) THEN 319 z3d(:,:,:) = 0._wp 320 DO jk = 1, jpkm1 321 DO jj = 2, jpjm1 322 DO ji = fs_2, fs_jpim1 ! vector opt. 323 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) & 324 & * e1v(ji,jj) * fse3v(ji,jj,jk) 325 END DO 326 END DO 327 END DO 328 CALL dia_ptr_ohst_components( jp_tem, 'eiv', z3d ) 329 z3d(:,:,:) = 0._wp 330 DO jk = 1, jpkm1 331 DO jj = 2, jpjm1 332 DO ji = fs_2, fs_jpim1 ! vector opt. 333 z3d(ji,jj,jk) = v_eiv(ji,jj,jk) * 0.5 * (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) & 334 & * e1v(ji,jj) * fse3v(ji,jj,jk) 335 END DO 336 END DO 337 END DO 338 CALL dia_ptr_ohst_components( jp_sal, 'eiv', z3d ) 339 ENDIF 340 ! 341 !!gm add CMIP6 diag here instead of been done in trdken.F90 342 ! 343 IF( iom_use('eketrd_eiv') ) THEN ! tendency of EKE from parameterized eddy advection 344 ! CMIP6 diagnostic tknebto = tendency of EKE from parameterized mesoscale eddy advection 345 ! = vertical_integral( k (N S)^2 ) rho dz where rho = rau0 and S = isoneutral slope. 346 z2d(:,:) = 0._wp 347 DO jk = 1, jpkm1 348 DO ji = 1, jpi 349 DO jj = 1,jpj 350 z2d(ji,jj) = z2d(ji,jj) + rau0 * fsaeiw(ji,jj,jk) & 351 & * rn2b(ji,jj,jk) * fse3w(ji,jj,jk) & 352 & * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 353 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) * wmask(ji,jj,jk) 354 END DO 355 END DO 356 END DO 357 CALL iom_put( "eketrd_eiv", z2d ) 358 ENDIF 359 ! 360 !!gm removed from trdken.F90 IF( ln_KE_trd ) CALL trd_dyn(u_eiv, v_eiv, jpdyn_eivke, kt ) 361 ! 362 ENDIF 342 363 # endif 343 364
Note: See TracChangeset
for help on using the changeset viewer.