Changeset 5845 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
- Timestamp:
- 2015-10-31T08:40:45+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r5836 r5845 9 9 !!---------------------------------------------------------------------- 10 10 !! sbc_ice_cice : sea-ice model time-stepping and update ocean sbc over ice-covered area 11 !!12 !!13 11 !!---------------------------------------------------------------------- 14 12 USE oce ! ocean dynamics and tracers … … 92 90 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:), PRIVATE :: png ! local array used in sbc_cice_ice 93 91 94 !! * Substitutions95 # include "domzgr_substitute.h90"96 92 !!---------------------------------------------------------------------- 97 93 !! NEMO/OPA 3.7 , NEMO-consortium (2015) … … 249 245 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 250 246 #if defined key_vvl 251 ! key_vvl necessary? clem: yes for compilation purpose 247 !!gm key_vvl necessary? clem: yes for compilation purpose 248 !!gm same remark as in limsbc 252 249 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 253 fse3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) )254 fse3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) )250 e3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 251 e3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 255 252 ENDDO 256 fse3t_a(:,:,:) = fse3t_b(:,:,:)253 e3t_a(:,:,:) = e3t_b(:,:,:) 257 254 ! Reconstruction of all vertical scale factors at now and before time 258 255 ! steps … … 260 257 ! Horizontal scale factor interpolations 261 258 ! -------------------------------------- 262 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3u_b(:,:,:), 'U' )263 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3v_b(:,:,:), 'V' )264 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3u_n(:,:,:), 'U' )265 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' )266 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' )259 CALL dom_vvl_interpol( e3t_b(:,:,:), e3u_b(:,:,:), 'U' ) 260 CALL dom_vvl_interpol( e3t_b(:,:,:), e3v_b(:,:,:), 'V' ) 261 CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 262 CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 263 CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 267 264 ! Vertical scale factor interpolations 268 265 ! ------------------------------------ 269 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n (:,:,:), 'W' )270 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' )271 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' )272 CALL dom_vvl_interpol( fse3u_b(:,:,:), fse3uw_b(:,:,:), 'UW' )273 CALL dom_vvl_interpol( fse3v_b(:,:,:), fse3vw_b(:,:,:), 'VW' )266 CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W' ) 267 CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 268 CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 269 CALL dom_vvl_interpol( e3u_b(:,:,:), e3uw_b(:,:,:), 'UW' ) 270 CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 274 271 ! t- and w- points depth 275 272 ! ---------------------- 276 fsdept_n(:,:,1) = 0.5_wp * fse3w_n(:,:,1)277 fsdepw_n(:,:,1) = 0.0_wp278 fsde3w_n(:,:,1) = fsdept_n(:,:,1) - sshn(:,:)273 gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 274 gdepw_n(:,:,1) = 0.0_wp 275 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 279 276 DO jk = 2, jpk 280 fsdept_n(:,:,jk) = fsdept_n(:,:,jk-1) + fse3w_n(:,:,jk)281 fsdepw_n(:,:,jk) = fsdepw_n(:,:,jk-1) + fse3t_n(:,:,jk-1)282 fsde3w_n(:,:,jk) = fsdept_n(:,:,jk ) - sshn (:,:)277 gdept_n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk) 278 gdepw_n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1) 279 gde3w_n(:,:,jk) = gdept_n(:,:,jk ) - sshn (:,:) 283 280 END DO 284 281 #endif … … 448 445 ! Freezing/melting potential 449 446 ! Calculated over NEMO leapfrog timestep (hence 2*dt) 450 nfrzmlt(:,:) =rau0*rcp*fse3t_m(:,:)*(Tocnfrz-sst_m(:,:))/(2.0*dt)447 nfrzmlt(:,:) = rau0 * rcp * e3t_m(:,:) * ( Tocnfrz-sst_m(:,:) ) / ( 2.0*dt ) 451 448 452 449 ztmp(:,:) = nfrzmlt(:,:)
Note: See TracChangeset
for help on using the changeset viewer.