- Timestamp:
- 2018-07-26T09:50:51+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/nemogcm.F90
r9939 r10001 36 36 !!---------------------------------------------------------------------- 37 37 !! nemo_gcm : solve ocean dynamics, tracer, biogeochemistry and/or sea-ice 38 !! nemo_MLF : Modified Leap-Frog time stepping loop 39 !! nemo_RK3 : 3rd order Runge-Kutta time stepping loop 38 40 !! nemo_init : initialization of the NEMO system 39 41 !! nemo_ctl : initialisation of the contol print … … 60 62 USE diacfl ! CFL diagnostics (dia_cfl_init routine) 61 63 USE step ! NEMO time-stepping (stp routine) 64 USE stpRK3 ! NEMO time-stepping (stp routine) 62 65 USE icbini ! handle bergs, initialisation 63 66 USE icbstp ! handle bergs, calving, themodynamics and transport … … 123 126 !! Madec, 2008, internal report, IPSL. 124 127 !!---------------------------------------------------------------------- 125 INTEGER :: istp ! time step index126 !!----------------------------------------------------------------------127 128 ! 128 129 #if defined key_agrif … … 152 153 ! !-----------------------! 153 154 ! 154 ! !== set the model time-step ==! 155 IF( ln_MLF ) CALL nemo_MLF ! Modified Leap-Frog 156 ! 157 IF( ln_RK3 ) CALL nemo_RK3 ! 3rd order Runge-Kutta 158 ! 159 ! 160 IF( ln_diaobs ) CALL dia_obs_wri 161 ! 162 IF( ln_icebergs ) CALL icb_end( nitend ) 163 164 ! !------------------------! 165 ! !== finalize the run ==! 166 ! !------------------------! 167 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA 168 ! 169 IF( nstop /= 0 .AND. lwp ) THEN ! error print 170 WRITE(numout,cform_err) 171 WRITE(numout,*) ' ==>>> nemo_gcm: a total of ', nstop, ' errors have been found' 172 WRITE(numout,*) 173 ENDIF 174 ! 175 IF( ln_timing ) CALL timing_finalize 176 ! 177 CALL nemo_closefile 178 ! 179 #if defined key_iomput 180 CALL xios_finalize ! end mpp communications with xios 181 IF( lk_oasis ) CALL cpl_finalize ! end coupling and mpp communications with OASIS 182 #else 183 IF ( lk_oasis ) THEN ; CALL cpl_finalize ! end coupling and mpp communications with OASIS 184 ELSEIF( lk_mpp ) THEN ; CALL mppstop ! end mpp communications 185 ENDIF 186 #endif 187 ! 188 END SUBROUTINE nemo_gcm 189 190 191 SUBROUTINE nemo_MLF 192 !!---------------------------------------------------------------------- 193 !! *** ROUTINE nemo_MLF *** 194 !! 195 !! ** Purpose : Modified Leap-Frog time stepping loop 196 !!---------------------------------------------------------------------- 197 INTEGER :: istp ! time step index 198 !!---------------------------------------------------------------------- 199 ! !== set the MLF time-step ==! 155 200 ! 156 201 IF( l_1st_euler ) THEN ; rDt = rn_Dt ; l_1st_euler = .TRUE. ! start or restart with Euler 1st time-step … … 212 257 #endif 213 258 ! 214 IF( ln_diaobs ) CALL dia_obs_wri 215 ! 216 IF( ln_icebergs ) CALL icb_end( nitend ) 217 218 ! !------------------------! 219 ! !== finalize the run ==! 220 ! !------------------------! 221 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA 222 ! 223 IF( nstop /= 0 .AND. lwp ) THEN ! error print 224 WRITE(numout,cform_err) 225 WRITE(numout,*) ' ==>>> nemo_gcm: a total of ', nstop, ' errors have been found' 226 WRITE(numout,*) 227 ENDIF 228 ! 229 IF( ln_timing ) CALL timing_finalize 230 ! 231 CALL nemo_closefile 232 ! 233 #if defined key_iomput 234 CALL xios_finalize ! end mpp communications with xios 235 IF( lk_oasis ) CALL cpl_finalize ! end coupling and mpp communications with OASIS 259 END SUBROUTINE nemo_MLF 260 261 262 SUBROUTINE nemo_RK3 263 !!---------------------------------------------------------------------- 264 !! *** ROUTINE nemo_RK3 *** 265 !! 266 !! ** Purpose : 3rd order Runge-Kutta time stepping loop 267 !!---------------------------------------------------------------------- 268 INTEGER :: istp ! time step index 269 !!---------------------------------------------------------------------- 270 ! 271 ! !== set the model time-step ==! 272 rDt = rn_Dt 273 r1_Dt = 1._wp / rDt 274 istp = nit000 275 ! 276 #if defined key_agrif 277 ! !== AGRIF time-stepping ==! 278 CALL Agrif_Regrid() 279 ! 280 CALL Agrif_step_child_adj(Agrif_Update_All) ! Recursive update from highest to lowest nested levels 281 ! 282 DO WHILE( istp <= nitend .AND. nstop == 0 ) 283 CALL stp_RK3 284 istp = istp + 1 285 END DO 286 ! 287 IF( .NOT. Agrif_Root() ) THEN 288 CALL Agrif_ParentGrid_To_ChildGrid() 289 IF( ln_diaobs ) CALL dia_obs_wri 290 IF( ln_timing ) CALL timing_finalize 291 CALL Agrif_ChildGrid_To_ParentGrid() 292 ENDIF 293 ! 236 294 #else 237 IF ( lk_oasis ) THEN ; CALL cpl_finalize ! end coupling and mpp communications with OASIS 238 ELSEIF( lk_mpp ) THEN ; CALL mppstop ! end mpp communications 239 ENDIF 240 #endif 241 ! 242 END SUBROUTINE nemo_gcm 295 ! !== Standard time-stepping ==! 296 ! 297 DO WHILE( istp <= nitend .AND. nstop == 0 ) 298 CALL stp_RK3( istp ) 299 istp = istp + 1 300 END DO 301 ! 302 #endif 303 ! 304 END SUBROUTINE nemo_RK3 243 305 244 306 … … 459 521 460 522 ! ! Assimilation increments 461 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments 523 IF( lk_asminc ) THEN 524 CALL asm_inc_init ! Initialize assimilation increments 525 l_dynasm = ln_asmiau .AND. ln_dyninc 526 l_traasm = ln_asmiau .AND. ln_trainc 527 ELSE 528 l_dynasm = .FALSE. 529 l_traasm = .FALSE. 530 ENDIF 462 531 ! 463 532 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA
Note: See TracChangeset
for help on using the changeset viewer.