Changeset 1467 for trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
- Timestamp:
- 2009-06-11T10:21:57+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
r1466 r1467 731 731 ! j+1 j -----V---F 732 732 ! ice stress on ice velocity point (cigr_type) ! | 733 ! (C-grid ==>(U,V) or B-grid ==> I )j | T U733 ! (C-grid ==>(U,V) or B-grid ==> I or F) j | T U 734 734 ! | | 735 735 ! j j-1 -I-------| … … 739 739 SELECT CASE ( cigr_type ) 740 740 ! 741 CASE( ' B' ) ! B-grid ==> I741 CASE( 'I' ) ! B-grid ==> I 742 742 SELECT CASE ( srcv(jpr_itx1)%clgrid ) 743 743 CASE( 'U' ) … … 770 770 IF( srcv(jpr_itx1)%clgrid /= 'I' ) THEN 771 771 CALL lbc_lnk( p_taui, 'I', -1. ) ; CALL lbc_lnk( p_tauj, 'I', -1. ) 772 ENDIF 773 ! 774 CASE( 'F' ) ! B-grid ==> F 775 SELECT CASE ( srcv(jpr_itx1)%clgrid ) 776 CASE( 'U' ) 777 DO jj = 2, jpjm1 ! (U,V) ==> F 778 DO ji = fs_2, fs_jpim1 ! vector opt. 779 p_taui(ji,jj) = 0.5 * ( frcv(ji,jj,jpr_itx1) + frcv(ji ,jj+1,jpr_itx1) ) 780 p_tauj(ji,jj) = 0.5 * ( frcv(ji,jj,jpr_ity1) + frcv(ji+1,jj ,jpr_ity1) ) 781 END DO 782 END DO 783 CASE( 'I' ) 784 DO jj = 2, jpjm1 ! I ==> F 785 DO ji = fs_2, fs_jpim1 ! vector opt. 786 p_taui(ji,jj) = frcv(ji+1,jj+1,jpr_itx1) 787 p_tauj(ji,jj) = frcv(ji+1,jj+1,jpr_ity1) 788 END DO 789 END DO 790 CASE( 'T' ) 791 DO jj = 2, jpjm1 ! T ==> F 792 DO ji = fs_2, fs_jpim1 ! vector opt. 793 p_taui(ji,jj) = 0.25 * ( frcv(ji,jj ,jpr_itx1) + frcv(ji+1,jj ,jpr_itx1) & 794 & + frcv(ji,jj+1,jpr_itx1) + frcv(ji+1,jj+1,jpr_itx1) ) 795 p_tauj(ji,jj) = 0.25 * ( frcv(ji,jj ,jpr_ity1) + frcv(ji+1,jj ,jpr_ity1) & 796 & + frcv(ji,jj+1,jpr_ity1) + frcv(ji+1,jj+1,jpr_ity1) ) 797 END DO 798 END DO 799 CASE( 'F' ) 800 p_taui(:,:) = frcv(:,:,jpr_itx1) ! F ==> F 801 p_tauj(:,:) = frcv(:,:,jpr_ity1) 802 END SELECT 803 IF( srcv(jpr_itx1)%clgrid /= 'F' ) THEN 804 CALL lbc_lnk( p_taui, 'F', -1. ) ; CALL lbc_lnk( p_tauj, 'F', -1. ) 772 805 ENDIF 773 806 ! … … 1037 1070 IF( ssnd(jps_ocx1)%laction ) THEN ! Surface current ! 1038 1071 ! ! ------------------------- ! 1072 ! 1073 ! j+1 j -----V---F 1074 ! surfacz velocity always sent from T point ! | 1075 ! j | T U 1076 ! | | 1077 ! j j-1 -I-------| 1078 ! (for I) | | 1079 ! i-1 i i 1080 ! i i+1 (for I) 1039 1081 SELECT CASE( TRIM( cn_snd_crt(1) ) ) 1040 CASE( 'oce only' ) 1082 CASE( 'oce only' ) ! C-grid ==> T 1041 1083 DO jj = 2, jpjm1 1042 1084 DO ji = fs_2, fs_jpim1 ! vector opt. … … 1046 1088 END DO 1047 1089 CASE( 'weighted oce and ice' ) 1048 IF( cigr_type == 'C' ) THEN ! 'C'-grid ice velocity 1090 SELECT CASE ( cigr_type ) 1091 CASE( 'C' ) ! Ocean and Ice on C-grid ==> T 1049 1092 DO jj = 2, jpjm1 1050 1093 DO ji = fs_2, fs_jpim1 ! vector opt. … … 1055 1098 END DO 1056 1099 END DO 1057 ELSE ! 'B'-grid ice velocity1100 CASE( 'I' ) ! Ocean on C grid, Ice on I-point (B-grid) ==> T 1058 1101 DO jj = 2, jpjm1 1059 1102 DO ji = fs_2, fs_jpim1 ! vector opt. … … 1066 1109 END DO 1067 1110 END DO 1068 ENDIF 1111 CASE( 'F' ) ! Ocean on C grid, Ice on F-point (B-grid) ==> T 1112 DO jj = 2, jpjm1 1113 DO ji = fs_2, fs_jpim1 ! vector opt. 1114 zotx1(ji,jj) = 0.5 * ( un(ji,jj,1) + un(ji-1,jj-1,1) ) * zfr_l(ji,jj) 1115 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + vn(ji ,jj-1,1) ) * zfr_l(ji,jj) 1116 zitx1(ji,jj) = 0.25 * ( utaui_ice(ji-1,jj-1) + utaui_ice(ji,jj-1) & 1117 & + utaui_ice(ji-1,jj ) + utaui_ice(ji,jj ) ) * fr_i(ji,jj) 1118 zity1(ji,jj) = 0.25 * ( vtaui_ice(ji-1,jj-1) + vtaui_ice(ji,jj-1) & 1119 & + vtaui_ice(ji-1,jj ) + vtaui_ice(ji,jj ) ) * fr_i(ji,jj) 1120 END DO 1121 END DO 1122 END SELECT 1069 1123 CALL lbc_lnk( zitx1, 'T', -1. ) ; CALL lbc_lnk( zity1, 'T', -1. ) 1070 1124 CASE( 'mixed oce-ice' ) 1071 IF( cigr_type == 'C' ) THEN ! 'C'-grid ice velocity 1125 SELECT CASE ( cigr_type ) 1126 CASE( 'C' ) ! Ocean and Ice on C-grid ==> T 1072 1127 DO jj = 2, jpjm1 1073 1128 DO ji = fs_2, fs_jpim1 ! vector opt. … … 1078 1133 END DO 1079 1134 END DO 1080 ELSE ! 'B'-grid ice velocity1135 CASE( 'I' ) ! Ocean on C grid, Ice on I-point (B-grid) ==> T 1081 1136 DO jj = 2, jpjm1 1082 1137 DO ji = fs_2, fs_jpim1 ! vector opt. … … 1089 1144 END DO 1090 1145 END DO 1091 ENDIF 1146 CASE( 'F' ) ! Ocean on C grid, Ice on F-point (B-grid) ==> T 1147 DO jj = 2, jpjm1 1148 DO ji = fs_2, fs_jpim1 ! vector opt. 1149 zotx1(ji,jj) = 0.5 * ( un(ji,jj,1) + un(ji-1,jj-1,1) ) * zfr_l(ji,jj) & 1150 & + 0.25 * ( utaui_ice(ji-1,jj-1) + utaui_ice(ji,jj-1) & 1151 & + utaui_ice(ji-1,jj ) + utaui_ice(ji,jj ) ) * fr_i(ji,jj) 1152 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + vn(ji ,jj-1,1) ) * zfr_l(ji,jj) & 1153 & + 0.25 * ( vtaui_ice(ji-1,jj-1) + vtaui_ice(ji,jj-1) & 1154 & + vtaui_ice(ji-1,jj ) + vtaui_ice(ji,jj ) ) * fr_i(ji,jj) 1155 END DO 1156 END DO 1157 END SELECT 1092 1158 END SELECT 1093 1159 CALL lbc_lnk( zotx1, 'T', -1. ) ; CALL lbc_lnk( zoty1, 'T', -1. )
Note: See TracChangeset
for help on using the changeset viewer.