- Timestamp:
- 2020-12-03T17:39:30+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/nemogcm.F90
r14044 r14062 42 42 !!---------------------------------------------------------------------- 43 43 USE step_oce ! module used in the ocean time stepping module (step.F90) 44 ! 44 45 USE phycst ! physical constant (par_cst routine) 45 46 USE domain ! domain initialization (dom_init & dom_cfg routines) 46 USE closea ! treatment of closed seas (for ln_closea)47 USE usrdef_nam ! user defined configuration 48 USE tide_mod, ONLY : tide_init ! tidal components initialization (tide_init routine)49 USE bdyini 47 USE wet_dry ! Wetting and drying setting (wad_init routine) 48 USE usrdef_nam ! user defined configuration namelist 49 USE tide_mod, ONLY : tide_init ! tidal components initialization (tide_init routine) 50 USE bdyini , ONLY : bdy_init ! open boundary cond. setting (bdy_init routine) 50 51 USE istate ! initial state setting (istate_init routine) 51 USE ldfdyn ! lateral viscosity setting (ldfdyn_init routine)52 USE ldftra ! lateral diffusivity setting (ldftra_init routine)53 52 USE trdini ! dyn/tra trends initialization (trd_init routine) 54 USE asminc ! assimilation increments 55 USE asmbkg ! writing out state trajectory 56 USE diadct ! sections transports (dia_dct_init routine) 57 USE diaobs ! Observation diagnostics (dia_obs_init routine) 58 USE diacfl ! CFL diagnostics (dia_cfl_init routine) 59 USE diamlr ! IOM context management for multiple-linear-regression analysis 53 USE icbini ! handle bergs, initialisation 54 USE icbstp , ONLY : icb_end ! handle bergs, close iceberg files 55 USE cpl_oasis3 ! OASIS3 coupling 56 USE dyndmp ! Momentum damping (C1D only) 57 USE step_diu ! diurnal bulk SST timestepping (called from here if run offline) 58 USE crsini ! initialise grid coarsening utility 59 USE dia25h , ONLY : dia_25h_init ! 25h mean output (initialisation) 60 USE c1d ! 1D configuration 61 USE step_c1d ! Time stepping loop for the 1D configuration 62 #if defined key_top 63 USE trcini ! passive tracer initialisation 64 #endif 65 #if defined key_nemocice_decomp 66 USE ice_domain_size, only: nx_global, ny_global 67 #endif 60 68 #if defined key_qco 61 USE st epMLF! NEMO time-stepping (stp_MLF routine)69 USE stpmlf ! NEMO time-stepping (stp_MLF routine) 62 70 #else 63 71 USE step ! NEMO time-stepping (stp routine) 64 72 #endif 65 USE isfstp ! ice shelf (isf_stp_init routine)66 USE icbini ! handle bergs, initialisation67 USE icbstp ! handle bergs, calving, themodynamics and transport68 USE cpl_oasis3 ! OASIS3 coupling69 USE c1d ! 1D configuration70 USE step_c1d ! Time stepping loop for the 1D configuration71 USE dyndmp ! Momentum damping72 USE stopar ! Stochastic param.: ???73 USE stopts ! Stochastic param.: ???74 USE diu_layers ! diurnal bulk SST and coolskin75 USE step_diu ! diurnal bulk SST timestepping (called from here if run offline)76 USE crsini ! initialise grid coarsening utility77 USE dia25h ! 25h mean output78 USE diadetide ! Weights computation for daily detiding of model diagnostics79 USE sbc_oce , ONLY : lk_oasis80 USE wet_dry ! Wetting and drying setting (wad_init routine)81 #if defined key_top82 USE trcini ! passive tracer initialisation83 #endif84 #if defined key_nemocice_decomp85 USE ice_domain_size, only: nx_global, ny_global86 #endif87 73 ! 88 USE prtctl ! Print control89 USE in_out_manager ! I/O manager90 74 USE lib_mpp ! distributed memory computing 91 75 USE mppini ! shared/distributed memory setting (mpp_init routine) 92 76 USE lbcnfd , ONLY : isendto, nsndto ! Setup of north fold exchanges 93 77 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 94 #if defined key_iomput 95 USE xios ! xIOserver 96 #endif 97 #if defined key_agrif 98 USE agrif_all_update ! Master Agrif update 99 #endif 100 USE halo_mng 78 USE halo_mng ! Halo manager 101 79 102 80 IMPLICIT NONE … … 182 160 ! 183 161 DO WHILE( istp <= nitend .AND. nstop == 0 ) 184 # if defined key_qco162 # if defined key_qco 185 163 CALL stp_MLF 186 # else164 # else 187 165 CALL stp 188 # endif166 # endif 189 167 istp = istp + 1 190 168 END DO … … 195 173 ! 196 174 DO WHILE( istp <= nitend .AND. nstop == 0 ) 197 175 ! 198 176 ncom_stp = istp 199 177 IF( ln_timing ) THEN … … 202 180 IF ( istp == nitend ) elapsed_time = zstptiming - elapsed_time 203 181 ENDIF 204 205 # if defined key_qco182 ! 183 # if defined key_qco 206 184 CALL stp_MLF ( istp ) 207 # else185 # else 208 186 CALL stp ( istp ) 209 # endif187 # endif 210 188 istp = istp + 1 211 189 ! 212 190 IF( lwp .AND. ln_timing ) WRITE(numtime,*) 'timing step ', istp-1, ' : ', MPI_Wtime() - zstptiming 213 191 ! 214 192 END DO 215 193 ! … … 279 257 INTEGER :: ios, ilocal_comm ! local integers 280 258 !! 281 NAMELIST/namctl/ sn_cfctl, ln_timing, ln_diacfl, 282 & nn_isplt, nn_jsplt, nn_ictls, nn_ictle, nn_jctls, nn_jctle259 NAMELIST/namctl/ sn_cfctl, ln_timing, ln_diacfl, nn_isplt, nn_jsplt , nn_ictls, & 260 & nn_ictle, nn_jctls , nn_jctle 283 261 NAMELIST/namcfg/ ln_read_cfg, cn_domcfg, ln_closea, ln_write_cfg, cn_domcfg_out, ln_use_jattr 284 262 !!---------------------------------------------------------------------- … … 350 328 IF(lwp) THEN ! open listing units 351 329 ! 352 IF( .NOT. 330 IF( .NOT.lwm ) & ! alreay opened for narea == 1 353 331 & CALL ctl_opn( numout, 'ocean.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, -1, .FALSE., narea ) 354 332 ! … … 357 335 WRITE(numout,*) ' NEMO team' 358 336 WRITE(numout,*) ' Ocean General Circulation Model' 359 WRITE(numout,*) ' NEMO version 4.0 (20 19) '337 WRITE(numout,*) ' NEMO version 4.0 (2020) ' 360 338 WRITE(numout,*) 361 339 WRITE(numout,*) " ._ ._ ._ ._ ._ " … … 373 351 WRITE(numout,*) " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ " 374 352 WRITE(numout,*) 375 376 ! Print the working precision to ocean.output 377 IF (wp == dp) THEN 378 WRITE(numout,*) "Working precision = double-precision" 379 ELSE 380 WRITE(numout,*) "Working precision = single-precision" 353 ! 354 WRITE(numout,cform_aaa) ! Flag AAAAAAA 355 ! 356 ! ! Control print of the working precision 357 WRITE(numout,*) 358 IF( wp == dp ) THEN ; WRITE(numout,*) "par_kind : wp = Working precision = dp = double-precision" 359 ELSE ; WRITE(numout,*) "par_kind : wp = Working precision = sp = single-precision" 381 360 ENDIF 382 WRITE(numout,*) 383 ! 384 WRITE(numout,cform_aaa) ! Flag AAAAAAA 361 WRITE(numout,*) "~~~~~~~~ ****************" 362 WRITE(numout,*) 385 363 ! 386 364 ENDIF … … 415 393 416 394 ! Initialise time level indices 417 Nbb = 1 ; Nnn = 2; Naa = 3;Nrhs = Naa395 Nbb = 1 ; Nnn = 2 ; Naa = 3 ; Nrhs = Naa 418 396 #if defined key_agrif 419 Kbb_a = Nbb ; Kmm_a = Nnn;Krhs_a = Nrhs ! agrif_oce module copies of time level indices397 Kbb_a = Nbb ; Kmm_a = Nnn ; Krhs_a = Nrhs ! agrif_oce module copies of time level indices 420 398 #endif 421 399 ! !-------------------------------! … … 423 401 ! !-------------------------------! 424 402 425 CALL nemo_ctl ! Control prints 403 CALL nemo_ctl ! Control prints of namctl and namcfg 426 404 ! 427 405 ! ! General initialization … … 437 415 CALL Agrif_Declare_Var_ini ! " " " " " DOM 438 416 #endif 439 CALL dom_init( Nbb, Nnn, Naa ) ! Domain440 IF( ln_crs ) CALL crs_init( Nnn )! coarsened grid: domain initialization417 CALL dom_init( Nbb, Nnn, Naa ) ! Domain 418 IF( ln_crs ) CALL crs_init( Nnn ) ! coarsened grid: domain initialization 441 419 IF( sn_cfctl%l_prtctl ) & 442 420 & CALL prt_ctl_init ! Print control
Note: See TracChangeset
for help on using the changeset viewer.