Changeset 5866 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
- Timestamp:
- 2015-11-06T11:42:35+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
r5845 r5866 240 240 snwice_mass_b(:,:) = 0.0_wp ! no mass exchanges 241 241 ENDIF 242 IF( .NOT. 242 IF( .NOT.ln_rstart ) THEN 243 243 IF( nn_ice_embd == 2 ) THEN ! full embedment (case 2) deplete the initial ssh below sea-ice area 244 244 sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 245 245 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 246 #if defined key_vvl 247 !!gm key_vvl necessary? clem: yes for compilation purpose 248 !!gm same remark as in limsbc 249 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 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)) ) 252 ENDDO 253 e3t_a(:,:,:) = e3t_b(:,:,:) 254 ! Reconstruction of all vertical scale factors at now and before time 255 ! steps 256 ! ============================================================================= 257 ! Horizontal scale factor interpolations 258 ! -------------------------------------- 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' ) 264 ! Vertical scale factor interpolations 265 ! ------------------------------------ 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' ) 271 ! t- and w- points depth 272 ! ---------------------- 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(:,:) 276 DO jk = 2, jpk 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 (:,:) 280 END DO 281 #endif 246 247 !!gm This should be put elsewhere.... (same remark for limsbc) 248 !!gm especially here it is assumed zstar coordinate, but it can be ztilde.... 249 IF( .NOT.ln_linssh ) THEN 250 ! 251 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 252 e3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 253 e3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 254 ENDDO 255 e3t_a(:,:,:) = e3t_b(:,:,:) 256 ! Reconstruction of all vertical scale factors at now and before time-steps 257 ! ============================================================================= 258 ! Horizontal scale factor interpolations 259 ! -------------------------------------- 260 CALL dom_vvl_interpol( e3t_b(:,:,:), e3u_b(:,:,:), 'U' ) 261 CALL dom_vvl_interpol( e3t_b(:,:,:), e3v_b(:,:,:), 'V' ) 262 CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 263 CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 264 CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 265 ! Vertical scale factor interpolations 266 ! ------------------------------------ 267 CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W' ) 268 CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 269 CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 270 CALL dom_vvl_interpol( e3u_b(:,:,:), e3uw_b(:,:,:), 'UW' ) 271 CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 272 ! t- and w- points depth 273 ! ---------------------- 274 gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 275 gdepw_n(:,:,1) = 0.0_wp 276 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 277 DO jk = 2, jpk 278 gdept_n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk) 279 gdepw_n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1) 280 gde3w_n(:,:,jk) = gdept_n(:,:,jk ) - sshn (:,:) 281 END DO 282 ENDIF 282 283 ENDIF 283 284 ENDIF 284 285 ! 285 286 CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 286 287 !
Note: See TracChangeset
for help on using the changeset viewer.