Changeset 1438 for trunk/NEMO/OPA_SRC/step.F90
- Timestamp:
- 2009-05-11T16:34:47+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/step.F90
r1417 r1438 4 4 !! Time-stepping : manager of the ocean, tracer and ice time stepping 5 5 !!====================================================================== 6 !! History : ! 91-03 (G. Madec) Original code 7 !! ! 92-06 (M. Imbard) add a first output record 8 !! ! 96-04 (G. Madec) introduction of dynspg 9 !! ! 96-04 (M.A. Foujols) introduction of passive tracer 10 !! 8.0 ! 97-06 (G. Madec) new architecture of call 11 !! 8.2 ! 97-06 (G. Madec, M. Imbard, G. Roullet) free surface 12 !! 8.2 ! 99-02 (G. Madec, N. Grima) hpg implicit 13 !! 8.2 ! 00-07 (J-M Molines, M. Imbard) Open Bondary Conditions 14 !! 9.0 ! 02-06 (G. Madec) free form, suppress macro-tasking 15 !! " " ! 04-08 (C. Talandier) New trends organization 16 !! " " ! 05-01 (C. Ethe) Add the KPP closure scheme 17 !! " " ! 05-11 (V. Garnier) Surface pressure gradient organization 18 !! " " ! 05-11 (G. Madec) Reorganisation of tra and dyn calls 19 !! " " ! 06-01 (L. Debreu, C. Mazauric) Agrif implementation 20 !! " " ! 06-07 (S. Masson) restart using iom 21 !! " " ! 06-08 (G. Madec) surface module 22 !! " " ! 07-07 (J. Chanut, A. Sellar) Unstructured open boundaries (BDY) 6 !! History : OPA ! 1991-03 (G. Madec) Original code 7 !! ! 1991-11 (G. Madec) 8 !! ! 1992-06 (M. Imbard) add a first output record 9 !! ! 1996-04 (G. Madec) introduction of dynspg 10 !! ! 1996-04 (M.A. Foujols) introduction of passive tracer 11 !! 8.0 ! 1997-06 (G. Madec) new architecture of call 12 !! 8.2 ! 1997-06 (G. Madec, M. Imbard, G. Roullet) free surface 13 !! - ! 1999-02 (G. Madec, N. Grima) hpg implicit 14 !! - ! 2000-07 (J-M Molines, M. Imbard) Open Bondary Conditions 15 !! NEMO 1.0 ! 2002-06 (G. Madec) free form, suppress macro-tasking 16 !! - ! 2004-08 (C. Talandier) New trends organization 17 !! ! 2005-01 (C. Ethe) Add the KPP closure scheme 18 !! ! 2005-11 (G. Madec) Reorganisation of tra and dyn calls 19 !! ! 2006-01 (L. Debreu, C. Mazauric) Agrif implementation 20 !! ! 2006-07 (S. Masson) restart using iom 21 !! 3.2 ! 2009-02 (G. Madec, R. Benshila) reintroduicing z*-coordinate 23 22 !!---------------------------------------------------------------------- 24 23 … … 117 116 USE restart ! ocean restart (rst_wri routine) 118 117 USE prtctl ! Print control (prt_ctl routine) 119 USE domvvl ! variable volume (dom_vvl routine)120 118 121 119 #if defined key_agrif … … 141 139 #if defined key_agrif 142 140 SUBROUTINE stp( ) 141 INTEGER :: kstp ! ocean time-step index 143 142 #else 144 143 SUBROUTINE stp( kstp ) 144 INTEGER, INTENT(in) :: kstp ! ocean time-step index 145 145 #endif 146 146 !!---------------------------------------------------------------------- … … 160 160 !! -8- Outputs and diagnostics 161 161 !!---------------------------------------------------------------------- 162 !! * Arguments163 #if defined key_agrif164 INTEGER :: kstp ! ocean time-step index165 #else166 INTEGER, INTENT(in) :: kstp ! ocean time-step index167 #endif168 162 INTEGER :: jk ! dummy loop indice 169 163 INTEGER :: indic ! error indicator if < 0 … … 202 196 ENDIF 203 197 198 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 199 ! Ocean dynamics : ssh, wn, hdiv, rot ! 200 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 201 CALL div_cur( kstp ) ! Horizontal divergence & Relative vorticity 202 IF( n_cla == 1 ) CALL div_cla( kstp ) ! Cross Land Advection (Update Hor. divergence) 203 CALL ssh_wzv( kstp ) ! after ssh & vertical velocity 204 204 205 205 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 206 206 ! Ocean physics update 207 207 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 208 ! N.B. ua, va, ta, sa arrays are used as workspace in this section 209 !----------------------------------------------------------------------- 210 IF( neuler == 0 .AND. kstp == nit000 ) THEN 211 CALL bn2( tn, sn, rn2 ) ! now Brunt-Vaisala frequency 212 rn2b(:,:,:) = rn2(:,:,:) 213 ELSE 214 rn2b(:,:,:) = rn2(:,:,:) ! before Brunt-Vaisala frequency 215 CALL bn2( tn, sn, rn2 ) ! now Brunt-Vaisala frequency 216 ENDIF 217 208 218 #if defined key_zdftke2 209 219 IF ( ln_dynhpg_imp ) THEN … … 211 221 ! LATERAL PHYSICS 212 222 !----------------------------------------------------------------------- 213 ! N.B. ua, va, ta, sa arrays are used as workspace in this section214 !-----------------------------------------------------------------------215 223 CALL zdf_mxl( kstp ) ! mixed layer depth 216 IF( lk_ldfslp ) CALL ldf_slp( kstp, rhd, rn2 )! before slope of the lateral mixing224 IF( lk_ldfslp ) CALL ldf_slp( kstp, rhd, rn2b ) ! before slope of the lateral mixing 217 225 # if defined key_traldf_c2d 218 226 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient … … 223 231 ! VERTICAL PHYSICS 224 232 !----------------------------------------------------------------------- 225 ! N.B. ua, va, ta, sa arrays are used as workspace in this section226 !-----------------------------------------------------------------------227 #if defined key_zdftke2228 CALL bn2( tn, sn, rn2 ) ! now Brunt-Vaisala frequency229 #else230 CALL bn2( tb, sb, rn2 ) ! before Brunt-Vaisala frequency231 #endif232 233 ! ! Vertical eddy viscosity and diffusivity coefficients 233 234 IF( lk_zdfric ) CALL zdf_ric( kstp ) ! Richardson number dependent Kz … … 261 262 #if defined key_zdftke2 262 263 IF( .NOT. ln_dynhpg_imp ) THEN 263 CALL bn2( tb, sb, rn2 ) ! before Brunt-Vaisala frequency264 264 CALL eos( tb, sb, rhd, rhop ) ! now (swap=before) in situ density for dynhpg module 265 265 #endif … … 267 267 ! LATERAL PHYSICS 268 268 !----------------------------------------------------------------------- 269 ! N.B. ua, va, ta, sa arrays are used as workspace in this section 270 !----------------------------------------------------------------------- 271 IF( lk_ldfslp ) CALL ldf_slp( kstp, rhd, rn2 ) ! before slope of the lateral mixing 269 IF( lk_ldfslp ) CALL ldf_slp( kstp, rhd, rn2b ) ! before slope of the lateral mixing 272 270 #if defined key_traldf_c2d 273 271 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient … … 363 361 CALL dyn_spg( kstp, indic ) ! surface pressure gradient 364 362 CALL dyn_nxt( kstp ) ! lateral velocity at next time step 365 IF( lk_vvl ) CALL dom_vvl ! vertical mesh at next time step 366 367 368 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 369 ! Computation of diagnostic variables 370 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 371 ! N.B. ua, va, ta, sa arrays are used as workspace in this section 372 !----------------------------------------------------------------------- 373 CALL div_cur( kstp ) ! Horizontal divergence & Relative vorticity 374 IF( n_cla == 1 ) CALL div_cla( kstp ) ! Cross Land Advection (Update Hor. divergence) 375 CALL wzv( kstp ) ! Vertical velocity 363 364 CALL ssh_nxt( kstp ) ! sea surface height at next time step 376 365 377 366 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Note: See TracChangeset
for help on using the changeset viewer.