Changeset 1470
- Timestamp:
- 2009-06-11T15:01:25+02:00 (16 years ago)
- Location:
- trunk/NEMO
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_2/ice_2.F90
r1465 r1470 95 95 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: tauc !: Cloud optical depth 96 96 97 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u i_ice, vi_ice !: two components of the ice velocity at I-point (m/s)98 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u i_oce, vi_oce !: two components of the ocean velocity at I-point (m/s)97 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_ice, v_ice !: two components of the ice velocity at I-point (m/s) 98 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: u_oce, v_oce !: two components of the ocean velocity at I-point (m/s) 99 99 100 100 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpsmax) :: scal0 !: ??? -
trunk/NEMO/LIM_SRC_2/limdia_2.F90
r1465 r1470 107 107 zicevol = zarea * hicif(ji,jj) 108 108 zsnwvol = zarea * hsnif(ji,jj) 109 zicespd = zicevol * ( ui_ice(ji,jj) * ui_ice(ji,jj) & 110 & + vi_ice(ji,jj) * vi_ice(ji,jj) ) 109 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) ) 111 110 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 112 111 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 … … 133 132 zicevol = zarea * hicif(ji,jj) 134 133 zsnwvol = zarea * hsnif(ji,jj) 135 zicespd = zicevol * ( ui_ice(ji,jj) * ui_ice(ji,jj) & 136 & + vi_ice(ji,jj) * vi_ice(ji,jj) ) 134 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) ) 137 135 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 138 136 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 -
trunk/NEMO/LIM_SRC_2/limdyn_2.F90
r1465 r1470 144 144 ENDIF 145 145 146 IF(ln_ctl) CALL prt_ctl(tab2d_1=u i_ice , clinfo1=' lim_dyn : ui_ice :', tab2d_2=vi_ice , clinfo2=' vi_ice :')146 IF(ln_ctl) CALL prt_ctl(tab2d_1=u_ice , clinfo1=' lim_dyn : u_ice :', tab2d_2=v_ice , clinfo2=' v_ice :') 147 147 148 148 ! computation of friction velocity 149 149 ! -------------------------------- 150 ! ice-ocean velocity at U & V-points (u i_ice vi_ice at I-point ; ssu_m, ssv_m at U- & V-points)150 ! ice-ocean velocity at U & V-points (u_ice v_ice at I-point ; ssu_m, ssv_m at U- & V-points) 151 151 152 152 DO jj = 1, jpjm1 153 153 DO ji = 1, jpim1 ! NO vector opt. 154 zu_io(ji,jj) = 0.5 * ( u i_ice(ji+1,jj+1) + ui_ice(ji+1,jj ) ) - ssu_m(ji,jj)155 zv_io(ji,jj) = 0.5 * ( v i_ice(ji+1,jj+1) + vi_ice(ji ,jj+1) ) - ssv_m(ji,jj)154 zu_io(ji,jj) = 0.5 * ( u_ice(ji+1,jj+1) + u_ice(ji+1,jj ) ) - ssu_m(ji,jj) 155 zv_io(ji,jj) = 0.5 * ( v_ice(ji+1,jj+1) + v_ice(ji ,jj+1) ) - ssv_m(ji,jj) 156 156 END DO 157 157 END DO -
trunk/NEMO/LIM_SRC_2/limistate_2.F90
r1465 r1470 102 102 fsbbq (:,:) = 0.e0 103 103 qstoif(:,:) = 0.e0 104 u i_ice(:,:) = 0.e0105 v i_ice(:,:) = 0.e0104 u_ice (:,:) = 0.e0 105 v_ice (:,:) = 0.e0 106 106 # if defined key_coupled 107 107 albege(:,:) = 0.8 * tms(:,:) -
trunk/NEMO/LIM_SRC_2/limrhg_2.F90
r1469 r1470 54 54 !! viscous-plastic law including shear strength and a bulk rheology. 55 55 !! 56 !! ** Action : - compute u i_ice, vi_ice the sea-ice velocity defined56 !! ** Action : - compute u_ice, v_ice the sea-ice velocity defined 57 57 !! at I-point 58 58 !!------------------------------------------------------------------- … … 91 91 92 92 !!bug 93 !! u i_oce(:,:) = 0.e094 !! v i_oce(:,:) = 0.e095 !! write(*,*) 'rhg min, max u & v', maxval(u i_oce), minval(ui_oce), maxval(vi_oce), minval(vi_oce)93 !! u_oce(:,:) = 0.e0 94 !! v_oce(:,:) = 0.e0 95 !! write(*,*) 'rhg min, max u & v', maxval(u_oce), minval(u_oce), maxval(v_oce), minval(v_oce) 96 96 !!bug 97 97 … … 103 103 zu0(:,jpj+1) = 0.e0 ; zv0(:,jpj+1) = 0.e0 104 104 zztms(:,1:jpj) = tms(:,:) ; zzfrld(:,1:jpj) = frld(:,:) 105 zu0(:,1:jpj) = u i_ice(:,:) ; zv0(:,1:jpj) = vi_ice(:,:)105 zu0(:,1:jpj) = u_ice(:,:) ; zv0(:,1:jpj) = v_ice(:,:) 106 106 107 107 zu_a(:,:) = zu0(:,:) ; zv_a(:,:) = zv0(:,:) … … 195 195 ! Computation of the velocity field taking into account the ice-ice interaction. 196 196 ! Terms that are independent of the ice velocity field. 197 za1ct(ji,jj) = ztagnx - zcorl(ji,jj) * v i_oce(ji,jj) - zgphsx198 za2ct(ji,jj) = ztagny + zcorl(ji,jj) * u i_oce(ji,jj) - zgphsy197 za1ct(ji,jj) = ztagnx - zcorl(ji,jj) * v_oce(ji,jj) - zgphsx 198 za2ct(ji,jj) = ztagny + zcorl(ji,jj) * u_oce(ji,jj) - zgphsy 199 199 END DO 200 200 END DO … … 491 491 & + alambd(ji,jj,2,1,1,2) * zs12_12 + alambd(ji,jj,2,1,2,2) * zs12_22 492 492 493 zur = zu_a(ji,jj) - u i_oce(ji,jj)494 zvr = zv_a(ji,jj) - v i_oce(ji,jj)493 zur = zu_a(ji,jj) - u_oce(ji,jj) 494 zvr = zv_a(ji,jj) - v_oce(ji,jj) 495 495 !!!! 496 496 zmod = SQRT( zur*zur + zvr*zvr ) * ( 1.0 - zfrld(ji,jj) ) … … 504 504 505 505 za1 = zmassdt * zu0(ji,jj) + zcorlal * zv0(ji,jj) + za1ct(ji,jj) & 506 & + za * ( cangvg * u i_oce(ji,jj) - zsang(ji,jj) * vi_oce(ji,jj) )506 & + za * ( cangvg * u_oce(ji,jj) - zsang(ji,jj) * v_oce(ji,jj) ) 507 507 za2 = zmassdt * zv0(ji,jj) - zcorlal * zu0(ji,jj) + za2ct(ji,jj) & 508 & + za * ( cangvg * v i_oce(ji,jj) + zsang(ji,jj) * ui_oce(ji,jj) )508 & + za * ( cangvg * v_oce(ji,jj) + zsang(ji,jj) * u_oce(ji,jj) ) 509 509 zb1 = zmassdt + zac - zc1u(ji,jj) 510 510 zb2 = zmpzas - zc2u(ji,jj) … … 557 557 ! ! ==================== ! 558 558 559 u i_ice(:,:) = zu_a(:,1:jpj)560 v i_ice(:,:) = zv_a(:,1:jpj)559 u_ice(:,:) = zu_a(:,1:jpj) 560 v_ice(:,:) = zv_a(:,1:jpj) 561 561 562 562 IF(ln_ctl) THEN 563 563 WRITE(charout,FMT="('lim_rhg : res =',D23.16, ' iter =',I4)") zresm, jter 564 564 CALL prt_ctl_info(charout) 565 CALL prt_ctl(tab2d_1=u i_ice, clinfo1=' lim_rhg : ui_ice :', tab2d_2=vi_ice, clinfo2=' vi_ice :')565 CALL prt_ctl(tab2d_1=u_ice, clinfo1=' lim_rhg : u_ice :', tab2d_2=v_ice, clinfo2=' v_ice :') 566 566 ENDIF 567 567 -
trunk/NEMO/LIM_SRC_2/limrst_2.F90
r1229 r1470 118 118 CALL iom_rstput( iter, nitrst, numriw, 'tbif2' , tbif (:,:,2) ) 119 119 CALL iom_rstput( iter, nitrst, numriw, 'tbif3' , tbif (:,:,3) ) 120 CALL iom_rstput( iter, nitrst, numriw, 'u i_ice', ui_ice(:,:) )121 CALL iom_rstput( iter, nitrst, numriw, 'v i_ice', vi_ice(:,:) )120 CALL iom_rstput( iter, nitrst, numriw, 'u_ice' , u_ice (:,:) ) 121 CALL iom_rstput( iter, nitrst, numriw, 'v_ice' , v_ice (:,:) ) 122 122 CALL iom_rstput( iter, nitrst, numriw, 'qstoif', qstoif(:,:) ) 123 123 CALL iom_rstput( iter, nitrst, numriw, 'fsbbq' , fsbbq (:,:) ) … … 173 173 !!---------------------------------------------------------------------- 174 174 REAL(wp) :: ziter 175 INTEGER :: itest 175 176 !!---------------------------------------------------------------------- 176 177 … … 204 205 CALL iom_get( numrir, jpdom_autoglo, 'tbif2' , tbif(:,:,2) ) 205 206 CALL iom_get( numrir, jpdom_autoglo, 'tbif3' , tbif(:,:,3) ) 206 CALL iom_get( numrir, jpdom_autoglo, 'ui_ice', ui_ice ) 207 CALL iom_get( numrir, jpdom_autoglo, 'vi_ice', vi_ice ) 207 208 itest = iom_varid( numrir, 'u_ice', ldstop = .FALSE. ) ! test if the variable u_ice is included in the file 209 IF( itest > 0 ) THEN ! yes -> new restart files (from NEMO 3.2) 210 CALL iom_get( numrir, jpdom_autoglo, 'u_ice', u_ice ) 211 CALL iom_get( numrir, jpdom_autoglo, 'v_ice', v_ice ) 212 ELSE ! no -> old restart file with variable called [uv]i_ice (inroduced in NEMO 3.0) 213 CALL iom_get( numrir, jpdom_autoglo, 'ui_ice', u_ice ) 214 CALL iom_get( numrir, jpdom_autoglo, 'vi_ice', v_ice ) 215 ENDIF 216 208 217 CALL iom_get( numrir, jpdom_autoglo, 'qstoif', qstoif ) 209 218 CALL iom_get( numrir, jpdom_autoglo, 'fsbbq' , fsbbq ) -
trunk/NEMO/LIM_SRC_2/limsbc_2.F90
r1465 r1470 245 245 ! ... change the cosinus angle sign in the south hemisphere 246 246 zsang = SIGN(1.e0, gphif(ji,jj) ) * sangvg 247 ! ... ice velocity relative to the ocean 248 zu_io = u i_ice(ji,jj) - ui_oce(ji,jj)249 zv_io = v i_ice(ji,jj) - vi_oce(ji,jj)247 ! ... ice velocity relative to the ocean at I-point 248 zu_io = u_ice(ji,jj) - u_oce(ji,jj) 249 zv_io = v_ice(ji,jj) - v_oce(ji,jj) 250 250 zmod = rhoco * SQRT( zu_io * zu_io + zv_io * zv_io ) 251 251 ! ... ice stress over ocean with a ice-ocean rotation angle (at I-point) -
trunk/NEMO/LIM_SRC_2/limtrp_2.F90
r1465 r1470 110 110 DO jj = 1, jpjm1 111 111 DO ji = 1, jpim1 112 zui_u(ji,jj) = ( u i_ice(ji+1,jj ) + ui_ice(ji+1,jj+1) ) / ( MAX( tmu(ji+1,jj ) + tmu(ji+1,jj+1), zvbord ) )113 zvi_v(ji,jj) = ( v i_ice(ji ,jj+1) + vi_ice(ji+1,jj+1) ) / ( MAX( tmu(ji ,jj+1) + tmu(ji+1,jj+1), zvbord ) )112 zui_u(ji,jj) = ( u_ice(ji+1,jj ) + u_ice(ji+1,jj+1) ) / ( MAX( tmu(ji+1,jj ) + tmu(ji+1,jj+1), zvbord ) ) 113 zvi_v(ji,jj) = ( v_ice(ji ,jj+1) + v_ice(ji+1,jj+1) ) / ( MAX( tmu(ji ,jj+1) + tmu(ji+1,jj+1), zvbord ) ) 114 114 END DO 115 115 END DO -
trunk/NEMO/LIM_SRC_2/limwri_2.F90
r1469 r1470 141 141 zcmo(ji,jj,5) = sist (ji,jj) 142 142 zcmo(ji,jj,6) = fbif (ji,jj) 143 zcmo(ji,jj,7) = zindb * ( u i_ice(ji,jj ) * tmu(ji,jj ) + ui_ice(ji+1,jj ) * tmu(ji+1,jj ) &144 + u i_ice(ji,jj+1) * tmu(ji,jj+1) + ui_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &143 zcmo(ji,jj,7) = zindb * ( u_ice(ji,jj ) * tmu(ji,jj ) + u_ice(ji+1,jj ) * tmu(ji+1,jj ) & 144 + u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 145 145 / ztmu 146 146 147 zcmo(ji,jj,8) = zindb * ( v i_ice(ji,jj ) * tmu(ji,jj ) + vi_ice(ji+1,jj ) * tmu(ji+1,jj ) &148 + v i_ice(ji,jj+1) * tmu(ji,jj+1) + vi_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &147 zcmo(ji,jj,8) = zindb * ( v_ice(ji,jj ) * tmu(ji,jj ) + v_ice(ji+1,jj ) * tmu(ji+1,jj ) & 148 + v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 149 149 / ztmu 150 150 zcmo(ji,jj,9) = sst_m(ji,jj) -
trunk/NEMO/LIM_SRC_2/limwri_dimg_2.h90
r1469 r1470 106 106 zcmo(ji,jj,5) = sist (ji,jj) 107 107 zcmo(ji,jj,6) = fbif (ji,jj) 108 zcmo(ji,jj,7) = zindb * ( u i_ice(ji,jj ) * tmu(ji,jj ) + ui_ice(ji+1,jj ) * tmu(ji+1,jj ) &109 & + u i_ice(ji,jj+1) * tmu(ji,jj+1) + ui_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &108 zcmo(ji,jj,7) = zindb * ( u_ice(ji,jj ) * tmu(ji,jj ) + u_ice(ji+1,jj ) * tmu(ji+1,jj ) & 109 & + u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 110 110 / ztmu 111 111 112 zcmo(ji,jj,8) = zindb * ( v i_ice(ji,jj ) * tmu(ji,jj ) + vi_ice(ji+1,jj ) * tmu(ji+1,jj ) &113 & + v i_ice(ji,jj+1) * tmu(ji,jj+1) + vi_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &112 zcmo(ji,jj,8) = zindb * ( v_ice(ji,jj ) * tmu(ji,jj ) + v_ice(ji+1,jj ) * tmu(ji+1,jj ) & 113 & + v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 114 114 / ztmu 115 115 zcmo(ji,jj,9) = sst_m(ji,jj) … … 149 149 rcmoy(ji,jj,5) = sist (ji,jj) 150 150 rcmoy(ji,jj,6) = fbif (ji,jj) 151 rcmoy(ji,jj,7) = zindb * ( u i_ice(ji,jj ) * tmu(ji,jj ) + ui_ice(ji+1,jj ) * tmu(ji+1,jj ) &152 & + u i_ice(ji,jj+1) * tmu(ji,jj+1) + ui_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &151 rcmoy(ji,jj,7) = zindb * ( u_ice(ji,jj ) * tmu(ji,jj ) + u_ice(ji+1,jj ) * tmu(ji+1,jj ) & 152 & + u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 153 153 / ztmu 154 154 155 rcmoy(ji,jj,8) = zindb * ( v i_ice(ji,jj ) * tmu(ji,jj ) + vi_ice(ji+1,jj ) * tmu(ji+1,jj ) &156 & + v i_ice(ji,jj+1) * tmu(ji,jj+1) + vi_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &155 rcmoy(ji,jj,8) = zindb * ( v_ice(ji,jj ) * tmu(ji,jj ) + v_ice(ji+1,jj ) * tmu(ji+1,jj ) & 156 & + v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 157 157 / ztmu 158 158 rcmoy(ji,jj,9) = sst_m(ji,jj) -
trunk/NEMO/LIM_SRC_3/limdyn.F90
r1465 r1470 154 154 ! computation of friction velocity 155 155 ! -------------------------------- 156 ! ice-ocean velocity at U & V-points (u_ice v i_ice at U- & V-points ; ssu_m, ssv_m at U- & V-points)156 ! ice-ocean velocity at U & V-points (u_ice v_ice at U- & V-points ; ssu_m, ssv_m at U- & V-points) 157 157 zu_io(:,:) = u_ice(:,:) - ssu_m(:,:) 158 158 zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) -
trunk/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90
r1469 r1470 108 108 ! 109 109 ! ... mean surface ocean current at ice dynamics point 110 ! B-grid dynamics : I-point (F-point with sea-ice indexation)110 ! B-grid dynamics : I-point 111 111 DO jj = 2, jpj 112 112 DO ji = 2, jpi ! B grid : no vector opt. 113 u i_oce(ji,jj) = 0.5 * ( ssu_m(ji-1,jj ) + ssu_m(ji-1,jj-1) ) * tmu(ji,jj)114 v i_oce(ji,jj) = 0.5 * ( ssv_m(ji ,jj-1) + ssv_m(ji-1,jj-1) ) * tmu(ji,jj)113 u_oce(ji,jj) = 0.5 * ( ssu_m(ji-1,jj ) + ssu_m(ji-1,jj-1) ) * tmu(ji,jj) 114 v_oce(ji,jj) = 0.5 * ( ssv_m(ji ,jj-1) + ssv_m(ji-1,jj-1) ) * tmu(ji,jj) 115 115 END DO 116 116 END DO 117 CALL lbc_lnk( u i_oce, 'I', -1. ) ! I-point (i.e. F-point with ice indices)118 CALL lbc_lnk( v i_oce, 'I', -1. ) ! I-point (i.e. F-point with ice indices)117 CALL lbc_lnk( u_oce, 'I', -1. ) ! I-point (i.e. F-point with ice indices) 118 CALL lbc_lnk( v_oce, 'I', -1. ) ! I-point (i.e. F-point with ice indices) 119 119 120 120 ! ... masked sea surface freezing temperature [Kelvin] (set to rt0 over land) … … 148 148 149 149 CASE( 4 ) ! CORE bulk formulation 150 CALL blk_ice_core( zsist, u i_ice , vi_ice, zalb_ice_cs, &150 CALL blk_ice_core( zsist, u_ice , v_ice , zalb_ice_cs, & 151 151 & utau_ice , vtau_ice , qns_ice , qsr_ice, & 152 152 & qla_ice , dqns_ice , dqla_ice , & … … 162 162 CALL prt_ctl( tab2d_1=utau_ice,clinfo1=' sbc_ice_lim: utau_ice: ', tab2d_2=vtau_ice, clinfo2=' vtau_ice: ' ) 163 163 CALL prt_ctl( tab2d_1=sst_m ,clinfo1=' sbc_ice_lim: sst : ', tab2d_2=sss_m , clinfo2=' sss : ' ) 164 CALL prt_ctl( tab2d_1=u i_oce ,clinfo1=' sbc_ice_lim: u_io : ', tab2d_2=vi_oce, clinfo2=' v_io : ' )164 CALL prt_ctl( tab2d_1=u_oce ,clinfo1=' sbc_ice_lim: u_io : ', tab2d_2=v_oce , clinfo2=' v_io : ' ) 165 165 CALL prt_ctl( tab2d_1=hsnif ,clinfo1=' sbc_ice_lim: hsnif 1: ', tab2d_2=hicif , clinfo2=' hicif : ' ) 166 166 CALL prt_ctl( tab2d_1=frld ,clinfo1=' sbc_ice_lim: frld 1: ', tab2d_2=sist , clinfo2=' sist : ' )
Note: See TracChangeset
for help on using the changeset viewer.