- Timestamp:
- 2012-07-11T13:22:58+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/step.F90
r3187 r3432 37 37 #endif 38 38 USE asminc ! assimilation increments (tra_asm_inc, dyn_asm_inc routines) 39 39 USE timing, ONLY: timing_start, timing_stop, timing_reset, timing_disable 40 40 IMPLICIT NONE 41 41 PRIVATE … … 88 88 #endif 89 89 !! --------------------------------------------------------------------- 90 CALL timing_start('Step') 90 91 91 92 #if defined key_agrif … … 104 105 ! Update data, open boundaries, surface boundary condition (including sea-ice) 105 106 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 107 CALL timing_start('Boundaries') 106 108 IF( lk_dtatem ) CALL dta_tem( kstp ) ! update 3D temperature data 107 109 IF( lk_dtasal ) CALL dta_sal( kstp ) ! update 3D salinity data … … 110 112 IF( lk_obc ) CALL obc_rad( kstp ) ! compute phase velocities at open boundaries 111 113 IF( lk_bdy ) CALL bdy_dta_frs( kstp ) ! update dynamic and tracer data for FRS conditions (BDY) 114 ! ARP - no 'section' arg here so the time taken 115 ! in this region (which can involve IO) is 116 ! subtracted from the time 117 ! taken to do the whole step. 118 CALL timing_stop('Boundaries') 112 119 113 120 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 114 121 ! Ocean dynamics : ssh, wn, hdiv, rot ! 115 122 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 123 CALL timing_start('Ocean Dyn.') 116 124 CALL ssh_wzv( kstp ) ! after ssh & vertical velocity 125 CALL timing_stop('Ocean Dyn.','section') 117 126 118 127 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 119 128 ! Ocean physics update (ua, va, ta, sa used as workspace) 120 129 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 130 CALL timing_start('Ocean Phys.') 121 131 CALL bn2( tsb, rn2b ) ! before Brunt-Vaisala frequency 122 132 CALL bn2( tsn, rn2 ) ! now Brunt-Vaisala frequency 123 ! 124 ! VERTICAL PHYSICS 133 CALL timing_stop('Ocean Phys.','section') 134 ! 135 ! VERTICAL PHYSICS 136 CALL timing_start('Vert. Phys.') 125 137 CALL zdf_bfr( kstp ) ! bottom friction 126 138 … … 162 174 IF( lrst_oce .AND. lk_zdftke ) CALL tke_rst( kstp, 'WRITE' ) 163 175 IF( lrst_oce .AND. lk_zdfgls ) CALL gls_rst( kstp, 'WRITE' ) 176 177 CALL timing_stop('Vert. Phys.','section') 164 178 ! 165 179 ! LATERAL PHYSICS 180 ! 181 CALL timing_start('Lateral Phys.') 166 182 ! 167 183 IF( lk_ldfslp ) THEN ! slope of lateral mixing … … 178 194 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient 179 195 #endif 196 CALL timing_stop('Lateral Phys.','section') 180 197 181 198 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 182 199 ! diagnostics and outputs (ua, va, ta, sa used as workspace) 183 200 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 201 CALL timing_start('Diagnostics') 184 202 IF( lk_floats ) CALL flo_stp( kstp ) ! drifting Floats 185 203 IF( lk_diahth ) CALL dia_hth( kstp ) ! Thermocline depth (20 degres isotherm depth) … … 188 206 IF( lk_diaar5 ) CALL dia_ar5( kstp ) ! ar5 diag 189 207 CALL dia_wri( kstp ) ! ocean model: outputs 208 CALL timing_stop('Diagnostics','section') 190 209 191 210 #if defined key_top … … 199 218 ! Active tracers (ua, va used as workspace) 200 219 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 220 CALL timing_start('Active tracers') 221 201 222 tsa(:,:,:,:) = 0.e0 ! set tracer trends to zero 202 223 … … 233 254 ENDIF 234 255 CALL tra_unswap ! udate T & S 3D arrays (to be suppressed) 256 CALL timing_stop('Active tracers','section') 235 257 236 258 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 237 259 ! Dynamics (ta, sa used as workspace) 238 260 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 261 CALL timing_start('Dynamics') 262 239 263 ua(:,:,:) = 0.e0 ! set dynamics trends to zero 240 264 va(:,:,:) = 0.e0 … … 242 266 IF( ln_asmiau .AND. & 243 267 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 268 !CALL timing_start('dyn_adv') 244 269 CALL dyn_adv( kstp ) ! advection (vector or flux form) 270 !CALL timing_stop('dyn_adv','section') 271 272 !CALL timing_start('dyn_vor') 245 273 CALL dyn_vor( kstp ) ! vorticity term including Coriolis 274 !CALL timing_stop('dyn_vor','section') 275 276 !CALL timing_start('dyn_ldf') 246 277 CALL dyn_ldf( kstp ) ! lateral mixing 278 !CALL timing_stop('dyn_ldf','section') 279 247 280 #if defined key_agrif 248 281 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_dyn ! momemtum sponge 249 282 #endif 283 !CALL timing_start('dyn_hpg') 250 284 CALL dyn_hpg( kstp ) ! horizontal gradient of Hydrostatic pressure 285 !CALL timing_stop('dyn_hpg','section') 286 287 !CALL timing_start('dyn_bfr') 251 288 CALL dyn_bfr( kstp ) ! bottom friction 289 !CALL timing_stop('dyn_bfr','section') 290 291 !CALL timing_start('dyn_zdf') 252 292 CALL dyn_zdf( kstp ) ! vertical diffusion 293 !CALL timing_stop('dyn_zdf','section') 294 295 !CALL timing_start('dyn_spg') 253 296 CALL dyn_spg( kstp, indic ) ! surface pressure gradient 297 !CALL timing_stop('dyn_spg','section') 298 299 !CALL timing_start('dyn_nxt') 254 300 CALL dyn_nxt( kstp ) ! lateral velocity at next time step 255 301 !CALL timing_stop('dyn_nxt','section') 302 303 !CALL timing_start('ssh_nxt') 256 304 CALL ssh_nxt( kstp ) ! sea surface height at next time step 305 !CALL timing_stop('ssh_nxt','section') 257 306 258 307 IF( ln_diahsb ) CALL dia_hsb( kstp ) ! - ML - global conservation diagnostics 259 308 IF( lk_diaobs ) CALL dia_obs( kstp ) ! obs-minus-model (assimilation) diagnostics 260 309 ! ! (call after dynamics update) 310 CALL timing_stop('Dynamics','section') 261 311 262 312 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 263 313 ! Control and restarts 264 314 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 315 CALL timing_start('Control') 316 265 317 CALL stp_ctl( kstp, indic ) 266 318 IF( indic < 0 ) THEN … … 271 323 IF( lrst_oce ) CALL rst_write ( kstp ) ! write output ocean restart file 272 324 IF( lk_obc ) CALL obc_rst_write( kstp ) ! write open boundary restart file 273 325 ! ARP - no 'section' arg here so the time taken 326 ! in this region (which can involve IO) is 327 ! subtracted from the time 328 ! taken to do the whole step. 329 CALL timing_stop('Control') 274 330 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 275 331 ! Trends (ua, va, ta, sa used as workspace) … … 287 343 IF( lk_cpl ) CALL sbc_cpl_snd( kstp ) ! coupled mode : field exchanges 288 344 ! 289 ! 345 CALL timing_stop('Step', 'section') 346 347 ! 348 IF( kstp == nit000 ) CALL timing_reset ! Exclude first step from timing 349 IF( kstp == (nitend-2) ) CALL timing_disable() ! Turn off timing two steps from end to avoid the IO 350 ! 351 290 352 END SUBROUTINE stp 291 353
Note: See TracChangeset
for help on using the changeset viewer.