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.
updtide.F90 in trunk/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

source: trunk/NEMOGCM/NEMO/OPA_SRC/SBC/updtide.F90 @ 3294

Last change on this file since 3294 was 3294, checked in by rblod, 12 years ago

Merge of 3.4beta into the trunk

File size: 2.4 KB
Line 
1MODULE updtide
2  !!=================================================================================
3  !!                       ***  MODULE  updtide  ***
4  !! Initialization of tidal forcing
5  !! History :  9.0  !  07  (O. Le Galloudec)  Original code
6  !!=================================================================================
7#if defined key_tide
8  !! * Modules used
9  USE oce             ! ocean dynamics and tracers variables
10  USE dom_oce         ! ocean space and time domain
11  USE in_out_manager  ! I/O units
12  USE phycst
13  USE sbctide
14  USE dynspg_oce
15
16  IMPLICIT NONE
17  PUBLIC
18
19  !! * Routine accessibility
20  PUBLIC upd_tide
21  !!---------------------------------------------------------------------------------
22  !!   OPA 9.0 , LODYC-IPSL  (2003)
23  !!---------------------------------------------------------------------------------
24
25CONTAINS
26
27  SUBROUTINE upd_tide (kt,kit)
28    !!----------------------------------------------------------------------
29    !!                 ***  ROUTINE upd_tide  ***
30    !!----------------------------------------------------------------------     
31    !! * Local declarations
32
33    INTEGER, INTENT( in ) ::   kt,kit      ! ocean time-step index
34    INTEGER  :: ji,jj,jk
35    REAL (wp), DIMENSION(nb_harmo) :: zwt 
36    !...............................................................................
37    ! Potentiel astronomique
38    !...............................................................................
39
40    pot_astro(:,:)=0.e0
41
42    IF (lk_dynspg_ts) THEN
43       zwt(:) = omega_tide(:)* ((kt-kt_tide)*rdt + kit*(rdt/REAL(nn_baro,wp)))
44    ELSE
45       zwt(:) = omega_tide(:)*(kt-kt_tide)*rdt
46    ENDIF
47
48    do jk=1,nb_harmo
49       do ji=1,jpi
50          do jj=1,jpj
51             pot_astro(ji,jj)=pot_astro(ji,jj) + (amp_pot(ji,jj,jk)*COS(zwt(jk)+phi_pot(ji,jj,jk)))     
52          enddo
53       enddo
54    enddo
55
56  END SUBROUTINE upd_tide
57
58#else
59  !!----------------------------------------------------------------------
60  !!   Dummy module :                                        NO TIDE
61  !!----------------------------------------------------------------------
62CONTAINS
63  SUBROUTINE upd_tide( kt,kit )          ! Empty routine
64    INTEGER,INTENT (IN) :: kt, kit
65    WRITE(*,*) 'upd_tide: You should not have seen this print! error?', kt
66  END SUBROUTINE upd_tide
67
68#endif
69
70  !!======================================================================
71
72END MODULE updtide
Note: See TracBrowser for help on using the repository browser.