[325] | 1 | MODULE 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) |
---|
[1457] | 24 | USE iom |
---|
[325] | 25 | |
---|
| 26 | IMPLICIT NONE |
---|
| 27 | PRIVATE |
---|
| 28 | |
---|
| 29 | !! * Routine accessibility |
---|
| 30 | PUBLIC stp ! called by opa.F90 |
---|
| 31 | |
---|
| 32 | !! * Substitutions |
---|
| 33 | # include "domzgr_substitute.h90" |
---|
| 34 | !!---------------------------------------------------------------------- |
---|
[343] | 35 | !! OPA 9.0 , LOCEAN-IPSL (2005) |
---|
[1152] | 36 | !! $Id$ |
---|
[343] | 37 | !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt |
---|
[325] | 38 | !!---------------------------------------------------------------------- |
---|
| 39 | |
---|
| 40 | CONTAINS |
---|
| 41 | |
---|
| 42 | SUBROUTINE stp( kstp ) |
---|
| 43 | !!---------------------------------------------------------------------- |
---|
| 44 | !! *** ROUTINE stp *** |
---|
| 45 | !! |
---|
| 46 | !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.) |
---|
| 47 | !! - Time stepping of LIM (dynamic and thermodynamic eqs.) |
---|
| 48 | !! - Tme stepping of TRC (passive tracer eqs.) |
---|
| 49 | !! |
---|
| 50 | !! ** Method : -1- Update forcings and data |
---|
| 51 | !! -2- Update ocean physics |
---|
| 52 | !! -3- Compute the t and s trends |
---|
| 53 | !! -4- Update t and s |
---|
| 54 | !! -5- Compute the momentum trends |
---|
| 55 | !! -6- Update the horizontal velocity |
---|
| 56 | !! -7- Compute the diagnostics variables (rd,N2, div,cur,w) |
---|
| 57 | !! -8- Outputs and diagnostics |
---|
| 58 | !! |
---|
| 59 | !! History : |
---|
| 60 | !! ! 91-03 () Original code |
---|
| 61 | !! ! 91-11 (G. Madec) |
---|
| 62 | !! ! 92-06 (M. Imbard) add a first output record |
---|
| 63 | !! ! 96-04 (G. Madec) introduction of dynspg |
---|
| 64 | !! ! 96-04 (M.A. Foujols) introduction of passive tracer |
---|
| 65 | !! 8.0 ! 97-06 (G. Madec) new architecture of call |
---|
| 66 | !! 8.2 ! 97-06 (G. Madec, M. Imbard, G. Roullet) free surface |
---|
| 67 | !! 8.2 ! 99-02 (G. Madec, N. Grima) hpg implicit |
---|
| 68 | !! 8.2 ! 00-07 (J-M Molines, M. Imbard) Open Bondary Conditions |
---|
| 69 | !! 9.0 ! 02-06 (G. Madec) free form, suppress macro-tasking |
---|
| 70 | !!---------------------------------------------------------------------- |
---|
| 71 | !! * Arguments |
---|
| 72 | INTEGER, INTENT( in ) :: kstp ! ocean time-step index |
---|
| 73 | !! --------------------------------------------------------------------- |
---|
| 74 | |
---|
[1749] | 75 | IF( kstp /= nit000 ) CALL day( kstp ) ! Calendar (day was already called at nit000 in day_init) |
---|
[325] | 76 | |
---|
[1457] | 77 | IF( lk_iomput ) CALL iom_setkt( kstp ) ! say to iom that we are at time step kstp |
---|
[325] | 78 | |
---|
[1457] | 79 | CALL dta_dyn( kstp ) ! Interpolation of the dynamical fields |
---|
[325] | 80 | |
---|
[1457] | 81 | CALL trc_stp( kstp ) ! time-stepping |
---|
[325] | 82 | |
---|
[1457] | 83 | |
---|
[325] | 84 | !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
---|
| 85 | ! Control, diagnostics and outputs |
---|
| 86 | !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
---|
| 87 | ! ! Time loop: control and print |
---|
[1291] | 88 | CALL stp_ctl( kstp ) |
---|
[325] | 89 | |
---|
| 90 | |
---|
| 91 | END SUBROUTINE stp |
---|
| 92 | |
---|
| 93 | !!====================================================================== |
---|
| 94 | END MODULE step |
---|