!!---------------------------------------------------------------------- !! *** tau_oasis_ice.h90 *** !!---------------------------------------------------------------------- REAL(wp) :: ztaueuw (1:jpi,1:jpj) ! eastward wind stress over water REAL(wp) :: ztaunuw (1:jpi,1:jpj) ! northward wind stress over water REAL(wp) :: ztaueui (1:jpi,1:jpj) ! eastward wind stress over ice REAL(wp) :: ztaunui (1:jpi,1:jpj) ! northward wind stress over ice REAL(wp) :: ztaueu (1:jpi,1:jpj) ! eastward wind stress combined REAL(wp) :: ztaunu (1:jpi,1:jpj) ! northward wind stress combined REAL(wp) :: ztauevw (1:jpi,1:jpj) REAL(wp) :: ztaunvw (1:jpi,1:jpj) REAL(wp) :: ztauevi (1:jpi,1:jpj) REAL(wp) :: ztaunvi (1:jpi,1:jpj) REAL(wp) :: ztauev (1:jpi,1:jpj) REAL(wp) :: ztaunv (1:jpi,1:jpj) REAL(wp) :: ztauzv (1:jpi,1:jpj) !!---------------------------------------------------------------------- !! tau : update the surface stress - coupled case with LIM !! sea-ice model !!---------------------------------------------------------------------- !!---------------------------------------------------------------------- !! OPA 9.0 , LOCEAN-IPSL (2006) !! $Header$ !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE tau( kt ) !!--------------------------------------------------------------------- !! *** ROUTINE tau *** !! !! ** Purpose : provide to the ocean the stress at each time step !! !! ** Method : Coupled case with LIM sea-ice model !! Read wind stress from a coupled Atmospheric model !! - horizontal interpolation is done in OASIS !! They are given in the 3D referential !! (3 components at both U- and V-points) !! !! CAUTION: never mask the surface stress field ! !! !! ** Action : update at each time-step the two components of the !! surface stress in both (i,j) and geographical ref. !! !! References : The OASIS User Guide, Version 3.0 !! !! History : !! 9.0 ! 04-10 (R. Redler) original Code for OASIS3 !! 9.0 ! 05-12 (W. Park, N. Keenlyside) Removal of z-components !!---------------------------------------------------------------------- !! * Modules used USE in_out_manager, only:numout ! I/O manager !! * Arguments INTEGER, INTENT( in ) :: kt ! ocean time step !! * Local declarations INTEGER :: ji,jj INTEGER :: var_id INTEGER :: info INTEGER :: dater LOGICAL, SAVE :: lfirstt=.true. !!--------------------------------------------------------------------- ! 0. Initialization !------------------ ! dater = ( kt - nit000 ) * rdttra(1) ! ! 1. Receive wind stress fields and rotate them onto OPA grid !------------------------------------------------------------ ! var_id = recv_id(1) CALL cpl_prism_recv ( var_id, dater, ztaueuw, info ) var_id = recv_id(2) CALL cpl_prism_recv ( var_id, dater, ztaunuw, info ) var_id = recv_id(3) CALL cpl_prism_recv ( var_id, dater, ztaueui, info ) var_id = recv_id(4) CALL cpl_prism_recv ( var_id, dater, ztaunui, info ) var_id = recv_id(5) CALL cpl_prism_recv ( var_id, dater, ztauevw, info ) var_id = recv_id(6) CALL cpl_prism_recv ( var_id, dater, ztaunvw, info ) var_id = recv_id(7) CALL cpl_prism_recv ( var_id, dater, ztauevi, info ) var_id = recv_id(8) CALL cpl_prism_recv ( var_id, dater, ztaunvi, info ) ! ! ... add field over water and ice ! DO jj = 1, jpj DO ji = 1, jpi ztaueu(ji,jj) = ztaueuw(ji,jj) * frld(ji,jj) + ztaueui(ji,jj) * ( 1.0 - frld(ji,jj) ) ztaunu(ji,jj) = ztaunuw(ji,jj) * frld(ji,jj) + ztaunui(ji,jj) * ( 1.0 - frld(ji,jj) ) ztauev(ji,jj) = ztauevw(ji,jj) * frld(ji,jj) + ztauevi(ji,jj) * ( 1.0 - frld(ji,jj) ) ztaunv(ji,jj) = ztaunvw(ji,jj) * frld(ji,jj) + ztaunvi(ji,jj) * ( 1.0 - frld(ji,jj) ) ENDDO ENDDO ! ! ... rotate vector components ! CALL repcmo ( ztaueu, ztaunu, ztauev, ztaunv, taux, tauy, kt ) ! END SUBROUTINE tau