New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r5836 r7351  
    3636 
    3737   !!---------------------------------------------------------------------- 
    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 
     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 
    4545   !!---------------------------------------------------------------------- 
    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) 
     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) 
    5050#if defined key_nemocice_decomp 
    5151   USE ice_domain_size, only: nx_global, ny_global 
    5252#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.: ??? 
    7680#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) 
    8086#if defined key_iomput 
    81    USE xios            ! xIOserver 
    82 #endif 
    83    USE sbctide, ONLY   : lk_tide 
    84    USE crsini          ! initialise grid coarsening utility 
    85    USE lbcnfd , ONLY   : isendto, nsndto, nfsloop, nfeloop   ! Setup of north fold exchanges  
    86    USE sbc_oce, ONLY   : lk_oasis 
    87    USE stopar 
    88    USE stopts 
     87   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) 
    8995 
    9096   IMPLICIT NONE 
     
    171177            CALL stp                         ! AGRIF: time stepping 
    172178#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  
    174184#endif 
    175185            istp = istp + 1 
     
    178188#endif 
    179189 
    180       IF( lk_diaobs   )   CALL dia_obs_wri 
     190      IF( ln_diaobs   )   CALL dia_obs_wri 
    181191      ! 
    182192      IF( ln_icebergs )   CALL icb_end( nitend ) 
     
    193203      ! 
    194204#if defined key_agrif 
    195       IF(.NOT.Agrif_Root() ) THEN 
    196                                 CALL Agrif_ParentGrid_To_ChildGrid() 
    197          IF( lk_diaobs )        CALL dia_obs_wri 
     205      IF( .NOT. Agrif_Root() ) THEN 
     206                         CALL Agrif_ParentGrid_To_ChildGrid() 
     207         IF( ln_diaobs ) CALL dia_obs_wri 
    198208         IF( nn_timing == 1 )   CALL timing_finalize 
    199209                                CALL Agrif_ChildGrid_To_ParentGrid() 
     
    231241      NAMELIST/namctl/ ln_ctl  , nn_print, nn_ictls, nn_ictle,   & 
    232242         &             nn_isplt, nn_jsplt, nn_jctls, nn_jctle,   & 
    233          &             nn_bench, nn_timing 
     243         &             nn_bench, nn_timing, nn_diacfl 
    234244      NAMELIST/namcfg/ cp_cfg, cp_cfz, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 
    235245         &             jpizoom, jpjzoom, jperio, ln_use_jattr 
     
    393403                            CALL     eos_init   ! Equation of state 
    394404      IF( lk_c1d        )   CALL     c1d_init   ! 1D column configuration 
     405                            CALL     wad_init   ! Wetting and drying options 
    395406                            CALL     dom_cfg    ! Domain configuration 
    396407                            CALL     dom_init   ! Domain 
     
    398409      IF( ln_nnogather )    CALL nemo_northcomms! northfold neighbour lists (must be done after the masks are defined) 
    399410      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       
    400431                            CALL  istate_init   ! ocean initial state (Dynamics and tracers) 
    401432 
    402433      !                                      ! external forcing  
    403434!!gm to be added : creation and call of sbc_apr_init 
    404       IF( lk_tide       )   CALL    tide_init( nit000 )    ! tidal harmonics 
     435      IF( lk_tide       )   CALL    tide_init   ! tidal harmonics 
    405436                            CALL     sbc_init   ! surface boundary conditions (including sea-ice) 
    406437!!gm ==>> bdy_init should call bdy_dta_init and bdytide_init  NOT in nemogcm !!! 
     
    458489      !                                      ! Diagnostics 
    459490      IF( lk_floats     )   CALL     flo_init   ! drifting Floats 
     491                            CALL dia_cfl_init   ! Initialise CFL diagnostics 
    460492      IF( lk_diaar5     )   CALL dia_ar5_init   ! ar5 diag 
    461493                            CALL dia_ptr_init   ! Poleward TRansports initialization 
     
    463495                            CALL dia_hsb_init   ! heat content, salt content and volume budgets 
    464496                            CALL     trd_init   ! Mixed-layer/Vorticity/Integral constraints trends 
    465       IF( lk_diaobs     ) THEN                  ! Observation & model comparison 
    466497                            CALL dia_obs_init            ! Initialize observational data 
    467                             CALL dia_obs( nit000 - 1 )   ! Observation operator for restart 
    468       ENDIF 
    469       !                                      ! Assimilation increments 
     498      IF( ln_diaobs     )   CALL dia_obs( nit000 - 1 )   ! Observation operator for restart 
     499 
     500      !                                         ! Assimilation increments 
    470501      IF( lk_asminc     )   CALL asm_inc_init   ! Initialize assimilation increments 
    471502      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 
    472506      ! 
    473507   END SUBROUTINE nemo_init 
Note: See TracChangeset for help on using the changeset viewer.