New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
tau_oasis_ice.h90 in trunk/NEMO/OPA_SRC/SBC – NEMO

source: trunk/NEMO/OPA_SRC/SBC/tau_oasis_ice.h90 @ 699

Last change on this file since 699 was 699, checked in by smasson, 17 years ago

insert revision Id

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 4.5 KB
Line 
1   !!----------------------------------------------------------------------
2   !!                   ***  tau_oasis_ice.h90  ***
3   !!----------------------------------------------------------------------
4
5   REAL(wp)  :: ztaueuw (1:jpi,1:jpj)  ! eastward wind stress over water
6   REAL(wp)  :: ztaunuw (1:jpi,1:jpj)  ! northward wind stress over water
7   REAL(wp)  :: ztaueui (1:jpi,1:jpj)  ! eastward wind stress over ice
8   REAL(wp)  :: ztaunui (1:jpi,1:jpj)  ! northward wind stress over ice
9   REAL(wp)  :: ztaueu  (1:jpi,1:jpj)  ! eastward wind stress combined
10   REAL(wp)  :: ztaunu  (1:jpi,1:jpj)  ! northward wind stress combined
11   REAL(wp)  :: ztauevw (1:jpi,1:jpj)
12   REAL(wp)  :: ztaunvw (1:jpi,1:jpj)
13   REAL(wp)  :: ztauevi (1:jpi,1:jpj)
14   REAL(wp)  :: ztaunvi (1:jpi,1:jpj)
15   REAL(wp)  :: ztauev  (1:jpi,1:jpj)
16   REAL(wp)  :: ztaunv  (1:jpi,1:jpj)
17   REAL(wp)  :: ztauzv  (1:jpi,1:jpj)
18
19   !!----------------------------------------------------------------------
20   !!   tau     :   update the surface stress - coupled case with LIM
21   !!               sea-ice model
22   !!----------------------------------------------------------------------
23   !!----------------------------------------------------------------------
24   !!   OPA 9.0 , LOCEAN-IPSL (2006)
25   !! $Id$
26   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
27   !!----------------------------------------------------------------------
28
29CONTAINS
30
31   SUBROUTINE tau( kt )
32      !!---------------------------------------------------------------------
33      !!                    ***  ROUTINE tau  ***
34      !! 
35      !! ** Purpose :   provide to the ocean the stress at each time step
36      !!
37      !! ** Method  :   Coupled case with LIM sea-ice model
38      !!      Read wind stress from a coupled Atmospheric model
39      !!      - horizontal interpolation is done in OASIS
40      !!        They are given in the 3D referential
41      !!      (3 components at both U- and V-points)
42      !!
43      !!    CAUTION: never mask the surface stress field !
44      !!
45      !! ** Action  :   update at each time-step the two components of the
46      !!                surface stress in both (i,j) and geographical ref.
47      !!
48      !! References : The OASIS User Guide, Version 3.0
49      !!
50      !! History :
51      !!   9.0  !  04-10  (R. Redler)  original Code for OASIS3
52      !!   9.0  !  05-12  (W. Park, N. Keenlyside)  Removal of z-components
53      !!----------------------------------------------------------------------
54      !! * Modules used
55     USE in_out_manager, only:numout             ! I/O manager
56      !! * Arguments
57      INTEGER, INTENT( in  ) ::   kt   ! ocean time step
58
59      !! * Local declarations
60      INTEGER :: ji,jj
61      INTEGER :: var_id
62
63      INTEGER  :: info
64
65      INTEGER  :: dater
66
67      LOGICAL, SAVE :: lfirstt=.true.
68
69      !!---------------------------------------------------------------------
70     
71      ! 0. Initialization
72      !------------------
73      !
74      dater = ( kt - nit000 ) * rdttra(1)
75      !
76      ! 1. Receive wind stress fields and rotate them onto OPA grid
77      !------------------------------------------------------------
78      !
79      var_id = recv_id(1)
80      CALL cpl_prism_recv ( var_id, dater, ztaueuw, info )
81
82      var_id = recv_id(2)
83      CALL cpl_prism_recv ( var_id, dater, ztaunuw, info )
84
85      var_id = recv_id(3)
86      CALL cpl_prism_recv ( var_id, dater, ztaueui, info )
87
88      var_id = recv_id(4)
89      CALL cpl_prism_recv ( var_id, dater, ztaunui, info )
90
91      var_id = recv_id(5)
92      CALL cpl_prism_recv ( var_id, dater, ztauevw, info )
93
94      var_id = recv_id(6)
95      CALL cpl_prism_recv ( var_id, dater, ztaunvw, info )
96
97      var_id = recv_id(7)
98      CALL cpl_prism_recv ( var_id, dater, ztauevi, info )
99
100      var_id = recv_id(8)
101      CALL cpl_prism_recv ( var_id, dater, ztaunvi, info )
102
103      !
104      ! ... add field over water and ice
105      !
106      DO jj = 1, jpj
107         DO ji = 1, jpi
108              ztaueu(ji,jj) = ztaueuw(ji,jj) * frld(ji,jj) + ztaueui(ji,jj) * ( 1.0 - frld(ji,jj) )
109              ztaunu(ji,jj) = ztaunuw(ji,jj) * frld(ji,jj) + ztaunui(ji,jj) * ( 1.0 - frld(ji,jj) )
110              ztauev(ji,jj) = ztauevw(ji,jj) * frld(ji,jj) + ztauevi(ji,jj) * ( 1.0 - frld(ji,jj) )
111              ztaunv(ji,jj) = ztaunvw(ji,jj) * frld(ji,jj) + ztaunvi(ji,jj) * ( 1.0 - frld(ji,jj) )
112         ENDDO
113      ENDDO
114      !
115      ! ... rotate vector components
116      !
117      CALL repcmo ( ztaueu, ztaunu, ztauev, ztaunv, taux, tauy )
118
119      !
120   END SUBROUTINE tau
Note: See TracBrowser for help on using the repository browser.