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 2528 for trunk/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90 – NEMO

Ignore:
Timestamp:
2010-12-27T18:33:53+01:00 (13 years ago)
Author:
rblod
Message:

Update NEMOGCM from branch nemo_v3_3_beta

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    • Property svn:eol-style deleted
    r1886 r2528  
    66   !!====================================================================== 
    77   !! History :  1.0  ! 2005-10  (A. Beckmann, G. Madec)  reactivate s-coordinate  
    8    !!---------------------------------------------------------------------- 
    9    !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
    10    !! $Id$  
    11    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     8   !!            3.3  ! 2010-11  (G. Madec) add mbk. arrays associated to the deepest ocean level 
    129   !!---------------------------------------------------------------------- 
    1310   USE par_oce      ! ocean parameters 
     
    2118   !! ---------------------------- 
    2219   !                                              !!* Namelist namdom : time & space domain * 
    23    INTEGER , PUBLIC ::   nn_bathy     =  0         !: = 0/1 ,compute/read the bathymetry file 
    24    REAL(wp), PUBLIC ::   rn_e3zps_min = 5.0_wp     !: miminum thickness for partial steps (meters) 
    25    REAL(wp), PUBLIC ::   rn_e3zps_rat = 0.1_wp     !: minimum thickness ration for partial steps 
    26    INTEGER , PUBLIC ::   nn_msh       = 0          !: = 1 create a mesh-mask file 
    27    INTEGER , PUBLIC ::   nn_acc       = 0          !: = 0/1 use of the acceleration of convergence technique 
    28    REAL(wp), PUBLIC ::   rn_atfp      = 0.1_wp     !: asselin time filter parameter 
     20   INTEGER , PUBLIC ::   nn_bathy     =    0       !: = 0/1 ,compute/read the bathymetry file 
     21   REAL(wp), PUBLIC ::   rn_hmin      =   -3.0_wp  !: minimum ocean depth (>0) or minimum number of ocean levels (<0) 
     22   REAL(wp), PUBLIC ::   rn_e3zps_min =    5.0_wp  !: miminum thickness for partial steps (meters) 
     23   REAL(wp), PUBLIC ::   rn_e3zps_rat =    0.1_wp  !: minimum thickness ration for partial steps 
     24   INTEGER , PUBLIC ::   nn_msh       =    0       !: = 1 create a mesh-mask file 
     25   INTEGER , PUBLIC ::   nn_acc       =    0       !: = 0/1 use of the acceleration of convergence technique 
     26   REAL(wp), PUBLIC ::   rn_atfp      =    0.1_wp  !: asselin time filter parameter 
    2927   REAL(wp), PUBLIC ::   rn_rdt       = 3600._wp   !: time step for the dynamics (and tracer if nacc=0) 
    3028   REAL(wp), PUBLIC ::   rn_rdtmin    = 3600._wp   !: minimum time step on tracers 
    3129   REAL(wp), PUBLIC ::   rn_rdtmax    = 3600._wp   !: maximum time step on tracers 
    3230   REAL(wp), PUBLIC ::   rn_rdth      =  800._wp   !: depth variation of tracer step 
    33    INTEGER , PUBLIC ::   nn_baro      = 64         !: number of barotropic time steps (key_dynspg_ts) 
    34    INTEGER , PUBLIC ::   nn_closea    =         !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
    35  
    36    !                                          ! old non-DOCTOR names still used in the model 
    37    INTEGER , PUBLIC ::   ntopo                !: = 0/1 ,compute/read the bathymetry file 
    38    REAL(wp), PUBLIC ::   e3zps_min            !: miminum thickness for partial steps (meters) 
    39    REAL(wp), PUBLIC ::   e3zps_rat            !: minimum thickness ration for partial steps 
    40    INTEGER , PUBLIC ::   nmsh                 !: = 1 create a mesh-mask file 
    41    INTEGER , PUBLIC ::   nacc                 !: = 0/1 use of the acceleration of convergence technique 
    42    REAL(wp), PUBLIC ::   atfp                 !: asselin time filter parameter 
    43    REAL(wp), PUBLIC ::   rdt                  !: time step for the dynamics (and tracer if nacc=0) 
    44    REAL(wp), PUBLIC ::   rdtmin               !: minimum time step on tracers 
    45    REAL(wp), PUBLIC ::   rdtmax               !: maximum time step on tracers 
    46    REAL(wp), PUBLIC ::   rdth                 !: depth variation of tracer step 
    47    INTEGER , PUBLIC ::   nclosea              !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
    48  
    49  
    50    !                                         !!! associated variables 
     31   INTEGER , PUBLIC ::   nn_baro      =   64       !: number of barotropic time steps (key_dynspg_ts) 
     32   INTEGER , PUBLIC ::   nn_closea    =    0       !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
     33 
     34   !                                    !! old non-DOCTOR names still used in the model 
     35   INTEGER , PUBLIC ::   ntopo           !: = 0/1 ,compute/read the bathymetry file 
     36   REAL(wp), PUBLIC ::   e3zps_min       !: miminum thickness for partial steps (meters) 
     37   REAL(wp), PUBLIC ::   e3zps_rat       !: minimum thickness ration for partial steps 
     38   INTEGER , PUBLIC ::   nmsh            !: = 1 create a mesh-mask file 
     39   INTEGER , PUBLIC ::   nacc            !: = 0/1 use of the acceleration of convergence technique 
     40   REAL(wp), PUBLIC ::   atfp            !: asselin time filter parameter 
     41   REAL(wp), PUBLIC ::   rdt             !: time step for the dynamics (and tracer if nacc=0) 
     42   REAL(wp), PUBLIC ::   rdtmin          !: minimum time step on tracers 
     43   REAL(wp), PUBLIC ::   rdtmax          !: maximum time step on tracers 
     44   REAL(wp), PUBLIC ::   rdth            !: depth variation of tracer step 
     45   INTEGER , PUBLIC ::   nclosea         !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
     46 
     47 
     48   !                                                  !!! associated variables 
    5149   INTEGER , PUBLIC                 ::   neuler  = 0   !: restart euler forward option (0=Euler) 
    5250   REAL(wp), PUBLIC                 ::   atfp1         !: asselin time filter coeff. (atfp1= 1-2*atfp) 
     
    5553   !                                         !!* Namelist namcla : cross land advection 
    5654   INTEGER, PUBLIC ::   nn_cla = 0            !: =1 cross land advection for exchanges through some straits (ORCA2) 
    57  
    58    !                                          ! old non-DOCTOR names still used in the model 
    59    INTEGER, PUBLIC ::   n_cla = 0             !: =1 cross land advection for exchanges through some straits (ORCA2) 
    6055 
    6156   !!---------------------------------------------------------------------- 
     
    120115   LOGICAL, PUBLIC ::   ln_zps     =  .FALSE.   !: z-coordinate - partial step 
    121116   LOGICAL, PUBLIC ::   ln_sco     =  .FALSE.   !: s-coordinate or hybrid z-s coordinate 
    122 #if defined key_zco 
    123    LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .TRUE.    !: z-coordinate flag (1D arrays) 
    124 #else 
    125    LOGICAL, PUBLIC, PARAMETER ::   lk_zco = .FALSE.   !: z-coordinate flag (3D arrays) 
    126117 
    127118   !! All coordinates 
     
    133124   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3vw            !: analytical vertical scale factors at  VW-- 
    134125   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3w   , e3uw    !:                                        W--UW  points (m) 
    135 #endif 
    136126#if defined key_vvl 
    137127   LOGICAL, PUBLIC, PARAMETER ::   lk_vvl = .TRUE.    !: variable grid flag 
     
    145135   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3vw_1             !: analytical vertical scale factors at  VW-- 
    146136   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3w_1  , e3uw_1    !:                                       W--UW  points (m) 
     137   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3t_b              !: before         -      -      -    -   T      points (m) 
     138   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   e3u_b  , e3v_b     !:   -            -      -      -    -   U--V   points (m) 
    147139#else 
    148140   LOGICAL, PUBLIC, PARAMETER ::   lk_vvl = .FALSE.   !: fixed grid flag 
     
    159151   REAL(wp), PUBLIC, DIMENSION(jpk)     ::   gdept_0, gdepw_0   !: reference depth of t- and w-points (m) 
    160152   REAL(wp), PUBLIC, DIMENSION(jpk)     ::   e3t_0  , e3w_0     !: reference vertical scale factors at T- and W-pts (m) 
    161    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   hdept  , hdepw     !: ocean bottom depth at T and W points 
    162153   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   e3tp   , e3wp      !: ocean bottom level thickness at T and W points 
    163154 
     
    172163   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   scosrf, scobot   !: ocean surface and bottom topographies  
    173164   !                                                          !  (if deviating from coordinate surfaces in HYBRID) 
    174    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   hifv  , hiff     !: interface depth between stretching    at  V--F 
    175    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   hift  , hifu     !: and quasi-uniform spacing                 T--U  points (m) 
     165   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   hifv  , hiff     !: interface depth between stretching at  V--F 
     166   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   hift  , hifu     !: and quasi-uniform spacing              T--U  points (m) 
    176167 
    177168   !!---------------------------------------------------------------------- 
    178169   !! masks, bathymetry 
    179170   !! --------------------------------------------------------------------- 
    180    INTEGER , PUBLIC, DIMENSION(jpi,jpj) ::   mbathy    !: number of ocean level (=0, 1, ... , jpk-1) 
    181    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   bathy     !: ocean depth (meters) 
    182    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   tmask_i   !: interior domain T-point mask 
    183    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   bmask     !: land/ocean mask of barotropic stream function 
    184  
    185    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   tmask, umask, vmask, fmask   !: land/ocean mask at T-, U-, V- and F-points 
    186  
    187    REAL(wp), PUBLIC, DIMENSION(jpiglo) ::   tpol, fpol          !: north fold mask (nperio= 3 or 4) 
     171   INTEGER , PUBLIC, DIMENSION(jpi,jpj) ::   mbathy       !: number of ocean level (=0, 1, ... , jpk-1) 
     172   INTEGER , PUBLIC, DIMENSION(jpi,jpj) ::   mbkt         !: vertical index of the bottom last T- ocean level 
     173   INTEGER , PUBLIC, DIMENSION(jpi,jpj) ::   mbku, mbkv   !: vertical index of the bottom last U- and W- ocean level 
     174   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   bathy        !: ocean depth (meters) 
     175   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   tmask_i      !: interior domain T-point mask 
     176   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   bmask        !: land/ocean mask of barotropic stream function 
     177 
     178   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   tmask, umask, vmask, fmask   !: land/ocean mask at T-, U-, V- and F-pts 
     179 
     180   REAL(wp), PUBLIC, DIMENSION(jpiglo) ::   tpol, fpol          !: north fold mask (jperio= 3 or 4) 
    188181 
    189182#if defined key_noslip_accurate 
     
    195188   !! calendar variables 
    196189   !! --------------------------------------------------------------------- 
    197    INTEGER , PUBLIC ::   nyear       !: current year 
    198    INTEGER , PUBLIC ::   nmonth      !: current month 
    199    INTEGER , PUBLIC ::   nday        !: current day of the month 
    200    INTEGER , PUBLIC ::   ndastp      !: time step date in yyyymmdd format 
    201    INTEGER , PUBLIC ::   nday_year   !: current day counted from jan 1st of the current year 
    202    INTEGER , PUBLIC ::   nsec_year   !: current time step counted in second since 00h jan 1st of the current year 
    203    INTEGER , PUBLIC ::   nsec_month  !: current time step counted in second since 00h 1st day of the current month 
    204    INTEGER , PUBLIC ::   nsec_day    !: current time step counted in second since 00h of the current day 
    205    REAL(wp), PUBLIC ::   fjulday     !: julian day  
    206    REAL(wp), PUBLIC ::   adatrj      !: number of elapsed days since the begining of the whole simulation 
    207    !                                 !: (cumulative duration of previous runs that may have used different time-step size) 
     190   INTEGER , PUBLIC ::   nyear         !: current year 
     191   INTEGER , PUBLIC ::   nmonth        !: current month 
     192   INTEGER , PUBLIC ::   nday          !: current day of the month 
     193   INTEGER , PUBLIC ::   ndastp        !: time step date in yyyymmdd format 
     194   INTEGER , PUBLIC ::   nday_year     !: current day counted from jan 1st of the current year 
     195   INTEGER , PUBLIC ::   nsec_year     !: current time step counted in second since 00h jan 1st of the current year 
     196   INTEGER , PUBLIC ::   nsec_month    !: current time step counted in second since 00h 1st day of the current month 
     197   INTEGER , PUBLIC ::   nsec_week     !: current time step counted in second since 00h of last monday 
     198   INTEGER , PUBLIC ::   nsec_day      !: current time step counted in second since 00h of the current day 
     199   REAL(wp), PUBLIC ::   fjulday       !: current julian day  
     200   REAL(wp), PUBLIC ::   fjulstartyear !: first day of the current year in julian days 
     201   REAL(wp), PUBLIC ::   adatrj        !: number of elapsed days since the begining of the whole simulation 
     202   !                                   !: (cumulative duration of previous runs that may have used different time-step size) 
    208203   INTEGER , PUBLIC, DIMENSION(0: 1) ::   nyear_len     !: length in days of the previous/current year 
    209204   INTEGER , PUBLIC, DIMENSION(0:13) ::   nmonth_len    !: length in days of the months of the current year 
     
    213208 
    214209   !!---------------------------------------------------------------------- 
     210   !! mpp reproducibility 
     211   !!---------------------------------------------------------------------- 
     212#if defined key_mpp_rep 
     213   LOGICAL, PUBLIC, PARAMETER ::   lk_mpp_rep = .TRUE.    !: agrif flag 
     214#else 
     215   LOGICAL, PUBLIC, PARAMETER ::   lk_mpp_rep = .FALSE.   !: agrif flag 
     216#endif 
     217   !!---------------------------------------------------------------------- 
    215218   !! agrif domain 
    216219   !!---------------------------------------------------------------------- 
     
    229232   END FUNCTION Agrif_CFixed 
    230233#endif 
    231  
     234   !!---------------------------------------------------------------------- 
     235   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     236   !! $Id$  
     237   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    232238   !!====================================================================== 
    233239END MODULE dom_oce 
Note: See TracChangeset for help on using the changeset viewer.