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 6667 for branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90 – NEMO

Ignore:
Timestamp:
2016-06-06T07:57:00+02:00 (8 years ago)
Author:
gm
Message:

#1692 - branch SIMPLIF_2_usrdef: reduced domain_cfg.nc file: GYRE OK using usrdef or reading file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r6624 r6667  
    3030   !! ---------------------------- 
    3131   !                                   !!* Namelist namdom : time & space domain * 
    32    INTEGER , PUBLIC ::   nn_bathy       !: = 0/1 ,compute/read the bathymetry file 
    33    REAL(wp), PUBLIC ::   rn_bathy       !: depth of flat bottom (active if nn_bathy=0; if =0 depth=jpkm1) 
    34    REAL(wp), PUBLIC ::   rn_hmin        !: minimum ocean depth (>0) or minimum number of ocean levels (<0) 
     32   LOGICAL , PUBLIC ::   ln_linssh      !: =T  linear free surface ==>> model level are fixed in time 
     33   INTEGER , PUBLIC ::   nn_closea      !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
     34   INTEGER , PUBLIC ::   nn_msh         !: >0  create a mesh-mask file (mesh_mask.nc) 
    3535   REAL(wp), PUBLIC ::   rn_isfhmin     !: threshold to discriminate grounded ice to floating ice 
    36    REAL(wp), PUBLIC ::   rn_e3zps_min   !: miminum thickness for partial steps (meters) 
    37    REAL(wp), PUBLIC ::   rn_e3zps_rat   !: minimum thickness ration for partial steps 
    38    INTEGER , PUBLIC ::   nn_msh         !: = 1 create a mesh-mask file 
     36   REAL(wp), PUBLIC ::   rn_rdt         !: time step for the dynamics and tracer 
    3937   REAL(wp), PUBLIC ::   rn_atfp        !: asselin time filter parameter 
    40    REAL(wp), PUBLIC ::   rn_rdt         !: time step for the dynamics and tracer 
    41    INTEGER , PUBLIC ::   nn_closea      !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
    4238   INTEGER , PUBLIC ::   nn_euler       !: =0 start with forward time step or not (=1) 
    4339   LOGICAL , PUBLIC ::   ln_iscpl       !: coupling with ice sheet 
     
    5854   REAL(wp), PUBLIC :: rn_bt_cmax       !: Maximum allowed courant number (used if ln_bt_auto=T) 
    5955 
    60    !! Vertical grid parameter for domzgr 
    61    !! ================================== 
    62    REAL(wp)      ::   ppsur             !: ORCA r4, r2 and r05 coefficients 
    63    REAL(wp)      ::   ppa0              !: (default coefficients) 
    64    REAL(wp)      ::   ppa1              !: 
    65    REAL(wp)      ::   ppkth             !: 
    66    REAL(wp)      ::   ppacr             !: 
    67    ! 
    68    !  If both ppa0 ppa1 and ppsur are specified to 0, then 
    69    !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr 
    70    REAL(wp)      ::   ppdzmin           !: Minimum vertical spacing 
    71    REAL(wp)      ::   pphmax            !: Maximum depth 
    72    ! 
    73    LOGICAL       ::   ldbletanh         !: Use/do not use double tanf function for vertical coordinates 
    74    REAL(wp)      ::   ppa2              !: Double tanh function parameters 
    75    REAL(wp)      ::   ppkth2            !: 
    76    REAL(wp)      ::   ppacr2            !: 
    7756 
    7857   !                                   !! old non-DOCTOR names still used in the model 
    79    INTEGER , PUBLIC ::   ntopo          !: = 0/1 ,compute/read the bathymetry file 
    80    REAL(wp), PUBLIC ::   e3zps_min      !: miminum thickness for partial steps (meters) 
    81    REAL(wp), PUBLIC ::   e3zps_rat      !: minimum thickness ration for partial steps 
    82    INTEGER , PUBLIC ::   nmsh           !: = 1 create a mesh-mask file 
    8358   REAL(wp), PUBLIC ::   atfp           !: asselin time filter parameter 
    8459   REAL(wp), PUBLIC ::   rdt            !: time step for the dynamics and tracer 
     
    12398   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mig        !: local  ==> global domain i-index 
    12499   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mjg        !: local  ==> global domain j-index 
    125    INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mi0, mi1   !: global ==> local  domain i-index    !!bug ==> other solution? 
    126    !                                                  ! (mi0=1 and mi1=0 if the global index is not in the local domain) 
    127    INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mj0, mj1   !: global ==> local  domain j-index     !!bug ==> other solution? 
    128    !                                                  ! (mi0=1 and mi1=0 if the global index is not in the local domain) 
     100   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mi0, mi1   !: global ==> local  domain i-index (mi0=1 and mi1=0 if the global index 
     101   !                                                                !                                            is not in the local domain) 
     102   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   mj0, mj1   !: global ==> local  domain j-index (mj0=1 and mj1=0 if the global index 
     103   !                                                                !                                            is not in the local domain) 
    129104   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   nimppt, njmppt   !: i-, j-indexes for each processor 
    130105   INTEGER, PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ibonit, ibonjt   !: i-, j- processor neighbour existence 
     
    154129   !! vertical coordinate and scale factors 
    155130   !! --------------------------------------------------------------------- 
    156    !                                !!* Namelist namzgr : vertical coordinate * 
    157131   LOGICAL, PUBLIC ::   ln_zco       !: z-coordinate - full step 
    158132   LOGICAL, PUBLIC ::   ln_zps       !: z-coordinate - partial step 
    159133   LOGICAL, PUBLIC ::   ln_sco       !: s-coordinate or hybrid z-s coordinate 
    160134   LOGICAL, PUBLIC ::   ln_isfcav    !: presence of ISF  
    161    LOGICAL, PUBLIC ::   ln_linssh    !: variable grid flag 
    162  
    163135   !                                                        !  ref.   ! before  !   now   ! after  ! 
    164136   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::     e3t_0 ,   e3t_b ,   e3t_n ,  e3t_a   !: t- vert. scale factor [m] 
     
    192164   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e3tp    , e3wp     !: ocean bottom level thickness at T and W points 
    193165 
    194 !!gm  This should be removed from here....  ==>>> only used in domzgr at initialization phase 
    195    !! s-coordinate and hybrid z-s-coordinate 
    196    !! =----------------======--------------- 
    197    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   gsigt, gsigw       !: model level depth coefficient at t-, w-levels (analytic) 
    198    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   gsi3w              !: model level depth coefficient at w-level (sum of gsigw) 
    199    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   esigt, esigw       !: vertical scale factor coef. at t-, w-levels 
    200  
    201    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hbatv , hbatf      !: ocean depth at the vertical of  v--f 
    202    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hbatt , hbatu      !:                                 t--u points (m) 
    203    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   scosrf, scobot     !: ocean surface and bottom topographies  
    204    !                                                                           !  (if deviating from coordinate surfaces in HYBRID) 
    205    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hifv  , hiff       !: interface depth between stretching at v--f 
    206    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hift  , hifu       !: and quasi-uniform spacing             t--u points (m) 
    207    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   rx1                !: Maximum grid stiffness ratio 
    208 !!gm end 
    209166 
    210167   !!---------------------------------------------------------------------- 
    211168   !! masks, bathymetry 
    212169   !! --------------------------------------------------------------------- 
    213    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mbathy             !: number of ocean level (=0, 1, ... , jpk-1) 
    214    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mbkt, mbku, mbkv   !: bottom last wet T-, U- and W-level 
    215    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bathy              !: ocean depth (meters) 
     170!!gm   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mbathy             !: number of ocean level (=0, 1, ... , jpk-1) 
     171   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mbkt, mbku, mbkv   !: bottom last wet T-, U- and V-level 
     172!!gm   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   bathy              !: ocean depth (meters) 
    216173   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tmask_i            !: interior domain T-point mask 
    217174   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tmask_h            !: internal domain T-point mask (Figure 8.5 NEMO book) 
     
    336293         ! 
    337294      ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) ,                                     & 
    338          &      e3t_1d  (jpk) , e3w_1d  (jpk) , e3tp (jpi,jpj), e3wp(jpi,jpj) ,     & 
    339          &      gsigt   (jpk) , gsigw   (jpk) , gsi3w(jpk)    ,                     & 
    340          &      esigt   (jpk) , esigw   (jpk)                                 , STAT=ierr(7) ) 
    341          ! 
    342       ALLOCATE( hbatv (jpi,jpj) , hbatf (jpi,jpj) ,     & 
    343          &      hbatt (jpi,jpj) , hbatu (jpi,jpj) ,     & 
    344          &      scosrf(jpi,jpj) , scobot(jpi,jpj) ,     & 
    345          &      hifv  (jpi,jpj) , hiff  (jpi,jpj) ,     & 
    346          &      hift  (jpi,jpj) , hifu  (jpi,jpj) , rx1(jpi,jpj) , STAT=ierr(8) ) 
    347  
    348       ALLOCATE( mbathy (jpi,jpj) , bathy  (jpi,jpj) ,                                       & 
    349          &      tmask_i(jpi,jpj) , tmask_h(jpi,jpj) ,                                       &  
     295         &      e3t_1d  (jpk) , e3w_1d  (jpk) , e3tp (jpi,jpj), e3wp(jpi,jpj) , STAT=ierr(7) ) 
     296         ! 
     297      ALLOCATE( tmask_i(jpi,jpj) , tmask_h(jpi,jpj) ,                                       &  
    350298         &      ssmask (jpi,jpj) , ssumask(jpi,jpj) , ssvmask(jpi,jpj) , ssfmask(jpi,jpj) , & 
    351299         &      mbkt   (jpi,jpj) , mbku   (jpi,jpj) , mbkv   (jpi,jpj) , STAT=ierr(9) ) 
    352  
     300         ! 
    353301      ALLOCATE( misfdep(jpi,jpj) , mikt(jpi,jpj) , miku(jpi,jpj) ,     & 
    354302         &      risfdep(jpi,jpj) , mikv(jpi,jpj) , mikf(jpi,jpj) , STAT=ierr(10) ) 
    355  
     303         ! 
    356304      ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk) ,     &  
    357305         &      vmask(jpi,jpj,jpk) , fmask(jpi,jpj,jpk) , STAT=ierr(11) ) 
    358  
     306         ! 
    359307      ALLOCATE( wmask(jpi,jpj,jpk) , wumask(jpi,jpj,jpk), wvmask(jpi,jpj,jpk) , STAT=ierr(12) ) 
    360308      ! 
Note: See TracChangeset for help on using the changeset viewer.