Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nemo/nemo
  • sparonuz/nemo
  • hatfield/nemo
  • extdevs/nemo
4 results
Show changes
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
iis = Nis0 ; iie = Nie0 iis = Nis0 ; iie = Nie0
ijs = Njs0 ; ije = Nje0 ijs = Njs0 ; ije = Nje0
ELSE ELSE
iis = 1 ; iie = jpi iis = 1 ; iie = ipi
ijs = 1 ; ije = jpj ijs = 1 ; ije = ipj
ENDIF ENDIF
! !
ctmp = CMPLX( 0.e0, 0.e0, dp ) ! warning ctmp is cumulated ctmp = CMPLX( 0.e0, 0.e0, dp ) ! warning ctmp is cumulated
......
...@@ -151,14 +151,14 @@ CONTAINS ...@@ -151,14 +151,14 @@ CONTAINS
! !* wind forcing *! ! !* wind forcing *!
IF( ln_bt_fw ) THEN IF( ln_bt_fw ) THEN
DO_2D( 0, 0, 0, 0 ) DO_2D( 0, 0, 0, 0 )
Ue_rhs(ji,jj) = Ue_rhs(ji,jj) + r1_rho0 * utau(ji,jj) * r1_hu(ji,jj,Kbb) Ue_rhs(ji,jj) = Ue_rhs(ji,jj) + r1_rho0 * utauU(ji,jj) * r1_hu(ji,jj,Kbb)
Ve_rhs(ji,jj) = Ve_rhs(ji,jj) + r1_rho0 * vtau(ji,jj) * r1_hv(ji,jj,Kbb) Ve_rhs(ji,jj) = Ve_rhs(ji,jj) + r1_rho0 * vtauV(ji,jj) * r1_hv(ji,jj,Kbb)
END_2D END_2D
ELSE ELSE
zztmp = r1_rho0 * r1_2 zztmp = r1_rho0 * r1_2
DO_2D( 0, 0, 0, 0 ) DO_2D( 0, 0, 0, 0 )
Ue_rhs(ji,jj) = Ue_rhs(ji,jj) + zztmp * ( utau_b(ji,jj) + utau(ji,jj) ) * r1_hu(ji,jj,Kbb) Ue_rhs(ji,jj) = Ue_rhs(ji,jj) + zztmp * ( utau_b(ji,jj) + utauU(ji,jj) ) * r1_hu(ji,jj,Kbb)
Ve_rhs(ji,jj) = Ve_rhs(ji,jj) + zztmp * ( vtau_b(ji,jj) + vtau(ji,jj) ) * r1_hv(ji,jj,Kbb) Ve_rhs(ji,jj) = Ve_rhs(ji,jj) + zztmp * ( vtau_b(ji,jj) + vtauV(ji,jj) ) * r1_hv(ji,jj,Kbb)
END_2D END_2D
ENDIF ENDIF
! !
......
...@@ -317,22 +317,22 @@ CONTAINS ...@@ -317,22 +317,22 @@ CONTAINS
! !
ENDIF ENDIF
! !
CALL histdef( nid_T, "sozotaux", "Wind Stress along i-axis" , "N/m2" , & ! utau
& jpi, jpj, nh_T, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histdef( nid_T, "sometauy", "Wind Stress along j-axis" , "N/m2" , & ! vtau
& jpi, jpj, nh_T, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histend( nid_T, snc4chunks=snc4set ) CALL histend( nid_T, snc4chunks=snc4set )
! !!! nid_U : 3D ! !!! nid_U : 3D
CALL histdef( nid_U, "ssu_m", "Velocity component in x-direction", "m/s" , & ! ssu CALL histdef( nid_U, "ssu_m", "Velocity component in x-direction", "m/s" , & ! ssu
& jpi, jpj, nh_U, 1 , 1, 1 , - 99, 32, clop, zsto, zout ) & jpi, jpj, nh_U, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histdef( nid_U, "sozotaux", "Wind Stress along i-axis" , "N/m2" , & ! utau
& jpi, jpj, nh_U, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histend( nid_U, snc4chunks=snc4set ) CALL histend( nid_U, snc4chunks=snc4set )
! !!! nid_V : 3D ! !!! nid_V : 3D
CALL histdef( nid_V, "ssv_m", "Velocity component in y-direction", "m/s", & ! ssv_m CALL histdef( nid_V, "ssv_m", "Velocity component in y-direction", "m/s", & ! ssv_m
& jpi, jpj, nh_V, 1 , 1, 1 , - 99, 32, clop, zsto, zout ) & jpi, jpj, nh_V, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histdef( nid_V, "sometauy", "Wind Stress along j-axis" , "N/m2" , & ! vtau
& jpi, jpj, nh_V, 1 , 1, 1 , - 99, 32, clop, zsto, zout )
CALL histend( nid_V, snc4chunks=snc4set ) CALL histend( nid_V, snc4chunks=snc4set )
...@@ -366,6 +366,8 @@ CONTAINS ...@@ -366,6 +366,8 @@ CONTAINS
CALL histwrite( nid_T, "soshfldo", it, qsr , ndim_hT, ndex_hT ) ! solar heat flux CALL histwrite( nid_T, "soshfldo", it, qsr , ndim_hT, ndex_hT ) ! solar heat flux
CALL histwrite( nid_T, "soicecov", it, fr_i , ndim_hT, ndex_hT ) ! ice fraction CALL histwrite( nid_T, "soicecov", it, fr_i , ndim_hT, ndex_hT ) ! ice fraction
CALL histwrite( nid_T, "sowindsp", it, wndm , ndim_hT, ndex_hT ) ! wind speed CALL histwrite( nid_T, "sowindsp", it, wndm , ndim_hT, ndex_hT ) ! wind speed
CALL histwrite( nid_T, "sozotaux", it, utau , ndim_hT, ndex_hT ) ! i-wind stress
CALL histwrite( nid_T, "sometauy", it, vtau , ndim_hT, ndex_hT ) ! j-wind stress
! !
IF( ln_abl ) THEN IF( ln_abl ) THEN
ALLOCATE( zw3d_abl(jpi,jpj,jpka) ) ALLOCATE( zw3d_abl(jpi,jpj,jpka) )
...@@ -393,11 +395,9 @@ CONTAINS ...@@ -393,11 +395,9 @@ CONTAINS
! Write fields on U grid ! Write fields on U grid
CALL histwrite( nid_U, "ssu_m" , it, ssu_m , ndim_hU, ndex_hU ) ! i-current speed CALL histwrite( nid_U, "ssu_m" , it, ssu_m , ndim_hU, ndex_hU ) ! i-current speed
CALL histwrite( nid_U, "sozotaux", it, utau , ndim_hU, ndex_hU ) ! i-wind stress
! Write fields on V grid ! Write fields on V grid
CALL histwrite( nid_V, "ssv_m" , it, ssv_m , ndim_hV, ndex_hV ) ! j-current speed CALL histwrite( nid_V, "ssv_m" , it, ssv_m , ndim_hV, ndex_hV ) ! j-current speed
CALL histwrite( nid_V, "sometauy", it, vtau , ndim_hV, ndex_hV ) ! j-wind stress
! 3. Close all files ! 3. Close all files
! --------------------------------------- ! ---------------------------------------
......
...@@ -114,9 +114,9 @@ CONTAINS ...@@ -114,9 +114,9 @@ CONTAINS
zrhs_u = - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) zrhs_u = - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj)
zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj)
! ! wind stress and layer friction ! ! wind stress and layer friction
zrhs_u = zrhs_u + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn) & zrhs_u = zrhs_u + z1_2rho0 * ( utau_b(ji,jj) + utauU(ji,jj) ) / e3u(ji,jj,jk,Nnn) &
& - rn_rfr * uu(ji,jj,jk,Nbb) & - rn_rfr * uu(ji,jj,jk,Nbb)
zrhs_v = zrhs_v + z1_2rho0 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / e3v(ji,jj,jk,Nnn) & zrhs_v = zrhs_v + z1_2rho0 * ( vtau_b(ji,jj) + vtauV(ji,jj) ) / e3v(ji,jj,jk,Nnn) &
& - rn_rfr * vv(ji,jj,jk,Nbb) & - rn_rfr * vv(ji,jj,jk,Nbb)
! ! ==> RHS ! ! ==> RHS
uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + zrhs_u uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + zrhs_u
......
...@@ -135,9 +135,9 @@ CONTAINS ...@@ -135,9 +135,9 @@ CONTAINS
zrhs_v = - grav * ( ssh(ji,jj+1,Nbb) - ssh(ji,jj,Nbb) ) * r1_e2v(ji,jj) zrhs_v = - grav * ( ssh(ji,jj+1,Nbb) - ssh(ji,jj,Nbb) ) * r1_e2v(ji,jj)
#if defined key_RK3all #if defined key_RK3all
! ! wind stress and layer friction ! ! wind stress and layer friction
zrhs_u = zrhs_u + r1_rho0 * ( z5_6*utau_b(ji,jj) + (1._wp - z5_6)*utau(ji,jj) ) / e3u(ji,jj,jk,Nbb) & zrhs_u = zrhs_u + r1_rho0 * ( z5_6*utau_b(ji,jj) + (1._wp - z5_6)*utauU(ji,jj) ) / e3u(ji,jj,jk,Nbb) &
& - rn_rfr * uu(ji,jj,jk,Nbb) & - rn_rfr * uu(ji,jj,jk,Nbb)
zrhs_v = zrhs_v + r1_rho0 * ( z5_6*vtau_b(ji,jj) + (1._wp - z5_6)*vtau(ji,jj) ) / e3v(ji,jj,jk,Nbb) & zrhs_v = zrhs_v + r1_rho0 * ( z5_6*vtau_b(ji,jj) + (1._wp - z5_6)*vtauV(ji,jj) ) / e3v(ji,jj,jk,Nbb) &
& - rn_rfr * vv(ji,jj,jk,Nbb) & - rn_rfr * vv(ji,jj,jk,Nbb)
#endif #endif
! ! ==> RHS ! ! ==> RHS
...@@ -201,9 +201,9 @@ CONTAINS ...@@ -201,9 +201,9 @@ CONTAINS
zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj)
#if defined key_RK3all #if defined key_RK3all
! ! wind stress and layer friction ! ! wind stress and layer friction
zrhs_u = zrhs_u + r1_rho0 * ( z3_4*utau_b(ji,jj) + (1._wp - z3_4)*utau(ji,jj) ) / e3u(ji,jj,jk,Nnn) & zrhs_u = zrhs_u + r1_rho0 * ( z3_4*utau_b(ji,jj) + (1._wp - z3_4)*utauU(ji,jj) ) / e3u(ji,jj,jk,Nnn) &
& - rn_rfr * uu(ji,jj,jk,Nbb) & - rn_rfr * uu(ji,jj,jk,Nbb)
zrhs_v = zrhs_v + r1_rho0 * ( z3_4*vtau_b(ji,jj) + (1._wp - z3_4)*vtau(ji,jj) ) / e3v(ji,jj,jk,Nnn) & zrhs_v = zrhs_v + r1_rho0 * ( z3_4*vtau_b(ji,jj) + (1._wp - z3_4)*vtauV(ji,jj) ) / e3v(ji,jj,jk,Nnn) &
& - rn_rfr * vv(ji,jj,jk,Nbb) & - rn_rfr * vv(ji,jj,jk,Nbb)
#endif #endif
! ! ==> RHS ! ! ==> RHS
...@@ -265,9 +265,9 @@ CONTAINS ...@@ -265,9 +265,9 @@ CONTAINS
zrhs_u = - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) zrhs_u = - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj)
zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) zrhs_v = - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj)
! ! wind stress and layer friction ! ! wind stress and layer friction
zrhs_u = zrhs_u + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn) & zrhs_u = zrhs_u + z1_2rho0 * ( utau_b(ji,jj) + utauU(ji,jj) ) / e3u(ji,jj,jk,Nnn) &
& - rn_rfr * uu(ji,jj,jk,Nbb) & - rn_rfr * uu(ji,jj,jk,Nbb)
zrhs_v = zrhs_v + z1_2rho0 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / e3v(ji,jj,jk,Nnn) & zrhs_v = zrhs_v + z1_2rho0 * ( vtau_b(ji,jj) + vtauV(ji,jj) ) / e3v(ji,jj,jk,Nnn) &
& - rn_rfr * vv(ji,jj,jk,Nbb) & - rn_rfr * vv(ji,jj,jk,Nbb)
! ! ==> RHS ! ! ==> RHS
uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + zrhs_u uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + zrhs_u
......
...@@ -109,7 +109,7 @@ CONTAINS ...@@ -109,7 +109,7 @@ CONTAINS
vtau_ice(ji,jj) = 0.1_wp + zztmp vtau_ice(ji,jj) = 0.1_wp + zztmp
END_2D END_2D
CALL lbc_lnk( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) CALL lbc_lnk( 'usrdef_sbc', utau_ice, 'T', -1., vtau_ice, 'T', -1. )
#endif #endif
! !
END SUBROUTINE usrdef_sbc_ice_tau END SUBROUTINE usrdef_sbc_ice_tau
......
...@@ -20,15 +20,15 @@ ...@@ -20,15 +20,15 @@
<field field_ref="ssrelpotvor" /> <field field_ref="ssrelpotvor" />
<field field_ref="saltc" /> <field field_ref="saltc" />
<field field_ref="salt2c" /> <field field_ref="salt2c" />
<field field_ref="utau" />
<field field_ref="vtau" />
</file> </file>
<file id="file3" name_suffix="_grid_U" description="ocean U grid variables" > <file id="file3" name_suffix="_grid_U" description="ocean U grid variables" >
<field field_ref="utau" />
<field field_ref="uoce" /> <field field_ref="uoce" />
</file> </file>
<file id="file4" name_suffix="_grid_V" description="ocean V grid variables" > <file id="file4" name_suffix="_grid_V" description="ocean V grid variables" >
<field field_ref="vtau" />
<field field_ref="voce" /> <field field_ref="voce" />
</file> </file>
......
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
<field field_ref="qt_oce" name="qt_oce" /> <field field_ref="qt_oce" name="qt_oce" />
<field field_ref="saltflx" name="sfx" /> <field field_ref="saltflx" name="sfx" />
<field field_ref="taum" name="taum" /> <field field_ref="taum" name="taum" />
<field field_ref="utau" name="tauuo" />
<field field_ref="vtau" name="tauvo" />
<field field_ref="wspd" name="windsp" /> <field field_ref="wspd" name="windsp" />
<field field_ref="precip" name="precip" /> <field field_ref="precip" name="precip" />
<!-- ice and snow --> <!-- ice and snow -->
...@@ -44,7 +46,6 @@ ...@@ -44,7 +46,6 @@
<field field_ref="e3u" /> <field field_ref="e3u" />
<field field_ref="ssu" name="uos" /> <field field_ref="ssu" name="uos" />
<field field_ref="uoce" name="uo" operation="instant" freq_op="5d" > @uoce_e3u / @e3u </field> <field field_ref="uoce" name="uo" operation="instant" freq_op="5d" > @uoce_e3u / @e3u </field>
<field field_ref="utau" name="tauuo" />
<field field_ref="uocetr_eff" name="uocetr_eff" /> <field field_ref="uocetr_eff" name="uocetr_eff" />
<!-- available with diaar5 --> <!-- available with diaar5 -->
<field field_ref="u_masstr" name="vozomatr" /> <field field_ref="u_masstr" name="vozomatr" />
...@@ -56,7 +57,6 @@ ...@@ -56,7 +57,6 @@
<field field_ref="e3v" /> <field field_ref="e3v" />
<field field_ref="ssv" name="vos" /> <field field_ref="ssv" name="vos" />
<field field_ref="voce" name="vo" operation="instant" freq_op="5d" > @voce_e3v / @e3v </field> <field field_ref="voce" name="vo" operation="instant" freq_op="5d" > @voce_e3v / @e3v </field>
<field field_ref="vtau" name="tauvo" />
<field field_ref="vocetr_eff" name="vocetr_eff" /> <field field_ref="vocetr_eff" name="vocetr_eff" />
<!-- available with diaar5 --> <!-- available with diaar5 -->
<field field_ref="v_masstr" name="vomematr" /> <field field_ref="v_masstr" name="vomematr" />
......
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
<field field_ref="qt_oce" name="qt_oce" /> <field field_ref="qt_oce" name="qt_oce" />
<field field_ref="saltflx" name="sfx" /> <field field_ref="saltflx" name="sfx" />
<field field_ref="taum" name="taum" /> <field field_ref="taum" name="taum" />
<field field_ref="utau" name="tauuo" />
<field field_ref="vtau" name="tauvo" />
<field field_ref="wspd" name="windsp" /> <field field_ref="wspd" name="windsp" />
<field field_ref="precip" name="precip" /> <field field_ref="precip" name="precip" />
</file> </file>
...@@ -36,14 +38,12 @@ ...@@ -36,14 +38,12 @@
<field field_ref="e3u" /> <field field_ref="e3u" />
<field field_ref="ssu" name="uos" /> <field field_ref="ssu" name="uos" />
<field field_ref="uoce" name="uo" operation="instant" freq_op="1d" > @uoce_e3u / @e3u </field> <field field_ref="uoce" name="uo" operation="instant" freq_op="1d" > @uoce_e3u / @e3u </field>
<field field_ref="utau" name="tauuo" />
</file> </file>
<file id="file13" name_suffix="_grid_V" description="ocean V grid variables" > <file id="file13" name_suffix="_grid_V" description="ocean V grid variables" >
<field field_ref="e3v" /> <field field_ref="e3v" />
<field field_ref="ssv" name="vos" /> <field field_ref="ssv" name="vos" />
<field field_ref="voce" name="vo" operation="instant" freq_op="1d" > @voce_e3v / @e3v </field> <field field_ref="voce" name="vo" operation="instant" freq_op="1d" > @voce_e3v / @e3v </field>
<field field_ref="vtau" name="tauvo" />
</file> </file>
</file_group> </file_group>
......
...@@ -13,14 +13,17 @@ ...@@ -13,14 +13,17 @@
<file_group id="1ts" output_freq="1ts" output_level="10" enabled=".TRUE."/> <!-- 1 time step files --> <file_group id="1ts" output_freq="1ts" output_level="10" enabled=".TRUE."/> <!-- 1 time step files -->
<file_group id="1h" output_freq="1h" output_level="10" enabled=".TRUE."> <!-- 1h files --> <file_group id="1h" output_freq="1h" output_level="10" enabled=".TRUE."> <!-- 1h files -->
<file id="file1" name_suffix="_grid_T" description="ocean T grid variables" >
<field field_ref="utau" name="sozotaux" />
<field field_ref="vtau" name="sometauy" />
</file>
<file id="file2" name_suffix="_grid_U" description="ocean U grid variables" > <file id="file2" name_suffix="_grid_U" description="ocean U grid variables" >
<field field_ref="uoce" name="vozocrtx" /> <field field_ref="uoce" name="vozocrtx" />
<field field_ref="utau" name="sozotaux" />
</file> </file>
<file id="file3" name_suffix="_grid_V" description="ocean V grid variables" > <file id="file3" name_suffix="_grid_V" description="ocean V grid variables" >
<field field_ref="voce" name="vomecrty" /> <field field_ref="voce" name="vomecrty" />
<field field_ref="vtau" name="sometauy" />
</file> </file>
</file_group> </file_group>
......
...@@ -125,37 +125,21 @@ CONTAINS ...@@ -125,37 +125,21 @@ CONTAINS
windu(ji,jj) = Umax/sqrt(d*1000)*(d-2*mig(ji)*res)/((d-2*mig(ji)*res)**2+(d-2*mjg(jj)*res)**2*Rwind**2)**(1/4)*min(kt*30./21600,1.) windu(ji,jj) = Umax/sqrt(d*1000)*(d-2*mig(ji)*res)/((d-2*mig(ji)*res)**2+(d-2*mjg(jj)*res)**2*Rwind**2)**(1/4)*min(kt*30./21600,1.)
windv(ji,jj) = Umax/sqrt(d*1000)*(d-2*mjg(jj)*res)/((d-2*mig(ji)*res)**2+(d-2*mjg(jj)*res)**2*Rwind**2)**(1/4)*Rwind*min(kt*30./21600,1.) windv(ji,jj) = Umax/sqrt(d*1000)*(d-2*mjg(jj)*res)/((d-2*mig(ji)*res)**2+(d-2*mjg(jj)*res)**2*Rwind**2)**(1/4)*Rwind*min(kt*30./21600,1.)
END_2D END_2D
CALL lbc_lnk( 'usrdef_sbc', windu, 'U', -1., windv, 'V', -1. )
wndm_ice(:,:) = 0._wp !!gm brutal....
! ------------------------------------------------------------ ! ! ------------------------------------------------------------ !
! Wind module relative to the moving ice ( U10m - U_ice ) ! ! Wind module and stress relative to the moving ice ( U10m - U_ice ) !
! ------------------------------------------------------------ ! ! ------------------------------------------------------------ !
! C-grid ice dynamics : U & V-points (same as ocean)
DO_2D( 0, 0, 0, 0 ) DO_2D( 0, 0, 0, 0 )
zwndi_t = ( windu(ji,jj) - r_vfac * 0.5 * ( u_ice(ji-1,jj ) + u_ice(ji,jj) ) ) zwndi_t = ( windu(ji,jj) - r_vfac * 0.5 * ( u_ice(ji-1,jj) + u_ice(ji,jj) ) )
zwndj_t = ( windv(ji,jj) - r_vfac * 0.5 * ( v_ice(ji,jj-1) + v_ice(ji,jj) ) ) zwndj_t = ( windv(ji,jj) - r_vfac * 0.5 * ( v_ice(ji,jj-1) + v_ice(ji,jj) ) )
!
wndm_ice(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) wndm_ice(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1)
!
utau_ice(ji,jj) = zrhoa * Cd_atm * wndm_ice(ji,jj) * zwndi_t
vtau_ice(ji,jj) = zrhoa * Cd_atm * wndm_ice(ji,jj) * zwndj_t
END_2D END_2D
CALL lbc_lnk( 'usrdef_sbc', wndm_ice, 'T', 1. ) CALL lbc_lnk( 'usrdef_sbc', wndm_ice, 'T', 1., utau_ice, 'T', -1., vtau_ice, 'T', -1. )
!!gm brutal....
utau_ice (:,:) = 0._wp
vtau_ice (:,:) = 0._wp
!!gm end
! ------------------------------------------------------------ !
! Wind stress relative to the moving ice ( U10m - U_ice ) !
! ------------------------------------------------------------ !
! C-grid ice dynamics : U & V-points (same as ocean)
DO_2D( 0, 0, 0, 0 )
utau_ice(ji,jj) = 0.5 * zrhoa * Cd_atm * ( wndm_ice(ji+1,jj ) + wndm_ice(ji,jj) ) &
& * ( 0.5 * (windu(ji+1,jj) + windu(ji,jj) ) - r_vfac * u_ice(ji,jj) )
vtau_ice(ji,jj) = 0.5 * zrhoa * Cd_atm * ( wndm_ice(ji,jj+1 ) + wndm_ice(ji,jj) ) &
& * ( 0.5 * (windv(ji,jj+1) + windv(ji,jj) ) - r_vfac * v_ice(ji,jj) )
END_2D
CALL lbc_lnk( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. )
! !
END SUBROUTINE usrdef_sbc_ice_tau END SUBROUTINE usrdef_sbc_ice_tau
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
<field field_ref="sKE" name="sKE" operation = "instant" /> <field field_ref="sKE" name="sKE" operation = "instant" />
<field field_ref="ssh" name="sossheig" operation = "instant" /> <field field_ref="ssh" name="sossheig" operation = "instant" />
<field field_ref="wetdep" name="hswe_wd" operation = "instant" /> <field field_ref="wetdep" name="hswe_wd" operation = "instant" />
<field field_ref="utau" name="sozotaux" operation = "instant" />
<field field_ref="vtau" name="sometauy" operation = "instant" />
</file> </file>
<file id="file2" name_suffix="_grid_U" description="ocean U grid variables" > <file id="file2" name_suffix="_grid_U" description="ocean U grid variables" >
...@@ -34,7 +36,6 @@ ...@@ -34,7 +36,6 @@
<field field_ref="e3u_0" name="e3u_0" operation = "instant" /> <field field_ref="e3u_0" name="e3u_0" operation = "instant" />
<field field_ref="hu" name="hu" operation = "instant" /> <field field_ref="hu" name="hu" operation = "instant" />
<field field_ref="ssu" name="ssu" operation = "instant" /> <field field_ref="ssu" name="ssu" operation = "instant" />
<field field_ref="utau" name="sozotaux" operation = "instant" />
</file> </file>
<file id="file3" name_suffix="_grid_V" description="ocean V grid variables" > <file id="file3" name_suffix="_grid_V" description="ocean V grid variables" >
...@@ -42,7 +43,6 @@ ...@@ -42,7 +43,6 @@
<field field_ref="e3v_0" name="e3v_0" operation = "instant" /> <field field_ref="e3v_0" name="e3v_0" operation = "instant" />
<field field_ref="hv" name="hv" operation = "instant" /> <field field_ref="hv" name="hv" operation = "instant" />
<field field_ref="ssv" name="ssv" operation = "instant" /> <field field_ref="ssv" name="ssv" operation = "instant" />
<field field_ref="vtau" name="sometauy" operation = "instant" />
</file> </file>
<file id="file5" name_suffix="_grid_F" description="ocean F grid variables" > <file id="file5" name_suffix="_grid_F" description="ocean F grid variables" >
......
...@@ -61,7 +61,7 @@ CONTAINS ...@@ -61,7 +61,7 @@ CONTAINS
REAL(wp) :: ztauu, ztauv ! wind intensity projeted REAL(wp) :: ztauu, ztauv ! wind intensity projeted
REAL(wp) :: zrhoa = 1.22 ! Air density kg/m3 REAL(wp) :: zrhoa = 1.22 ! Air density kg/m3
REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient
REAL(wp) :: ztx, zty, zmod, zcoef ! temporary variables REAL(wp) :: zmod, zcoef ! temporary variables
!!--------------------------------------------------------------------- !!---------------------------------------------------------------------
! ---------------------------- ! ! ---------------------------- !
...@@ -88,20 +88,17 @@ CONTAINS ...@@ -88,20 +88,17 @@ CONTAINS
DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )
! length of the domain : 2000km x 2000km ! length of the domain : 2000km x 2000km
utau(ji,jj) = - ztauu * COS( rpi * gphiu(ji,jj) / 2000000._wp) utau(ji,jj) = - ztauu * COS( rpi * gphit(ji,jj) / 2000000._wp)
vtau(ji,jj) = - ztauv * COS( rpi * gphiv(ji,jj) / 2000000._wp) vtau(ji,jj) = - ztauv * COS( rpi * gphit(ji,jj) / 2000000._wp)
END_2D END_2D
! module of wind stress and wind speed at T-point ! module of wind stress and wind speed at T-point
zcoef = 1. / ( zrhoa * zcdrag ) zcoef = 1. / ( zrhoa * zcdrag )
DO_2D( 0, 0, 0, 0 ) DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )
ztx = utau(ji-1,jj ) + utau(ji,jj) zmod = SQRT( utau(ji,jj) * utau(ji,jj) + vtau(ji,jj) * vtau(ji,jj) )
zty = vtau(ji ,jj-1) + vtau(ji,jj)
zmod = 0.5 * SQRT( ztx * ztx + zty * zty )
taum(ji,jj) = zmod taum(ji,jj) = zmod
wndm(ji,jj) = SQRT( zmod * zcoef ) wndm(ji,jj) = SQRT( zmod * zcoef )
END_2D END_2D
CALL lbc_lnk( 'usrdef_sbc', taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. )
! !
END SUBROUTINE usrdef_sbc_oce END SUBROUTINE usrdef_sbc_oce
......
...@@ -69,16 +69,16 @@ ...@@ -69,16 +69,16 @@
<field field_ref="qt" name="sohefldo" /> <field field_ref="qt" name="sohefldo" />
<field field_ref="mldr10_1" name="somxl010" /> <field field_ref="mldr10_1" name="somxl010" />
<field field_ref="mldkz5" name="somixhgt" /> <field field_ref="mldkz5" name="somixhgt" />
<field field_ref="utau" name="sozotaux" />
<field field_ref="vtau" name="sometauy" />
</file> </file>
<file id="file2" name_suffix="_grid_U" description="ocean U grid variables" > <file id="file2" name_suffix="_grid_U" description="ocean U grid variables" >
<field field_ref="uoce" name="vozocrtx" /> <field field_ref="uoce" name="vozocrtx" />
<field field_ref="utau" name="sozotaux" />
</file> </file>
<file id="file3" name_suffix="_grid_V" description="ocean V grid variables" > <file id="file3" name_suffix="_grid_V" description="ocean V grid variables" >
<field field_ref="voce" name="vomecrty" /> <field field_ref="voce" name="vomecrty" />
<field field_ref="vtau" name="sometauy" />
</file> </file>
<file id="file4" name_suffix="_grid_W" description="ocean W grid variables" > <file id="file4" name_suffix="_grid_W" description="ocean W grid variables" >
......