Changeset 12926
- Timestamp:
- 2020-05-14T16:10:40+02:00 (5 years ago)
- Location:
- NEMO/releases/r4.0/r4.0-HEAD/src/OCE/SBC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/releases/r4.0/r4.0-HEAD/src/OCE/SBC/sbcblk.F90
r12901 r12926 706 706 REAL(wp) :: zwndi_f , zwndj_f, zwnorm_f ! relative wind module and components at F-point 707 707 REAL(wp) :: zwndi_t , zwndj_t ! relative wind components at T-point 708 REAL(wp) :: zztmp1 , zztmp2 ! temporary values 708 709 REAL(wp), DIMENSION(jpi,jpj) :: zrhoa ! transfer coefficient for momentum (tau) 709 710 !!--------------------------------------------------------------------- … … 744 745 zrhoa (:,:) = rho_air(sf(jp_tair)%fnow(:,:,1), sf(jp_humi)%fnow(:,:,1), sf(jp_slp)%fnow(:,:,1)) 745 746 746 !!gm brutal....747 utau_ice (:,:) = 0._wp748 vtau_ice (:,:) = 0._wp749 !!gm end750 751 747 ! ------------------------------------------------------------ ! 752 748 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 753 749 ! ------------------------------------------------------------ ! 754 ! C-grid ice dynamics : U & V-points (same as ocean) 755 DO jj = 2, jpjm1 750 zztmp1 = rn_vfac * 0.5_wp 751 DO jj = 2, jpj ! at T point 752 DO ji = 2, jpi 753 zztmp2 = zrhoa(ji,jj) * Cd_atm(ji,jj) * wndm_ice(ji,jj) 754 utau_ice(ji,jj) = zztmp2 * ( sf(jp_wndi)%fnow(ji,jj,1) - zztmp1 * ( u_ice(ji-1,jj ) + u_ice(ji,jj) ) ) 755 vtau_ice(ji,jj) = zztmp2 * ( sf(jp_wndj)%fnow(ji,jj,1) - zztmp1 * ( v_ice(ji ,jj-1) + v_ice(ji,jj) ) ) 756 END DO 757 END DO 758 ! 759 DO jj = 2, jpjm1 ! U & V-points (same as ocean). 756 760 DO ji = fs_2, fs_jpim1 ! vect. opt. 757 utau_ice(ji,jj) = 0.5 * zrhoa(ji,jj) * Cd_atm(ji,jj) * ( wndm_ice(ji+1,jj ) + wndm_ice(ji,jj) ) & 758 & * ( 0.5 * (sf(jp_wndi)%fnow(ji+1,jj,1) + sf(jp_wndi)%fnow(ji,jj,1) ) - rn_vfac * u_ice(ji,jj) ) 759 vtau_ice(ji,jj) = 0.5 * zrhoa(ji,jj) * Cd_atm(ji,jj) * ( wndm_ice(ji,jj+1 ) + wndm_ice(ji,jj) ) & 760 & * ( 0.5 * (sf(jp_wndj)%fnow(ji,jj+1,1) + sf(jp_wndj)%fnow(ji,jj,1) ) - rn_vfac * v_ice(ji,jj) ) 761 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 762 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 763 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 764 utau_ice(ji,jj) = zztmp1 * ( utau_ice(ji,jj) + utau_ice(ji+1,jj ) ) 765 vtau_ice(ji,jj) = zztmp2 * ( vtau_ice(ji,jj) + vtau_ice(ji ,jj+1) ) 761 766 END DO 762 767 END DO -
NEMO/releases/r4.0/r4.0-HEAD/src/OCE/SBC/sbccpl.F90
r12288 r12926 1482 1482 INTEGER :: ji, jj ! dummy loop indices 1483 1483 INTEGER :: itx ! index of taux over ice 1484 REAL(wp) :: zztmp1, zztmp2 1484 1485 REAL(wp), DIMENSION(jpi,jpj) :: ztx, zty 1485 1486 !!---------------------------------------------------------------------- … … 1545 1546 p_taui(:,:) = frcv(jpr_itx1)%z3(:,:,1) ! (U,V) ==> (U,V) 1546 1547 p_tauj(:,:) = frcv(jpr_ity1)%z3(:,:,1) 1547 CASE( 'F' )1548 DO jj = 2, jpjm1 ! F ==> (U,V)1549 DO ji = fs_2, fs_jpim1 ! vector opt.1550 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji,jj,1) + frcv(jpr_itx1)%z3(ji ,jj-1,1) )1551 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji,jj,1) + frcv(jpr_ity1)%z3(ji-1,jj ,1) )1552 END DO1553 END DO1554 1548 CASE( 'T' ) 1555 1549 DO jj = 2, jpjm1 ! T ==> (U,V) 1556 1550 DO ji = fs_2, fs_jpim1 ! vector opt. 1557 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 1558 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 1551 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 1552 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 1553 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 1554 p_taui(ji,jj) = zztmp1 * ( frcv(jpr_itx1)%z3(ji+1,jj ,1) + frcv(jpr_itx1)%z3(ji,jj,1) ) 1555 p_tauj(ji,jj) = zztmp2 * ( frcv(jpr_ity1)%z3(ji ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 1559 1556 END DO 1560 1557 END DO 1561 CASE( 'I' ) 1562 DO jj = 2, jpjm1 ! I ==> (U,V) 1563 DO ji = 2, jpim1 ! NO vector opt. 1564 p_taui(ji,jj) = 0.5 * ( frcv(jpr_itx1)%z3(ji+1,jj+1,1) + frcv(jpr_itx1)%z3(ji+1,jj ,1) ) 1565 p_tauj(ji,jj) = 0.5 * ( frcv(jpr_ity1)%z3(ji+1,jj+1,1) + frcv(jpr_ity1)%z3(ji ,jj+1,1) ) 1566 END DO 1567 END DO 1558 CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U', -1., p_tauj, 'V', -1. ) 1568 1559 END SELECT 1569 IF( srcv(jpr_itx1)%clgrid /= 'U' ) THEN1570 CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U', -1., p_tauj, 'V', -1. )1571 ENDIF1572 1560 1573 1561 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.