- Timestamp:
- 2016-08-03T16:04:57+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_convadj/NEMOGCM/NEMO/OPA_SRC/step.F90
r6837 r6839 50 50 51 51 #if defined key_agrif 52 SUBROUTINE stp( )52 RECURSIVE SUBROUTINE stp( ) 53 53 INTEGER :: kstp ! ocean time-step index 54 54 #else … … 79 79 #if defined key_agrif 80 80 kstp = nit000 + Agrif_Nb_Step() 81 ! IF ( Agrif_Root() .and. lwp) Write(*,*) '---' 82 ! IF (lwp) Write(*,*) 'Grid Number',Agrif_Fixed(),' time step ',kstp 81 IF ( lk_agrif_debug ) THEN 82 IF ( Agrif_Root() .and. lwp) Write(*,*) '---' 83 IF (lwp) Write(*,*) 'Grid Number',Agrif_Fixed(),' time step ',kstp, 'int tstep',Agrif_NbStepint() 84 ENDIF 85 83 86 IF ( kstp == (nit000 + 1) ) lk_agrif_fstep = .FALSE. 87 84 88 # if defined key_iomput 85 89 IF( Agrif_Nbstepint() == 0 ) CALL iom_swap( cxios_context ) … … 114 118 ! Update stochastic parameters and random T/S fluctuations 115 119 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 116 CALL sto_par( kstp ) ! Stochastic parameters 120 IF( ln_sto_eos ) CALL sto_par( kstp ) ! Stochastic parameters 121 IF( ln_sto_eos ) CALL sto_pts( tsn ) ! Random T/S fluctuations 117 122 118 123 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 156 161 ! 157 162 IF( lk_ldfslp ) THEN ! slope of lateral mixing 158 IF(ln_sto_eos ) CALL sto_pts( tsn ) ! Random T/S fluctuations159 163 CALL eos( tsb, rhd, gdept_0(:,:,:) ) ! before in situ density 160 164 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 192 196 ! Note that the computation of vertical velocity above, hence "after" sea level 193 197 ! is necessary to compute momentum advection for the rhs of barotropic loop: 194 IF(ln_sto_eos ) CALL sto_pts( tsn ) ! Random T/S fluctuations195 198 CALL eos ( tsn, rhd, rhop, fsdept_n(:,:,:) ) ! now in situ density for hpg computation 196 199 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 204 207 ua(:,:,:) = 0.e0 ! set dynamics trends to zero 205 208 va(:,:,:) = 0.e0 206 IF( l n_asmiau .AND. &209 IF( lk_asminc .AND. ln_asmiau .AND. & 207 210 & ln_dyninc ) CALL dyn_asm_inc ( kstp ) ! apply dynamics assimilation increment 208 211 IF( ln_neptsimp ) CALL dyn_nept_cor ( kstp ) ! subtract Neptune velocities (simplified) … … 252 255 tsa(:,:,:,:) = 0.e0 ! set tracer trends to zero 253 256 254 IF( l n_asmiau .AND. &257 IF( lk_asminc .AND. ln_asmiau .AND. & 255 258 & ln_trainc ) CALL tra_asm_inc( kstp ) ! apply tracer assimilation increment 256 259 CALL tra_sbc ( kstp ) ! surface boundary condition … … 274 277 IF( ln_zdfnpc ) CALL tra_npc( kstp ) ! update after fields by non-penetrative convection 275 278 CALL tra_nxt( kstp ) ! tracer fields at next time step 276 IF( ln_sto_eos ) CALL sto_pts( tsn ) ! Random T/S fluctuations277 279 CALL eos ( tsa, rhd, rhop, fsdept_n(:,:,:) ) ! Time-filtered in situ density for hpg computation 278 280 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 285 287 ELSE ! centered hpg (eos then time stepping) 286 288 IF ( .NOT. lk_dynspg_ts ) THEN ! eos already called in time-split case 287 IF( ln_sto_eos ) CALL sto_pts( tsn ) ! Random T/S fluctuations288 289 CALL eos ( tsn, rhd, rhop, fsdept_n(:,:,:) ) ! now in situ density for hpg computation 289 290 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 318 319 va(:,:,:) = 0.e0 319 320 320 IF( l n_asmiau .AND. &321 IF( lk_asminc .AND. ln_asmiau .AND. & 321 322 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 322 323 IF( ln_bkgwri ) CALL asm_bkg_wri( kstp ) ! output background fields … … 339 340 CALL ssh_swp( kstp ) ! swap of sea surface height 340 341 IF( lk_vvl ) CALL dom_vvl_sf_swp( kstp ) ! swap of vertical scale factors 341 342 ! 343 IF( lrst_oce ) CALL rst_write( kstp ) ! write output ocean restart file 344 IF( ln_sto_eos ) CALL sto_rst_write( kstp ) ! write restart file for stochastic parameters 345 346 #if defined key_agrif 347 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 348 ! AGRIF 349 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 350 CALL Agrif_Integrate_ChildGrids( stp ) 351 352 IF ( Agrif_NbStepint().EQ.0 ) THEN 353 CALL Agrif_Update_Tra() ! Update active tracers 354 CALL Agrif_Update_Dyn() ! Update momentum 355 ENDIF 356 #endif 342 357 IF( ln_diahsb ) CALL dia_hsb( kstp ) ! - ML - global conservation diagnostics 343 358 IF( lk_diaobs ) CALL dia_obs( kstp ) ! obs-minus-model (assimilation) diagnostics (call after dynamics update) 344 359 345 360 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 346 ! Control and restarts361 ! Control 347 362 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 348 363 CALL stp_ctl( kstp, indic ) … … 356 371 IF( lwm.AND.numoni /= -1 ) CALL FLUSH ( numoni ) ! flush output namelist ice 357 372 ENDIF 358 IF( lrst_oce ) CALL rst_write ( kstp ) ! write output ocean restart file359 373 360 374 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 371 385 ! 372 386 IF( nn_timing == 1 .AND. kstp == nit000 ) CALL timing_reset 387 ! 373 388 ! 374 389 END SUBROUTINE stp
Note: See TracChangeset
for help on using the changeset viewer.