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 3604 – NEMO

Changeset 3604


Ignore:
Timestamp:
2012-11-19T15:21:34+01:00 (11 years ago)
Author:
rblod
Message:

Adding routines and modules for TAM - Ticket #1005

Location:
trunk/NEMOGCM
Files:
3 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/CONFIG/AMM12/EXP00/namelist

    r3309 r3604  
    33!! namelists    2 - Domain           (namzgr, namzgr_sco, namdom, namtsd) 
    44!!              3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 
    5 !!                                    namsbc_cpl, namtra_qsr, namsbc_rnf,  
     5!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf, 
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    77!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     
    2525!----------------------------------------------------------------------- 
    2626   nn_no       =       0   !  job number (no more used...) 
    27    cn_exp      =  "AMM12"  !  experience name  
     27   cn_exp      =  "AMM12"  !  experience name 
    2828   nn_it000    =       1   !  first time step 
    2929   nn_itend    =     576   !  last  time step (std 1 day = 576) 
     
    5252!!   namzgr_sco   s-coordinate or hybrid z-s-coordinate 
    5353!!   namdom       space and time domain (bathymetry, mesh, timestep) 
    54 !!   namtsd       data: temperature & salinity                          
     54!!   namtsd       data: temperature & salinity 
    5555!!====================================================================== 
    5656! 
     
    7272   ln_s_sigma  = .true.    !  hybrid s-sigma coordinates 
    7373   rn_bb       =    0.8    !  stretching with s-sigma 
    74    rn_hc       =  150.0    !  critical depth with s-sigma  
     74   rn_hc       =  150.0    !  critical depth with s-sigma 
    7575/ 
    7676!----------------------------------------------------------------------- 
     
    9494/ 
    9595!----------------------------------------------------------------------- 
    96 &namtsd    !   data : Temperature  & Salinity                            
     96&namtsd    !   data : Temperature  & Salinity 
    9797!----------------------------------------------------------------------- 
    9898!          ! file name ! frequency (hours)    ! variable ! time interp. ! clim  !'yearly' or ! weights  ! rotation ! 
     
    129129   ln_ana      = .false    !  analytical formulation (T => fill namsbc_ana ) 
    130130   ln_flx      = .true.    !  flux formulation       (T => fill namsbc_flx ) 
    131    ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    132    ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core)  
     131   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio) 
     132   ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core) 
    133133   ln_blk_mfs  = .false.   !  MFS bulk formulation                      (T => fill namsbc_mfs ) 
    134134   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
     
    140140   ln_rnf      = .true.    !  runoffs                                   (T => fill namsbc_rnf) 
    141141   ln_ssr      = .false.   !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr) 
    142    nn_fwb      = 0         !  FreshWater Budget: =0 unchecked  
    143                            !     =1 global mean of e-p-r set to zero at each time step  
     142   nn_fwb      = 0         !  FreshWater Budget: =0 unchecked 
     143                           !     =1 global mean of e-p-r set to zero at each time step 
    144144                           !     =2 annual global mean of e-p-r set to zero 
    145145                           !     =3 global emp set to zero and spread out over erp area 
     
    167167   sn_emp      = 'amm12_flx'      ,          3        ,  'sowafldo'  ,  .true.      , .false. , 'daily'   ,  ''      ,  '' 
    168168   cn_dir      = './fluxes/'        !  root directory for the location of the flux files 
    169 /       
     169/ 
    170170!----------------------------------------------------------------------- 
    171171&namsbc_clio   !   namsbc_clio  CLIO bulk formulae 
     
    224224!                    !                       ! categories !  reference  !    orientation       ! grids  ! 
    225225! send 
    226 sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''     
    227 sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''     
    228 sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   ''     
    229 sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'        
    230 sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''         
     226sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   '' 
     227sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   '' 
     228sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   '' 
     229sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T' 
     230sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    231231! receive 
    232 sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''     
    233 sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    234 sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V'    
    235 sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    236 sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    237 sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    238 sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   ''     
    239 sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    240 sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    241 sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
     232sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
     233sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     234sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V' 
     235sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     236sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     237sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     238sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   '' 
     239sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     240sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     241sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
    242242/ 
    243243!----------------------------------------------------------------------- 
     
    305305   ln_sssr_bnd =   .true.  !  flag to bound erp term (associated with nn_sssr=2) 
    306306   rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day] 
    307 /       
     307/ 
    308308!----------------------------------------------------------------------- 
    309309&namsbc_alb    !   albedo parameters 
    310310!----------------------------------------------------------------------- 
    311    rn_cloud    =    0.06   !  cloud correction to snow and ice albedo  
     311   rn_cloud    =    0.06   !  cloud correction to snow and ice albedo 
    312312   rn_albice   =    0.53   !  albedo of melting ice in the arctic and antarctic 
    313313   rn_alphd    =    0.80   !  coefficients for linear interpolation used to 
    314    rn_alphc    =    0.65   !  compute albedo between two extremes values  
     314   rn_alphc    =    0.65   !  compute albedo between two extremes values 
    315315   rn_alphdi   =    0.72   !  (Pyane, 1972) 
    316316/ 
     
    322322!!   namcla        cross land advection 
    323323!!   namobc        open boundaries parameters                           ("key_obc") 
    324 !!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif")  
     324!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif") 
    325325!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
    326326!!   namtide       Tidal forcing at open boundaries                     ("key_bdy_tides") 
     
    344344   ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    345345   ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    346    ln_obc_fla  = .false.   !  Flather open boundary condition  
     346   ln_obc_fla  = .false.   !  Flather open boundary condition 
    347347   nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    348348                           !  = 1 the obc data are read in 'obc.dta' files 
     
    388388&nambdy        !  unstructured open boundaries                          ("key_bdy") 
    389389!----------------------------------------------------------------------- 
    390     nb_bdy = 1                            !  number of open boundary sets        
     390    nb_bdy = 1                            !  number of open boundary sets 
    391391    ln_coords_file = .true.               !  =T : read bdy coordinates from file 
    392392    cn_coords_file = 'coordinates.bdy.nc' !  bdy coordinates files 
     
    424424/ 
    425425!----------------------------------------------------------------------- 
    426 &nambdy_tide     ! tidal forcing at open boundaries               
     426&nambdy_tide     ! tidal forcing at open boundaries 
    427427!----------------------------------------------------------------------- 
    428428   filtide      = 'bdydta/amm12_bdytide_'         !  file name root of tidal forcing files 
     
    463463!!====================================================================== 
    464464!!   nambfr        bottom friction 
    465 !!   nambbc        bottom temperature boundary condition                
     465!!   nambbc        bottom temperature boundary condition 
    466466!!   nambbl        bottom boundary layer scheme                         ("key_trabbl") 
    467467!!====================================================================== 
     
    483483!----------------------------------------------------------------------- 
    484484   ln_trabbc   = .false.   !  Apply a geothermal heating at the ocean bottom 
    485    nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux  
     485   nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux 
    486486                           !     = 1 constant flux 
    487                            !     = 2 variable flux (read in geothermal_heating.nc in mW/m2)  
     487                           !     = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
    488488   rn_geoflx_cst = 86.4e-3 !  Constant value of geothermal heat flux [W/m2] 
    489489/ 
     
    503503!!   namtra_adv    advection scheme 
    504504!!   namtra_ldf    lateral diffusion scheme 
    505 !!   namtra_dmp    T & S newtonian damping                         
     505!!   namtra_dmp    T & S newtonian damping 
    506506!!====================================================================== 
    507507! 
     
    517517/ 
    518518!----------------------------------------------------------------------- 
    519 &namtra_adv    !   advection scheme for tracer  
    520 !----------------------------------------------------------------------- 
    521    ln_traadv_cen2   =  .false.  !  2nd order centered scheme    
    522    ln_traadv_tvd    =  .true.   !  TVD scheme                 
    523    ln_traadv_muscl  =  .false.  !  MUSCL scheme              
    524    ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries   
    525    ln_traadv_ubs    =  .false.  !  UBS scheme                  
    526    ln_traadv_qck    =  .false.  !  QUICKEST scheme                  
     519&namtra_adv    !   advection scheme for tracer 
     520!----------------------------------------------------------------------- 
     521   ln_traadv_cen2   =  .false.  !  2nd order centered scheme 
     522   ln_traadv_tvd    =  .true.   !  TVD scheme 
     523   ln_traadv_muscl  =  .false.  !  MUSCL scheme 
     524   ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries 
     525   ln_traadv_ubs    =  .false.  !  UBS scheme 
     526   ln_traadv_qck    =  .false.  !  QUICKEST scheme 
    527527/ 
    528528!---------------------------------------------------------------------------------- 
     
    551551/ 
    552552!----------------------------------------------------------------------- 
    553 &namtra_dmp    !   tracer: T & S newtonian damping                   
     553&namtra_dmp    !   tracer: T & S newtonian damping 
    554554!----------------------------------------------------------------------- 
    555555   ln_tradmp   =  .false.  !  add a damping termn (T) or not (F) 
     
    579579&namdyn_adv    !   formulation of the momentum advection 
    580580!----------------------------------------------------------------------- 
    581    ln_dynadv_vec = .true.  !  vector form (T) or flux form (F)   
     581   ln_dynadv_vec = .true.  !  vector form (T) or flux form (F) 
    582582   ln_dynadv_cen2= .false. !  flux form - 2nd order centered scheme 
    583    ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme  
    584 /   
     583   ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme 
     584/ 
    585585!----------------------------------------------------------------------- 
    586586&namdyn_vor    !   option of physics/algorithm (not control by CPP keys) 
    587587!----------------------------------------------------------------------- 
    588    ln_dynvor_ene = .false. !  enstrophy conserving scheme   
    589    ln_dynvor_ens = .false. !  energy conserving scheme     
    590    ln_dynvor_mix = .false. !  mixed scheme                
    591    ln_dynvor_een = .true.  !  energy & enstrophy scheme   
     588   ln_dynvor_ene = .false. !  enstrophy conserving scheme 
     589   ln_dynvor_ens = .false. !  energy conserving scheme 
     590   ln_dynvor_mix = .false. !  mixed scheme 
     591   ln_dynvor_een = .true.  !  energy & enstrophy scheme 
    592592/ 
    593593!----------------------------------------------------------------------- 
    594594&namdyn_hpg    !   Hydrostatic pressure gradient option 
    595595!----------------------------------------------------------------------- 
    596    ln_hpg_zco  = .false.   !  z-coordinate - full steps                    
     596   ln_hpg_zco  = .false.   !  z-coordinate - full steps 
    597597   ln_hpg_zps  = .false.   !  z-coordinate - partial steps (interpolation) 
    598598   ln_hpg_sco  = .true.    !  s-coordinate (standard jacobian formulation) 
     
    612612&namdyn_ldf    !   lateral diffusion on momentum 
    613613!----------------------------------------------------------------------- 
    614    !                       !  Type of the operator :  
    615    ln_dynldf_lap    =  .true.   !  laplacian operator          
     614   !                       !  Type of the operator : 
     615   ln_dynldf_lap    =  .true.   !  laplacian operator 
    616616   ln_dynldf_bilap  =  .true.   !  bilaplacian operator 
    617617                           !  Direction of action  : 
    618    ln_dynldf_level  =  .false.  !  iso-level                
     618   ln_dynldf_level  =  .false.  !  iso-level 
    619619   ln_dynldf_hor    =  .true.   !  horizontal (geopotential)            (require "key_ldfslp" in s-coord.) 
    620620   ln_dynldf_iso    =  .false.  !  iso-neutral                          (require "key_ldfslp") 
    621                            !  Coefficient  
     621                           !  Coefficient 
    622622   rn_ahm_0_lap     = 60.0      !  horizontal laplacian eddy viscosity   [m2/s] 
    623623   rn_ahmb_0        =  0.0      !  background eddy viscosity for ldf_iso [m2/s] 
     
    695695&namzdf_kpp    !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionally: 
    696696!------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 
    697    ln_kpprimix = .true.    !  shear instability mixing  
     697   ln_kpprimix = .true.    !  shear instability mixing 
    698698   rn_difmiw   =  1.0e-04  !  constant internal wave viscosity [m2/s] 
    699699   rn_difsiw   =  0.1e-04  !  constant internal wave diffusivity [m2/s] 
    700700   rn_riinfty  =  0.8      !  local Richardson Number limit for shear instability 
    701701   rn_difri    =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s] 
    702    rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2]  
    703    rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s]  
     702   rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
     703   rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s] 
    704704   nn_avb      =  0        !  horizontal averaged (=1) or not (=0) on avt and amv 
    705705   nn_ave      =  1        !  constant (=0) or profile (=1) background on avt 
     
    735735   rn_n2min    = 1.e-8     !  threshold of the Brunt-Vaisala frequency (s-1) 
    736736   rn_tfe      = 0.333     !  tidal dissipation efficiency 
    737    rn_me       = 0.2       !  mixing efficiency  
     737   rn_me       = 0.2       !  mixing efficiency 
    738738   ln_tmx_itf  = .FALSE.   !  ITF specific parameterisation 
    739739   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency 
     
    745745!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi) 
    746746!!   namctl            Control prints & Benchmark 
    747 !!   namsol            elliptic solver / island / free surface  
    748 !!====================================================================== 
    749 ! 
    750 !----------------------------------------------------------------------- 
    751 &namsol        !   elliptic solver / island / free surface  
     747!!   namsol            elliptic solver / island / free surface 
     748!!====================================================================== 
     749! 
     750!----------------------------------------------------------------------- 
     751&namsol        !   elliptic solver / island / free surface 
    752752!----------------------------------------------------------------------- 
    753753   nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
     
    795795!!   namflo       float parameters                                      ("key_float") 
    796796!!   namptr       Poleward Transport Diagnostics 
    797 !!   namhsb       Heat and salt budgets  
     797!!   namhsb       Heat and salt budgets 
    798798!!====================================================================== 
    799799! 
     
    833833   jpnnewflo     = 0          !  number of floats for the restart 
    834834   ln_rstflo     = .false.    !  float restart (T) or not (F) 
    835    nn_writefl    =      75    !  frequency of writing in float output file  
    836    nn_stockfl    =    5475    !  frequency of creation of the float restart file  
     835   nn_writefl    =      75    !  frequency of writing in float output file 
     836   nn_stockfl    =    5475    !  frequency of creation of the float restart file 
    837837   ln_argo       = .false.    !  Argo type floats (stay at the surface each 10 days) 
    838838   ln_flork4     = .false.    !  trajectories computed with a 4th order Runge-Kutta (T) 
     
    846846   ln_diaptr  = .false.    !  Poleward heat and salt transport (T) or not (F) 
    847847   ln_diaznl  = .false.    !  Add zonal means and meridional stream functions 
    848    ln_subbas  = .false.    !  Atlantic/Pacific/Indian basins computation (T) or not  
     848   ln_subbas  = .false.    !  Atlantic/Pacific/Indian basins computation (T) or not 
    849849                           !  (orca configuration only, need input basins mask file named "subbasins.nc" 
    850850   ln_ptrcomp = .false.    !  Add decomposition : overturning 
     
    853853/ 
    854854!----------------------------------------------------------------------- 
    855 &namhsb       !  Heat and salt budgets  
     855&namhsb       !  Heat and salt budgets 
    856856!----------------------------------------------------------------------- 
    857857   ln_diahsb  = .false.    !  check the heat and salt budgets (T) or not (F) 
     
    885885&namobs       !  observation usage switch                               ('key_diaobs') 
    886886!----------------------------------------------------------------------- 
    887    ln_t3d     = .false.    ! Logical switch for T profile observations          
    888    ln_s3d     = .false.    ! Logical switch for S profile observations           
    889    ln_ena     = .false.    ! Logical switch for ENACT insitu data set            
    890    !                       !     ln_cor                  Logical switch for Coriolis insitu data set        
    891    ln_profb   = .false.    ! Logical switch for feedback insitu data set      
    892    ln_sla     = .false.    ! Logical switch for SLA observations                
    893  
    894    ln_sladt   = .false.    ! Logical switch for AVISO SLA data               
    895  
    896    ln_slafb   = .false.    ! Logical switch for feedback SLA data             
    897                            !     ln_ssh                  Logical switch for SSH observations               
    898  
    899    ln_sst     = .false.    ! Logical switch for SST observations               
    900                            !     ln_reysst               Logical switch for Reynolds observations        
    901                            !     ln_ghrsst               Logical switch for GHRSST observations           
    902  
    903    ln_sstfb   = .false.    ! Logical switch for feedback SST data           
    904                            !     ln_sss                  Logical switch for SSS observations               
    905                            !     ln_seaice               Logical switch for Sea Ice observations         
    906                            !     ln_vel3d                Logical switch for velocity observations          
    907                            !     ln_velavcur             Logical switch for velocity daily av. cur.     
    908                            !     ln_velhrcur             Logical switch for velocity high freq. cur.    
    909                            !     ln_velavadcp            Logical switch for velocity daily av. ADCP   
     887   ln_t3d     = .false.    ! Logical switch for T profile observations 
     888   ln_s3d     = .false.    ! Logical switch for S profile observations 
     889   ln_ena     = .false.    ! Logical switch for ENACT insitu data set 
     890   !                       !     ln_cor                  Logical switch for Coriolis insitu data set 
     891   ln_profb   = .false.    ! Logical switch for feedback insitu data set 
     892   ln_sla     = .false.    ! Logical switch for SLA observations 
     893 
     894   ln_sladt   = .false.    ! Logical switch for AVISO SLA data 
     895 
     896   ln_slafb   = .false.    ! Logical switch for feedback SLA data 
     897                           !     ln_ssh                  Logical switch for SSH observations 
     898 
     899   ln_sst     = .false.    ! Logical switch for SST observations 
     900                           !     ln_reysst               Logical switch for Reynolds observations 
     901                           !     ln_ghrsst               Logical switch for GHRSST observations 
     902 
     903   ln_sstfb   = .false.    ! Logical switch for feedback SST data 
     904                           !     ln_sss                  Logical switch for SSS observations 
     905                           !     ln_seaice               Logical switch for Sea Ice observations 
     906                           !     ln_vel3d                Logical switch for velocity observations 
     907                           !     ln_velavcur             Logical switch for velocity daily av. cur. 
     908                           !     ln_velhrcur             Logical switch for velocity high freq. cur. 
     909                           !     ln_velavadcp            Logical switch for velocity daily av. ADCP 
    910910                           !     ln_velhradcp            Logical switch for velocity high freq. ADCP 
    911                            !     ln_velfb                Logical switch for feedback velocity data        
    912                            !     ln_grid_global          Global distribtion of observations          
    913                            !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table   
    914                            !     grid_search_file        Grid search lookup file header  
    915                            !     enactfiles              ENACT input observation file names  
    916                            !     coriofiles              Coriolis input observation file name   
    917    !                       ! profbfiles: Profile feedback input observation file name  
     911                           !     ln_velfb                Logical switch for feedback velocity data 
     912                           !     ln_grid_global          Global distribtion of observations 
     913                           !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table 
     914                           !     grid_search_file        Grid search lookup file header 
     915                           !     enactfiles              ENACT input observation file names 
     916                           !     coriofiles              Coriolis input observation file name 
     917   !                       ! profbfiles: Profile feedback input observation file name 
    918918   profbfiles = 'profiles_01.nc' 
    919                            !     ln_profb_enatim         Enact feedback input time setting switch     
     919                           !     ln_profb_enatim         Enact feedback input time setting switch 
    920920                           !     slafilesact             Active SLA input observation file name 
    921                            !     slafilespas             Passive SLA input observation file name  
    922    !                       ! slafbfiles: Feedback SLA input observation file name  
     921                           !     slafilespas             Passive SLA input observation file name 
     922   !                       ! slafbfiles: Feedback SLA input observation file name 
    923923   slafbfiles = 'sla_01.nc' 
    924                            !     sstfiles                GHRSST input observation file name        
    925    !                       ! sstfbfiles: Feedback SST input observation file name  
     924                           !     sstfiles                GHRSST input observation file name 
     925   !                       ! sstfbfiles: Feedback SST input observation file name 
    926926   sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 
    927                            !     seaicefiles             Sea Ice input observation file name  
    928                            !     velavcurfiles           Vel. cur. daily av. input file name   
    929                            !     velhvcurfiles           Vel. cur. high freq. input file name   
    930                            !     velavadcpfiles          Vel. ADCP daily av. input file name     
    931                            !     velhvadcpfiles          Vel. ADCP high freq. input file name  
    932                            !     velfbfiles              Vel. feedback input observation file name  
    933                            !     dobsini                 Initial date in window YYYYMMDD.HHMMSS        
    934                            !     dobsend                 Final date in window YYYYMMDD.HHMMSS          
    935                            !     n1dint                  Type of vertical interpolation method         
    936                            !     n2dint                  Type of horizontal interpolation method        
    937                            !     ln_nea                  Rejection of observations near land switch     
    938    nmsshc     = 0          ! MSSH correction scheme                          
    939                            !     mdtcorr                 MDT  correction                                
    940                            !     mdtcutoff               MDT cutoff for computed correction           
    941    ln_altbias = .false.    ! Logical switch for alt bias                 
    942    ln_ignmis  = .true.     ! Logical switch for ignoring missing files    
    943                            !     endailyavtypes   ENACT daily average types                     
     927                           !     seaicefiles             Sea Ice input observation file name 
     928                           !     velavcurfiles           Vel. cur. daily av. input file name 
     929                           !     velhvcurfiles           Vel. cur. high freq. input file name 
     930                           !     velavadcpfiles          Vel. ADCP daily av. input file name 
     931                           !     velhvadcpfiles          Vel. ADCP high freq. input file name 
     932                           !     velfbfiles              Vel. feedback input observation file name 
     933                           !     dobsini                 Initial date in window YYYYMMDD.HHMMSS 
     934                           !     dobsend                 Final date in window YYYYMMDD.HHMMSS 
     935                           !     n1dint                  Type of vertical interpolation method 
     936                           !     n2dint                  Type of horizontal interpolation method 
     937                           !     ln_nea                  Rejection of observations near land switch 
     938   nmsshc     = 0          ! MSSH correction scheme 
     939                           !     mdtcorr                 MDT  correction 
     940                           !     mdtcutoff               MDT cutoff for computed correction 
     941   ln_altbias = .false.    ! Logical switch for alt bias 
     942   ln_ignmis  = .true.     ! Logical switch for ignoring missing files 
     943                           !     endailyavtypes   ENACT daily average types 
    944944   ln_grid_global = .true. 
    945945   ln_grid_search_lookup = .false. 
    946 /  
     946/ 
    947947!----------------------------------------------------------------------- 
    948948&nam_asminc   !   assimilation increments                               ('key_asminc') 
    949949!----------------------------------------------------------------------- 
    950     ln_bkgwri = .false.    !  Logical switch for writing out background state  
    951     ln_trjwri = .false.    !  Logical switch for writing out state trajectory 
     950    ln_bkgwri = .false.    !  Logical switch for writing out background state 
    952951    ln_trainc = .false.    !  Logical switch for applying tracer increments 
    953952    ln_dyninc = .false.    !  Logical switch for applying velocity increments 
    954     ln_sshinc = .false.    !  Logical switch for applying SSH increments  
     953    ln_sshinc = .false.    !  Logical switch for applying SSH increments 
    955954    ln_asmdin = .false.    !  Logical switch for Direct Initialization (DI) 
    956955    ln_asmiau = .false.    !  Logical switch for Incremental Analysis Updating (IAU) 
     
    960959    nitiaufin = 15         !  Timestep of end of IAU interval in [0,nitend-nit000-1] 
    961960    niaufn    = 0          !  Type of IAU weighting function 
    962     nittrjfrq = 0          !  Frequency of trajectory output for 4D-VAR 
    963961    ln_salfix = .false.    !  Logical switch for ensuring that the sa > salfixmin 
    964962    salfixmin = -9999      !  Minimum salinity after applying the increments 
     
    989987   rn_htrmax         =  200.0   ! max. depth of transition range 
    990988/ 
     989!----------------------------------------------------------------------- 
     990&namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 
     991!----------------------------------------------------------------------- 
     992    cn_dirtrj   = 'tam_trajectory'   ! prefix for input/ouput files 
     993    ln_trjhand  = .false.            ! Handling non linear trajectory 
     994    nn_ittrjfrq = 20                 ! Output/input frequency 
     995    ln_trj_spl = .false.             ! Handling trajectory at simple precision 
     996/ 
  • trunk/NEMOGCM/CONFIG/AMM12_PISCES/EXP00/namelist

    r3309 r3604  
    33!! namelists    2 - Domain           (namzgr, namzgr_sco, namdom, namtsd) 
    44!!              3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 
    5 !!                                    namsbc_cpl, namtra_qsr, namsbc_rnf,  
     5!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf, 
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    77!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     
    2525!----------------------------------------------------------------------- 
    2626   nn_no       =       0   !  job number (no more used...) 
    27    cn_exp      =  "AMM12"  !  experience name  
     27   cn_exp      =  "AMM12"  !  experience name 
    2828   nn_it000    =       1   !  first time step 
    2929   nn_itend    =     576   !  last  time step (std 1 day = 576) 
     
    5252!!   namzgr_sco   s-coordinate or hybrid z-s-coordinate 
    5353!!   namdom       space and time domain (bathymetry, mesh, timestep) 
    54 !!   namtsd       data: temperature & salinity                          
     54!!   namtsd       data: temperature & salinity 
    5555!!====================================================================== 
    5656! 
     
    7272   ln_s_sigma  = .true.    !  hybrid s-sigma coordinates 
    7373   rn_bb       =    0.8    !  stretching with s-sigma 
    74    rn_hc       =  150.0    !  critical depth with s-sigma  
     74   rn_hc       =  150.0    !  critical depth with s-sigma 
    7575/ 
    7676!----------------------------------------------------------------------- 
     
    9494/ 
    9595!----------------------------------------------------------------------- 
    96 &namtsd    !   data : Temperature  & Salinity                            
     96&namtsd    !   data : Temperature  & Salinity 
    9797!----------------------------------------------------------------------- 
    9898!          ! file name ! frequency (hours)    ! variable ! time interp. ! clim  !'yearly' or ! weights  ! rotation ! 
     
    129129   ln_ana      = .false    !  analytical formulation (T => fill namsbc_ana ) 
    130130   ln_flx      = .true.    !  flux formulation       (T => fill namsbc_flx ) 
    131    ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    132    ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core)  
     131   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio) 
     132   ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core) 
    133133   ln_blk_mfs  = .false.   !  MFS bulk formulation                      (T => fill namsbc_mfs ) 
    134134   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
     
    140140   ln_rnf      = .true.    !  runoffs                                   (T => fill namsbc_rnf) 
    141141   ln_ssr      = .false.   !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr) 
    142    nn_fwb      = 0         !  FreshWater Budget: =0 unchecked  
    143                            !     =1 global mean of e-p-r set to zero at each time step  
     142   nn_fwb      = 0         !  FreshWater Budget: =0 unchecked 
     143                           !     =1 global mean of e-p-r set to zero at each time step 
    144144                           !     =2 annual global mean of e-p-r set to zero 
    145145                           !     =3 global emp set to zero and spread out over erp area 
     
    167167   sn_emp      = 'amm12_flx'      ,          3        ,  'sowafldo'  ,  .true.      , .false. , 'daily'   ,  ''      ,  '' 
    168168   cn_dir      = './fluxes/'        !  root directory for the location of the flux files 
    169 /       
     169/ 
    170170!----------------------------------------------------------------------- 
    171171&namsbc_clio   !   namsbc_clio  CLIO bulk formulae 
     
    224224!                    !                       ! categories !  reference  !    orientation       ! grids  ! 
    225225! send 
    226 sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''     
    227 sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''     
    228 sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   ''     
    229 sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'        
    230 sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''         
     226sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   '' 
     227sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   '' 
     228sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   '' 
     229sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T' 
     230sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    231231! receive 
    232 sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''     
    233 sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    234 sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V'    
    235 sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    236 sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    237 sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    238 sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   ''     
    239 sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    240 sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    241 sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
     232sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
     233sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     234sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V' 
     235sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     236sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     237sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     238sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   '' 
     239sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     240sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     241sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
    242242/ 
    243243!----------------------------------------------------------------------- 
     
    305305   ln_sssr_bnd =   .true.  !  flag to bound erp term (associated with nn_sssr=2) 
    306306   rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day] 
    307 /       
     307/ 
    308308!----------------------------------------------------------------------- 
    309309&namsbc_alb    !   albedo parameters 
    310310!----------------------------------------------------------------------- 
    311    rn_cloud    =    0.06   !  cloud correction to snow and ice albedo  
     311   rn_cloud    =    0.06   !  cloud correction to snow and ice albedo 
    312312   rn_albice   =    0.53   !  albedo of melting ice in the arctic and antarctic 
    313313   rn_alphd    =    0.80   !  coefficients for linear interpolation used to 
    314    rn_alphc    =    0.65   !  compute albedo between two extremes values  
     314   rn_alphc    =    0.65   !  compute albedo between two extremes values 
    315315   rn_alphdi   =    0.72   !  (Pyane, 1972) 
    316316/ 
     
    322322!!   namcla        cross land advection 
    323323!!   namobc        open boundaries parameters                           ("key_obc") 
    324 !!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif")  
     324!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif") 
    325325!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
    326326!!   namtide       Tidal forcing at open boundaries                     ("key_bdy_tides") 
     
    344344   ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    345345   ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    346    ln_obc_fla  = .false.   !  Flather open boundary condition  
     346   ln_obc_fla  = .false.   !  Flather open boundary condition 
    347347   nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    348348                           !  = 1 the obc data are read in 'obc.dta' files 
     
    388388&nambdy        !  unstructured open boundaries                          ("key_bdy") 
    389389!----------------------------------------------------------------------- 
    390     nb_bdy = 1                            !  number of open boundary sets        
     390    nb_bdy = 1                            !  number of open boundary sets 
    391391    ln_coords_file = .true.               !  =T : read bdy coordinates from file 
    392392    cn_coords_file = 'coordinates.bdy.nc' !  bdy coordinates files 
     
    424424/ 
    425425!----------------------------------------------------------------------- 
    426 &nambdy_tide     ! tidal forcing at open boundaries               
     426&nambdy_tide     ! tidal forcing at open boundaries 
    427427!----------------------------------------------------------------------- 
    428428   filtide      = 'bdydta/amm12_bdytide_'         !  file name root of tidal forcing files 
     
    463463!!====================================================================== 
    464464!!   nambfr        bottom friction 
    465 !!   nambbc        bottom temperature boundary condition                
     465!!   nambbc        bottom temperature boundary condition 
    466466!!   nambbl        bottom boundary layer scheme                         ("key_trabbl") 
    467467!!====================================================================== 
     
    483483!----------------------------------------------------------------------- 
    484484   ln_trabbc   = .false.   !  Apply a geothermal heating at the ocean bottom 
    485    nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux  
     485   nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux 
    486486                           !     = 1 constant flux 
    487                            !     = 2 variable flux (read in geothermal_heating.nc in mW/m2)  
     487                           !     = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
    488488   rn_geoflx_cst = 86.4e-3 !  Constant value of geothermal heat flux [W/m2] 
    489489/ 
     
    503503!!   namtra_adv    advection scheme 
    504504!!   namtra_ldf    lateral diffusion scheme 
    505 !!   namtra_dmp    T & S newtonian damping                         
     505!!   namtra_dmp    T & S newtonian damping 
    506506!!====================================================================== 
    507507! 
     
    517517/ 
    518518!----------------------------------------------------------------------- 
    519 &namtra_adv    !   advection scheme for tracer  
    520 !----------------------------------------------------------------------- 
    521    ln_traadv_cen2   =  .false.  !  2nd order centered scheme    
    522    ln_traadv_tvd    =  .true.   !  TVD scheme                 
    523    ln_traadv_muscl  =  .false.  !  MUSCL scheme              
    524    ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries   
    525    ln_traadv_ubs    =  .false.  !  UBS scheme                  
    526    ln_traadv_qck    =  .false.  !  QUICKEST scheme                  
     519&namtra_adv    !   advection scheme for tracer 
     520!----------------------------------------------------------------------- 
     521   ln_traadv_cen2   =  .false.  !  2nd order centered scheme 
     522   ln_traadv_tvd    =  .true.   !  TVD scheme 
     523   ln_traadv_muscl  =  .false.  !  MUSCL scheme 
     524   ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries 
     525   ln_traadv_ubs    =  .false.  !  UBS scheme 
     526   ln_traadv_qck    =  .false.  !  QUICKEST scheme 
    527527/ 
    528528!---------------------------------------------------------------------------------- 
     
    551551/ 
    552552!----------------------------------------------------------------------- 
    553 &namtra_dmp    !   tracer: T & S newtonian damping                   
     553&namtra_dmp    !   tracer: T & S newtonian damping 
    554554!----------------------------------------------------------------------- 
    555555   ln_tradmp   =  .false.  !  add a damping termn (T) or not (F) 
     
    579579&namdyn_adv    !   formulation of the momentum advection 
    580580!----------------------------------------------------------------------- 
    581    ln_dynadv_vec = .true.  !  vector form (T) or flux form (F)   
     581   ln_dynadv_vec = .true.  !  vector form (T) or flux form (F) 
    582582   ln_dynadv_cen2= .false. !  flux form - 2nd order centered scheme 
    583    ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme  
    584 /   
     583   ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme 
     584/ 
    585585!----------------------------------------------------------------------- 
    586586&namdyn_vor    !   option of physics/algorithm (not control by CPP keys) 
    587587!----------------------------------------------------------------------- 
    588    ln_dynvor_ene = .false. !  enstrophy conserving scheme   
    589    ln_dynvor_ens = .false. !  energy conserving scheme     
    590    ln_dynvor_mix = .false. !  mixed scheme                
    591    ln_dynvor_een = .true.  !  energy & enstrophy scheme   
     588   ln_dynvor_ene = .false. !  enstrophy conserving scheme 
     589   ln_dynvor_ens = .false. !  energy conserving scheme 
     590   ln_dynvor_mix = .false. !  mixed scheme 
     591   ln_dynvor_een = .true.  !  energy & enstrophy scheme 
    592592/ 
    593593!----------------------------------------------------------------------- 
    594594&namdyn_hpg    !   Hydrostatic pressure gradient option 
    595595!----------------------------------------------------------------------- 
    596    ln_hpg_zco  = .false.   !  z-coordinate - full steps                    
     596   ln_hpg_zco  = .false.   !  z-coordinate - full steps 
    597597   ln_hpg_zps  = .false.   !  z-coordinate - partial steps (interpolation) 
    598598   ln_hpg_sco  = .true.    !  s-coordinate (standard jacobian formulation) 
     
    612612&namdyn_ldf    !   lateral diffusion on momentum 
    613613!----------------------------------------------------------------------- 
    614    !                       !  Type of the operator :  
    615    ln_dynldf_lap    =  .true.   !  laplacian operator          
     614   !                       !  Type of the operator : 
     615   ln_dynldf_lap    =  .true.   !  laplacian operator 
    616616   ln_dynldf_bilap  =  .true.   !  bilaplacian operator 
    617617                           !  Direction of action  : 
    618    ln_dynldf_level  =  .false.  !  iso-level                
     618   ln_dynldf_level  =  .false.  !  iso-level 
    619619   ln_dynldf_hor    =  .true.   !  horizontal (geopotential)            (require "key_ldfslp" in s-coord.) 
    620620   ln_dynldf_iso    =  .false.  !  iso-neutral                          (require "key_ldfslp") 
    621                            !  Coefficient  
     621                           !  Coefficient 
    622622   rn_ahm_0_lap     = 60.0      !  horizontal laplacian eddy viscosity   [m2/s] 
    623623   rn_ahmb_0        =  0.0      !  background eddy viscosity for ldf_iso [m2/s] 
     
    695695&namzdf_kpp    !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionally: 
    696696!------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 
    697    ln_kpprimix = .true.    !  shear instability mixing  
     697   ln_kpprimix = .true.    !  shear instability mixing 
    698698   rn_difmiw   =  1.0e-04  !  constant internal wave viscosity [m2/s] 
    699699   rn_difsiw   =  0.1e-04  !  constant internal wave diffusivity [m2/s] 
    700700   rn_riinfty  =  0.8      !  local Richardson Number limit for shear instability 
    701701   rn_difri    =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s] 
    702    rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2]  
    703    rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s]  
     702   rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
     703   rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s] 
    704704   nn_avb      =  0        !  horizontal averaged (=1) or not (=0) on avt and amv 
    705705   nn_ave      =  1        !  constant (=0) or profile (=1) background on avt 
     
    735735   rn_n2min    = 1.e-8     !  threshold of the Brunt-Vaisala frequency (s-1) 
    736736   rn_tfe      = 0.333     !  tidal dissipation efficiency 
    737    rn_me       = 0.2       !  mixing efficiency  
     737   rn_me       = 0.2       !  mixing efficiency 
    738738   ln_tmx_itf  = .FALSE.   !  ITF specific parameterisation 
    739739   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency 
     
    745745!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi) 
    746746!!   namctl            Control prints & Benchmark 
    747 !!   namsol            elliptic solver / island / free surface  
    748 !!====================================================================== 
    749 ! 
    750 !----------------------------------------------------------------------- 
    751 &namsol        !   elliptic solver / island / free surface  
     747!!   namsol            elliptic solver / island / free surface 
     748!!====================================================================== 
     749! 
     750!----------------------------------------------------------------------- 
     751&namsol        !   elliptic solver / island / free surface 
    752752!----------------------------------------------------------------------- 
    753753   nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
     
    795795!!   namflo       float parameters                                      ("key_float") 
    796796!!   namptr       Poleward Transport Diagnostics 
    797 !!   namhsb       Heat and salt budgets  
     797!!   namhsb       Heat and salt budgets 
    798798!!====================================================================== 
    799799! 
     
    833833   jpnnewflo     = 0          !  number of floats for the restart 
    834834   ln_rstflo     = .false.    !  float restart (T) or not (F) 
    835    nn_writefl    =      75    !  frequency of writing in float output file  
    836    nn_stockfl    =    5475    !  frequency of creation of the float restart file  
     835   nn_writefl    =      75    !  frequency of writing in float output file 
     836   nn_stockfl    =    5475    !  frequency of creation of the float restart file 
    837837   ln_argo       = .false.    !  Argo type floats (stay at the surface each 10 days) 
    838838   ln_flork4     = .false.    !  trajectories computed with a 4th order Runge-Kutta (T) 
     
    846846   ln_diaptr  = .false.    !  Poleward heat and salt transport (T) or not (F) 
    847847   ln_diaznl  = .false.    !  Add zonal means and meridional stream functions 
    848    ln_subbas  = .false.    !  Atlantic/Pacific/Indian basins computation (T) or not  
     848   ln_subbas  = .false.    !  Atlantic/Pacific/Indian basins computation (T) or not 
    849849                           !  (orca configuration only, need input basins mask file named "subbasins.nc" 
    850850   ln_ptrcomp = .false.    !  Add decomposition : overturning 
     
    853853/ 
    854854!----------------------------------------------------------------------- 
    855 &namhsb       !  Heat and salt budgets  
     855&namhsb       !  Heat and salt budgets 
    856856!----------------------------------------------------------------------- 
    857857   ln_diahsb  = .false.    !  check the heat and salt budgets (T) or not (F) 
     
    886886&namobs       !  observation usage switch                               ('key_diaobs') 
    887887!----------------------------------------------------------------------- 
    888    ln_t3d     = .false.    ! Logical switch for T profile observations          
    889    ln_s3d     = .false.    ! Logical switch for S profile observations           
    890    ln_ena     = .false.    ! Logical switch for ENACT insitu data set            
    891    !                       !     ln_cor                  Logical switch for Coriolis insitu data set        
    892    ln_profb   = .false.    ! Logical switch for feedback insitu data set      
    893    ln_sla     = .false.    ! Logical switch for SLA observations                
    894  
    895    ln_sladt   = .false.    ! Logical switch for AVISO SLA data               
    896  
    897    ln_slafb   = .false.    ! Logical switch for feedback SLA data             
    898                            !     ln_ssh                  Logical switch for SSH observations               
    899  
    900    ln_sst     = .false.    ! Logical switch for SST observations               
    901                            !     ln_reysst               Logical switch for Reynolds observations        
    902                            !     ln_ghrsst               Logical switch for GHRSST observations           
    903  
    904    ln_sstfb   = .false.    ! Logical switch for feedback SST data           
    905                            !     ln_sss                  Logical switch for SSS observations               
    906                            !     ln_seaice               Logical switch for Sea Ice observations         
    907                            !     ln_vel3d                Logical switch for velocity observations          
    908                            !     ln_velavcur             Logical switch for velocity daily av. cur.     
    909                            !     ln_velhrcur             Logical switch for velocity high freq. cur.    
    910                            !     ln_velavadcp            Logical switch for velocity daily av. ADCP   
     888   ln_t3d     = .false.    ! Logical switch for T profile observations 
     889   ln_s3d     = .false.    ! Logical switch for S profile observations 
     890   ln_ena     = .false.    ! Logical switch for ENACT insitu data set 
     891   !                       !     ln_cor                  Logical switch for Coriolis insitu data set 
     892   ln_profb   = .false.    ! Logical switch for feedback insitu data set 
     893   ln_sla     = .false.    ! Logical switch for SLA observations 
     894 
     895   ln_sladt   = .false.    ! Logical switch for AVISO SLA data 
     896 
     897   ln_slafb   = .false.    ! Logical switch for feedback SLA data 
     898                           !     ln_ssh                  Logical switch for SSH observations 
     899 
     900   ln_sst     = .false.    ! Logical switch for SST observations 
     901                           !     ln_reysst               Logical switch for Reynolds observations 
     902                           !     ln_ghrsst               Logical switch for GHRSST observations 
     903 
     904   ln_sstfb   = .false.    ! Logical switch for feedback SST data 
     905                           !     ln_sss                  Logical switch for SSS observations 
     906                           !     ln_seaice               Logical switch for Sea Ice observations 
     907                           !     ln_vel3d                Logical switch for velocity observations 
     908                           !     ln_velavcur             Logical switch for velocity daily av. cur. 
     909                           !     ln_velhrcur             Logical switch for velocity high freq. cur. 
     910                           !     ln_velavadcp            Logical switch for velocity daily av. ADCP 
    911911                           !     ln_velhradcp            Logical switch for velocity high freq. ADCP 
    912                            !     ln_velfb                Logical switch for feedback velocity data        
    913                            !     ln_grid_global          Global distribtion of observations          
    914                            !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table   
    915                            !     grid_search_file        Grid search lookup file header  
    916                            !     enactfiles              ENACT input observation file names  
    917                            !     coriofiles              Coriolis input observation file name   
    918    !                       ! profbfiles: Profile feedback input observation file name  
     912                           !     ln_velfb                Logical switch for feedback velocity data 
     913                           !     ln_grid_global          Global distribtion of observations 
     914                           !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table 
     915                           !     grid_search_file        Grid search lookup file header 
     916                           !     enactfiles              ENACT input observation file names 
     917                           !     coriofiles              Coriolis input observation file name 
     918   !                       ! profbfiles: Profile feedback input observation file name 
    919919   profbfiles = 'profiles_01.nc' 
    920                            !     ln_profb_enatim         Enact feedback input time setting switch     
     920                           !     ln_profb_enatim         Enact feedback input time setting switch 
    921921                           !     slafilesact             Active SLA input observation file name 
    922                            !     slafilespas             Passive SLA input observation file name  
    923    !                       ! slafbfiles: Feedback SLA input observation file name  
     922                           !     slafilespas             Passive SLA input observation file name 
     923   !                       ! slafbfiles: Feedback SLA input observation file name 
    924924   slafbfiles = 'sla_01.nc' 
    925                            !     sstfiles                GHRSST input observation file name        
    926    !                       ! sstfbfiles: Feedback SST input observation file name  
     925                           !     sstfiles                GHRSST input observation file name 
     926   !                       ! sstfbfiles: Feedback SST input observation file name 
    927927   sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 
    928                            !     seaicefiles             Sea Ice input observation file name  
    929                            !     velavcurfiles           Vel. cur. daily av. input file name   
    930                            !     velhvcurfiles           Vel. cur. high freq. input file name   
    931                            !     velavadcpfiles          Vel. ADCP daily av. input file name     
    932                            !     velhvadcpfiles          Vel. ADCP high freq. input file name  
    933                            !     velfbfiles              Vel. feedback input observation file name  
    934                            !     dobsini                 Initial date in window YYYYMMDD.HHMMSS        
    935                            !     dobsend                 Final date in window YYYYMMDD.HHMMSS          
    936                            !     n1dint                  Type of vertical interpolation method         
    937                            !     n2dint                  Type of horizontal interpolation method        
    938                            !     ln_nea                  Rejection of observations near land switch     
    939    nmsshc     = 0          ! MSSH correction scheme                          
    940                            !     mdtcorr                 MDT  correction                                
    941                            !     mdtcutoff               MDT cutoff for computed correction           
    942    ln_altbias = .false.    ! Logical switch for alt bias                 
    943    ln_ignmis  = .true.     ! Logical switch for ignoring missing files    
    944                            !     endailyavtypes   ENACT daily average types                     
     928                           !     seaicefiles             Sea Ice input observation file name 
     929                           !     velavcurfiles           Vel. cur. daily av. input file name 
     930                           !     velhvcurfiles           Vel. cur. high freq. input file name 
     931                           !     velavadcpfiles          Vel. ADCP daily av. input file name 
     932                           !     velhvadcpfiles          Vel. ADCP high freq. input file name 
     933                           !     velfbfiles              Vel. feedback input observation file name 
     934                           !     dobsini                 Initial date in window YYYYMMDD.HHMMSS 
     935                           !     dobsend                 Final date in window YYYYMMDD.HHMMSS 
     936                           !     n1dint                  Type of vertical interpolation method 
     937                           !     n2dint                  Type of horizontal interpolation method 
     938                           !     ln_nea                  Rejection of observations near land switch 
     939   nmsshc     = 0          ! MSSH correction scheme 
     940                           !     mdtcorr                 MDT  correction 
     941                           !     mdtcutoff               MDT cutoff for computed correction 
     942   ln_altbias = .false.    ! Logical switch for alt bias 
     943   ln_ignmis  = .true.     ! Logical switch for ignoring missing files 
     944                           !     endailyavtypes   ENACT daily average types 
    945945   ln_grid_global = .true. 
    946946   ln_grid_search_lookup = .false. 
    947 /  
     947/ 
    948948!----------------------------------------------------------------------- 
    949949&nam_asminc   !   assimilation increments                               ('key_asminc') 
    950950!----------------------------------------------------------------------- 
    951     ln_bkgwri = .false.    !  Logical switch for writing out background state  
    952     ln_trjwri = .false.    !  Logical switch for writing out state trajectory 
     951    ln_bkgwri = .false.    !  Logical switch for writing out background state 
    953952    ln_trainc = .false.    !  Logical switch for applying tracer increments 
    954953    ln_dyninc = .false.    !  Logical switch for applying velocity increments 
    955     ln_sshinc = .false.    !  Logical switch for applying SSH increments  
     954    ln_sshinc = .false.    !  Logical switch for applying SSH increments 
    956955    ln_asmdin = .false.    !  Logical switch for Direct Initialization (DI) 
    957956    ln_asmiau = .false.    !  Logical switch for Incremental Analysis Updating (IAU) 
     
    961960    nitiaufin = 15         !  Timestep of end of IAU interval in [0,nitend-nit000-1] 
    962961    niaufn    = 0          !  Type of IAU weighting function 
    963     nittrjfrq = 0          !  Frequency of trajectory output for 4D-VAR 
    964962    ln_salfix = .false.    !  Logical switch for ensuring that the sa > salfixmin 
    965963    salfixmin = -9999      !  Minimum salinity after applying the increments 
     
    990988   rn_htrmax         =  200.0   ! max. depth of transition range 
    991989/ 
     990!----------------------------------------------------------------------- 
     991&namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 
     992!----------------------------------------------------------------------- 
     993    cn_dirtrj   = 'tam_trajectory'   ! prefix for input/ouput files 
     994    ln_trjhand  = .false.            ! Handling non linear trajectory 
     995    nn_ittrjfrq = 20                 ! Output/input frequency 
     996    ln_trj_spl = .false.             ! Handling trajectory at simple precision 
     997/ 
  • trunk/NEMOGCM/CONFIG/GYRE/EXP00/namelist

    r3306 r3604  
    33!! namelists    2 - Domain           (namzgr, namzgr_sco, namdom, namtsd) 
    44!!              3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 
    5 !!                                    namsbc_cpl, namtra_qsr, namsbc_rnf,  
     5!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf, 
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    77!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     
    2525!----------------------------------------------------------------------- 
    2626   nn_no       =       0   !  job number (no more used...) 
    27    cn_exp      =  "GYRE"   !  experience name  
     27   cn_exp      =  "GYRE"   !  experience name 
    2828   nn_it000    =       1   !  first time step 
    2929   nn_itend    =    4320   !  last  time step 
     
    5252!!   namzgr_sco   s-coordinate or hybrid z-s-coordinate 
    5353!!   namdom       space and time domain (bathymetry, mesh, timestep) 
    54 !!   namtsd       data: temperature & salinity          
     54!!   namtsd       data: temperature & salinity 
    5555!!====================================================================== 
    5656! 
     
    7272   ln_s_sigma  = .false.   !  hybrid s-sigma coordinates 
    7373   rn_bb       =    0.8    !  stretching with s-sigma 
    74    rn_hc       =  150.0    !  critical depth with s-sigma  
     74   rn_hc       =  150.0    !  critical depth with s-sigma 
    7575/ 
    7676!----------------------------------------------------------------------- 
     
    9494/ 
    9595!----------------------------------------------------------------------- 
    96 &namtsd    !   data : Temperature  & Salinity                            
     96&namtsd    !   data : Temperature  & Salinity 
    9797!----------------------------------------------------------------------- 
    9898!          ! file name ! frequency (hours)    ! variable ! time interp. ! clim  !'yearly' or ! weights  ! rotation ! 
     
    125125&namsbc        !   Surface Boundary Condition (surface module) 
    126126!----------------------------------------------------------------------- 
    127    nn_fsbc     = 1         !  frequency of surface boundary condition computation  
     127   nn_fsbc     = 1         !  frequency of surface boundary condition computation 
    128128                           !     (also = the frequency of sea-ice model call) 
    129    ln_ana      = .true.    !  analytical formulation                    (T => fill namsbc_ana )  
     129   ln_ana      = .true.    !  analytical formulation                    (T => fill namsbc_ana ) 
    130130   ln_flx      = .false.   !  flux formulation                          (T => fill namsbc_flx ) 
    131    ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    132    ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core)  
     131   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio) 
     132   ln_blk_core = .false.   !  CORE bulk formulation                     (T => fill namsbc_core) 
    133133   ln_blk_mfs  = .false.   !  MFS bulk formulation                      (T => fill namsbc_mfs ) 
    134134   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
     
    140140   ln_rnf      = .false.   !  runoffs                                   (T => fill namsbc_rnf) 
    141141   ln_ssr      = .false.   !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr) 
    142    nn_fwb      = 0         !  FreshWater Budget: =0 unchecked  
    143                            !     =1 global mean of e-p-r set to zero at each time step  
     142   nn_fwb      = 0         !  FreshWater Budget: =0 unchecked 
     143                           !     =1 global mean of e-p-r set to zero at each time step 
    144144                           !     =2 annual global mean of e-p-r set to zero 
    145145                           !     =3 global emp set to zero and spread out over erp area 
     
    168168 
    169169   cn_dir      = './'      !  root directory for the location of the flux files 
    170 /       
     170/ 
    171171!----------------------------------------------------------------------- 
    172172&namsbc_clio   !   namsbc_clio  CLIO bulk formulae 
     
    225225!                    !                       ! categories !  reference  !    orientation       ! grids  ! 
    226226! send 
    227 sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''     
    228 sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''     
    229 sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   ''     
    230 sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'        
    231 sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''         
     227sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   '' 
     228sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   '' 
     229sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   '' 
     230sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T' 
     231sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    232232! receive 
    233 sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''     
    234 sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    235 sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V'    
    236 sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    237 sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    238 sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    239 sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   ''     
    240 sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    241 sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    242 sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
     233sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
     234sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     235sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V' 
     236sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     237sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     238sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     239sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   '' 
     240sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     241sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     242sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
    243243/ 
    244244!----------------------------------------------------------------------- 
     
    248248!              !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! 
    249249   sn_chl      ='chlorophyll',        -1         , 'CHLA'    ,   .true.     , .true. , 'yearly'  , ''       , '' 
    250   
     250 
    251251   cn_dir      = './'      !  root directory for the location of the runoff files 
    252252   ln_traqsr   = .true.    !  Light penetration (T) or not (F) 
     
    297297   sn_sst      = 'sst_data'  ,        24         ,  'sst'    ,    .false.   , .false., 'yearly'  , ''       , '' 
    298298   sn_sss      = 'sss_data'  ,        -1         ,  'sss'    ,    .true.    , .true. , 'yearly'  , ''       , '' 
    299      
     299 
    300300   cn_dir      = './'      !  root directory for the location of the runoff files 
    301301   nn_sstr     =     0     !  add a retroaction term in the surface heat       flux (=1) or not (=0) 
     
    306306   ln_sssr_bnd =   .false. !  flag to bound erp term (associated with nn_sssr=2) 
    307307   rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day] 
    308 /       
     308/ 
    309309!----------------------------------------------------------------------- 
    310310&namsbc_alb    !   albedo parameters 
    311311!----------------------------------------------------------------------- 
    312    rn_cloud    =    0.06   !  cloud correction to snow and ice albedo  
     312   rn_cloud    =    0.06   !  cloud correction to snow and ice albedo 
    313313   rn_albice   =    0.53   !  albedo of melting ice in the arctic and antarctic 
    314314   rn_alphd    =    0.80   !  coefficients for linear interpolation used to 
    315    rn_alphc    =    0.65   !  compute albedo between two extremes values  
     315   rn_alphc    =    0.65   !  compute albedo between two extremes values 
    316316   rn_alphdi   =    0.72   !  (Pyane, 1972) 
    317317/ 
     
    323323!!   namcla        cross land advection 
    324324!!   namobc        open boundaries parameters                           ("key_obc") 
    325 !!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif")  
     325!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif") 
    326326!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
    327327!!   namtide       Tidal forcing at open boundaries                     ("key_bdy_tides") 
     
    345345   ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    346346   ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    347    ln_obc_fla  = .false.   !  Flather open boundary condition  
     347   ln_obc_fla  = .false.   !  Flather open boundary condition 
    348348   nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    349349                           !  = 1 the obc data are read in 'obc.dta' files 
     
    394394&nambdy        !  unstructured open boundaries                          ("key_bdy") 
    395395!----------------------------------------------------------------------- 
    396     nb_bdy = 1                            !  number of open boundary sets        
     396    nb_bdy = 1                            !  number of open boundary sets 
    397397    ln_coords_file = .true.               !  =T : read bdy coordinates from file 
    398398    cn_coords_file = 'coordinates.bdy.nc' !  bdy coordinates files 
     
    430430/ 
    431431!----------------------------------------------------------------------- 
    432 &nambdy_tide     ! tidal forcing at open boundaries               
     432&nambdy_tide     ! tidal forcing at open boundaries 
    433433!----------------------------------------------------------------------- 
    434434   filtide      = 'bdydta/amm12_bdytide_'         !  file name root of tidal forcing files 
     
    469469!!====================================================================== 
    470470!!   nambfr        bottom friction 
    471 !!   nambbc        bottom temperature boundary condition                
     471!!   nambbc        bottom temperature boundary condition 
    472472!!   nambbl        bottom boundary layer scheme                         ("key_trabbl") 
    473473!!====================================================================== 
     
    489489!----------------------------------------------------------------------- 
    490490   ln_trabbc   = .false.   !  Apply a geothermal heating at the ocean bottom 
    491    nn_geoflx   =    0      !  geothermal heat flux: = 0 no flux  
     491   nn_geoflx   =    0      !  geothermal heat flux: = 0 no flux 
    492492                           !     = 1 constant flux 
    493                            !     = 2 variable flux (read in geothermal_heating.nc in mW/m2)  
     493                           !     = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
    494494   rn_geoflx_cst = 86.4e-3 !  Constant value of geothermal heat flux [W/m2] 
    495495/ 
     
    509509!!   namtra_adv    advection scheme 
    510510!!   namtra_ldf    lateral diffusion scheme 
    511 !!   namtra_dmp    T & S newtonian damping                         
     511!!   namtra_dmp    T & S newtonian damping 
    512512!!====================================================================== 
    513513! 
     
    523523/ 
    524524!----------------------------------------------------------------------- 
    525 &namtra_adv    !   advection scheme for tracer  
    526 !----------------------------------------------------------------------- 
    527    ln_traadv_cen2   =  .false.  !  2nd order centered scheme    
    528    ln_traadv_tvd    =  .true.   !  TVD scheme                 
    529    ln_traadv_muscl  =  .false.  !  MUSCL scheme              
    530    ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries   
    531    ln_traadv_ubs    =  .false.  !  UBS scheme                  
    532    ln_traadv_qck    =  .false.  !  QUICKEST scheme                  
     525&namtra_adv    !   advection scheme for tracer 
     526!----------------------------------------------------------------------- 
     527   ln_traadv_cen2   =  .false.  !  2nd order centered scheme 
     528   ln_traadv_tvd    =  .true.   !  TVD scheme 
     529   ln_traadv_muscl  =  .false.  !  MUSCL scheme 
     530   ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries 
     531   ln_traadv_ubs    =  .false.  !  UBS scheme 
     532   ln_traadv_qck    =  .false.  !  QUICKEST scheme 
    533533/ 
    534534!---------------------------------------------------------------------------------- 
     
    557557/ 
    558558!----------------------------------------------------------------------- 
    559 &namtra_dmp    !   tracer: T & S newtonian damping                       
     559&namtra_dmp    !   tracer: T & S newtonian damping 
    560560!----------------------------------------------------------------------- 
    561561   ln_tradmp   =  .false.  !  add a damping termn (T) or not (F) 
     
    585585&namdyn_adv    !   formulation of the momentum advection 
    586586!----------------------------------------------------------------------- 
    587    ln_dynadv_vec = .true.  !  vector form (T) or flux form (F)   
     587   ln_dynadv_vec = .true.  !  vector form (T) or flux form (F) 
    588588   ln_dynadv_cen2= .false. !  flux form - 2nd order centered scheme 
    589    ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme  
    590 /   
     589   ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme 
     590/ 
    591591!----------------------------------------------------------------------- 
    592592&namdyn_vor    !   option of physics/algorithm (not control by CPP keys) 
    593593!----------------------------------------------------------------------- 
    594    ln_dynvor_ene = .true.  !  enstrophy conserving scheme   
    595    ln_dynvor_ens = .false. !  energy conserving scheme     
    596    ln_dynvor_mix = .false. !  mixed scheme                
    597    ln_dynvor_een = .false. !  energy & enstrophy scheme   
     594   ln_dynvor_ene = .true.  !  enstrophy conserving scheme 
     595   ln_dynvor_ens = .false. !  energy conserving scheme 
     596   ln_dynvor_mix = .false. !  mixed scheme 
     597   ln_dynvor_een = .false. !  energy & enstrophy scheme 
    598598/ 
    599599!----------------------------------------------------------------------- 
    600600&namdyn_hpg    !   Hydrostatic pressure gradient option 
    601601!----------------------------------------------------------------------- 
    602    ln_hpg_zco  = .true.    !  z-coordinate - full steps                    
     602   ln_hpg_zco  = .true.    !  z-coordinate - full steps 
    603603   ln_hpg_zps  = .false.   !  z-coordinate - partial steps (interpolation) 
    604604   ln_hpg_sco  = .false.   !  s-coordinate (standard jacobian formulation) 
     
    618618&namdyn_ldf    !   lateral diffusion on momentum 
    619619!----------------------------------------------------------------------- 
    620    !                       !  Type of the operator :  
    621    ln_dynldf_lap    =  .true.   !  laplacian operator          
    622    ln_dynldf_bilap  =  .false.  !  bilaplacian operator     
    623    !                       !  Direction of action  :  
    624    ln_dynldf_level  =  .false.  !  iso-level                
     620   !                       !  Type of the operator : 
     621   ln_dynldf_lap    =  .true.   !  laplacian operator 
     622   ln_dynldf_bilap  =  .false.  !  bilaplacian operator 
     623   !                       !  Direction of action  : 
     624   ln_dynldf_level  =  .false.  !  iso-level 
    625625   ln_dynldf_hor    =  .true.   !  horizontal (geopotential)            (require "key_ldfslp" in s-coord.) 
    626626   ln_dynldf_iso    =  .false.  !  iso-neutral                          (require "key_ldfslp") 
     
    701701&namzdf_kpp    !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionally: 
    702702!------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 
    703    ln_kpprimix = .true.    !  shear instability mixing  
     703   ln_kpprimix = .true.    !  shear instability mixing 
    704704   rn_difmiw   =  1.0e-04  !  constant internal wave viscosity [m2/s] 
    705705   rn_difsiw   =  0.1e-04  !  constant internal wave diffusivity [m2/s] 
    706706   rn_riinfty  =  0.8      !  local Richardson Number limit for shear instability 
    707707   rn_difri    =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s] 
    708    rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2]  
    709    rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s]  
     708   rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
     709   rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s] 
    710710   nn_avb      =  0        !  horizontal averaged (=1) or not (=0) on avt and amv 
    711711   nn_ave      =  1        !  constant (=0) or profile (=1) background on avt 
     
    741741   rn_n2min    = 1.e-8     !  threshold of the Brunt-Vaisala frequency (s-1) 
    742742   rn_tfe      = 0.333     !  tidal dissipation efficiency 
    743    rn_me       = 0.2       !  mixing efficiency  
     743   rn_me       = 0.2       !  mixing efficiency 
    744744   ln_tmx_itf  = .false.   !  ITF specific parameterisation 
    745745   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency 
     
    751751!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi) 
    752752!!   namctl            Control prints & Benchmark 
    753 !!   namsol            elliptic solver / island / free surface  
    754 !!====================================================================== 
    755 ! 
    756 !----------------------------------------------------------------------- 
    757 &namsol        !   elliptic solver / island / free surface  
     753!!   namsol            elliptic solver / island / free surface 
     754!!====================================================================== 
     755! 
     756!----------------------------------------------------------------------- 
     757&namsol        !   elliptic solver / island / free surface 
    758758!----------------------------------------------------------------------- 
    759759   nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
     
    774774   nn_buffer   =   0       !  size in bytes of exported buffer ('B' case), 0 no exportation 
    775775   ln_nnogather=  .false.  !  activate code to avoid mpi_allgather use at the northfold 
    776    jpni        =   0       !  jpni   number of processors following i (set automatically if < 1)      
    777    jpnj        =   0       !  jpnj   number of processors following j (set automatically if < 1)      
    778    jpnij       =   0       !  jpnij  number of local domains (set automatically if < 1)               
     776   jpni        =   0       !  jpni   number of processors following i (set automatically if < 1) 
     777   jpnj        =   0       !  jpnj   number of processors following j (set automatically if < 1) 
     778   jpnij       =   0       !  jpnij  number of local domains (set automatically if < 1) 
    779779/ 
    780780!----------------------------------------------------------------------- 
     
    801801!!   namflo       float parameters                                      ("key_float") 
    802802!!   namptr       Poleward Transport Diagnostics 
    803 !!   namhsb       Heat and salt budgets  
     803!!   namhsb       Heat and salt budgets 
    804804!!====================================================================== 
    805805! 
     
    846846   ln_diaptr  = .false.    !  Poleward heat and salt transport (T) or not (F) 
    847847   ln_diaznl  = .true.     !  Add zonal means and meridional stream functions 
    848    ln_subbas  = .true.     !  Atlantic/Pacific/Indian basins computation (T) or not  
     848   ln_subbas  = .true.     !  Atlantic/Pacific/Indian basins computation (T) or not 
    849849                           !  (orca configuration only, need input basins mask file named "subbasins.nc" 
    850850   ln_ptrcomp = .true.     !  Add decomposition : overturning 
     
    853853/ 
    854854!----------------------------------------------------------------------- 
    855 &namhsb       !  Heat and salt budgets  
     855&namhsb       !  Heat and salt budgets 
    856856!----------------------------------------------------------------------- 
    857857   ln_diahsb  = .false.    !  check the heat and salt budgets (T) or not (F) 
     
    865865                           !     -1 : debug all section 
    866866                           !  0 < n : debug section number n 
    867 /  
     867/ 
    868868 
    869869!!====================================================================== 
     
    877877&namobs       !  observation usage switch                               ('key_diaobs') 
    878878!----------------------------------------------------------------------- 
    879    ln_t3d     = .false.    ! Logical switch for T profile observations          
    880    ln_s3d     = .false.    ! Logical switch for S profile observations           
    881    ln_ena     = .false.    ! Logical switch for ENACT insitu data set            
    882    !                       !     ln_cor                  Logical switch for Coriolis insitu data set        
    883    ln_profb   = .false.    ! Logical switch for feedback insitu data set      
    884    ln_sla     = .false.    ! Logical switch for SLA observations                
    885  
    886    ln_sladt   = .false.    ! Logical switch for AVISO SLA data               
    887  
    888    ln_slafb   = .false.    ! Logical switch for feedback SLA data             
    889                            !     ln_ssh                  Logical switch for SSH observations               
    890  
    891    ln_sst     = .false.    ! Logical switch for SST observations               
    892                            !     ln_reysst               Logical switch for Reynolds observations        
    893                            !     ln_ghrsst               Logical switch for GHRSST observations           
    894  
    895    ln_sstfb   = .false.    ! Logical switch for feedback SST data           
    896                            !     ln_sss                  Logical switch for SSS observations               
    897                            !     ln_seaice               Logical switch for Sea Ice observations         
    898                            !     ln_vel3d                Logical switch for velocity observations          
    899                            !     ln_velavcur             Logical switch for velocity daily av. cur.     
    900                            !     ln_velhrcur             Logical switch for velocity high freq. cur.    
    901                            !     ln_velavadcp            Logical switch for velocity daily av. ADCP   
     879   ln_t3d     = .false.    ! Logical switch for T profile observations 
     880   ln_s3d     = .false.    ! Logical switch for S profile observations 
     881   ln_ena     = .false.    ! Logical switch for ENACT insitu data set 
     882   !                       !     ln_cor                  Logical switch for Coriolis insitu data set 
     883   ln_profb   = .false.    ! Logical switch for feedback insitu data set 
     884   ln_sla     = .false.    ! Logical switch for SLA observations 
     885 
     886   ln_sladt   = .false.    ! Logical switch for AVISO SLA data 
     887 
     888   ln_slafb   = .false.    ! Logical switch for feedback SLA data 
     889                           !     ln_ssh                  Logical switch for SSH observations 
     890 
     891   ln_sst     = .false.    ! Logical switch for SST observations 
     892                           !     ln_reysst               Logical switch for Reynolds observations 
     893                           !     ln_ghrsst               Logical switch for GHRSST observations 
     894 
     895   ln_sstfb   = .false.    ! Logical switch for feedback SST data 
     896                           !     ln_sss                  Logical switch for SSS observations 
     897                           !     ln_seaice               Logical switch for Sea Ice observations 
     898                           !     ln_vel3d                Logical switch for velocity observations 
     899                           !     ln_velavcur             Logical switch for velocity daily av. cur. 
     900                           !     ln_velhrcur             Logical switch for velocity high freq. cur. 
     901                           !     ln_velavadcp            Logical switch for velocity daily av. ADCP 
    902902                           !     ln_velhradcp            Logical switch for velocity high freq. ADCP 
    903                            !     ln_velfb                Logical switch for feedback velocity data        
    904                            !     ln_grid_global          Global distribtion of observations          
    905                            !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table   
    906                            !     grid_search_file        Grid search lookup file header  
    907                            !     enactfiles              ENACT input observation file names  
    908                            !     coriofiles              Coriolis input observation file name   
    909    !                       ! profbfiles: Profile feedback input observation file name  
     903                           !     ln_velfb                Logical switch for feedback velocity data 
     904                           !     ln_grid_global          Global distribtion of observations 
     905                           !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table 
     906                           !     grid_search_file        Grid search lookup file header 
     907                           !     enactfiles              ENACT input observation file names 
     908                           !     coriofiles              Coriolis input observation file name 
     909   !                       ! profbfiles: Profile feedback input observation file name 
    910910   profbfiles = 'profiles_01.nc' 
    911                            !     ln_profb_enatim         Enact feedback input time setting switch     
     911                           !     ln_profb_enatim         Enact feedback input time setting switch 
    912912                           !     slafilesact             Active SLA input observation file name 
    913                            !     slafilespas             Passive SLA input observation file name  
    914    !                       ! slafbfiles: Feedback SLA input observation file name  
     913                           !     slafilespas             Passive SLA input observation file name 
     914   !                       ! slafbfiles: Feedback SLA input observation file name 
    915915   slafbfiles = 'sla_01.nc' 
    916                            !     sstfiles                GHRSST input observation file name        
    917    !                       ! sstfbfiles: Feedback SST input observation file name  
     916                           !     sstfiles                GHRSST input observation file name 
     917   !                       ! sstfbfiles: Feedback SST input observation file name 
    918918   sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 
    919                            !     seaicefiles             Sea Ice input observation file name  
    920                            !     velavcurfiles           Vel. cur. daily av. input file name   
    921                            !     velhvcurfiles           Vel. cur. high freq. input file name   
    922                            !     velavadcpfiles          Vel. ADCP daily av. input file name     
    923                            !     velhvadcpfiles          Vel. ADCP high freq. input file name  
    924                            !     velfbfiles              Vel. feedback input observation file name  
    925                            !     dobsini                 Initial date in window YYYYMMDD.HHMMSS        
    926                            !     dobsend                 Final date in window YYYYMMDD.HHMMSS          
    927                            !     n1dint                  Type of vertical interpolation method         
    928                            !     n2dint                  Type of horizontal interpolation method        
    929                            !     ln_nea                  Rejection of observations near land switch     
    930    nmsshc     = 0          ! MSSH correction scheme                          
    931                            !     mdtcorr                 MDT  correction                                
    932                            !     mdtcutoff               MDT cutoff for computed correction           
    933    ln_altbias = .false.    ! Logical switch for alt bias                 
    934    ln_ignmis  = .true.     ! Logical switch for ignoring missing files    
    935                            !     endailyavtypes   ENACT daily average types                     
     919                           !     seaicefiles             Sea Ice input observation file name 
     920                           !     velavcurfiles           Vel. cur. daily av. input file name 
     921                           !     velhvcurfiles           Vel. cur. high freq. input file name 
     922                           !     velavadcpfiles          Vel. ADCP daily av. input file name 
     923                           !     velhvadcpfiles          Vel. ADCP high freq. input file name 
     924                           !     velfbfiles              Vel. feedback input observation file name 
     925                           !     dobsini                 Initial date in window YYYYMMDD.HHMMSS 
     926                           !     dobsend                 Final date in window YYYYMMDD.HHMMSS 
     927                           !     n1dint                  Type of vertical interpolation method 
     928                           !     n2dint                  Type of horizontal interpolation method 
     929                           !     ln_nea                  Rejection of observations near land switch 
     930   nmsshc     = 0          ! MSSH correction scheme 
     931                           !     mdtcorr                 MDT  correction 
     932                           !     mdtcutoff               MDT cutoff for computed correction 
     933   ln_altbias = .false.    ! Logical switch for alt bias 
     934   ln_ignmis  = .true.     ! Logical switch for ignoring missing files 
     935                           !     endailyavtypes   ENACT daily average types 
    936936   ln_grid_global = .true. 
    937937   ln_grid_search_lookup = .false. 
    938 /  
     938/ 
    939939!----------------------------------------------------------------------- 
    940940&nam_asminc   !   assimilation increments                               ('key_asminc') 
    941941!----------------------------------------------------------------------- 
    942     ln_bkgwri = .false.    !  Logical switch for writing out background state  
    943     ln_trjwri = .false.    !  Logical switch for writing out state trajectory 
     942    ln_bkgwri = .false.    !  Logical switch for writing out background state 
    944943    ln_trainc = .false.    !  Logical switch for applying tracer increments 
    945944    ln_dyninc = .false.    !  Logical switch for applying velocity increments 
    946     ln_sshinc = .false.    !  Logical switch for applying SSH increments  
     945    ln_sshinc = .false.    !  Logical switch for applying SSH increments 
    947946    ln_asmdin = .false.    !  Logical switch for Direct Initialization (DI) 
    948947    ln_asmiau = .false.    !  Logical switch for Incremental Analysis Updating (IAU) 
     
    952951    nitiaufin = 15         !  Timestep of end of IAU interval in [0,nitend-nit000-1] 
    953952    niaufn    = 0          !  Type of IAU weighting function 
    954     nittrjfrq = 0          !  Frequency of trajectory output for 4D-VAR 
    955953    ln_salfix = .false.    !  Logical switch for ensuring that the sa > salfixmin 
    956954    salfixmin = -9999      !  Minimum salinity after applying the increments 
     
    981979   rn_htrmax         =  200.0   ! max. depth of transition range 
    982980/ 
     981!----------------------------------------------------------------------- 
     982&namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 
     983!----------------------------------------------------------------------- 
     984    cn_dirtrj   = 'tam_trajectory'   ! prefix for input/ouput files 
     985    ln_trjhand  = .false.            ! Handling non linear trajectory 
     986    nn_ittrjfrq = 20                 ! Output/input frequency 
     987    ln_trj_spl = .false.             ! Handling trajectory at simple precision 
     988/ 
  • trunk/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist

    r3306 r3604  
    33!! namelists    2 - Domain           (namzgr, namzgr_sco, namdom, namtsd) 
    44!!              3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 
    5 !!                                    namsbc_cpl, namtra_qsr, namsbc_rnf,  
     5!!                                    namsbc_cpl, namtra_qsr, namsbc_rnf, 
    66!!                                    namsbc_apr, namsbc_ssr, namsbc_alb) 
    77!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) 
     
    2525!----------------------------------------------------------------------- 
    2626   nn_no       =       0   !  job number (no more used...) 
    27    cn_exp      =  "ORCA2"  !  experience name  
     27   cn_exp      =  "ORCA2"  !  experience name 
    2828   nn_it000    =       1   !  first time step 
    2929   nn_itend    =    5475   !  last  time step (std 5475) 
     
    5252!!   namzgr_sco   s-coordinate or hybrid z-s-coordinate 
    5353!!   namdom       space and time domain (bathymetry, mesh, timestep) 
    54 !!   namtsd       data: temperature & salinity                          
     54!!   namtsd       data: temperature & salinity 
    5555!!====================================================================== 
    5656! 
     
    7272   ln_s_sigma  = .false.   !  hybrid s-sigma coordinates 
    7373   rn_bb       =    0.8    !  stretching with s-sigma 
    74    rn_hc       =  150.0    !  critical depth with s-sigma  
     74   rn_hc       =  150.0    !  critical depth with s-sigma 
    7575/ 
    7676!----------------------------------------------------------------------- 
     
    9494/ 
    9595!----------------------------------------------------------------------- 
    96 &namtsd    !   data : Temperature  & Salinity                            
     96&namtsd    !   data : Temperature  & Salinity 
    9797!----------------------------------------------------------------------- 
    9898!          ! file name ! frequency (hours)    ! variable ! time interp. ! clim  !'yearly' or ! weights  ! rotation ! 
     
    125125&namsbc        !   Surface Boundary Condition (surface module) 
    126126!----------------------------------------------------------------------- 
    127    nn_fsbc     = 5         !  frequency of surface boundary condition computation  
     127   nn_fsbc     = 5         !  frequency of surface boundary condition computation 
    128128                           !     (also = the frequency of sea-ice model call) 
    129    ln_ana      = .false.   !  analytical formulation                    (T => fill namsbc_ana )  
     129   ln_ana      = .false.   !  analytical formulation                    (T => fill namsbc_ana ) 
    130130   ln_flx      = .false.   !  flux formulation                          (T => fill namsbc_flx ) 
    131    ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio)  
    132    ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core)  
     131   ln_blk_clio = .false.   !  CLIO bulk formulation                     (T => fill namsbc_clio) 
     132   ln_blk_core = .true.    !  CORE bulk formulation                     (T => fill namsbc_core) 
    133133   ln_blk_mfs  = .false.   !  MFS bulk formulation                      (T => fill namsbc_mfs ) 
    134134   ln_cpl      = .false.   !  Coupled formulation                       (T => fill namsbc_cpl ) 
     
    140140   ln_rnf      = .true.    !  runoffs                                   (T => fill namsbc_rnf) 
    141141   ln_ssr      = .true.    !  Sea Surface Restoring on T and/or S       (T => fill namsbc_ssr) 
    142    nn_fwb      = 3         !  FreshWater Budget: =0 unchecked  
    143                            !     =1 global mean of e-p-r set to zero at each time step  
     142   nn_fwb      = 3         !  FreshWater Budget: =0 unchecked 
     143                           !     =1 global mean of e-p-r set to zero at each time step 
    144144                           !     =2 annual global mean of e-p-r set to zero 
    145145                           !     =3 global emp set to zero and spread out over erp area 
     
    168168 
    169169   cn_dir      = './'      !  root directory for the location of the flux files 
    170 /       
     170/ 
    171171!----------------------------------------------------------------------- 
    172172&namsbc_clio   !   namsbc_clio  CLIO bulk formulae 
     
    225225!                    !                       ! categories !  reference  !    orientation       ! grids  ! 
    226226! send 
    227 sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   ''     
    228 sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   ''     
    229 sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   ''     
    230 sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T'        
    231 sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   ''         
     227sn_snd_temp   =       'weighted oce and ice' ,    'no'    ,     ''      ,         ''           ,   '' 
     228sn_snd_alb    =       'weighted ice'         ,    'no'    ,     ''      ,         ''           ,   '' 
     229sn_snd_thick  =       'none'                 ,    'no'   ,     ''      ,         ''           ,   '' 
     230sn_snd_crt    =       'none'                 ,    'no'    , 'spherical' , 'eastward-northward' ,  'T' 
     231sn_snd_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    232232! receive 
    233 sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   ''     
    234 sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    235 sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V'    
    236 sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    237 sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    238 sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   ''     
    239 sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   ''     
    240 sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    241 sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
    242 sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   ''     
     233sn_rcv_w10m   =       'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
     234sn_rcv_taumod =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     235sn_rcv_tau    =       'oce only'             ,    'no'    , 'cartesian' , 'eastward-northward',  'U,V' 
     236sn_rcv_dqnsdt =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     237sn_rcv_qsr    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     238sn_rcv_qns    =       'oce and ice'          ,    'no'    ,     ''      ,         ''          ,   '' 
     239sn_rcv_emp    =       'conservative'         ,    'no'    ,     ''      ,         ''          ,   '' 
     240sn_rcv_rnf    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     241sn_rcv_cal    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
     242sn_rcv_co2    =       'coupled'              ,    'no'    ,     ''      ,         ''          ,   '' 
    243243/ 
    244244!----------------------------------------------------------------------- 
     
    300300   cn_dir      = './'      !  root directory for the location of the runoff files 
    301301   nn_sstr     =     0     !  add a retroaction term in the surface heat       flux (=1) or not (=0) 
    302    nn_sssr     =     2     !  add a damping     term in the surface freshwater flux (=2)  
     302   nn_sssr     =     2     !  add a damping     term in the surface freshwater flux (=2) 
    303303                           !  or to SSS only (=1) or no damping term (=0) 
    304304   rn_dqdt     =   -40.    !  magnitude of the retroaction on temperature   [W/m2/K] 
     
    306306   ln_sssr_bnd =   .true.  !  flag to bound erp term (associated with nn_sssr=2) 
    307307   rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day] 
    308 /       
     308/ 
    309309!----------------------------------------------------------------------- 
    310310&namsbc_alb    !   albedo parameters 
    311311!----------------------------------------------------------------------- 
    312    rn_cloud    =    0.06   !  cloud correction to snow and ice albedo  
     312   rn_cloud    =    0.06   !  cloud correction to snow and ice albedo 
    313313   rn_albice   =    0.53   !  albedo of melting ice in the arctic and antarctic 
    314314   rn_alphd    =    0.80   !  coefficients for linear interpolation used to 
    315    rn_alphc    =    0.65   !  compute albedo between two extremes values  
     315   rn_alphc    =    0.65   !  compute albedo between two extremes values 
    316316   rn_alphdi   =    0.72   !  (Pyane, 1972) 
    317317/ 
     
    323323!!   namcla        cross land advection 
    324324!!   namobc        open boundaries parameters                           ("key_obc") 
    325 !!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif")  
     325!!   namagrif      agrif nested grid ( read by child model only )       ("key_agrif") 
    326326!!   nambdy        Unstructured open boundaries                         ("key_bdy") 
    327327!!   namtide       Tidal forcing at open boundaries                     ("key_bdy_tides") 
     
    345345   ln_obc_clim = .false.   !  climatological obc data files (T) or not (F) 
    346346   ln_vol_cst  = .true.    !  impose the total volume conservation (T) or not (F) 
    347    ln_obc_fla  = .false.   !  Flather open boundary condition  
     347   ln_obc_fla  = .false.   !  Flather open boundary condition 
    348348   nn_obcdta   =    1      !  = 0 the obc data are equal to the initial state 
    349349                           !  = 1 the obc data are read in 'obc.dta' files 
     
    389389&nambdy        !  unstructured open boundaries                          ("key_bdy") 
    390390!----------------------------------------------------------------------- 
    391     nb_bdy = 1                            !  number of open boundary sets        
     391    nb_bdy = 1                            !  number of open boundary sets 
    392392    ln_coords_file = .true.               !  =T : read bdy coordinates from file 
    393393    cn_coords_file = 'coordinates.bdy.nc' !  bdy coordinates files 
     
    425425/ 
    426426!----------------------------------------------------------------------- 
    427 &nambdy_tide     ! tidal forcing at open boundaries               
     427&nambdy_tide     ! tidal forcing at open boundaries 
    428428!----------------------------------------------------------------------- 
    429429   filtide      = 'bdydta/amm12_bdytide_'         !  file name root of tidal forcing files 
     
    464464!!====================================================================== 
    465465!!   nambfr        bottom friction 
    466 !!   nambbc        bottom temperature boundary condition                
     466!!   nambbc        bottom temperature boundary condition 
    467467!!   nambbl        bottom boundary layer scheme                         ("key_trabbl") 
    468468!!====================================================================== 
     
    484484!----------------------------------------------------------------------- 
    485485   ln_trabbc   = .true.    !  Apply a geothermal heating at the ocean bottom 
    486    nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux  
     486   nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux 
    487487                           !     = 1 constant flux 
    488                            !     = 2 variable flux (read in geothermal_heating.nc in mW/m2)  
     488                           !     = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
    489489   rn_geoflx_cst = 86.4e-3 !  Constant value of geothermal heat flux [W/m2] 
    490490/ 
     
    504504!!   namtra_adv    advection scheme 
    505505!!   namtra_ldf    lateral diffusion scheme 
    506 !!   namtra_dmp    T & S newtonian damping                         
     506!!   namtra_dmp    T & S newtonian damping 
    507507!!====================================================================== 
    508508! 
     
    518518/ 
    519519!----------------------------------------------------------------------- 
    520 &namtra_adv    !   advection scheme for tracer  
    521 !----------------------------------------------------------------------- 
    522    ln_traadv_cen2   =  .false.  !  2nd order centered scheme    
    523    ln_traadv_tvd    =  .true.   !  TVD scheme                 
    524    ln_traadv_muscl  =  .false.  !  MUSCL scheme              
    525    ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries   
    526    ln_traadv_ubs    =  .false.  !  UBS scheme                  
    527    ln_traadv_qck    =  .false.  !  QUICKEST scheme                  
     520&namtra_adv    !   advection scheme for tracer 
     521!----------------------------------------------------------------------- 
     522   ln_traadv_cen2   =  .false.  !  2nd order centered scheme 
     523   ln_traadv_tvd    =  .true.   !  TVD scheme 
     524   ln_traadv_muscl  =  .false.  !  MUSCL scheme 
     525   ln_traadv_muscl2 =  .false.  !  MUSCL2 scheme + cen2 at boundaries 
     526   ln_traadv_ubs    =  .false.  !  UBS scheme 
     527   ln_traadv_qck    =  .false.  !  QUICKEST scheme 
    528528/ 
    529529!---------------------------------------------------------------------------------- 
     
    552552/ 
    553553!----------------------------------------------------------------------- 
    554 &namtra_dmp    !   tracer: T & S newtonian damping                   
     554&namtra_dmp    !   tracer: T & S newtonian damping 
    555555!----------------------------------------------------------------------- 
    556556   ln_tradmp   =  .true.   !  add a damping termn (T) or not (F) 
     
    580580&namdyn_adv    !   formulation of the momentum advection 
    581581!----------------------------------------------------------------------- 
    582    ln_dynadv_vec = .true.  !  vector form (T) or flux form (F)   
     582   ln_dynadv_vec = .true.  !  vector form (T) or flux form (F) 
    583583   ln_dynadv_cen2= .false. !  flux form - 2nd order centered scheme 
    584    ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme  
    585 /   
     584   ln_dynadv_ubs = .false. !  flux form - 3rd order UBS      scheme 
     585/ 
    586586!----------------------------------------------------------------------- 
    587587&namdyn_vor    !   option of physics/algorithm (not control by CPP keys) 
    588588!----------------------------------------------------------------------- 
    589    ln_dynvor_ene = .false. !  enstrophy conserving scheme   
    590    ln_dynvor_ens = .false. !  energy conserving scheme     
    591    ln_dynvor_mix = .false. !  mixed scheme                
    592    ln_dynvor_een = .true.  !  energy & enstrophy scheme   
     589   ln_dynvor_ene = .false. !  enstrophy conserving scheme 
     590   ln_dynvor_ens = .false. !  energy conserving scheme 
     591   ln_dynvor_mix = .false. !  mixed scheme 
     592   ln_dynvor_een = .true.  !  energy & enstrophy scheme 
    593593/ 
    594594!----------------------------------------------------------------------- 
    595595&namdyn_hpg    !   Hydrostatic pressure gradient option 
    596596!----------------------------------------------------------------------- 
    597    ln_hpg_zco  = .false.   !  z-coordinate - full steps                    
     597   ln_hpg_zco  = .false.   !  z-coordinate - full steps 
    598598   ln_hpg_zps  = .true.    !  z-coordinate - partial steps (interpolation) 
    599599   ln_hpg_sco  = .false.   !  s-coordinate (standard jacobian formulation) 
     
    613613&namdyn_ldf    !   lateral diffusion on momentum 
    614614!----------------------------------------------------------------------- 
    615    !                       !  Type of the operator :  
    616    ln_dynldf_lap    =  .true.   !  laplacian operator          
    617    ln_dynldf_bilap  =  .false.  !  bilaplacian operator     
    618    !                       !  Direction of action  :  
    619    ln_dynldf_level  =  .false.  !  iso-level                
     615   !                       !  Type of the operator : 
     616   ln_dynldf_lap    =  .true.   !  laplacian operator 
     617   ln_dynldf_bilap  =  .false.  !  bilaplacian operator 
     618   !                       !  Direction of action  : 
     619   ln_dynldf_level  =  .false.  !  iso-level 
    620620   ln_dynldf_hor    =  .true.   !  horizontal (geopotential)            (require "key_ldfslp" in s-coord.) 
    621621   ln_dynldf_iso    =  .false.  !  iso-neutral                          (require "key_ldfslp") 
     
    623623   rn_ahm_0_lap     = 40000.    !  horizontal laplacian eddy viscosity   [m2/s] 
    624624   rn_ahmb_0        =     0.    !  background eddy viscosity for ldf_iso [m2/s] 
    625    rn_ahm_0_blp     =     0.    !  horizontal bilaplacian eddy viscosity [m4/s]  
     625   rn_ahm_0_blp     =     0.    !  horizontal bilaplacian eddy viscosity [m4/s] 
    626626/ 
    627627 
     
    696696&namzdf_kpp    !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionally: 
    697697!------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 
    698    ln_kpprimix = .true.    !  shear instability mixing  
     698   ln_kpprimix = .true.    !  shear instability mixing 
    699699   rn_difmiw   =  1.0e-04  !  constant internal wave viscosity [m2/s] 
    700700   rn_difsiw   =  0.1e-04  !  constant internal wave diffusivity [m2/s] 
    701701   rn_riinfty  =  0.8      !  local Richardson Number limit for shear instability 
    702702   rn_difri    =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s] 
    703    rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2]  
    704    rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s]  
     703   rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
     704   rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s] 
    705705   nn_avb      =  0        !  horizontal averaged (=1) or not (=0) on avt and amv 
    706706   nn_ave      =  1        !  constant (=0) or profile (=1) background on avt 
     
    736736   rn_n2min    = 1.e-8     !  threshold of the Brunt-Vaisala frequency (s-1) 
    737737   rn_tfe      = 0.333     !  tidal dissipation efficiency 
    738    rn_me       = 0.2       !  mixing efficiency  
     738   rn_me       = 0.2       !  mixing efficiency 
    739739   ln_tmx_itf  = .true.    !  ITF specific parameterisation 
    740740   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency 
     
    746746!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi) 
    747747!!   namctl            Control prints & Benchmark 
    748 !!   namsol            elliptic solver / island / free surface  
    749 !!====================================================================== 
    750 ! 
    751 !----------------------------------------------------------------------- 
    752 &namsol        !   elliptic solver / island / free surface  
     748!!   namsol            elliptic solver / island / free surface 
     749!!====================================================================== 
     750! 
     751!----------------------------------------------------------------------- 
     752&namsol        !   elliptic solver / island / free surface 
    753753!----------------------------------------------------------------------- 
    754754   nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
     
    796796!!   namflo       float parameters                                      ("key_float") 
    797797!!   namptr       Poleward Transport Diagnostics 
    798 !!   namhsb       Heat and salt budgets  
     798!!   namhsb       Heat and salt budgets 
    799799!!====================================================================== 
    800800! 
     
    828828   jpnnewflo     = 0          !  number of floats for the restart 
    829829   ln_rstflo     = .false.    !  float restart (T) or not (F) 
    830    nn_writefl    =      75    !  frequency of writing in float output file  
    831    nn_stockfl    =    5475    !  frequency of creation of the float restart file  
     830   nn_writefl    =      75    !  frequency of writing in float output file 
     831   nn_stockfl    =    5475    !  frequency of creation of the float restart file 
    832832   ln_argo       = .false.    !  Argo type floats (stay at the surface each 10 days) 
    833833   ln_flork4     = .false.    !  trajectories computed with a 4th order Runge-Kutta (T) 
     
    841841   ln_diaptr  = .false.    !  Poleward heat and salt transport (T) or not (F) 
    842842   ln_diaznl  = .true.     !  Add zonal means and meridional stream functions 
    843    ln_subbas  = .true.     !  Atlantic/Pacific/Indian basins computation (T) or not  
     843   ln_subbas  = .true.     !  Atlantic/Pacific/Indian basins computation (T) or not 
    844844                           !  (orca configuration only, need input basins mask file named "subbasins.nc" 
    845845   ln_ptrcomp = .true.     !  Add decomposition : overturning 
     
    848848/ 
    849849!----------------------------------------------------------------------- 
    850 &namhsb       !  Heat and salt budgets  
     850&namhsb       !  Heat and salt budgets 
    851851!----------------------------------------------------------------------- 
    852852   ln_diahsb  = .false.    !  check the heat and salt budgets (T) or not (F) 
     
    881881&namobs       !  observation usage switch                               ('key_diaobs') 
    882882!----------------------------------------------------------------------- 
    883    ln_t3d     = .false.    ! Logical switch for T profile observations          
    884    ln_s3d     = .false.    ! Logical switch for S profile observations           
    885    ln_ena     = .false.    ! Logical switch for ENACT insitu data set            
    886    !                       !     ln_cor                  Logical switch for Coriolis insitu data set        
    887    ln_profb   = .false.    ! Logical switch for feedback insitu data set      
    888    ln_sla     = .false.    ! Logical switch for SLA observations                
    889  
    890    ln_sladt   = .false.    ! Logical switch for AVISO SLA data               
    891  
    892    ln_slafb   = .false.    ! Logical switch for feedback SLA data             
    893                            !     ln_ssh                  Logical switch for SSH observations               
    894  
    895    ln_sst     = .false.    ! Logical switch for SST observations               
    896                            !     ln_reysst               Logical switch for Reynolds observations        
    897                            !     ln_ghrsst               Logical switch for GHRSST observations           
    898  
    899    ln_sstfb   = .false.    ! Logical switch for feedback SST data           
    900                            !     ln_sss                  Logical switch for SSS observations               
    901                            !     ln_seaice               Logical switch for Sea Ice observations         
    902                            !     ln_vel3d                Logical switch for velocity observations          
    903                            !     ln_velavcur             Logical switch for velocity daily av. cur.     
    904                            !     ln_velhrcur             Logical switch for velocity high freq. cur.    
    905                            !     ln_velavadcp            Logical switch for velocity daily av. ADCP   
     883   ln_t3d     = .false.    ! Logical switch for T profile observations 
     884   ln_s3d     = .false.    ! Logical switch for S profile observations 
     885   ln_ena     = .false.    ! Logical switch for ENACT insitu data set 
     886   !                       !     ln_cor                  Logical switch for Coriolis insitu data set 
     887   ln_profb   = .false.    ! Logical switch for feedback insitu data set 
     888   ln_sla     = .false.    ! Logical switch for SLA observations 
     889 
     890   ln_sladt   = .false.    ! Logical switch for AVISO SLA data 
     891 
     892   ln_slafb   = .false.    ! Logical switch for feedback SLA data 
     893                           !     ln_ssh                  Logical switch for SSH observations 
     894 
     895   ln_sst     = .false.    ! Logical switch for SST observations 
     896                           !     ln_reysst               Logical switch for Reynolds observations 
     897                           !     ln_ghrsst               Logical switch for GHRSST observations 
     898 
     899   ln_sstfb   = .false.    ! Logical switch for feedback SST data 
     900                           !     ln_sss                  Logical switch for SSS observations 
     901                           !     ln_seaice               Logical switch for Sea Ice observations 
     902                           !     ln_vel3d                Logical switch for velocity observations 
     903                           !     ln_velavcur             Logical switch for velocity daily av. cur. 
     904                           !     ln_velhrcur             Logical switch for velocity high freq. cur. 
     905                           !     ln_velavadcp            Logical switch for velocity daily av. ADCP 
    906906                           !     ln_velhradcp            Logical switch for velocity high freq. ADCP 
    907                            !     ln_velfb                Logical switch for feedback velocity data        
    908                            !     ln_grid_global          Global distribtion of observations          
    909                            !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table   
    910                            !     grid_search_file        Grid search lookup file header  
    911                            !     enactfiles              ENACT input observation file names  
    912                            !     coriofiles              Coriolis input observation file name   
    913    !                       ! profbfiles: Profile feedback input observation file name  
     907                           !     ln_velfb                Logical switch for feedback velocity data 
     908                           !     ln_grid_global          Global distribtion of observations 
     909                           !     ln_grid_search_lookup   Logical switch for obs grid search w/lookup table 
     910                           !     grid_search_file        Grid search lookup file header 
     911                           !     enactfiles              ENACT input observation file names 
     912                           !     coriofiles              Coriolis input observation file name 
     913   !                       ! profbfiles: Profile feedback input observation file name 
    914914   profbfiles = 'profiles_01.nc' 
    915                            !     ln_profb_enatim         Enact feedback input time setting switch     
     915                           !     ln_profb_enatim         Enact feedback input time setting switch 
    916916                           !     slafilesact             Active SLA input observation file name 
    917                            !     slafilespas             Passive SLA input observation file name  
    918    !                       ! slafbfiles: Feedback SLA input observation file name  
     917                           !     slafilespas             Passive SLA input observation file name 
     918   !                       ! slafbfiles: Feedback SLA input observation file name 
    919919   slafbfiles = 'sla_01.nc' 
    920                            !     sstfiles                GHRSST input observation file name        
    921    !                       ! sstfbfiles: Feedback SST input observation file name  
     920                           !     sstfiles                GHRSST input observation file name 
     921   !                       ! sstfbfiles: Feedback SST input observation file name 
    922922   sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 
    923                            !     seaicefiles             Sea Ice input observation file name  
    924                            !     velavcurfiles           Vel. cur. daily av. input file name   
    925                            !     velhvcurfiles           Vel. cur. high freq. input file name   
    926                            !     velavadcpfiles          Vel. ADCP daily av. input file name     
    927                            !     velhvadcpfiles          Vel. ADCP high freq. input file name  
    928                            !     velfbfiles              Vel. feedback input observation file name  
    929                            !     dobsini                 Initial date in window YYYYMMDD.HHMMSS        
    930                            !     dobsend                 Final date in window YYYYMMDD.HHMMSS          
    931                            !     n1dint                  Type of vertical interpolation method         
    932                            !     n2dint                  Type of horizontal interpolation method        
    933                            !     ln_nea                  Rejection of observations near land switch     
    934    nmsshc     = 0          ! MSSH correction scheme                          
    935                            !     mdtcorr                 MDT  correction                                
    936                            !     mdtcutoff               MDT cutoff for computed correction           
    937    ln_altbias = .false.    ! Logical switch for alt bias                 
    938    ln_ignmis  = .true.     ! Logical switch for ignoring missing files    
    939                            !     endailyavtypes   ENACT daily average types                     
     923                           !     seaicefiles             Sea Ice input observation file name 
     924                           !     velavcurfiles           Vel. cur. daily av. input file name 
     925                           !     velhvcurfiles           Vel. cur. high freq. input file name 
     926                           !     velavadcpfiles          Vel. ADCP daily av. input file name 
     927                           !     velhvadcpfiles          Vel. ADCP high freq. input file name 
     928                           !     velfbfiles              Vel. feedback input observation file name 
     929                           !     dobsini                 Initial date in window YYYYMMDD.HHMMSS 
     930                           !     dobsend                 Final date in window YYYYMMDD.HHMMSS 
     931                           !     n1dint                  Type of vertical interpolation method 
     932                           !     n2dint                  Type of horizontal interpolation method 
     933                           !     ln_nea                  Rejection of observations near land switch 
     934   nmsshc     = 0          ! MSSH correction scheme 
     935                           !     mdtcorr                 MDT  correction 
     936                           !     mdtcutoff               MDT cutoff for computed correction 
     937   ln_altbias = .false.    ! Logical switch for alt bias 
     938   ln_ignmis  = .true.     ! Logical switch for ignoring missing files 
     939                           !     endailyavtypes   ENACT daily average types 
    940940   ln_grid_global = .true. 
    941941   ln_grid_search_lookup = .false. 
    942 /  
     942/ 
    943943!----------------------------------------------------------------------- 
    944944&nam_asminc   !   assimilation increments                               ('key_asminc') 
    945945!----------------------------------------------------------------------- 
    946     ln_bkgwri = .false.    !  Logical switch for writing out background state  
    947     ln_trjwri = .false.    !  Logical switch for writing out state trajectory 
     946    ln_bkgwri = .false.    !  Logical switch for writing out background state 
    948947    ln_trainc = .false.    !  Logical switch for applying tracer increments 
    949948    ln_dyninc = .false.    !  Logical switch for applying velocity increments 
    950     ln_sshinc = .false.    !  Logical switch for applying SSH increments  
     949    ln_sshinc = .false.    !  Logical switch for applying SSH increments 
    951950    ln_asmdin = .false.    !  Logical switch for Direct Initialization (DI) 
    952951    ln_asmiau = .false.    !  Logical switch for Incremental Analysis Updating (IAU) 
     
    956955    nitiaufin = 15         !  Timestep of end of IAU interval in [0,nitend-nit000-1] 
    957956    niaufn    = 0          !  Type of IAU weighting function 
    958     nittrjfrq = 0          !  Frequency of trajectory output for 4D-VAR 
    959957    ln_salfix = .false.    !  Logical switch for ensuring that the sa > salfixmin 
    960958    salfixmin = -9999      !  Minimum salinity after applying the increments 
     
    985983   rn_htrmax         =  200.0   ! max. depth of transition range 
    986984/ 
     985!----------------------------------------------------------------------- 
     986&namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 
     987!----------------------------------------------------------------------- 
     988    cn_dirtrj   = 'tam_trajectory'   ! prefix for input/ouput files 
     989    ln_trjhand  = .false.            ! Handling non linear trajectory 
     990    nn_ittrjfrq = 20                 ! Output/input frequency 
     991    ln_trj_spl = .false.             ! Handling trajectory at simple precision 
     992/ 
  • trunk/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r3294 r3604  
    1010   !!   NEMO     3.3  ! 2010-05  (D. Lea)  Update to work with NEMO v3.2 
    1111   !!             -   ! 2010-05  (D. Lea)  add calc_month_len routine based on day_init  
     12   !!            3.4  ! 2012-10  (A. Weaver and K. Mogensen) Fix for direct initialization 
    1213   !!---------------------------------------------------------------------- 
    1314 
     
    2021   !!   dyn_asm_inc  : Apply the dynamic (u and v) increments 
    2122   !!   ssh_asm_inc  : Apply the SSH increment 
     23   !!   seaice_asm_inc  : Apply the seaice increment 
    2224   !!---------------------------------------------------------------------- 
    2325   USE wrk_nemo         ! Memory Allocation 
     
    2527   USE dom_oce          ! Ocean space and time domain 
    2628   USE oce              ! Dynamics and active tracers defined in memory 
    27    USE divcur           ! Horizontal divergence and relative vorticity 
    2829   USE ldfdyn_oce       ! ocean dynamics: lateral physics 
    2930   USE eosbn2           ! Equation of state - in situ and potential density 
     
    3334   USE c1d              ! 1D initialization 
    3435   USE in_out_manager   ! I/O manager 
    35    USE lib_mpp           ! MPP library 
     36   USE lib_mpp          ! MPP library 
     37#if defined key_lim3 
     38   USE ice              ! LIM3 
     39#endif 
     40#if defined key_lim2 
     41   USE ice_2            ! LIM2 
     42#endif 
     43   USE sbc_oce          ! Surface boundary condition variables. 
    3644 
    3745   IMPLICIT NONE 
     
    4351   PUBLIC   dyn_asm_inc    !: Apply the dynamic (u and v) increments 
    4452   PUBLIC   ssh_asm_inc    !: Apply the SSH increment 
     53   PUBLIC   seaice_asm_inc !: Apply the seaice increment 
    4554 
    4655#if defined key_asminc 
     
    5059#endif 
    5160   LOGICAL, PUBLIC :: ln_bkgwri = .FALSE. !: No output of the background state fields 
    52    LOGICAL, PUBLIC :: ln_trjwri = .FALSE. !: No output of the state trajectory fields 
    5361   LOGICAL, PUBLIC :: ln_asmiau = .FALSE. !: No applying forcing with an assimilation increment 
    5462   LOGICAL, PUBLIC :: ln_asmdin = .FALSE. !: No direct initialization 
     
    5664   LOGICAL, PUBLIC :: ln_dyninc = .FALSE. !: No dynamics (u and v) assimilation increments 
    5765   LOGICAL, PUBLIC :: ln_sshinc = .FALSE. !: No sea surface height assimilation increment 
     66   LOGICAL, PUBLIC :: ln_seaiceinc = .FALSE. !: No sea ice concentration increment 
    5867   LOGICAL, PUBLIC :: ln_salfix = .FALSE. !: Apply minimum salinity check 
     68   LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing 
    5969   INTEGER, PUBLIC :: nn_divdmp = 0       !: Apply divergence damping filter nn_divdmp times 
    6070 
     
    7888 
    7989   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   ssh_bkg, ssh_bkginc   ! Background sea surface height and its increment 
     90   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   seaice_bkginc         ! Increment to the background sea ice conc 
    8091 
    8192   !! * Substitutions 
     
    125136      REAL(wp), POINTER, DIMENSION(:,:) :: hdiv 
    126137      !! 
    127       NAMELIST/nam_asminc/ ln_bkgwri, ln_trjwri,                           & 
     138      NAMELIST/nam_asminc/ ln_bkgwri,                                      & 
    128139         &                 ln_trainc, ln_dyninc, ln_sshinc,                & 
    129140         &                 ln_asmdin, ln_asmiau,                           & 
    130141         &                 nitbkg, nitdin, nitiaustr, nitiaufin, niaufn,   & 
    131          &                 nittrjfrq, ln_salfix, salfixmin,                & 
     142         &                 ln_salfix, salfixmin,                & 
    132143         &                 nn_divdmp 
    133144      !!---------------------------------------------------------------------- 
     
    139150      ! Set default values 
    140151      ln_bkgwri = .FALSE. 
    141       ln_trjwri = .FALSE. 
    142152      ln_trainc = .FALSE. 
    143153      ln_dyninc = .FALSE. 
    144154      ln_sshinc = .FALSE. 
     155      ln_seaiceinc = .FALSE. 
    145156      ln_asmdin = .FALSE. 
    146157      ln_asmiau = .TRUE. 
    147158      ln_salfix = .FALSE. 
     159      ln_temnofreeze = .FALSE. 
    148160      salfixmin = -9999 
    149161      nitbkg    = 0 
     
    152164      nitiaufin = 150      ! = 10 days with ORCA2 
    153165      niaufn    = 0 
    154       nittrjfrq = 1 
    155166 
    156167      REWIND ( numnam ) 
     
    164175         WRITE(numout,*) '   Namelist namasm : set assimilation increment parameters' 
    165176         WRITE(numout,*) '      Logical switch for writing out background state          ln_bkgwri = ', ln_bkgwri 
    166          WRITE(numout,*) '      Logical switch for writing out state trajectory          ln_trjwri = ', ln_trjwri 
    167177         WRITE(numout,*) '      Logical switch for applying tracer increments            ln_trainc = ', ln_trainc 
    168178         WRITE(numout,*) '      Logical switch for applying velocity increments          ln_dyninc = ', ln_dyninc 
    169179         WRITE(numout,*) '      Logical switch for applying SSH increments               ln_sshinc = ', ln_sshinc 
    170180         WRITE(numout,*) '      Logical switch for Direct Initialization (DI)            ln_asmdin = ', ln_asmdin 
     181         WRITE(numout,*) '      Logical switch for applying sea ice increments        ln_seaiceinc = ', ln_seaiceinc 
    171182         WRITE(numout,*) '      Logical switch for Incremental Analysis Updating (IAU)   ln_asmiau = ', ln_asmiau 
    172183         WRITE(numout,*) '      Timestep of background in [0,nitend-nit000-1]            nitbkg    = ', nitbkg 
     
    175186         WRITE(numout,*) '      Timestep of end of IAU interval in [0,nitend-nit000-1]   nitiaufin = ', nitiaufin 
    176187         WRITE(numout,*) '      Type of IAU weighting function                           niaufn    = ', niaufn 
    177          WRITE(numout,*) '      Frequency of trajectory output for 4D-VAR                nittrjfrq = ', nittrjfrq 
    178188         WRITE(numout,*) '      Logical switch for ensuring that the sa > salfixmin      ln_salfix = ', ln_salfix 
    179189         WRITE(numout,*) '      Minimum salinity after applying the increments           salfixmin = ', salfixmin 
     
    213223         WRITE(numout,*) '       nitiaustr_r = ', nitiaustr_r 
    214224         WRITE(numout,*) '       nitiaufin_r = ', nitiaufin_r 
    215          WRITE(numout,*) '       nittrjfrq   = ', nittrjfrq 
    216225         WRITE(numout,*) 
    217226         WRITE(numout,*) '   Dates referenced to current cycle:' 
     
    235244 
    236245      IF (      ( ( .NOT. ln_asmdin ).AND.( .NOT. ln_asmiau ) ) & 
    237            .AND.( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) ) ) & 
    238          & CALL ctl_stop( ' One or more of ln_trainc, ln_dyninc and ln_sshinc is set to .true.', & 
     246           .AND.( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) .OR. ( ln_seaiceinc) )) & 
     247         & CALL ctl_stop( ' One or more of ln_trainc, ln_dyninc, ln_sshinc and ln_seaiceinc is set to .true.', & 
    239248         &                ' but ln_asmdin and ln_asmiau are both set to .false. :', & 
    240249         &                ' Inconsistent options') 
     
    248257         &                ' Type IAU weighting function is invalid') 
    249258 
    250       IF ( ( .NOT. ln_trainc ).AND.( .NOT. ln_dyninc ).AND.( .NOT. ln_sshinc ) & 
     259      IF ( ( .NOT. ln_trainc ).AND.( .NOT. ln_dyninc ).AND.( .NOT. ln_sshinc ).AND.( .NOT. ln_seaiceinc ) & 
    251260         &                     )  & 
    252          & CALL ctl_warn( ' ln_trainc, ln_dyninc and ln_sshinc are set to .false. :', & 
     261         & CALL ctl_warn( ' ln_trainc, ln_dyninc, ln_sshinc and ln_seaiceinc are set to .false. :', & 
    253262         &                ' The assimilation increments are not applied') 
    254263 
     
    353362      ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 
    354363      ALLOCATE( ssh_bkginc(jpi,jpj)   ) 
     364      ALLOCATE( seaice_bkginc(jpi,jpj)) 
    355365#if defined key_asminc 
    356366      ALLOCATE( ssh_iau(jpi,jpj)      ) 
     
    361371      v_bkginc(:,:,:) = 0.0 
    362372      ssh_bkginc(:,:) = 0.0 
     373      seaice_bkginc(:,:) = 0.0 
    363374#if defined key_asminc 
    364375      ssh_iau(:,:)    = 0.0 
    365376#endif 
    366       IF ( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) ) THEN 
     377      IF ( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ).OR.( ln_seaiceinc ) ) THEN 
    367378 
    368379         !-------------------------------------------------------------------- 
     
    429440         ENDIF 
    430441 
     442         IF ( ln_seaiceinc ) THEN 
     443            CALL iom_get( inum, jpdom_autoglo, 'bckinseaice', seaice_bkginc, 1 ) 
     444            ! Apply the masks 
     445            seaice_bkginc(:,:) = seaice_bkginc(:,:) * tmask(:,:,1) 
     446            ! Set missing increments to 0.0 rather than 1e+20 
     447            ! to allow for differences in masks 
     448            WHERE( ABS( seaice_bkginc(:,:) ) > 1.0e+10 ) seaice_bkginc(:,:) = 0.0 
     449         ENDIF 
     450 
    431451         CALL iom_close( inum ) 
    432452  
     
    437457      !----------------------------------------------------------------------- 
    438458 
    439  
    440459      IF ( ln_dyninc .AND. nn_divdmp > 0 ) THEN 
    441460 
    442       CALL wrk_alloc(jpi,jpj,hdiv)  
    443  
    444        DO  jt = 1, nn_divdmp 
    445  
    446            DO jk = 1, jpkm1 
    447  
    448                   hdiv(:,:) = 0._wp 
    449  
    450             DO jj = 2, jpjm1 
    451                DO ji = fs_2, fs_jpim1   ! vector opt. 
    452                   hdiv(ji,jj) =   & 
    453                      (  e2u(ji  ,jj)*fse3u(ji  ,jj,jk) * u_bkginc(ji  ,jj,jk)       & 
    454                       - e2u(ji-1,jj)*fse3u(ji-1,jj,jk) * u_bkginc(ji-1,jj,jk)       & 
    455                       + e1v(ji,jj  )*fse3v(ji,jj  ,jk) * v_bkginc(ji,jj  ,jk)       & 
    456                       - e1v(ji,jj-1)*fse3v(ji,jj-1,jk) * v_bkginc(ji,jj-1,jk)  )    & 
    457                       / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     461         CALL wrk_alloc(jpi,jpj,hdiv)  
     462 
     463         DO  jt = 1, nn_divdmp 
     464 
     465            DO jk = 1, jpkm1 
     466 
     467               hdiv(:,:) = 0._wp 
     468 
     469               DO jj = 2, jpjm1 
     470                  DO ji = fs_2, fs_jpim1   ! vector opt. 
     471                     hdiv(ji,jj) =   & 
     472                        (  e2u(ji  ,jj  ) * fse3u(ji  ,jj  ,jk) * u_bkginc(ji  ,jj  ,jk)     & 
     473                         - e2u(ji-1,jj  ) * fse3u(ji-1,jj  ,jk) * u_bkginc(ji-1,jj  ,jk)     & 
     474                         + e1v(ji  ,jj  ) * fse3v(ji  ,jj  ,jk) * v_bkginc(ji  ,jj  ,jk)     & 
     475                         - e1v(ji  ,jj-1) * fse3v(ji  ,jj-1,jk) * v_bkginc(ji  ,jj-1,jk)  )  & 
     476                         / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     477                  END DO 
    458478               END DO 
     479 
     480               CALL lbc_lnk( hdiv, 'T', 1. )   ! lateral boundary cond. (no sign change) 
     481 
     482               DO jj = 2, jpjm1 
     483                  DO ji = fs_2, fs_jpim1   ! vector opt. 
     484                     u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk) + 0.2_wp * ( e1t(ji+1,jj)*e2t(ji+1,jj) * hdiv(ji+1,jj)   & 
     485                                                                        - e1t(ji  ,jj)*e2t(ji  ,jj) * hdiv(ji  ,jj) ) & 
     486                                                                      / e1u(ji,jj) * umask(ji,jj,jk)  
     487                     v_bkginc(ji,jj,jk) = v_bkginc(ji,jj,jk) + 0.2_wp * ( e1t(ji,jj+1)*e2t(ji,jj+1) * hdiv(ji,jj+1)   & 
     488                                                                        - e1t(ji,jj  )*e2t(ji,jj  ) * hdiv(ji,jj  ) ) & 
     489                                                                      / e2v(ji,jj) * vmask(ji,jj,jk)  
     490                  END DO 
     491               END DO 
     492 
    459493            END DO 
    460494 
    461             CALL lbc_lnk( hdiv, 'T', 1. )   ! lateral boundary cond. (no sign change) 
    462  
    463             DO jj = 2, jpjm1 
    464                DO ji = fs_2, fs_jpim1   ! vector opt. 
    465                   u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji+1,jj)*e2t(ji+1,jj) * hdiv(ji+1,jj)   & 
    466                                                                   - e1t(ji  ,jj)*e2t(ji  ,jj) * hdiv(ji  ,jj) ) & 
    467                                                                 / e1u(ji,jj) * umask(ji,jj,jk)  
    468                   v_bkginc(ji,jj,jk) = v_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji,jj+1)*e2t(ji,jj+1) * hdiv(ji,jj+1)   & 
    469                                                                   - e1t(ji,jj  )*e2t(ji,jj  ) * hdiv(ji,jj  ) ) & 
    470                                                                 / e2v(ji,jj) * vmask(ji,jj,jk)  
    471                END DO 
    472             END DO 
    473  
    474            END DO 
    475  
    476        END DO 
    477  
    478        CALL wrk_dealloc(jpi,jpj,hdiv)  
     495         END DO 
     496 
     497         CALL wrk_dealloc(jpi,jpj,hdiv)  
    479498 
    480499      ENDIF 
     
    506525         CALL iom_open( c_asmdin, inum ) 
    507526 
    508          CALL iom_get( inum, 'zdate', zdate_bkg )  
     527         CALL iom_get( inum, 'rdastp', zdate_bkg )  
    509528         
    510529         IF(lwp) THEN 
     
    662681      INTEGER :: it 
    663682      REAL(wp) :: zincwgt  ! IAU weight for current time step 
    664       !!---------------------------------------------------------------------- 
     683      REAL (wp), DIMENSION(jpi,jpj,jpk) :: fzptnz ! 3d freezing point values 
     684      !!---------------------------------------------------------------------- 
     685 
     686      ! freezing point calculation taken from oc_fz_pt (but calculated for all depths)  
     687      ! used to prevent the applied increments taking the temperature below the local freezing point  
     688 
     689#if defined key_cice  
     690        fzptnz(:,:,:) = -1.8_wp 
     691#else  
     692        DO jk = 1, jpk 
     693           DO jj = 1, jpj 
     694              DO ji = 1, jpk 
     695                 fzptnz (ji,jj,jk) = ( -0.0575_wp + 1.710523e-3_wp * SQRT( tsn(ji,jj,jk,jp_sal) )                   &  
     696                                                  - 2.154996e-4_wp *       tsn(ji,jj,jk,jp_sal)   ) * tsn(ji,jj,jk,jp_sal)  &  
     697                                                  - 7.53e-4_wp * fsdepw(ji,jj,jk)       ! (pressure in dbar)  
     698              END DO 
     699           END DO 
     700        END DO 
     701#endif  
    665702 
    666703      IF ( ln_asmiau ) THEN 
     
    684721            ! Update the tracer tendencies 
    685722            DO jk = 1, jpkm1 
    686                tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt   
    687                tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 
     723               IF (ln_temnofreeze) THEN 
     724                  ! Do not apply negative increments if the temperature will fall below freezing 
     725                  WHERE(t_bkginc(:,:,jk) > 0.0_wp .OR. & 
     726                     &   tsn(:,:,jk,jp_tem) + tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * wgtiau(it) > fzptnz(:,:,jk) )  
     727                     tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt   
     728                  END WHERE 
     729               ELSE 
     730                  tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt   
     731               ENDIF 
     732               IF (ln_salfix) THEN 
     733                  ! Do not apply negative increments if the salinity will fall below a specified 
     734                  ! minimum value salfixmin 
     735                  WHERE(s_bkginc(:,:,jk) > 0.0_wp .OR. & 
     736                     &   tsn(:,:,jk,jp_sal) + tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * wgtiau(it) > salfixmin )  
     737                     tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 
     738                  END WHERE 
     739               ELSE 
     740                  tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 
     741               ENDIF 
    688742            END DO 
    689  
    690             ! Salinity fix 
    691             IF (ln_salfix) THEN 
    692                DO jk = 1, jpkm1 
    693                   DO jj = 1, jpj 
    694                      DO ji= 1, jpi 
    695                         tsa(ji,jj,jk,jp_sal) = MAX( tsa(ji,jj,jk,jp_sal), salfixmin ) 
    696                      END DO 
    697                   END DO 
    698                END DO 
    699             ENDIF 
    700743 
    701744         ENDIF 
     
    718761 
    719762            ! Initialize the now fields with the background + increment 
    720             tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:)    
    721             tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:)    
    722  
    723             ! Optional salinity fix 
     763            IF (ln_temnofreeze) THEN 
     764               ! Do not apply negative increments if the temperature will fall below freezing 
     765               WHERE(t_bkginc(:,:,:) > 0.0_wp .OR. & 
     766                  &   tsn(:,:,:,jp_tem) + t_bkginc(:,:,:) > fzptnz(:,:,:) )  
     767                  tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:)    
     768               END WHERE 
     769            ELSE 
     770               tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:)    
     771            ENDIF 
    724772            IF (ln_salfix) THEN 
    725                DO jk = 1, jpkm1 
    726                   DO jj = 1, jpj 
    727                      DO ji= 1, jpi 
    728                         tsn(ji,jj,jk,jp_sal) = MAX( tsn(ji,jj,jk,jp_sal), salfixmin ) 
    729                      END DO 
    730                   END DO 
    731                END DO 
     773               ! Do not apply negative increments if the salinity will fall below a specified 
     774               ! minimum value salfixmin 
     775               WHERE(s_bkginc(:,:,:) > 0.0_wp .OR. & 
     776                  &   tsn(:,:,:,jp_sal) + s_bkginc(:,:,:) > salfixmin )  
     777                  tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:)    
     778               END WHERE 
     779            ELSE 
     780               tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:)    
    732781            ENDIF 
    733782 
    734             tsb(:,:,:,:) = tsn(:,:,:,:)                        ! Update before fields 
     783            tsb(:,:,:,:) = tsn(:,:,:,:)               ! Update before fields 
    735784 
    736785            CALL eos( tsb, rhd, rhop )                ! Before potential and in situ densities 
    737786          
    738787            IF( ln_zps .AND. .NOT. lk_c1d ) & 
    739                &  CALL zps_hde( nit000, jpts, tsb,   &  ! Partial steps: before horizontal derivative 
    740                &                gtsu, gtsv, rhd,        &  ! of T, S, rd at the bottom ocean level 
     788               &  CALL zps_hde( nit000, jpts, tsb, &  ! Partial steps: before horizontal derivative 
     789               &                gtsu, gtsv, rhd,   &  ! of T, S, rd at the bottom ocean level 
    741790               &                gru , grv ) 
     791 
     792#if defined key_zdfkpp 
     793            CALL eos( tsn, rhd )                      ! Compute rhd 
     794#endif 
    742795 
    743796            DEALLOCATE( t_bkginc ) 
     
    748801         !   
    749802      ENDIF 
     803      ! Perhaps the following call should be in step 
     804      IF   ( ln_seaiceinc  )   CALL seaice_asm_inc ( kt )   ! apply sea ice concentration increment 
    750805      ! 
    751806   END SUBROUTINE tra_asm_inc 
     
    817872            vb(:,:,:) = vn(:,:,:) 
    818873  
    819             CALL div_cur( kt )            ! Compute divergence and curl for now fields 
    820  
    821             rotb (:,:,:) = rotn (:,:,:)   ! Update before fields 
    822             hdivb(:,:,:) = hdivn(:,:,:) 
    823  
    824874            DEALLOCATE( u_bkg    ) 
    825875            DEALLOCATE( v_bkg    ) 
     
    846896      ! 
    847897      INTEGER :: it 
     898      INTEGER :: jk 
    848899      REAL(wp) :: zincwgt  ! IAU weight for current time step 
    849900      !!---------------------------------------------------------------------- 
     
    891942            sshn(:,:) = ssh_bkg(:,:) + ssh_bkginc(:,:)   
    892943 
    893             sshb(:,:) = sshn(:,:)         ! Update before fields 
     944            ! Update before fields 
     945            sshb(:,:) = sshn(:,:)          
     946 
     947            IF( lk_vvl ) THEN 
     948               DO jk = 1, jpk 
     949                  fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 
     950               END DO 
     951            ENDIF 
    894952 
    895953            DEALLOCATE( ssh_bkg    ) 
     
    902960   END SUBROUTINE ssh_asm_inc 
    903961 
     962   SUBROUTINE seaice_asm_inc( kt, kindic ) 
     963      !!---------------------------------------------------------------------- 
     964      !!                    ***  ROUTINE seaice_asm_inc  *** 
     965      !!           
     966      !! ** Purpose : Apply the sea ice assimilation increment. 
     967      !! 
     968      !! ** Method  : Direct initialization or Incremental Analysis Updating. 
     969      !! 
     970      !! ** Action  :  
     971      !! 
     972      !! History : 
     973      !!        !  07-2011  (D. Lea)  Initial version based on ssh_asm_inc 
     974      !!---------------------------------------------------------------------- 
     975 
     976      IMPLICIT NONE 
     977 
     978      !! * Arguments 
     979      INTEGER, INTENT(IN) :: kt   ! Current time step 
     980      INTEGER, OPTIONAL, INTENT(IN) :: kindic ! flag for disabling the deallocation 
     981 
     982      !! * Local declarations 
     983      INTEGER :: it 
     984      REAL(wp) :: zincwgt  ! IAU weight for current time step 
     985 
     986#if defined key_lim3 || defined key_lim2 
     987      REAL(wp), DIMENSION(jpi,jpj) :: zofrld, zohicif, zseaicendg, zhicifinc  ! LIM 
     988      REAL(wp) :: zhicifmin=0.5_wp      ! ice minimum depth in metres 
     989 
     990#endif 
     991 
     992 
     993      IF ( ln_asmiau ) THEN 
     994 
     995         !-------------------------------------------------------------------- 
     996         ! Incremental Analysis Updating 
     997         !-------------------------------------------------------------------- 
     998 
     999         IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN 
     1000 
     1001            it = kt - nit000 + 1 
     1002            zincwgt = wgtiau(it)      ! IAU weight for the current time step  
     1003            ! note this is not a tendency so should not be divided by rdt (as with the tracer and other increments) 
     1004 
     1005            IF(lwp) THEN 
     1006               WRITE(numout,*)  
     1007               WRITE(numout,*) 'seaice_asm_inc : sea ice conc IAU at time step = ', & 
     1008                  &  kt,' with IAU weight = ', wgtiau(it) 
     1009               WRITE(numout,*) '~~~~~~~~~~~~' 
     1010            ENDIF 
     1011 
     1012#if defined key_lim3 || defined key_lim2 
     1013 
     1014            zofrld(:,:)=frld(:,:) 
     1015            zohicif(:,:)=hicif(:,:) 
     1016 
     1017            frld = MIN( MAX( frld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
     1018            pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 
     1019            fr_i(:,:) = 1.0_wp - frld(:,:)        ! adjust ice fraction 
     1020 
     1021            zseaicendg(:,:)=zofrld(:,:) - frld(:,:)         ! find out actual sea ice nudge applied 
     1022 
     1023            ! Nudge sea ice depth to bring it up to a required minimum depth 
     1024 
     1025            WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )  
     1026               zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt     
     1027            ELSEWHERE 
     1028               zhicifinc(:,:) = 0.0_wp 
     1029            END WHERE 
     1030 
     1031! nudge ice depth 
     1032            hicif(:,:)=hicif(:,:) + zhicifinc(:,:) 
     1033            phicif(:,:)=phicif(:,:) + zhicifinc(:,:)        
     1034 
     1035! seaice salinity balancing (to add) 
     1036 
     1037#endif 
     1038 
     1039#if defined key_cice 
     1040 
     1041! Pass ice increment tendency into CICE 
     1042            ndaice_da(:,:) = seaice_bkginc(:,:) * zincwgt / rdt 
     1043 
     1044#endif 
     1045 
     1046            IF ( kt == nitiaufin_r ) THEN 
     1047               DEALLOCATE( seaice_bkginc ) 
     1048            ENDIF 
     1049 
     1050         ELSE 
     1051 
     1052#if defined key_cice 
     1053 
     1054! Zero ice increment tendency into CICE 
     1055            ndaice_da(:,:) = 0.0_wp 
     1056 
     1057#endif 
     1058 
     1059         ENDIF 
     1060 
     1061      ELSEIF ( ln_asmdin ) THEN 
     1062 
     1063         !-------------------------------------------------------------------- 
     1064         ! Direct Initialization 
     1065         !-------------------------------------------------------------------- 
     1066 
     1067         IF ( kt == nitdin_r ) THEN 
     1068 
     1069            neuler = 0                    ! Force Euler forward step 
     1070 
     1071#if defined key_lim3 || defined key_lim2 
     1072 
     1073            zofrld(:,:)=frld(:,:) 
     1074            zohicif(:,:)=hicif(:,:) 
     1075  
     1076            ! Initialize the now fields the background + increment 
     1077 
     1078            frld(:,:) = MIN( MAX( frld(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 
     1079            pfrld(:,:) = frld(:,:)  
     1080            fr_i(:,:) = 1.0_wp - frld(:,:)        ! adjust ice fraction 
     1081 
     1082            zseaicendg(:,:)=zofrld(:,:) - frld(:,:)         ! find out actual sea ice nudge applied 
     1083 
     1084            ! Nudge sea ice depth to bring it up to a required minimum depth 
     1085 
     1086            WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin )  
     1087               zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt     
     1088            ELSEWHERE 
     1089               zhicifinc(:,:) = 0.0_wp 
     1090            END WHERE 
     1091 
     1092! nudge ice depth 
     1093            hicif(:,:)=hicif(:,:) + zhicifinc(:,:) 
     1094            phicif(:,:)=phicif(:,:)        
     1095 
     1096! seaice salinity balancing (to add) 
     1097   
     1098#endif 
     1099  
     1100#if defined key_cice 
     1101 
     1102! Pass ice increment tendency into CICE - is this correct? 
     1103           ndaice_da(:,:) = seaice_bkginc(:,:) / rdt 
     1104 
     1105#endif 
     1106           IF ( .NOT. PRESENT(kindic) ) THEN 
     1107              DEALLOCATE( seaice_bkginc ) 
     1108           END IF 
     1109 
     1110         ELSE 
     1111 
     1112#if defined key_cice 
     1113 
     1114! Zero ice increment tendency into CICE  
     1115            ndaice_da(:,:) = 0.0_wp 
     1116 
     1117#endif 
     1118          
     1119         ENDIF 
     1120 
     1121!#if defined key_lim3 || defined key_lim2 || defined key_cice 
     1122! 
     1123!            IF (ln_seaicebal ) THEN        
     1124!             !! balancing salinity increments 
     1125!             !! simple case from limflx.F90 (doesn't include a mass flux) 
     1126!             !! assumption is that as ice concentration is reduced or increased 
     1127!             !! the snow and ice depths remain constant 
     1128!             !! note that snow is being created where ice concentration is being increased 
     1129!             !! - could be more sophisticated and 
     1130!             !! not do this (but would need to alter h_snow) 
     1131! 
     1132!             usave(:,:,:)=sb(:,:,:)   ! use array as a temporary store 
     1133! 
     1134!             DO jj = 1, jpj 
     1135!               DO ji = 1, jpi  
     1136!           ! calculate change in ice and snow mass per unit area 
     1137!           ! positive values imply adding salt to the ocean (results from ice formation) 
     1138!           ! fwf : ice formation and melting 
     1139! 
     1140!                 zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rdt 
     1141! 
     1142!           ! change salinity down to mixed layer depth 
     1143!                 mld=hmld_kara(ji,jj) 
     1144! 
     1145!           ! prevent small mld 
     1146!           ! less than 10m can cause salinity instability  
     1147!                 IF (mld < 10) mld=10 
     1148! 
     1149!           ! set to bottom of a level  
     1150!                 DO jk = jpk-1, 2, -1 
     1151!                   IF ((mld > gdepw(ji,jj,jk)) .and. (mld < gdepw(ji,jj,jk+1))) THEN  
     1152!                     mld=gdepw(ji,jj,jk+1) 
     1153!                     jkmax=jk 
     1154!                   ENDIF 
     1155!                 ENDDO 
     1156! 
     1157!            ! avoid applying salinity balancing in shallow water or on land 
     1158!            !  
     1159! 
     1160!            ! dsal_ocn (psu kg m^-2) / (kg m^-3 * m) 
     1161! 
     1162!                 dsal_ocn=0.0_wp 
     1163!                 sal_thresh=5.0_wp        ! minimum salinity threshold for salinity balancing 
     1164! 
     1165!                 if (tmask(ji,jj,1) > 0 .AND. tmask(ji,jj,jkmax) > 0 ) & 
     1166!                              dsal_ocn = zfons / (rhop(ji,jj,1) * mld) 
     1167! 
     1168!           ! put increments in for levels in the mixed layer 
     1169!           ! but prevent salinity below a threshold value  
     1170! 
     1171!                   DO jk = 1, jkmax               
     1172! 
     1173!                     IF (dsal_ocn > 0.0_wp .or. sb(ji,jj,jk)+dsal_ocn > sal_thresh) THEN  
     1174!                           sb(ji,jj,jk) = sb(ji,jj,jk) + dsal_ocn 
     1175!                           sn(ji,jj,jk) = sn(ji,jj,jk) + dsal_ocn 
     1176!                     ENDIF 
     1177! 
     1178!                   ENDDO 
     1179! 
     1180!      !            !  salt exchanges at the ice/ocean interface 
     1181!      !            zpmess         = zfons / rdt_ice    ! rdt_ice is ice timestep 
     1182!      ! 
     1183!      !! Adjust fsalt. A +ve fsalt means adding salt to ocean 
     1184!      !!           fsalt(ji,jj) =  fsalt(ji,jj) + zpmess     ! adjust fsalt   
     1185!      !!                
     1186!      !!           emps(ji,jj) = emps(ji,jj) + zpmess        ! or adjust emps (see icestp1d)  
     1187!      !!                                                     ! E-P (kg m-2 s-2) 
     1188!      !            emp(ji,jj) = emp(ji,jj) + zpmess          ! E-P (kg m-2 s-2) 
     1189!               ENDDO !ji 
     1190!             ENDDO !jj! 
     1191! 
     1192!            ENDIF !ln_seaicebal 
     1193! 
     1194!#endif 
     1195 
     1196 
     1197      ENDIF 
     1198 
     1199   END SUBROUTINE seaice_asm_inc 
    9041200   !!====================================================================== 
    9051201END MODULE asminc 
  • trunk/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90

    r3294 r3604  
    22   !!====================================================================== 
    33   !!                       ***  MODULE  daymod  *** 
    4    !! Ocean        :  calendar  
     4   !! Ocean        :  calendar 
    55   !!===================================================================== 
    66   !! History :  OPA  ! 1994-09  (M. Pontaud M. Imbard)  Original code 
    77   !!                 ! 1997-03  (O. Marti) 
    8    !!                 ! 1997-05  (G. Madec)  
     8   !!                 ! 1997-05  (G. Madec) 
    99   !!                 ! 1997-08  (M. Imbard) 
    1010   !!   NEMO     1.0  ! 2003-09  (G. Madec)  F90 + nyear, nmonth, nday 
    1111   !!                 ! 2004-01  (A.M. Treguier) new calculation based on adatrj 
    1212   !!                 ! 2006-08  (G. Madec)  surface module major update 
    13    !!----------------------------------------------------------------------       
     13   !!---------------------------------------------------------------------- 
    1414 
    1515   !!---------------------------------------------------------------------- 
    1616   !!   day        : calendar 
    17    !!   
     17   !! 
    1818   !!           ------------------------------- 
    1919   !!           ----------- WARNING ----------- 
     
    2424   !!           ----------- WARNING ----------- 
    2525   !!           ------------------------------- 
    26    !!   
     26   !! 
    2727   !!---------------------------------------------------------------------- 
    2828   USE dom_oce         ! ocean space and time domain 
    2929   USE phycst          ! physical constants 
    3030   USE in_out_manager  ! I/O manager 
    31    USE iom             !  
     31   USE iom             ! 
    3232   USE ioipsl, ONLY :   ymds2ju   ! for calendar 
    3333   USE prtctl          ! Print control 
    34    USE restart         !  
     34   USE restart         ! 
    3535   USE trc_oce, ONLY : lk_offline ! offline flag 
    3636   USE timing          ! Timing 
     
    4141   PUBLIC   day        ! called by step.F90 
    4242   PUBLIC   day_init   ! called by istate.F90 
    43  
    44    INTEGER ::   nsecd, nsecd05, ndt, ndt05 
     43   PUBLIC   day_mth    ! Needed by TAM 
     44 
     45   INTEGER, PUBLIC ::   nsecd, nsecd05, ndt, ndt05 ! (PUBLIC for TAM) 
    4546 
    4647   !!---------------------------------------------------------------------- 
     
    5455      !!---------------------------------------------------------------------- 
    5556      !!                   ***  ROUTINE day_init  *** 
    56       !!  
    57       !! ** Purpose :   Initialization of the calendar values to their values 1 time step before nit000  
     57      !! 
     58      !! ** Purpose :   Initialization of the calendar values to their values 1 time step before nit000 
    5859      !!                because day will be called at the beginning of step 
    5960      !! 
     
    8182      ndt05   = NINT(0.5 * rdttra(1)) 
    8283 
    83       IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' )  
     84      IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 
    8485 
    8586      ! set the calandar from ndastp (read in restart file and namelist) 
     
    8788      nyear   =   ndastp / 10000 
    8889      nmonth  = ( ndastp - (nyear * 10000) ) / 100 
    89       nday    =   ndastp - (nyear * 10000) - ( nmonth * 100 )  
     90      nday    =   ndastp - (nyear * 10000) - ( nmonth * 100 ) 
    9091 
    9192      CALL ymds2ju( nyear, nmonth, nday, 0.0, fjulday )  ! we assume that we start run at 00:00 
     
    9596      nsec1jan000 = 0 
    9697      CALL day_mth 
    97        
     98 
    9899      IF ( nday == 0 ) THEN     !   for ex if ndastp = ndate0 - 1 
    99          nmonth = nmonth - 1   
     100         nmonth = nmonth - 1 
    100101         nday = nmonth_len(nmonth) 
    101102      ENDIF 
     
    106107         IF( nleapy == 1 )   CALL day_mth 
    107108      ENDIF 
    108        
     109 
    109110      ! day since january 1st 
    110111      nday_year = nday + SUM( nmonth_len(1:nmonth - 1) ) 
    111112 
    112       !compute number of days between last monday and today       
     113      !compute number of days between last monday and today 
    113114      CALL ymds2ju( 1900, 01, 01, 0.0, zjul )  ! compute julian day value of 01.01.1900 (our reference that was a Monday) 
    114       inbday = NINT(fjulday - zjul)            ! compute nb day between  01.01.1900 and current day   
    115       idweek = MOD(inbday, 7)                  ! compute nb day between last monday and current day   
     115      inbday = NINT(fjulday - zjul)            ! compute nb day between  01.01.1900 and current day 
     116      idweek = MOD(inbday, 7)                  ! compute nb day between last monday and current day 
    116117 
    117118      ! number of seconds since the beginning of current year/month/week/day at the middle of the time-step 
     
    135136      !!---------------------------------------------------------------------- 
    136137      !!                   ***  ROUTINE day_init  *** 
    137       !!  
     138      !! 
    138139      !! ** Purpose :   calendar values related to the months 
    139140      !! 
     
    147148 
    148149      ! length of the month of the current year (from nleapy, read in namelist) 
    149       IF ( nleapy < 2 ) THEN  
     150      IF ( nleapy < 2 ) THEN 
    150151         nmonth_len(:) = (/ 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31 /) 
    151152         nyear_len(:) = 365 
     
    167168      ! time since Jan 1st   0     1     2    ...    11    12    13 
    168169      !          ---------*--|--*--|--*--| ... |--*--|--*--|--*--|-------------------------------------- 
    169       !                 <---> <---> <--->  ...  <---> <---> <--->         
     170      !                 <---> <---> <--->  ...  <---> <---> <---> 
    170171      ! month number      0     1     2    ...    11    12    13 
    171172      ! 
     
    180181         nmonth_end(jm) = nmonth_end(jm-1) + nsecd * nmonth_len(jm) 
    181182      END DO 
    182       !            
    183    END SUBROUTINE  
     183      ! 
     184   END SUBROUTINE 
    184185 
    185186 
     
    187188      !!---------------------------------------------------------------------- 
    188189      !!                      ***  ROUTINE day  *** 
    189       !!  
     190      !! 
    190191      !! ** Purpose :   Compute the date with a day iteration IF necessary. 
    191192      !! 
     
    199200      !!              - adatrj    : date in days since the beginning of the run 
    200201      !!              - nsec_year : current time of the year (in second since 00h, jan 1st) 
    201       !!----------------------------------------------------------------------       
     202      !!---------------------------------------------------------------------- 
    202203      INTEGER, INTENT(in) ::   kt        ! ocean time-step indices 
    203204      ! 
     
    210211      zprec = 0.1 / rday 
    211212      !                                                 ! New time-step 
    212       nsec_year  = nsec_year  + ndt  
    213       nsec_month = nsec_month + ndt                  
     213      nsec_year  = nsec_year  + ndt 
     214      nsec_month = nsec_month + ndt 
    214215      nsec_week  = nsec_week  + ndt 
    215       nsec_day   = nsec_day   + ndt                 
     216      nsec_day   = nsec_day   + ndt 
    216217      adatrj  = adatrj  + rdttra(1) / rday 
    217218      fjulday = fjulday + rdttra(1) / rday 
    218219      IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec )   fjulday = REAL(NINT(fjulday),wp)   ! avoid truncation error 
    219220      IF( ABS(adatrj  - REAL(NINT(adatrj ),wp)) < zprec )   adatrj  = REAL(NINT(adatrj ),wp)   ! avoid truncation error 
    220        
     221 
    221222      IF( nsec_day > nsecd ) THEN                       ! New day 
    222223         ! 
     
    251252 
    252253      IF( nsec_week > 7*nsecd )   nsec_week = ndt05     ! New week 
    253        
     254 
    254255      IF(ln_ctl) THEN 
    255256         WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 
     
    268269      !!--------------------------------------------------------------------- 
    269270      !!                   ***  ROUTINE ts_rst  *** 
    270       !!  
     271      !! 
    271272      !!  ** Purpose : Read or write calendar in restart file: 
    272       !!  
     273      !! 
    273274      !!  WRITE(READ) mode: 
    274       !!       kt        : number of time step since the begining of the experiment at the  
     275      !!       kt        : number of time step since the begining of the experiment at the 
    275276      !!                   end of the current(previous) run 
    276       !!       adatrj(0) : number of elapsed days since the begining of the experiment at the  
     277      !!       adatrj(0) : number of elapsed days since the begining of the experiment at the 
    277278      !!                   end of the current(previous) run (REAL -> keep fractions of day) 
    278279      !!       ndastp    : date at the end of the current(previous) run (coded as yyyymmdd integer) 
    279       !!  
     280      !! 
    280281      !!   According to namelist parameter nrstdt, 
    281282      !!       nrstdt = 0  no control on the date (nit000 is  arbitrary). 
     
    295296      REAL(wp) ::   zkt, zndastp 
    296297      !!---------------------------------------------------------------------- 
    297        
     298 
    298299      IF( TRIM(cdrw) == 'READ' ) THEN 
    299300 
     
    312313               WRITE(numout,*) 
    313314            ENDIF 
    314             ! Control of date  
    315             IF( nit000 - NINT( zkt ) /= 1 .AND. nrstdt /= 0 )                                         &  
    316                  &   CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart',                 &  
     315            ! Control of date 
     316            IF( nit000 - NINT( zkt ) /= 1 .AND. nrstdt /= 0 )                                         & 
     317                 &   CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart',                 & 
    317318                 &                  ' verify the restart file or rerun with nrstdt = 0 (namelist)' ) 
    318319            ! define ndastp and adatrj 
    319             IF ( nrstdt == 2 ) THEN  
     320            IF ( nrstdt == 2 ) THEN 
    320321               ! read the parameters correspondting to nit000 - 1 (last time step of previous run) 
    321322               CALL iom_get( numror, 'ndastp', zndastp ) 
    322323               ndastp = NINT( zndastp ) 
    323324               CALL iom_get( numror, 'adatrj', adatrj  ) 
    324             ELSE  
     325            ELSE 
    325326               ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 
    326327               ndastp = ndate0 - 1     ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 
    327                adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday  
    328                ! note this is wrong if time step has changed during run  
     328               adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 
     329               ! note this is wrong if time step has changed during run 
    329330            ENDIF 
    330331         ELSE 
    331332            ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 
    332333            ndastp = ndate0 - 1        ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 
    333             adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday  
     334            adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 
    334335         ENDIF 
    335336         IF( ABS(adatrj  - REAL(NINT(adatrj),wp)) < 0.1 / rday )   adatrj = REAL(NINT(adatrj),wp)   ! avoid truncation error 
     
    347348            IF(lwp) WRITE(numout,*) 
    348349            IF(lwp) WRITE(numout,*) 'rst_write : write oce restart file  kt =', kt 
    349             IF(lwp) WRITE(numout,*) '~~~~~~~'          
     350            IF(lwp) WRITE(numout,*) '~~~~~~~' 
    350351         ENDIF 
    351352         ! calendar control 
    352          CALL iom_rstput( kt, nitrst, numrow, 'kt'     , REAL( kt    , wp) )   ! time-step  
     353         CALL iom_rstput( kt, nitrst, numrow, 'kt'     , REAL( kt    , wp) )   ! time-step 
    353354         CALL iom_rstput( kt, nitrst, numrow, 'ndastp' , REAL( ndastp, wp) )   ! date 
    354355         CALL iom_rstput( kt, nitrst, numrow, 'adatrj' , adatrj            )   ! number of elapsed days since 
  • trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r3598 r3604  
    128128   INTEGER, DIMENSION(:), ALLOCATABLE, SAVE ::   nrank_znl  ! dimension ndim_rank_znl, number of the procs into the same znl domain 
    129129 
    130    ! North fold condition in mpp_mpi with jpni > 1 
    131    INTEGER ::   ngrp_world        ! group ID for the world processors 
    132    INTEGER ::   ngrp_opa          ! group ID for the opa processors 
    133    INTEGER ::   ngrp_north        ! group ID for the northern processors (to be fold) 
    134    INTEGER ::   ncomm_north       ! communicator made by the processors belonging to ngrp_north 
    135    INTEGER ::   ndim_rank_north   ! number of 'sea' processor in the northern line (can be /= jpni !) 
    136    INTEGER ::   njmppmax          ! value of njmpp for the processors of the northern line 
    137    INTEGER ::   north_root        ! number (in the comm_opa) of proc 0 in the northern comm 
    138    INTEGER, DIMENSION(:), ALLOCATABLE, SAVE ::   nrank_north   ! dimension ndim_rank_north 
     130   ! North fold condition in mpp_mpi with jpni > 1 (PUBLIC for TAM) 
     131   INTEGER, PUBLIC ::   ngrp_world        ! group ID for the world processors 
     132   INTEGER, PUBLIC ::   ngrp_opa          ! group ID for the opa processors 
     133   INTEGER, PUBLIC ::   ngrp_north        ! group ID for the northern processors (to be fold) 
     134   INTEGER, PUBLIC ::   ncomm_north       ! communicator made by the processors belonging to ngrp_north 
     135   INTEGER, PUBLIC ::   ndim_rank_north   ! number of 'sea' processor in the northern line (can be /= jpni !) 
     136   INTEGER, PUBLIC ::   njmppmax          ! value of njmpp for the processors of the northern line 
     137   INTEGER, PUBLIC ::   north_root        ! number (in the comm_opa) of proc 0 in the northern comm 
     138   INTEGER, DIMENSION(:), ALLOCATABLE, SAVE, PUBLIC ::   nrank_north   ! dimension ndim_rank_north 
    139139 
    140140   ! Type of send : standard, buffered, immediate 
    141    CHARACTER(len=1) ::   cn_mpi_send = 'S'    ! type od mpi send/recieve (S=standard, B=bsend, I=isend) 
    142    LOGICAL          ::   l_isend = .FALSE.   ! isend use indicator (T if cn_mpi_send='I') 
    143    INTEGER          ::   nn_buffer = 0       ! size of the buffer in case of mpi_bsend 
     141   CHARACTER(len=1), PUBLIC ::   cn_mpi_send = 'S'    ! type od mpi send/recieve (S=standard, B=bsend, I=isend) 
     142   LOGICAL, PUBLIC          ::   l_isend = .FALSE.   ! isend use indicator (T if cn_mpi_send='I') 
     143   INTEGER, PUBLIC          ::   nn_buffer = 0       ! size of the buffer in case of mpi_bsend 
    144144 
    145145   REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE :: tampon  ! buffer in case of bsend 
  • trunk/NEMOGCM/NEMO/OPA_SRC/lib_fortran.F90

    r3421 r3604  
    88 
    99   !!---------------------------------------------------------------------- 
    10    !!   glob_sum    : generic interface for global masked summation over  
     10   !!   glob_sum    : generic interface for global masked summation over 
    1111   !!                 the interior domain for 1 or 2 2D or 3D arrays 
    12    !!                 it works only for T points    
     12   !!                 it works only for T points 
    1313   !!   SIGN        : generic interface for SIGN to overwrite f95 behaviour 
    1414   !!                 of intrinsinc sign function 
     
    2929 
    3030   INTERFACE glob_sum 
    31       MODULE PROCEDURE glob_sum_2d, glob_sum_3d,glob_sum_2d_a, glob_sum_3d_a  
     31      MODULE PROCEDURE glob_sum_1d, glob_sum_2d, glob_sum_3d, & 
     32         &             glob_sum_2d_a, glob_sum_3d_a 
    3233   END INTERFACE 
    3334 
    34 #if defined key_nosignedzero    
     35#if defined key_nosignedzero 
    3536   INTERFACE SIGN 
    3637      MODULE PROCEDURE SIGN_SCALAR, SIGN_ARRAY_1D, SIGN_ARRAY_2D, SIGN_ARRAY_3D,   & 
    37          &             SIGN_ARRAY_1D_A, SIGN_ARRAY_2D_A, SIGN_ARRAY_3D_A,          &  
    38          &             SIGN_ARRAY_1D_B, SIGN_ARRAY_2D_B, SIGN_ARRAY_3D_B  
     38         &             SIGN_ARRAY_1D_A, SIGN_ARRAY_2D_A, SIGN_ARRAY_3D_A,          & 
     39         &             SIGN_ARRAY_1D_B, SIGN_ARRAY_2D_B, SIGN_ARRAY_3D_B 
    3940   END INTERFACE 
    4041#endif 
     
    4243   !!---------------------------------------------------------------------- 
    4344   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    44    !! $Id$  
     45   !! $Id$ 
    4546   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    4647   !!---------------------------------------------------------------------- 
    47 CONTAINS  
     48CONTAINS 
    4849 
    4950#if ! defined key_mpp_rep 
    50  
    51    FUNCTION glob_sum_2d( ptab )  
     51   FUNCTION glob_sum_1d( ptab, kdim ) 
     52      !!----------------------------------------------------------------------- 
     53      !!                  ***  FUNCTION  glob_sum_1D  *** 
     54      !! 
     55      !! ** Purpose : perform a masked sum on the inner global domain of a 1D array 
     56      !!----------------------------------------------------------------------- 
     57      INTEGER :: kdim 
     58      REAL(wp), INTENT(in), DIMENSION(kdim) ::   ptab        ! input 1D array 
     59      REAL(wp)                              ::   glob_sum_1d ! global sum 
     60      !!----------------------------------------------------------------------- 
     61      ! 
     62      glob_sum_1d = SUM( ptab(:) ) 
     63      IF( lk_mpp )   CALL mpp_sum( glob_sum_1d ) 
     64      ! 
     65   END FUNCTION glob_sum_1d 
     66 
     67   FUNCTION glob_sum_2d( ptab ) 
    5268      !!----------------------------------------------------------------------- 
    5369      !!                  ***  FUNCTION  glob_sum_2D  *** 
     
    6379      ! 
    6480   END FUNCTION glob_sum_2d 
    65     
    66     
    67    FUNCTION glob_sum_3d( ptab )  
     81 
     82 
     83   FUNCTION glob_sum_3d( ptab ) 
    6884      !!----------------------------------------------------------------------- 
    6985      !!                  ***  FUNCTION  glob_sum_3D  *** 
     
    86102 
    87103 
    88    FUNCTION glob_sum_2d_a( ptab1, ptab2 )  
     104   FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 
    89105      !!----------------------------------------------------------------------- 
    90106      !!                  ***  FUNCTION  glob_sum_2D _a *** 
     
    95111      REAL(wp)            , DIMENSION(2)   ::   glob_sum_2d_a   ! global masked sum 
    96112      !!----------------------------------------------------------------------- 
    97       !              
     113      ! 
    98114      glob_sum_2d_a(1) = SUM( ptab1(:,:)*tmask_i(:,:) ) 
    99115      glob_sum_2d_a(2) = SUM( ptab2(:,:)*tmask_i(:,:) ) 
     
    101117      ! 
    102118   END FUNCTION glob_sum_2d_a 
    103   
    104   
    105    FUNCTION glob_sum_3d_a( ptab1, ptab2 )  
     119 
     120 
     121   FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 
    106122      !!----------------------------------------------------------------------- 
    107123      !!                  ***  FUNCTION  glob_sum_3D_a *** 
     
    124140   END FUNCTION glob_sum_3d_a 
    125141 
    126 #else   
     142#else 
    127143   !!---------------------------------------------------------------------- 
    128144   !!   'key_mpp_rep'                                   MPP reproducibility 
    129145   !!---------------------------------------------------------------------- 
    130     
    131    FUNCTION glob_sum_2d( ptab )  
     146 
     147   FUNCTION glob_sum_1d( ptab, kdim ) 
     148      !!---------------------------------------------------------------------- 
     149      !!                  ***  FUNCTION  glob_sum_1d *** 
     150      !! 
     151      !! ** Purpose : perform a sum in calling DDPDD routine 
     152      !!---------------------------------------------------------------------- 
     153      INTEGER , INTENT(in) :: kdim 
     154      REAL(wp), INTENT(in), DIMENSION(kdim) ::   ptab 
     155      REAL(wp)                              ::   glob_sum_1d   ! global sum 
     156      !! 
     157      COMPLEX(wp)::   ctmp 
     158      REAL(wp)   ::   ztmp 
     159      INTEGER    ::   ji   ! dummy loop indices 
     160      !!----------------------------------------------------------------------- 
     161      ! 
     162      ztmp = 0.e0 
     163      ctmp = CMPLX( 0.e0, 0.e0, wp ) 
     164      DO ji = 1, kdim 
     165         ztmp =  ptab(ji) 
     166         CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
     167         END DO 
     168      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
     169      glob_sum_1d = REAL(ctmp,wp) 
     170      ! 
     171   END FUNCTION glob_sum_1d 
     172 
     173   FUNCTION glob_sum_2d( ptab ) 
    132174      !!---------------------------------------------------------------------- 
    133175      !!                  ***  FUNCTION  glob_sum_2d *** 
     
    154196      glob_sum_2d = REAL(ctmp,wp) 
    155197      ! 
    156    END FUNCTION glob_sum_2d    
    157  
    158  
    159    FUNCTION glob_sum_3d( ptab )  
     198   END FUNCTION glob_sum_2d 
     199 
     200 
     201   FUNCTION glob_sum_3d( ptab ) 
    160202      !!---------------------------------------------------------------------- 
    161203      !!                  ***  FUNCTION  glob_sum_3d *** 
     
    179221            CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
    180222            END DO 
    181          END DO     
     223         END DO 
    182224      END DO 
    183225      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    184226      glob_sum_3d = REAL(ctmp,wp) 
    185227      ! 
    186    END FUNCTION glob_sum_3d    
    187  
    188  
    189    FUNCTION glob_sum_2d_a( ptab1, ptab2 )  
     228   END FUNCTION glob_sum_3d 
     229 
     230 
     231   FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 
    190232      !!---------------------------------------------------------------------- 
    191233      !!                  ***  FUNCTION  glob_sum_2d_a *** 
     
    214256      glob_sum_2d_a = REAL(ctmp,wp) 
    215257      ! 
    216    END FUNCTION glob_sum_2d_a    
    217  
    218  
    219    FUNCTION glob_sum_3d_a( ptab1, ptab2 )  
     258   END FUNCTION glob_sum_2d_a 
     259 
     260 
     261   FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 
    220262      !!---------------------------------------------------------------------- 
    221263      !!                  ***  FUNCTION  glob_sum_3d_a *** 
     
    241283            CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 
    242284            END DO 
    243          END DO     
     285         END DO 
    244286      END DO 
    245287      IF( lk_mpp )   CALL mpp_sum( ctmp )   ! sum over the global domain 
    246288      glob_sum_3d_a = REAL(ctmp,wp) 
    247289      ! 
    248    END FUNCTION glob_sum_3d_a    
     290   END FUNCTION glob_sum_3d_a 
    249291 
    250292#endif 
     
    253295      !!---------------------------------------------------------------------- 
    254296      !!               ***  ROUTINE DDPDD *** 
    255       !!           
     297      !! 
    256298      !! ** Purpose : Add a scalar element to a sum 
    257       !!              
    258       !! 
    259       !! ** Method  : The code uses the compensated summation with doublet  
     299      !! 
     300      !! 
     301      !! ** Method  : The code uses the compensated summation with doublet 
    260302      !!              (sum,error) emulated useing complex numbers. ydda is the 
    261       !!               scalar to add to the summ yddb  
    262       !!  
    263       !! ** Action  : This does only work for MPI.  
     303      !!               scalar to add to the summ yddb 
     304      !! 
     305      !! ** Action  : This does only work for MPI. 
    264306      !! 
    265307      !! References : Using Acurate Arithmetics to Improve Numerical 
    266308      !!              Reproducibility and Sability in Parallel Applications 
    267       !!              Yun HE and Chris H. Q. DING, Journal of Supercomputing 18, 259-277, 2001  
     309      !!              Yun HE and Chris H. Q. DING, Journal of Supercomputing 18, 259-277, 2001 
    268310      !!---------------------------------------------------------------------- 
    269311      COMPLEX(wp), INTENT(in   ) ::   ydda 
     
    288330   !!   'key_nosignedzero'                                         F90 SIGN 
    289331   !!---------------------------------------------------------------------- 
    290     
     332 
    291333   FUNCTION SIGN_SCALAR( pa, pb ) 
    292334      !!----------------------------------------------------------------------- 
     
    304346 
    305347 
    306    FUNCTION SIGN_ARRAY_1D( pa, pb )  
     348   FUNCTION SIGN_ARRAY_1D( pa, pb ) 
    307349      !!----------------------------------------------------------------------- 
    308350      !!                  ***  FUNCTION SIGN_ARRAY_1D  *** 
     
    319361 
    320362 
    321    FUNCTION SIGN_ARRAY_2D(pa,pb)  
     363   FUNCTION SIGN_ARRAY_2D(pa,pb) 
    322364      !!----------------------------------------------------------------------- 
    323365      !!                  ***  FUNCTION SIGN_ARRAY_2D  *** 
     
    333375   END FUNCTION SIGN_ARRAY_2D 
    334376 
    335    FUNCTION SIGN_ARRAY_3D(pa,pb)  
     377   FUNCTION SIGN_ARRAY_3D(pa,pb) 
    336378      !!----------------------------------------------------------------------- 
    337379      !!                  ***  FUNCTION SIGN_ARRAY_3D  *** 
     
    348390 
    349391 
    350    FUNCTION SIGN_ARRAY_1D_A(pa,pb)  
     392   FUNCTION SIGN_ARRAY_1D_A(pa,pb) 
    351393      !!----------------------------------------------------------------------- 
    352394      !!                  ***  FUNCTION SIGN_ARRAY_1D_A  *** 
     
    363405 
    364406 
    365    FUNCTION SIGN_ARRAY_2D_A(pa,pb)  
     407   FUNCTION SIGN_ARRAY_2D_A(pa,pb) 
    366408      !!----------------------------------------------------------------------- 
    367409      !!                  ***  FUNCTION SIGN_ARRAY_2D_A  *** 
     
    378420 
    379421 
    380    FUNCTION SIGN_ARRAY_3D_A(pa,pb)  
     422   FUNCTION SIGN_ARRAY_3D_A(pa,pb) 
    381423      !!----------------------------------------------------------------------- 
    382424      !!                  ***  FUNCTION SIGN_ARRAY_3D_A  *** 
     
    393435 
    394436 
    395    FUNCTION SIGN_ARRAY_1D_B(pa,pb)  
     437   FUNCTION SIGN_ARRAY_1D_B(pa,pb) 
    396438      !!----------------------------------------------------------------------- 
    397439      !!                  ***  FUNCTION SIGN_ARRAY_1D_B  *** 
     
    408450 
    409451 
    410    FUNCTION SIGN_ARRAY_2D_B(pa,pb)  
     452   FUNCTION SIGN_ARRAY_2D_B(pa,pb) 
    411453      !!----------------------------------------------------------------------- 
    412454      !!                  ***  FUNCTION SIGN_ARRAY_2D_B  *** 
     
    423465 
    424466 
    425    FUNCTION SIGN_ARRAY_3D_B(pa,pb)  
     467   FUNCTION SIGN_ARRAY_3D_B(pa,pb) 
    426468      !!----------------------------------------------------------------------- 
    427469      !!                  ***  FUNCTION SIGN_ARRAY_3D_B  *** 
  • trunk/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r3558 r3604  
    66   !! History :  OPA  ! 1990-10  (C. Levy, G. Madec)  Original code 
    77   !!            7.0  ! 1991-11  (M. Imbard, C. Levy, G. Madec) 
    8    !!            7.1  ! 1993-03  (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar,  
    9    !!                             P. Delecluse, C. Perigaud, G. Caniaux, B. Colot, C. Maes) release 7.1  
     8   !!            7.1  ! 1993-03  (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 
     9   !!                             P. Delecluse, C. Perigaud, G. Caniaux, B. Colot, C. Maes) release 7.1 
    1010   !!             -   ! 1992-06  (L.Terray)  coupling implementation 
    11    !!             -   ! 1993-11  (M.A. Filiberti) IGLOO sea-ice  
    12    !!            8.0  ! 1996-03  (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar,  
     11   !!             -   ! 1993-11  (M.A. Filiberti) IGLOO sea-ice 
     12   !!            8.0  ! 1996-03  (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 
    1313   !!                             P. Delecluse, L.Terray, M.A. Filiberti, J. Vialar, A.M. Treguier, M. Levy) release 8.0 
    1414   !!            8.1  ! 1997-06  (M. Imbard, G. Madec) 
    15    !!            8.2  ! 1999-11  (M. Imbard, H. Goosse)  LIM sea-ice model  
    16    !!                 ! 1999-12  (V. Thierry, A-M. Treguier, M. Imbard, M-A. Foujols)  OPEN-MP  
     15   !!            8.2  ! 1999-11  (M. Imbard, H. Goosse)  LIM sea-ice model 
     16   !!                 ! 1999-12  (V. Thierry, A-M. Treguier, M. Imbard, M-A. Foujols)  OPEN-MP 
    1717   !!                 ! 2000-07  (J-M Molines, M. Imbard)  Open Boundary Conditions  (CLIPPER) 
    1818   !!   NEMO     1.0  ! 2002-08  (G. Madec)  F90: Free form and modules 
     
    2525   !!             -   ! 2007-07  (J. Chanut, A. Sellar) Unstructured open boundaries (BDY) 
    2626   !!            3.2  ! 2009-08  (S. Masson)  open/write in the listing file in mpp 
    27    !!            3.3  ! 2010-05  (K. Mogensen, A. Weaver, M. Martin, D. Lea) Assimilation interface  
     27   !!            3.3  ! 2010-05  (K. Mogensen, A. Weaver, M. Martin, D. Lea) Assimilation interface 
    2828   !!             -   ! 2010-10  (C. Ethe, G. Madec) reorganisation of initialisation phase 
    2929   !!            3.3.1! 2011-01  (A. R. Porter, STFC Daresbury) dynamical allocation 
     
    3434   !!   nemo_gcm       : solve ocean dynamics, tracer, biogeochemistry and/or sea-ice 
    3535   !!   nemo_init      : initialization of the NEMO system 
    36    !!   nemo_ctl       : initialisation of the contol print  
     36   !!   nemo_ctl       : initialisation of the contol print 
    3737   !!   nemo_closefile : close remaining open files 
    3838   !!   nemo_alloc     : dynamical allocation 
     
    5656   USE phycst          ! physical constant                  (par_cst routine) 
    5757   USE trdmod          ! momentum/tracers trends       (trd_mod_init routine) 
    58    USE asmtrj          ! writing out state trajectory 
     58   USE asmbkg          ! writing out state trajectory 
    5959   USE diaptr          ! poleward transports           (dia_ptr_init routine) 
    6060   USE diadct          ! sections transports           (dia_dct_init routine) 
     
    7676   USE mod_ioclient 
    7777#endif 
     78   USE tamtrj          ! Output trajectory, needed for TAM 
    7879 
    7980   IMPLICIT NONE 
     
    8283   PUBLIC   nemo_gcm    ! called by model.F90 
    8384   PUBLIC   nemo_init   ! needed by AGRIF 
     85   PUBLIC   nemo_alloc  ! needed by TAM 
    8486 
    8587   CHARACTER(lc) ::   cform_aaa="( /, 'AAAAAAAA', / ) "     ! flag for output listing 
     
    9698      !!                     ***  ROUTINE nemo_gcm  *** 
    9799      !! 
    98       !! ** Purpose :   NEMO solves the primitive equations on an orthogonal  
     100      !! ** Purpose :   NEMO solves the primitive equations on an orthogonal 
    99101      !!              curvilinear mesh on the sphere. 
    100102      !! 
     
    140142          IF( lk_asminc ) THEN 
    141143             IF( ln_bkgwri ) CALL asm_bkg_wri( nit000 - 1 )    ! Output background fields 
    142              IF( ln_trjwri ) CALL asm_trj_wri( nit000 - 1 )    ! Output trajectory fields 
    143144             IF( ln_asmdin ) THEN                        ! Direct initialization 
    144145                IF( ln_trainc ) CALL tra_asm_inc( nit000 - 1 )    ! Tracers 
    145                 IF( ln_dyninc ) THEN  
    146                    CALL dyn_asm_inc( nit000 - 1 )    ! Dynamics 
    147                    IF ( ln_asmdin ) CALL ssh_wzv ( nit000 - 1 )      ! update vertical velocity  
    148                 ENDIF 
     146                IF( ln_dyninc ) CALL dyn_asm_inc( nit000 - 1 )    ! Dynamics 
    149147                IF( ln_sshinc ) CALL ssh_asm_inc( nit000 - 1 )    ! SSH 
    150148             ENDIF 
    151149          ENDIF 
    152          
     150 
    153151         DO WHILE ( istp <= nitend .AND. nstop == 0 ) 
    154152#if defined key_agrif 
     
    163161 
    164162      IF( lk_diaobs ) CALL dia_obs_wri 
    165         
     163 
    166164      !                            !------------------------! 
    167165      !                            !==  finalize the run  ==! 
     
    171169      IF( nstop /= 0 .AND. lwp ) THEN   ! error print 
    172170         WRITE(numout,cform_err) 
    173          WRITE(numout,*) nstop, ' error have been found'  
     171         WRITE(numout,*) nstop, ' error have been found' 
    174172      ENDIF 
    175173      ! 
     
    240238      lwp = (narea == 1) .OR. ln_ctl                        ! control of all listing output print 
    241239 
    242       ! If dimensions of processor grid weren't specified in the namelist file  
     240      ! If dimensions of processor grid weren't specified in the namelist file 
    243241      ! then we calculate them here now that we have our communicator size 
    244242      IF( (jpni < 1) .OR. (jpnj < 1) )THEN 
     
    258256         jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   ! first  dim. 
    259257#if defined key_nemocice_decomp 
    260          jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim.  
     258         jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. 
    261259#else 
    262260         jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   ! second dim. 
     
    280278         WRITE(numout,*) 
    281279         WRITE(numout,*) 
    282          DO ji = 1, SIZE(cltxt)  
     280         DO ji = 1, SIZE(cltxt) 
    283281            IF( TRIM(cltxt(ji)) /= '' )   WRITE(numout,*) cltxt(ji)      ! control print of mynode 
    284282         END DO 
     
    287285      ENDIF 
    288286 
    289       ! Now we know the dimensions of the grid and numout has been set we can  
     287      ! Now we know the dimensions of the grid and numout has been set we can 
    290288      ! allocate arrays 
    291289      CALL nemo_alloc() 
     
    314312      IF( ln_ctl        )   CALL prt_ctl_init   ! Print control 
    315313 
    316       IF( lk_obc        )   CALL     obc_init   ! Open boundaries  
     314      IF( lk_obc        )   CALL     obc_init   ! Open boundaries 
    317315      IF( lk_bdy        )   CALL     bdy_init       ! Open boundaries initialisation 
    318316      IF( lk_bdy        )   CALL     bdy_dta_init   ! Open boundaries initialisation of external data arrays 
     
    326324 
    327325      !                                     ! Ocean physics 
    328                             CALL     sbc_init   ! Forcings : surface module  
     326                            CALL     sbc_init   ! Forcings : surface module 
    329327      !                                         ! Vertical physics 
    330328                            CALL     zdf_init      ! namelist read 
     
    335333      IF( lk_zdfkpp     )   CALL zdf_kpp_init      ! KPP closure scheme 
    336334      IF( lk_zdftmx     )   CALL zdf_tmx_init      ! tidal vertical mixing 
    337       IF( lk_zdfddm .AND. .NOT. lk_zdfkpp )   &  
     335      IF( lk_zdfddm .AND. .NOT. lk_zdfkpp )   & 
    338336         &                  CALL zdf_ddm_init      ! double diffusive mixing 
    339337      !                                         ! Lateral physics 
     
    358356                            CALL dyn_zdf_init   ! vertical diffusion 
    359357                            CALL dyn_spg_init   ! surface pressure gradient 
    360                              
     358 
    361359      !                                     ! Misc. options 
    362360      IF( nn_cla == 1   )   CALL cla_init       ! Cross Land Advection 
    363        
     361 
    364362#if defined key_top 
    365363      !                                     ! Passive tracers 
     
    377375                            CALL dia_obs_init            ! Initialize observational data 
    378376                            CALL dia_obs( nit000 - 1 )   ! Observation operator for restart 
    379       ENDIF       
     377      ENDIF 
    380378      !                                     ! Assimilation increments 
    381379      IF( lk_asminc     )   CALL asm_inc_init   ! Initialize assimilation increments 
    382380      IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 
     381                            CALL tam_trj_init ! Trajectory handling 
    383382      ! 
    384383   END SUBROUTINE nemo_init 
     
    389388      !!                     ***  ROUTINE nemo_ctl  *** 
    390389      !! 
    391       !! ** Purpose :   control print setting  
     390      !! ** Purpose :   control print setting 
    392391      !! 
    393392      !! ** Method  : - print namctl information and check some consistencies 
     
    436435         !                              ! indices used for the SUM control 
    437436         IF( nictls+nictle+njctls+njctle == 0 )   THEN    ! print control done over the default area 
    438             lsp_area = .FALSE.                         
     437            lsp_area = .FALSE. 
    439438         ELSE                                             ! print control done over a specific  area 
    440439            lsp_area = .TRUE. 
     
    458457      ENDIF 
    459458      ! 
    460       IF( nbench == 1 ) THEN              ! Benchmark  
     459      IF( nbench == 1 ) THEN              ! Benchmark 
    461460         SELECT CASE ( cp_cfg ) 
    462461         CASE ( 'gyre' )   ;   CALL ctl_warn( ' The Benchmark is activated ' ) 
     
    521520      !!---------------------------------------------------------------------- 
    522521      ! 
    523       ierr =        oce_alloc       ()          ! ocean  
     522      ierr =        oce_alloc       ()          ! ocean 
    524523      ierr = ierr + dia_wri_alloc   () 
    525524      ierr = ierr + dom_oce_alloc   ()          ! ocean domain 
     
    541540      !!                 ***  ROUTINE nemo_partition  *** 
    542541      !! 
    543       !! ** Purpose :    
     542      !! ** Purpose : 
    544543      !! 
    545544      !! ** Method  : 
     
    589588      !! 
    590589      !! ** Purpose :   return the prime factors of n. 
    591       !!                knfax factors are returned in array kfax which is of  
     590      !!                knfax factors are returned in array kfax which is of 
    592591      !!                maximum dimension kmaxfax. 
    593592      !! ** Method  : 
     
    657656      !!===================================================================== 
    658657      !!---------------------------------------------------------------------- 
    659       !!  
     658      !! 
    660659      !! ** Purpose :   Initialization of the northern neighbours lists. 
    661660      !!---------------------------------------------------------------------- 
    662       !!    1.0  ! 2011-10  (A. C. Coward, NOCS & J. Donners, PRACE)  
     661      !!    1.0  ! 2011-10  (A. C. Coward, NOCS & J. Donners, PRACE) 
    663662      !!---------------------------------------------------------------------- 
    664663 
     
    742741      jtyp = 5 
    743742      lrankset = .FALSE. 
    744       znnbrs = narea  
     743      znnbrs = narea 
    745744      CALL lbc_lnk( znnbrs, 'J', 1. ) ! first ice U-V point 
    746745 
     
    755754      ENDIF 
    756755 
    757       znnbrs = narea  
     756      znnbrs = narea 
    758757      CALL lbc_lnk( znnbrs, 'K', 1. ) ! second ice U-V point 
    759758 
     
    778777         END DO 
    779778         ! 
    780          ! For northern row areas, set l_north_nogather so that all subsequent exchanges  
     779         ! For northern row areas, set l_north_nogather so that all subsequent exchanges 
    781780         ! can use peer to peer communications at the north fold 
    782781         ! 
  • trunk/NEMOGCM/NEMO/OPA_SRC/step.F90

    r3294 r3604  
    2929   !!   stp             : OPA system time-stepping 
    3030   !!---------------------------------------------------------------------- 
    31    USE step_oce         ! time stepping definition modules  
     31   USE step_oce         ! time stepping definition modules 
    3232#if defined key_top 
    3333   USE trcstp           ! passive tracer time-stepping      (trc_stp routine) 
     
    6161      !!---------------------------------------------------------------------- 
    6262      !!                     ***  ROUTINE stp  *** 
    63       !!                       
     63      !! 
    6464      !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.) 
    6565      !!              - Time stepping of LIM (dynamic and thermodynamic eqs.) 
    6666      !!              - Tme stepping  of TRC (passive tracer eqs.) 
    67       !!  
    68       !! ** Method  : -1- Update forcings and data   
    69       !!              -2- Update ocean physics  
    70       !!              -3- Compute the t and s trends  
    71       !!              -4- Update t and s  
     67      !! 
     68      !! ** Method  : -1- Update forcings and data 
     69      !!              -2- Update ocean physics 
     70      !!              -3- Compute the t and s trends 
     71      !!              -4- Update t and s 
    7272      !!              -5- Compute the momentum trends 
    7373      !!              -6- Update the horizontal velocity 
     
    8585# if defined key_iomput 
    8686      IF( Agrif_Nbstepint() == 0 )   CALL iom_swap 
    87 # endif    
    88 #endif    
     87# endif 
     88#endif 
    8989                             indic = 0                ! reset to no error condition 
    9090      IF( kstp /= nit000 )   CALL day( kstp )         ! Calendar (day was already called at nit000 in day_init) 
     
    111111                         CALL bn2( tsn, rn2  )        ! now    Brunt-Vaisala frequency 
    112112      ! 
    113       !  VERTICAL PHYSICS    
     113      !  VERTICAL PHYSICS 
    114114                         CALL zdf_bfr( kstp )         ! bottom friction 
    115                           
     115 
    116116      !                                               ! Vertical eddy viscosity and diffusivity coefficients 
    117117      IF( lk_zdfric  )   CALL zdf_ric( kstp )            ! Richardson number dependent Kz 
     
    133133      IF( lk_zdfddm .AND. .NOT. lk_zdfkpp )   & 
    134134         &               CALL zdf_ddm( kstp )         ! double diffusive mixing 
    135           
     135 
    136136                         CALL zdf_mxl( kstp )         ! mixed layer depth 
    137137 
     
    140140      IF( lrst_oce .AND. lk_zdfgls )   CALL gls_rst( kstp, 'WRITE' ) 
    141141      ! 
    142       !  LATERAL  PHYSICS  
     142      !  LATERAL  PHYSICS 
    143143      ! 
    144144      IF( lk_ldfslp ) THEN                            ! slope of lateral mixing 
     
    179179      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    180180                             tsa(:,:,:,:) = 0.e0            ! set tracer trends to zero 
     181      ! Saving non-linear trajectory at restart state 
     182      ! May not be exact for sbc and zdf parameters 
     183      IF( ( ln_trjhand ) .AND. ( kstp == nit000 ) ) CALL tam_trj_wri( kstp - 1 ) 
    181184 
    182185      IF(  ln_asmiau .AND. & 
     
    201204         IF( ln_zps      )   CALL zps_hde( kstp, jpts, tsa, gtsu, gtsv,  &    ! zps: time filtered hor. derivative 
    202205            &                                          rhd, gru , grv  )      ! of t, s, rd at the last ocean level 
    203           
     206 
    204207      ELSE                                                  ! centered hpg  (eos then time stepping) 
    205208                             CALL eos    ( tsn, rhd, rhop )      ! now in situ density for hpg computation 
     
    208211         IF( ln_zdfnpc   )   CALL tra_npc( kstp )                ! update after fields by non-penetrative convection 
    209212                             CALL tra_nxt( kstp )                ! tracer fields at next time step 
    210       ENDIF  
     213      ENDIF 
    211214 
    212215      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    218221      IF(  ln_asmiau .AND. & 
    219222         & ln_dyninc       )   CALL dyn_asm_inc( kstp )     ! apply dynamics assimilation increment 
     223      IF( ln_bkgwri )          CALL asm_bkg_wri( kstp )     ! output background fields 
    220224      IF( ln_neptsimp )        CALL dyn_nept_cor( kstp )    ! subtract Neptune velocities (simplified) 
    221225                               CALL dyn_adv( kstp )         ! advection (vector or flux form) 
     
    227231#endif 
    228232                               CALL dyn_hpg( kstp )         ! horizontal gradient of Hydrostatic pressure 
    229                                CALL dyn_bfr( kstp )         ! bottom friction    
     233                               CALL dyn_bfr( kstp )         ! bottom friction 
    230234                               CALL dyn_zdf( kstp )         ! vertical diffusion 
    231235                               CALL dyn_spg( kstp, indic )  ! surface pressure gradient 
     
    252256      ! Trends                              (ua, va, tsa used as workspace) 
    253257      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    254       IF( nstop == 0 ) THEN                          
    255          IF( lk_trddyn     )   CALL trd_dwr( kstp )         ! trends: dynamics  
     258      IF( nstop == 0 ) THEN 
     259         IF( lk_trddyn     )   CALL trd_dwr( kstp )         ! trends: dynamics 
    256260         IF( lk_trdtra     )   CALL trd_twr( kstp )         ! trends: active tracers 
    257          IF( lk_trdmld     )   CALL trd_mld( kstp )         ! trends: Mixed-layer  
     261         IF( lk_trdmld     )   CALL trd_mld( kstp )         ! trends: Mixed-layer 
    258262         IF( lk_trdvor     )   CALL trd_vor( kstp )         ! trends: vorticity budget 
    259263      ENDIF 
     264 
     265      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     266      ! Trajectory for TAM 
     267      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     268 
     269      IF( ln_trjhand ) CALL tam_trj_wri( kstp )          ! Output trajectory fields 
    260270 
    261271      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  • trunk/NEMOGCM/NEMO/OPA_SRC/step_oce.F90

    r3294 r3604  
    77   !!---------------------------------------------------------------------- 
    88   USE oce              ! ocean dynamics and tracers variables 
    9    USE dom_oce          ! ocean space and time domain variables  
     9   USE dom_oce          ! ocean space and time domain variables 
    1010   USE zdf_oce          ! ocean vertical physics variables 
    1111   USE ldftra_oce       ! ocean tracer   - trends 
     
    7979   USE trdmld_rst       ! restart for mixed-layer trends 
    8080   USE trdmod_oce       ! ocean momentum/tracers trends 
    81    USE trdmod           ! momentum/tracers trends    
     81   USE trdmod           ! momentum/tracers trends 
    8282   USE trdvor           ! vorticity budget                 (trd_vor routine) 
    8383   USE diaptr           ! poleward transports              (dia_ptr routine) 
     
    9393   USE asminc           ! assimilation increments      (tra_asm_inc routine) 
    9494   !                                                   (dyn_asm_inc routine) 
    95  
     95   USE asmbkg 
    9696   USE stpctl           ! time stepping control            (stp_ctl routine) 
    9797   USE restart          ! ocean restart                    (rst_wri routine) 
     
    100100   USE diaobs           ! Observation operator 
    101101 
    102    USE timing           ! Timing             
     102   USE timing           ! Timing 
     103   USE tamtrj           ! Needed by TAM 
    103104 
    104105#if defined key_agrif 
Note: See TracChangeset for help on using the changeset viewer.