Changeset 9767 for NEMO/trunk/src/OCE/SBC/sbcblk.F90
- Timestamp:
- 2018-06-08T12:11:32+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/SBC/sbcblk.F90
r9752 r9767 719 719 ! Wind module relative to the moving ice ( U10m - U_ice ) ! 720 720 ! ------------------------------------------------------------ ! 721 SELECT CASE( cp_ice_msh ) 722 CASE( 'I' ) ! B-grid ice dynamics : I-point (i.e. F-point with sea-ice indexation) 723 ! and scalar wind at T-point ( = | U10m - U_ice | ) (masked) 724 DO jj = 2, jpjm1 725 DO ji = 2, jpim1 ! B grid : NO vector opt 726 ! ... scalar wind at T-point (fld being at T-point) 727 zwndi_t = sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.25 * ( u_ice(ji,jj+1) + u_ice(ji+1,jj+1) & 728 & + u_ice(ji,jj ) + u_ice(ji+1,jj ) ) 729 zwndj_t = sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.25 * ( v_ice(ji,jj+1) + v_ice(ji+1,jj+1) & 730 & + v_ice(ji,jj ) + v_ice(ji+1,jj ) ) 731 wndm_ice(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 732 END DO 721 ! C-grid ice dynamics : U & V-points (same as ocean) 722 DO jj = 2, jpjm1 723 DO ji = fs_2, fs_jpim1 ! vect. opt. 724 zwndi_t = ( sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( u_ice(ji-1,jj ) + u_ice(ji,jj) ) ) 725 zwndj_t = ( sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( v_ice(ji ,jj-1) + v_ice(ji,jj) ) ) 726 wndm_ice(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 733 727 END DO 734 CALL lbc_lnk( wndm_ice, 'T', 1. ) 735 ! 736 CASE( 'C' ) ! C-grid ice dynamics : U & V-points (same as ocean) 737 DO jj = 2, jpjm1 738 DO ji = fs_2, fs_jpim1 ! vect. opt. 739 zwndi_t = ( sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( u_ice(ji-1,jj ) + u_ice(ji,jj) ) ) 740 zwndj_t = ( sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( v_ice(ji ,jj-1) + v_ice(ji,jj) ) ) 741 wndm_ice(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 742 END DO 743 END DO 744 CALL lbc_lnk( wndm_ice, 'T', 1. ) 745 ! 746 END SELECT 747 728 END DO 729 CALL lbc_lnk( wndm_ice, 'T', 1. ) 730 ! 748 731 ! Make ice-atm. drag dependent on ice concentration 749 732 IF ( ln_Cd_L12 ) THEN ! calculate new drag from Lupkes(2012) equations … … 769 752 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 770 753 ! ------------------------------------------------------------ ! 771 SELECT CASE( cp_ice_msh ) 772 CASE( 'I' ) ! B-grid ice dynamics : I-point (i.e. F-point with sea-ice indexation) 773 DO jj = 2, jpjm1 774 DO ji = 2, jpim1 ! B grid : NO vector opt 775 ! ... scalar wind at I-point (fld being at T-point) 776 zwndi_f = 0.25 * ( sf(jp_wndi)%fnow(ji-1,jj ,1) + sf(jp_wndi)%fnow(ji ,jj ,1) & 777 & + sf(jp_wndi)%fnow(ji-1,jj-1,1) + sf(jp_wndi)%fnow(ji ,jj-1,1) ) - rn_vfac * u_ice(ji,jj) 778 zwndj_f = 0.25 * ( sf(jp_wndj)%fnow(ji-1,jj ,1) + sf(jp_wndj)%fnow(ji ,jj ,1) & 779 & + sf(jp_wndj)%fnow(ji-1,jj-1,1) + sf(jp_wndj)%fnow(ji ,jj-1,1) ) - rn_vfac * v_ice(ji,jj) 780 ! ... ice stress at I-point 781 zwnorm_f = zrhoa(ji,jj) * Cd_atm(ji,jj) * SQRT( zwndi_f * zwndi_f + zwndj_f * zwndj_f ) 782 utau_ice(ji,jj) = zwnorm_f * zwndi_f 783 vtau_ice(ji,jj) = zwnorm_f * zwndj_f 784 END DO 754 ! C-grid ice dynamics : U & V-points (same as ocean) 755 DO jj = 2, jpjm1 756 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) ) 785 761 END DO 786 CALL lbc_lnk_multi( utau_ice, 'I', -1., vtau_ice, 'I', -1. ) 787 ! 788 CASE( 'C' ) ! C-grid ice dynamics : U & V-points (same as ocean) 789 DO jj = 2, jpjm1 790 DO ji = fs_2, fs_jpim1 ! vect. opt. 791 utau_ice(ji,jj) = 0.5 * zrhoa(ji,jj) * Cd_atm(ji,jj) * ( wndm_ice(ji+1,jj ) + wndm_ice(ji,jj) ) & 792 & * ( 0.5 * (sf(jp_wndi)%fnow(ji+1,jj,1) + sf(jp_wndi)%fnow(ji,jj,1) ) - rn_vfac * u_ice(ji,jj) ) 793 vtau_ice(ji,jj) = 0.5 * zrhoa(ji,jj) * Cd_atm(ji,jj) * ( wndm_ice(ji,jj+1 ) + wndm_ice(ji,jj) ) & 794 & * ( 0.5 * (sf(jp_wndj)%fnow(ji,jj+1,1) + sf(jp_wndj)%fnow(ji,jj,1) ) - rn_vfac * v_ice(ji,jj) ) 795 END DO 796 END DO 797 CALL lbc_lnk_multi( utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 798 ! 799 END SELECT 762 END DO 763 CALL lbc_lnk_multi( utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 764 ! 800 765 ! 801 766 IF(ln_ctl) THEN
Note: See TracChangeset
for help on using the changeset viewer.