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.
step.F90 in branches/offline/NEMO/OFF_SRC – NEMO

source: branches/offline/NEMO/OFF_SRC/step.F90 @ 786

Last change on this file since 786 was 325, checked in by opalod, 19 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1MODULE step
2   !!======================================================================
3   !!                       ***  MODULE step  ***
4   !! Time-stepping    : manager of the ocean, tracer and ice time stepping
5   !!======================================================================
6
7   !!----------------------------------------------------------------------
8   !!   stp            : OPA system time-stepping
9   !!----------------------------------------------------------------------
10   !! * Modules used
11   USE oce             ! ocean dynamics and tracers variables
12   USE dom_oce         ! ocean space and time domain variables
13   USE zdf_oce         ! ocean vertical physics variables
14   USE ldftra_oce
15   USE in_out_manager  ! I/O manager
16   USE lbclnk
17   USE trcdia
18   USE daymod          ! calendar                         (day     routine)
19   USE trcstp          ! passive tracer time-stepping      (trc_stp routine)
20   USE dtadyn          ! Lecture and interpolation of the dynamical fields
21   USE eosbn2          ! equation of state                (eos_bn2 routine)
22   USE trcrst          ! restart for passive tracers
23   USE stpctl          ! time stepping control            (stp_ctl routine)
24
25   IMPLICIT NONE
26   PRIVATE
27
28   !! * Routine accessibility
29   PUBLIC stp            ! called by opa.F90
30
31   !! * Substitutions
32#  include "domzgr_substitute.h90"
33   !!----------------------------------------------------------------------
34   !!   OPA 9.0 , LODYC-IPSL (2003)
35   !!----------------------------------------------------------------------
36
37CONTAINS
38
39   SUBROUTINE stp( kstp )
40      !!----------------------------------------------------------------------
41      !!                     ***  ROUTINE stp  ***
42      !!                     
43      !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.)
44      !!              - Time stepping of LIM (dynamic and thermodynamic eqs.)
45      !!              - Tme stepping  of TRC (passive tracer eqs.)
46      !!
47      !! ** Method  : -1- Update forcings and data 
48      !!              -2- Update ocean physics
49      !!              -3- Compute the t and s trends
50      !!              -4- Update t and s
51      !!              -5- Compute the momentum trends
52      !!              -6- Update the horizontal velocity
53      !!              -7- Compute the diagnostics variables (rd,N2, div,cur,w)
54      !!              -8- Outputs and diagnostics
55      !!
56      !! History :
57      !!        !  91-03  ()  Original code
58      !!        !  91-11  (G. Madec)
59      !!        !  92-06  (M. Imbard)  add a first output record
60      !!        !  96-04  (G. Madec)  introduction of dynspg
61      !!        !  96-04  (M.A. Foujols)  introduction of passive tracer
62      !!   8.0  !  97-06  (G. Madec)  new architecture of call
63      !!   8.2  !  97-06  (G. Madec, M. Imbard, G. Roullet)  free surface
64      !!   8.2  !  99-02  (G. Madec, N. Grima)  hpg implicit
65      !!   8.2  !  00-07  (J-M Molines, M. Imbard)  Open Bondary Conditions
66      !!   9.0  !  02-06  (G. Madec)  free form, suppress macro-tasking
67      !!----------------------------------------------------------------------
68      !! * Arguments
69      INTEGER, INTENT( in ) ::   kstp   ! ocean time-step index
70
71      !! * local declarations
72      INTEGER ::   indic    ! error indicator if < 0
73      !! ---------------------------------------------------------------------
74
75      indic = 1                    ! reset to no error condition
76
77      CALL day( kstp )             ! Calendar
78
79      CALL dta_dyn( kstp )          ! Interpolation of the dynamical fields
80
81#if defined key_passivetrc
82      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
83      ! Passive Tracer Model
84      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
85      ! N.B. ua, va, ta, sa arrays are used as workspace in this section
86      !-----------------------------------------------------------------------
87
88                             CALL trc_stp( kstp, indic)           ! time-stepping
89
90
91#endif
92
93      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
94      ! Control, diagnostics and outputs
95      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
96      !                                            ! Time loop: control and print
97                       CALL stp_ctl( kstp )
98
99
100   END SUBROUTINE stp
101
102   !!======================================================================
103END MODULE step
Note: See TracBrowser for help on using the repository browser.