Changeset 11053 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/step.F90
- Timestamp:
- 2019-05-24T12:53:06+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/step.F90
r11050 r11053 44 44 45 45 PUBLIC stp ! called by nemogcm.F90 46 PUBLIC update_pointers ! called by nemo_init47 46 48 47 !!---------------------------------------------------------------------- … … 253 252 #endif 254 253 CALL tra_adv ( kstp, Nbb, Nnn, ts, Nrhs ) ! hor. + vert. advection ==> RHS 255 IF( ln_zdfosm ) CALL tra_osm ( kstp, Nnn, ts, Nrhs ) ! OSMOSIS non-local tracer fluxes ==> RHS254 IF( ln_zdfosm ) CALL tra_osm ( kstp, Nnn, ts, Nrhs ) ! OSMOSIS non-local tracer fluxes ==> RHS 256 255 IF( lrst_oce .AND. ln_zdfosm ) & 257 & CALL osm_rst ( kstp, Nnn, 'WRITE' )! write OSMOSIS outputs + ww (so must do here) to restarts256 & CALL osm_rst ( kstp, Nnn, 'WRITE' ) ! write OSMOSIS outputs + ww (so must do here) to restarts 258 257 CALL tra_ldf ( kstp, Nbb, Nnn, ts, Nrhs ) ! lateral mixing 259 258 260 259 !!gm : why CALL to dia_ptr has been moved here??? (use trends info?) 261 IF( ln_diaptr ) CALL dia_ptr( Nnn ) ! Poleward adv/ldf TRansports diagnostics260 IF( ln_diaptr ) CALL dia_ptr( Nnn ) ! Poleward adv/ldf TRansports diagnostics 262 261 !!gm 263 262 CALL tra_zdf ( kstp, Nbb, Nnn, Nrhs, ts, Naa ) ! vert. mixing & after tracer ==> after … … 282 281 !!jc2: dynnxt must be the latest call. e3t(:,:,:,Nbb) are indeed updated in that routine 283 282 CALL tra_nxt ( kstp, Nbb, Nnn, Nrhs, Naa ) ! finalize (bcs) tracer fields at next time step and swap 284 CALL dyn_atf ( kstp, Nbb, Nnn, Naa, uu, vv, e3t, e3u, e3v ) ! time swapping of "now" arrays283 CALL dyn_atf ( kstp, Nbb, Nnn, Naa, uu, vv, e3t, e3u, e3v ) ! time filtering of "now" arrays 285 284 CALL ssh_swp ( kstp, Nbb, Nnn, Naa ) ! swap of sea surface height 286 285 ! … … 291 290 Naa = Nrhs 292 291 ! 293 ! Update temporary pointers294 CALL update_pointers( Nbb, Nnn, Naa )295 296 292 IF(.NOT.ln_linssh) CALL dom_vvl_sf_swp( kstp, Nbb, Nnn, Naa ) ! swap of vertical scale factors 297 293 ! … … 310 306 ! AGRIF 311 307 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 312 CALL Agrif_Integrate_ChildGrids( stp ) ! allows to finish all the Child Grids before updating 313 314 IF( Agrif_NbStepint() == 0 ) CALL Agrif_update_all( ) ! Update all components 308 CALL Agrif_Integrate_ChildGrids( stp ) ! allows to finish all the Child Grids before updating 309 310 IF( Agrif_NbStepint() == 0 ) THEN 311 Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs ! agrif_oce module copies of time level indices 312 CALL Agrif_update_all( ) ! Update all components 313 ENDIF 315 314 #endif 316 315 IF( ln_diaobs ) CALL dia_obs ( kstp, Nnn ) ! obs-minus-model (assimilation) diagnostics (call after dynamics update) … … 331 330 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 332 331 !!gm why lk_oasis and not lk_cpl ???? 333 IF( lk_oasis ) CALL sbc_cpl_snd( kstp, N nn )! coupled mode : field exchanges332 IF( lk_oasis ) CALL sbc_cpl_snd( kstp, Nbb, Nnn ) ! coupled mode : field exchanges 334 333 ! 335 334 #if defined key_iomput … … 344 343 ! 345 344 END SUBROUTINE stp 346 347 SUBROUTINE update_pointers( Kbb, Kmm, Kaa ) 348 !!---------------------------------------------------------------------- 349 !! *** ROUTINE update_pointers *** 350 !! 351 !! ** Purpose : Associate temporary pointer arrays. 352 !! For IMMERSE development phase only - to be deleted 353 !! 354 !! ** Method : 355 !!---------------------------------------------------------------------- 356 INTEGER, INTENT( in ) :: Kbb, Kmm, Kaa ! time level indices 357 358 ub => uu(:,:,:,Kbb); un => uu(:,:,:,Kmm); ua => uu(:,:,:,Kaa) 359 vb => vv(:,:,:,Kbb); vn => vv(:,:,:,Kmm); va => vv(:,:,:,Kaa) 360 wn => ww(:,:,:) 361 hdivn => hdiv(:,:,:) 362 363 sshb => ssh(:,:,Kbb); sshn => ssh(:,:,Kmm); ssha => ssh(:,:,Kaa) 364 ub_b => uu_b(:,:,Kbb); un_b => uu_b(:,:,Kmm); ua_b => uu_b(:,:,Kaa) 365 vb_b => vv_b(:,:,Kbb); vn_b => vv_b(:,:,Kmm); va_b => vv_b(:,:,Kaa) 366 367 tsb => ts(:,:,:,:,Kbb); tsn => ts(:,:,:,:,Kmm); tsa => ts(:,:,:,:,Kaa) 368 369 e3t_b => e3t(:,:,:,Kbb); e3t_n => e3t(:,:,:,Kmm); e3t_a => e3t(:,:,:,Kaa) 370 e3u_b => e3u(:,:,:,Kbb); e3u_n => e3u(:,:,:,Kmm); e3u_a => e3u(:,:,:,Kaa) 371 e3v_b => e3v(:,:,:,Kbb); e3v_n => e3v(:,:,:,Kmm); e3v_a => e3v(:,:,:,Kaa) 372 373 e3f_n => e3f(:,:,:) 374 375 e3w_b => e3w (:,:,:,Kbb); e3w_n => e3w (:,:,:,Kmm) 376 e3uw_b => e3uw(:,:,:,Kbb); e3uw_n => e3uw(:,:,:,Kmm) 377 e3vw_b => e3vw(:,:,:,Kbb); e3vw_n => e3vw(:,:,:,Kmm) 378 379 gdept_b => gdept(:,:,:,Kbb); gdept_n => gdept(:,:,:,Kmm) 380 gdepw_b => gdepw(:,:,:,Kbb); gdepw_n => gdepw(:,:,:,Kmm) 381 gde3w_n => gde3w(:,:,:) 382 383 ht_n => ht(:,:) 384 385 hu_b => hu(:,:,Kbb); hu_n => hu(:,:,Kmm); hu_a => hu(:,:,Kaa) 386 hv_b => hv(:,:,Kbb); hv_n => hv(:,:,Kmm); hv_a => hv(:,:,Kaa) 387 388 r1_hu_b => r1_hu(:,:,Kbb); r1_hu_n => r1_hu(:,:,Kmm); r1_hu_a => r1_hu(:,:,Kaa) 389 r1_hv_b => r1_hv(:,:,Kbb); r1_hv_n => r1_hv(:,:,Kmm); r1_hv_a => r1_hv(:,:,Kaa) 390 391 392 END SUBROUTINE update_pointers 393 345 ! 394 346 !!====================================================================== 395 347 END MODULE step
Note: See TracChangeset
for help on using the changeset viewer.