- Timestamp:
- 2016-11-28T17:04:10+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r5836 r7351 36 36 37 37 !!---------------------------------------------------------------------- 38 !! nemo_gcm 39 !! nemo_init 40 !! nemo_ctl 41 !! nemo_closefile 42 !! nemo_alloc 43 !! nemo_partition 44 !! factorise 38 !! nemo_gcm : solve ocean dynamics, tracer, biogeochemistry and/or sea-ice 39 !! nemo_init : initialization of the NEMO system 40 !! nemo_ctl : initialisation of the contol print 41 !! nemo_closefile: close remaining open files 42 !! nemo_alloc : dynamical allocation 43 !! nemo_partition: calculate MPP domain decomposition 44 !! factorise : calculate the factors of the no. of MPI processes 45 45 !!---------------------------------------------------------------------- 46 USE step_oce 47 USE domcfg 48 USE mppini 49 USE domain 46 USE step_oce ! module used in the ocean time stepping module (step.F90) 47 USE domcfg ! domain configuration (dom_cfg routine) 48 USE mppini ! shared/distributed memory setting (mpp_init routine) 49 USE domain ! domain initialization (dom_init routine) 50 50 #if defined key_nemocice_decomp 51 51 USE ice_domain_size, only: nx_global, ny_global 52 52 #endif 53 USE tideini ! tidal components initialization (tide_ini routine) 54 USE bdyini ! open boundary cond. setting (bdy_init routine) 55 USE bdydta ! open boundary cond. setting (bdy_dta_init routine) 56 USE bdytides ! open boundary cond. setting (bdytide_init routine) 57 USE istate ! initial state setting (istate_init routine) 58 USE ldfdyn ! lateral viscosity setting (ldfdyn_init routine) 59 USE ldftra ! lateral diffusivity setting (ldftra_init routine) 60 USE zdfini ! vertical physics setting (zdf_init routine) 61 USE phycst ! physical constant (par_cst routine) 62 USE trdini ! dyn/tra trends initialization (trd_init routine) 63 USE asminc ! assimilation increments 64 USE asmbkg ! writing out state trajectory 65 USE diaptr ! poleward transports (dia_ptr_init routine) 66 USE diadct ! sections transports (dia_dct_init routine) 67 USE diaobs ! Observation diagnostics (dia_obs_init routine) 68 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 69 USE step ! NEMO time-stepping (stp routine) 70 USE icbini ! handle bergs, initialisation 71 USE icbstp ! handle bergs, calving, themodynamics and transport 72 USE cpl_oasis3 ! OASIS3 coupling 73 USE c1d ! 1D configuration 74 USE step_c1d ! Time stepping loop for the 1D configuration 75 USE dyndmp ! Momentum damping 53 USE tideini ! tidal components initialization (tide_ini routine) 54 USE bdyini ! open boundary cond. setting (bdy_init routine) 55 USE bdydta ! open boundary cond. setting (bdy_dta_init routine) 56 USE bdytides ! open boundary cond. setting (bdytide_init routine) 57 USE sbctide, ONLY : lk_tide 58 USE istate ! initial state setting (istate_init routine) 59 USE ldfdyn ! lateral viscosity setting (ldfdyn_init routine) 60 USE ldftra ! lateral diffusivity setting (ldftra_init routine) 61 USE zdfini ! vertical physics setting (zdf_init routine) 62 USE phycst ! physical constant (par_cst routine) 63 USE trdini ! dyn/tra trends initialization (trd_init routine) 64 USE asminc ! assimilation increments 65 USE asmbkg ! writing out state trajectory 66 USE diaptr ! poleward transports (dia_ptr_init routine) 67 USE diadct ! sections transports (dia_dct_init routine) 68 USE diaobs ! Observation diagnostics (dia_obs_init routine) 69 USE diacfl ! CFL diagnostics (dia_cfl_init routine) 70 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 71 USE step ! NEMO time-stepping (stp routine) 72 USE icbini ! handle bergs, initialisation 73 USE icbstp ! handle bergs, calving, themodynamics and transport 74 USE cpl_oasis3 ! OASIS3 coupling 75 USE c1d ! 1D configuration 76 USE step_c1d ! Time stepping loop for the 1D configuration 77 USE dyndmp ! Momentum damping 78 USE stopar ! Stochastic param.: ??? 79 USE stopts ! Stochastic param.: ??? 76 80 #if defined key_top 77 USE trcini ! passive tracer initialisation 78 #endif 79 USE lib_mpp ! distributed memory computing 81 USE trcini ! passive tracer initialisation 82 #endif 83 USE lib_mpp ! distributed memory computing 84 USE diurnal_bulk ! diurnal bulk SST 85 USE step_diu ! diurnal bulk SST timestepping (called from here if run offline) 80 86 #if defined key_iomput 81 USE xios 82 #endif 83 USE sbctide, ONLY : lk_tide84 USE crsini ! initialise grid coarsening utility85 USE lbcnfd , ONLY : isendto, nsndto, nfsloop, nfeloop ! Setup of north fold exchanges86 USE sbc_oce, ONLY : lk_oasis87 USE stopar88 USE stopts87 USE xios ! xIOserver 88 #endif 89 USE crsini ! initialise grid coarsening utility 90 USE lbcnfd , ONLY : isendto, nsndto, nfsloop, nfeloop ! Setup of north fold exchanges 91 USE sbc_oce, ONLY : lk_oasis 92 USE diatmb ! Top,middle,bottom output 93 USE dia25h ! 25h mean output 94 USE wet_dry ! Wetting and drying setting (wad_init routine) 89 95 90 96 IMPLICIT NONE … … 171 177 CALL stp ! AGRIF: time stepping 172 178 #else 173 CALL stp( istp ) ! standard time stepping 179 IF ( .NOT. ln_diurnal_only ) THEN 180 CALL stp( istp ) ! standard time stepping 181 ELSE 182 CALL stp_diurnal( istp ) ! time step only the diurnal SST 183 ENDIF 174 184 #endif 175 185 istp = istp + 1 … … 178 188 #endif 179 189 180 IF( l k_diaobs ) CALL dia_obs_wri190 IF( ln_diaobs ) CALL dia_obs_wri 181 191 ! 182 192 IF( ln_icebergs ) CALL icb_end( nitend ) … … 193 203 ! 194 204 #if defined key_agrif 195 IF( .NOT.Agrif_Root() ) THEN196 197 IF( l k_diaobs )CALL dia_obs_wri205 IF( .NOT. Agrif_Root() ) THEN 206 CALL Agrif_ParentGrid_To_ChildGrid() 207 IF( ln_diaobs ) CALL dia_obs_wri 198 208 IF( nn_timing == 1 ) CALL timing_finalize 199 209 CALL Agrif_ChildGrid_To_ParentGrid() … … 231 241 NAMELIST/namctl/ ln_ctl , nn_print, nn_ictls, nn_ictle, & 232 242 & nn_isplt, nn_jsplt, nn_jctls, nn_jctle, & 233 & nn_bench, nn_timing 243 & nn_bench, nn_timing, nn_diacfl 234 244 NAMELIST/namcfg/ cp_cfg, cp_cfz, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 235 245 & jpizoom, jpjzoom, jperio, ln_use_jattr … … 393 403 CALL eos_init ! Equation of state 394 404 IF( lk_c1d ) CALL c1d_init ! 1D column configuration 405 CALL wad_init ! Wetting and drying options 395 406 CALL dom_cfg ! Domain configuration 396 407 CALL dom_init ! Domain … … 398 409 IF( ln_nnogather ) CALL nemo_northcomms! northfold neighbour lists (must be done after the masks are defined) 399 410 IF( ln_ctl ) CALL prt_ctl_init ! Print control 411 412 CALL diurnal_sst_bulk_init ! diurnal sst 413 IF ( ln_diurnal ) CALL diurnal_sst_coolskin_init ! cool skin 414 415 ! IF ln_diurnal_only, then we only want a subset of the initialisation routines 416 IF ( ln_diurnal_only ) THEN 417 CALL istate_init ! ocean initial state (Dynamics and tracers) 418 CALL sbc_init ! Forcings : surface module 419 CALL tra_qsr_init ! penetrative solar radiation qsr 420 IF( ln_diaobs ) THEN ! Observation & model comparison 421 CALL dia_obs_init ! Initialize observational data 422 CALL dia_obs( nit000 - 1 ) ! Observation operator for restart 423 ENDIF 424 ! ! Assimilation increments 425 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments 426 427 IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 428 RETURN 429 ENDIF 430 400 431 CALL istate_init ! ocean initial state (Dynamics and tracers) 401 432 402 433 ! ! external forcing 403 434 !!gm to be added : creation and call of sbc_apr_init 404 IF( lk_tide ) CALL tide_init ( nit000 )! tidal harmonics435 IF( lk_tide ) CALL tide_init ! tidal harmonics 405 436 CALL sbc_init ! surface boundary conditions (including sea-ice) 406 437 !!gm ==>> bdy_init should call bdy_dta_init and bdytide_init NOT in nemogcm !!! … … 458 489 ! ! Diagnostics 459 490 IF( lk_floats ) CALL flo_init ! drifting Floats 491 CALL dia_cfl_init ! Initialise CFL diagnostics 460 492 IF( lk_diaar5 ) CALL dia_ar5_init ! ar5 diag 461 493 CALL dia_ptr_init ! Poleward TRansports initialization … … 463 495 CALL dia_hsb_init ! heat content, salt content and volume budgets 464 496 CALL trd_init ! Mixed-layer/Vorticity/Integral constraints trends 465 IF( lk_diaobs ) THEN ! Observation & model comparison466 497 CALL dia_obs_init ! Initialize observational data 467 468 ENDIF 469 ! ! Assimilation increments498 IF( ln_diaobs ) CALL dia_obs( nit000 - 1 ) ! Observation operator for restart 499 500 ! ! Assimilation increments 470 501 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments 471 502 IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 503 CALL dia_tmb_init ! TMB outputs 504 CALL dia_25h_init ! 25h mean outputs 505 472 506 ! 473 507 END SUBROUTINE nemo_init
Note: See TracChangeset
for help on using the changeset viewer.