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 branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

source: branches/2012/dev_MERCATOR_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/SBC/updtide.F90 @ 3583

Last change on this file since 3583 was 3583, checked in by cbricaud, 11 years ago

add modification from dev_r3327_MERCATOR1_BDY branch in dev_MERCATOR_2012_rev3555 branch

File size: 2.6 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  USE tideini, ONLY: ln_tide_ramp, rdttideramp
16
17  IMPLICIT NONE
18  PUBLIC
19
20  !! * Routine accessibility
21  PUBLIC upd_tide
22  !!---------------------------------------------------------------------------------
23  !!   OPA 9.0 , LODYC-IPSL  (2003)
24  !!---------------------------------------------------------------------------------
25
26CONTAINS
27
28  SUBROUTINE upd_tide (kt,kit)
29    !!----------------------------------------------------------------------
30    !!                 ***  ROUTINE upd_tide  ***
31    !!----------------------------------------------------------------------     
32    !! * Local declarations
33
34    INTEGER, INTENT( in ) ::   kt,kit      ! ocean time-step index
35    INTEGER  :: ji,jj,jk
36    REAL (wp) :: zramp
37    REAL (wp), DIMENSION(nb_harmo) :: zwt 
38    !...............................................................................
39
40    pot_astro(:,:)=0.e0
41    zramp = 1.e0
42
43    IF (lk_dynspg_ts) THEN
44       zwt(:) = omega_tide(:)* ((kt-kt_tide)*rdt + kit*(rdt/REAL(nn_baro,wp)))
45       IF (ln_tide_ramp) THEN
46          zramp = MIN(MAX( ((kt-nit000)*rdt + kit*(rdt/REAL(nn_baro,wp)))/(rdttideramp*rday),0.),1.)
47       ENDIF
48    ELSE
49       zwt(:) = omega_tide(:)*(kt-kt_tide)*rdt
50       IF (ln_tide_ramp) THEN
51          zramp = MIN(MAX( ((kt-nit000)*rdt)/(rdttideramp*rday),0.),1.) 
52       ENDIF 
53    ENDIF
54
55    do jk=1,nb_harmo
56       do ji=1,jpi
57          do jj=1,jpj
58             pot_astro(ji,jj)=pot_astro(ji,jj) + zramp*(amp_pot(ji,jj,jk)*COS(zwt(jk)+phi_pot(ji,jj,jk)))     
59          enddo
60       enddo
61    enddo
62
63  END SUBROUTINE upd_tide
64
65#else
66  !!----------------------------------------------------------------------
67  !!   Dummy module :                                        NO TIDE
68  !!----------------------------------------------------------------------
69CONTAINS
70  SUBROUTINE upd_tide( kt,kit )          ! Empty routine
71    INTEGER,INTENT (IN) :: kt, kit
72    WRITE(*,*) 'upd_tide: You should not have seen this print! error?', kt
73  END SUBROUTINE upd_tide
74
75#endif
76
77  !!======================================================================
78
79END MODULE updtide
Note: See TracBrowser for help on using the repository browser.