- Timestamp:
- 2019-12-13T19:48:00+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/tests/STATION_ASF/MY_SRC/step_c1d.F90
r11930 r12249 6 6 !! History : 2.0 ! 2004-04 (C. Ethe) adapted from step.F90 for C1D 7 7 !! 3.0 ! 2008-04 (G. Madec) redo the adaptation to include SBC 8 !! 4.1 ! 2019-08 (A. Coward, D. Storkey) rewrite in preparation for new timestepping scheme 9 !! 4.1 ! 2019-12 (L. Brodeau) STATION_ASF test-case 8 10 !!---------------------------------------------------------------------- 9 11 #if defined key_c1d 10 12 !!---------------------------------------------------------------------- 11 13 !! 'key_c1d' 1D Configuration 12 !!---------------------------------------------------------------------- 14 !!---------------------------------------------------------------------- 13 15 !! stp_c1d : NEMO system time-stepping in c1d case 14 16 !!---------------------------------------------------------------------- 15 USE step_oce ! time stepping definition modules 16 !LB:USE dyncor_c1d ! Coriolis term (c1d case) (dyn_cor_1d ) 17 !LB:USE dynnxt ! time-stepping (dyn_nxt routine) 18 !LB:USE dyndmp ! U & V momentum damping (dyn_dmp routine) 19 USE restart ! restart 17 USE step_oce ! time stepping definition modules 18 USE step, ONLY : Nbb, Nnn, Naa, Nrhs ! time level indices 19 USE restart ! restart 20 20 21 21 IMPLICIT NONE 22 22 PRIVATE 23 23 24 PUBLIC 24 PUBLIC stp_c1d ! called by nemogcm.F90 25 25 26 26 !!---------------------------------------------------------------------- … … 34 34 !!---------------------------------------------------------------------- 35 35 !! *** ROUTINE stp_c1d *** 36 !! 36 !! 37 37 !! ** Purpose : - Time stepping of SBC including sea ice (dynamic and thermodynamic eqs.) 38 38 !! - Time stepping of OPA (momentum and active tracer eqs.) 39 39 !! - Time stepping of TOP (passive tracer eqs.) 40 !! 41 !! ** Method : -1- Update forcings and data 42 !! -2- Update vertical ocean physics 43 !! -3- Compute the t and s trends 44 !! -4- Update t and s 40 !! 41 !! ** Method : -1- Update forcings and data 42 !! -2- Update vertical ocean physics 43 !! -3- Compute the t and s trends 44 !! -4- Update t and s 45 45 !! -5- Compute the momentum trends 46 46 !! -6- Update the horizontal velocity … … 54 54 !! --------------------------------------------------------------------- 55 55 56 56 indic = 0 ! reset to no error condition 57 57 IF( kstp == nit000 ) CALL iom_init( "nemo") ! iom_put initialization (must be done after nemo_init for AGRIF+XIOS+OASIS) 58 58 IF( kstp /= nit000 ) CALL day( kstp ) ! Calendar (day was already called at nit000 in day_init) 59 59 CALL iom_setkt( kstp - nit000 + 1, "nemo" ) ! say to iom that we are at time step kstp 60 60 61 CALL sbc ( kstp ) ! Sea Boundary Condition (including sea-ice) 61 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 62 ! Update data, open boundaries, surface boundary condition (including sea-ice) 63 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 64 CALL sbc ( kstp, Nbb, Nnn ) ! Sea Boundary Condition (including sea-ice) 62 65 63 CALL dia_wri( kstp )! ocean model: outputs66 CALL dia_wri( kstp, Nnn ) ! ocean model: outputs 64 67 65 68 ! Swap time levels 69 Nrhs = Nbb 70 Nbb = Nnn 71 Nnn = Naa 72 Naa = Nrhs 73 66 74 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 67 ! Control 75 ! Control and restarts 68 76 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 69 CALL stp_ctl( kstp, indic ) 70 IF( indic < 0 ) THEN 71 CALL ctl_stop( 'step: indic < 0' ) 72 CALL dia_wri_state( 'output.abort' ) 73 ENDIF 74 75 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file 76 77 !#LB: from C1D: 78 IF( lrst_oce ) CALL rst_write( kstp ) ! write output ocean restart file 77 CALL stp_ctl( kstp, Nbb, Nnn, indic ) 78 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file 79 IF( lrst_oce ) CALL rst_write( kstp, Nbb, Nnn ) ! write output ocean restart file 79 80 ! 80 81 #if defined key_iomput 81 82 IF( kstp == nitend .OR. indic < 0 ) CALL xios_context_finalize() ! needed for XIOS 83 ! 82 84 #endif 83 84 !#LB: from SAS"85 !#if defined key_iomput86 ! IF( kstp == nitrst ) THEN87 ! IF(.NOT.lwxios) THEN88 ! CALL iom_close( numrow )89 ! ELSE90 ! CALL iom_context_finalize( cwxios_context )91 ! ENDIF92 ! lrst_oce = .FALSE.93 ! ENDIF94 ! IF( kstp == nitend .OR. indic < 0 ) THEN95 ! CALL iom_context_finalize( cxios_context ) ! needed for XIOS+AGRIF96 ! ENDIF97 !#endif98 ! !99 ! IF( ln_timing .AND. kstp == nit000 ) CALL timing_reset100 !101 85 END SUBROUTINE stp_c1d 102 86 103 87 #else 104 !!---------------------------------------------------------------------- 105 !! Default key NO 1D Config 106 !!---------------------------------------------------------------------- 88 !!---------------------------------------------------------------------- 89 !! Default key NO 1D Config 90 !!---------------------------------------------------------------------- 107 91 CONTAINS 108 SUBROUTINE stp_c1d ( kt ) ! dummy routine 92 SUBROUTINE stp_c1d ( kt ) ! dummy routine 109 93 IMPLICIT NONE 110 94 INTEGER, INTENT( in ) :: kt … … 112 96 END SUBROUTINE stp_c1d 113 97 #endif 114 98 115 99 !!====================================================================== 116 100 END MODULE step_c1d
Note: See TracChangeset
for help on using the changeset viewer.