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