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 778 for branches/dev_001_GM/NEMO/OPA_SRC/par_orca_r2.F90 – NEMO

Ignore:
Timestamp:
2007-12-22T11:30:56+01:00 (16 years ago)
Author:
gm
Message:

dev_001_GM - par_oce evolution: suppress the par_...h90 and create new module for all ocean configuration -compilation OK

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/dev_001_GM/NEMO/OPA_SRC/par_orca_r2.F90

    r772 r778  
     1MODULE par_orca_r2 
     2   !!====================================================================== 
     3   !!                        ***  par_orca_r2  *** 
     4   !! Ocean Domain parameter : 2 degrees orca global ocean (0RCA_R2 configuration) 
     5   !!    including antarctic, arctic or 1D configuration cases. 
     6   !!    NB: with AGRIF, values are not set as parameters 
     7   !!====================================================================== 
     8   !! History :   9.0  !  2007-11  (G. Madec)  Original code from par_ORCA_R2.h90 
     9   !!---------------------------------------------------------------------- 
     10   !! NEMO/OPA 2.4 , LOCEAN-IPSL (2007)  
     11   !! $Id$  
     12   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     13   !!---------------------------------------------------------------------- 
     14#if defined key_orca_r2 
    115   !!--------------------------------------------------------------------- 
    2    !!                     ***  par_ORCA_R2.h90  ***   
    3    !!   Ocean Domain : 2 degrees resolution global ocean 
    4    !!                  (0RCA_R2 configuration) 
     16   !!   'key_orca_r2'   :                           global ocean : ORCA R2 
    517   !!--------------------------------------------------------------------- 
    6    !!---------------------------------------------------------------------- 
    7    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    8    !! $Header$  
    9    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    10    !!---------------------------------------------------------------------- 
    11    CHARACTER (len=16)      & 
    12 #if !defined key_agrif 
    13       , PARAMETER  & 
    14 #endif 
    15       ::    &   
    16       cp_cfg = "orca"           !: name of the configuration  
    17    INTEGER     & 
    18 #if !defined key_agrif 
    19       , PARAMETER  & 
    20 #endif 
    21       :: & 
    22       jp_cfg = 2,            &  !: resolution of the configuration (degrees) 
     18   USE par_kind          ! kind parameters 
    2319 
    24       ! data size              !!! * size of all input files * 
    25       jpidta  = 182,         &  !: 1st lateral dimension ( >= jpiglo ) 
    26       jpjdta  = 149,         &  !: 2nd    "       "      ( >= jpjglo ) 
    27       jpkdta  = 31              !: number of levels      ( >= jpk    )  
     20   IMPLICIT NONE 
     21   PUBLIC 
    2822 
    29 #if defined key_antarctic 
    30       ! zoom domain size       !!! *  antarctic zoom  *  
    31    INTEGER     & 
    32 #if !defined key_agrif 
    33       , PARAMETER  & 
    34 #endif 
    35       :: & 
    36       jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i 
    37       jpjglo  = 50,          &  !: 2nd    "                  "    --> j 
    38       jpk     = jpkdta,      &  !: number of vertical levels 
    39       ! zoom starting position 
    40       jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom 
    41       jpjzoom =   1   ,      &  !: in data domain indices 
    42       ! Domain characteristics 
    43       jperio  =   1   ,      &  !: lateral cond. type (between 0 and 6) 
    44       jpisl   =   3   ,      &  !: number of islands 
    45       jpnisl  = 400             !: maximum number of points per island 
     23# if defined key_agrif 
     24   !------!!-------------------------------------------------------------- 
     25   !      !!   'key_agrif'   :                                        AGRIF  
     26   !------!!-------------------------------------------------------------- 
    4627 
    47 #elif defined key_arctic 
    48       ! zoom domain size       !!! *  arctic zoom  * 
    49    INTEGER    & 
    50 #if !defined key_agrif 
    51       , PARAMETER  & 
    52 #endif 
    53       :: & 
    54       jpiglo  = 142   ,      &  !: 1st dimension of global domain --> i 
    55       jpjglo  = jpjdta-97+1, &  !: 2nd    "                  "    --> j 
    56       jpk     = jpkdta,      &  !: number of vertical levels 
    57       ! zoom starting position  
    58       jpizoom =  21   ,      &  !: left bottom (i,j) indices of the zoom 
    59       jpjzoom =  97   ,      &  !: in data domain indices 
    60       ! Domain characteristics 
    61       jperio  =   3   ,      &  !: lateral cond. type (between 0 and 6) 
    62       jpisl   =   7   ,      &  !: number of islands 
    63       jpnisl  = 400             !: maximum number of points per island 
     28   ! Configuration, and domain size are not assigned to a parameter value 
     29   !    as they are different in mother and children models 
     30   INTEGER ::   cp_cfg, jp_cfg                          !: configuration id       (AGRIF case) 
     31   INTEGER ::   jpidta, jpjdta, jpkdta                  !: input data size        (AGRIF case) 
     32   INTEGER ::   jpiglo, jpjglo, jpk, jpizoom, jpjzoom   !: domain size and zoom   (AGRIF case) 
     33   INTEGER ::   jperio, jpisl, jpnisl                   !: domain characteristics (AGRIF case) 
    6434 
    65 #elif defined key_cfg_1d 
    66       ! global domain size     !!! *  global domain  * 
    67    INTEGER    & 
    68 #if !defined key_agrif 
    69       , PARAMETER  & 
    70 #endif 
    71       :: & 
    72       jpiglo  = 3     ,      &  !: 1st dimension of global domain --> i 
    73       jpjglo  = 3     ,      &  !: 2nd    "                  "    --> j 
    74       jpk     = jpkdta,      &  !: number of vertical levels 
    75       ! starting position of the zoom  
    76       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    77       ! jpjzoom =   133  ,    &  !: in data domain indices (160W,75N) 
    78       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    79       ! jpjzoom =   110  ,    &  !: in data domain indices (160W,50N) 
    80       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    81       ! jpjzoom =   97   ,    &  !: in data domain indices (160W,30N) 
    82       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    83       ! jpjzoom =   86   ,    &  !: in data domain indices (160W,10N) 
    84       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    85       ! jpjzoom =   49   ,    &  !: in data domain indices (160W,30S) 
    86       ! jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    87       ! jpjzoom =   27   ,    &  !: in data domain indices (160W,60S) 
    88       jpizoom =   61   ,    &  !: left bottom (i,j) indices of the zoom 
    89       jpjzoom =    7   ,    &  !: in data domain indices (160W,75S) 
    90       ! Domain characteristics 
    91       jperio  =   0   ,      &  !: lateral cond. type (between 0 and 6) 
    92       jpisl   =  18   ,      &  !: number of islands 
    93       jpnisl  = 800             !: maximum number of points per island 
     35# else 
     36   !------!!-------------------------------------------------------------- 
     37   !      !!   Default       :                   no AGRIF: model parameters 
     38   !------!!-------------------------------------------------------------- 
     39 
     40   ! Configuration name and resolution                 !!! *  ORCA R2  * 
     41   CHARACTER (len=16), PARAMETER ::   cp_cfg = "orca"   !: name of the configuration  
     42   INTEGER           , PARAMETER ::   jp_cfg = 2        !: resolution of the configuration (degrees) 
     43 
     44   ! input data size                                   !!! *  size of all input files  * 
     45   INTEGER, PARAMETER ::   jpidta  = 182                !: 1st lateral dimension ( >= jpiglo ) 
     46   INTEGER, PARAMETER ::   jpjdta  = 149                !: 2nd    "       "      ( >= jpjglo ) 
     47   INTEGER, PARAMETER ::   jpkdta  = 31                 !: number of levels      ( >= jpk    )  
     48    
     49 
     50#  if defined key_antarctic 
     51   !------------!!-------------------------------------------------------- 
     52   !            !!   'key_antarctic'   :          antartic zoom of ORCA R2 
     53   !------------!!-------------------------------------------------------- 
     54   ! zoom domain size                                  !!! *  antarctic zoom  *  
     55   INTEGER, PARAMETER ::   jpiglo  = jpidta             !: 1st dimension of global domain --> i 
     56   INTEGER, PARAMETER ::   jpjglo  = 50                 !: 2nd    "                  "    --> j 
     57   INTEGER, PARAMETER ::   jpk     = jpkdta             !: number of vertical levels 
     58   ! zoom starting position 
     59   INTEGER, PARAMETER ::   jpizoom =   1                !: left bottom (i,j) indices of the zoom 
     60   INTEGER, PARAMETER ::   jpjzoom =   1                !: in data domain indices 
     61   ! Domain characteristics 
     62   INTEGER, PARAMETER ::   jperio  =   1                !: lateral cond. type (between 0 and 6) 
     63   INTEGER, PARAMETER ::   jpisl   =   3                !: number of islands 
     64   INTEGER, PARAMETER ::   jpnisl  = 400                !: maximum number of points per island 
     65 
     66#  elif defined key_arctic 
     67   !------------!!-------------------------------------------------------- 
     68   !            !!   'key_arctic' :                  artic zoom of ORCA R2 
     69   !------------!!-------------------------------------------------------- 
     70   ! zoom domain size                                  !!! *  arctic zoom  * 
     71   INTEGER, PARAMETER ::   jpiglo  = 142                !: 1st dimension of global domain --> i 
     72   INTEGER, PARAMETER ::   jpjglo  = jpjdta - 97 + 1    !: 2nd    "                  "    --> j 
     73   INTEGER, PARAMETER ::   jpk     = jpkdta             !: number of vertical levels 
     74   ! zoom starting position  
     75   INTEGER, PARAMETER ::   jpizoom =  21                !: left bottom (i,j) indices of the zoom 
     76   INTEGER, PARAMETER ::   jpjzoom =  97                !: in data domain indices 
     77   ! Domain characteristics 
     78   INTEGER, PARAMETER ::   jperio  =   3                !: lateral cond. type (between 0 and 6) 
     79   INTEGER, PARAMETER ::   jpisl   =   7                !: number of islands 
     80   INTEGER, PARAMETER ::   jpnisl  = 400                !: maximum number of points per island 
     81 
     82#  elif defined key_cfg_1d 
     83   !------------!!-------------------------------------------------------- 
     84   !            !!   'key_cfg_1d' :            1D configuration of ORCA R2 
     85   !------------!!-------------------------------------------------------- 
     86   ! global domain size                                !!! *  1D configuration  * 
     87   INTEGER, PARAMETER ::   jpiglo  = 3                  !: 1st dimension of global domain --> i 
     88   INTEGER, PARAMETER ::   jpjglo  = 3                  !: 2nd    "                  "    --> j 
     89   INTEGER, PARAMETER ::   jpk     = jpkdta             !: number of vertical levels 
     90   ! starting position of the zoom  
     91   INTEGER, PARAMETER ::   jpizoom =   61               !: left bottom (i,j) indices of the zoom in data domain indices 
     92   INTEGER, PARAMETER ::   jpjzoom =  110               !: here : (jpizoom,jpjzoom) = (61,110)  for (160W,50N) 
     93   ! Domain characteristics 
     94   INTEGER, PARAMETER ::   jperio  =   0                !: lateral cond. type (between 0 and 6) 
     95   INTEGER, PARAMETER ::   jpisl   =  18                !: number of islands 
     96   INTEGER, PARAMETER ::   jpnisl  = 800                !: maximum number of points per island 
     97    
     98#  else 
     99   !------------!!-------------------------------------------------------- 
     100   !            !!   Default :               Full global domain of ORCA R2 
     101   !------------!!-------------------------------------------------------- 
     102   ! global domain size                                !!! *  global domain  * 
     103   INTEGER, PARAMETER ::   jpiglo  = jpidta             !: 1st dimension of global domain --> i 
     104   INTEGER, PARAMETER ::   jpjglo  = jpjdta             !: 2nd    "                  "    --> j 
     105   INTEGER, PARAMETER ::   jpk     = jpkdta             !: number of vertical levels 
     106   ! starting position of the zoom  
     107   INTEGER, PARAMETER ::   jpizoom =   1                !: left bottom (i,j) indices of the zoom 
     108   INTEGER, PARAMETER ::   jpjzoom =   1                !: in data domain indices 
     109   ! Domain characteristics 
     110   INTEGER, PARAMETER ::   jperio  =   4                !: lateral cond. type (between 0 and 6) 
     111   INTEGER, PARAMETER ::   jpisl   =  18                !: number of islands 
     112   INTEGER, PARAMETER ::   jpnisl  = 800                !: maximum number of points per island 
     113#  endif 
     114 
     115# endif 
     116 
     117   !!--------------------------------------------------------------------- 
     118   !! grid parameters for domhgr and domzgr 
     119   !!--------------------------------------------------------------------- 
     120   ! Values set to pp_not_used indicates that this parameter is not used in THIS config. 
     121   ! Values set to pp_to_be_computed  indicates that variables will be computed in domzgr 
     122   REAL(wp), PARAMETER ::   pp_not_used       = 999999_wp   !: default value for "not used" 
     123   REAL(wp), PARAMETER ::   pp_to_be_computed = 0._wp       !: default value for "to be computed" 
     124 
     125   ! horizontal mesh (domhgr) 
     126   !    Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 ) 
     127   INTEGER, PARAMETER ::   jphgr_msh = 0   !: type of horizontal mesh 
     128   !                                       !  = 0 curvilinear coordinate on the sphere read in coordinate.nc file 
     129 
     130   !   ppglam0 , ppgphi0: coordinates of the lower leftmost T-point of the grid. 
     131   !   The mercator grid starts only approximately at gphi0 because 
     132   !   of the constraint that the equator is a T-point. 
     133   REAL(wp) ,PARAMETER ::   ppglam0  = pp_not_used   !: longitude of first raw and column T-point (jphgr_msh=1) 
     134   REAL(wp) ,PARAMETER ::   ppgphi0  = pp_not_used   !: latitude  of first raw and column T-point (jphgr_msh=1) 
     135   !                                                 !  latitude  of the Coriolis/Beta parameter  (jphgr_msh=2 or 3) 
     136   REAL(wp) ,PARAMETER ::   ppe1_deg = pp_not_used   !: zonal      grid-spacing (degrees) 
     137   REAL(wp) ,PARAMETER ::   ppe2_deg = pp_not_used   !: meridional grid-spacing (degrees) 
     138   ! 
     139   REAL(wp) ,PARAMETER ::   ppe1_m   = pp_not_used   !: zonal      grid-spacing (meters ) 
     140   REAL(wp) ,PARAMETER ::   ppe2_m   = pp_not_used   !: meridional grid-spacing (meters ) 
     141 
     142   ! Vertical mesh (domzgr) 
     143   !    parameter used in the analytical function defining the repartition of the level and their thickness 
     144   REAL(wp), PARAMETER ::   ppsur = -4762.96143546300_wp   !: ORCA r4, r2 and r05 coefficients 
     145   REAL(wp), PARAMETER ::   ppa0  =   255.58049070440_wp   !: (default coefficients) 
     146   REAL(wp), PARAMETER ::   ppa1  =   245.58132232490_wp   !: 
     147   REAL(wp), PARAMETER ::   ppkth =    21.43336197938_wp   !: (non dimensional): gives the approximate 
     148   !                                                       !: layer number above which  stretching will 
     149   !                                                       !: be maximum. Usually of order jpk/2. 
     150   REAL(wp), PARAMETER ::   ppacr =     3.00000000000_wp   !: (non dimensional): stretching factor 
     151   !                                                       !: for the grid. The highest zacr, the smallest 
     152   !                                                       !: the stretching. 
     153   !  If both ppa0 ppa1 and ppsur are specified to 0, then 
     154   !  they are computed from ppdzmin, pphmax, ppkth, ppacr in dom_zgr 
     155   REAL(wp), PARAMETER ::   ppdzmin = pp_not_used   !: (meters) vertical thickness of the top layer 
     156   REAL(wp), PARAMETER ::   pphmax  = pp_not_used   !: (meters) Maximum depth of the ocean gdepw(jpk) 
     157 
    94158#else 
    95       ! global domain size     !!! *  global domain  * 
    96    INTEGER    & 
    97 #if !defined key_agrif 
    98       , PARAMETER  & 
    99 #endif 
    100       :: & 
    101       jpiglo  = jpidta,      &  !: 1st dimension of global domain --> i 
    102       jpjglo  = jpjdta,      &  !: 2nd    "                  "    --> j 
    103       jpk     = jpkdta,      &  !: number of vertical levels 
    104       ! starting position of the zoom  
    105       jpizoom =   1   ,      &  !: left bottom (i,j) indices of the zoom 
    106       jpjzoom =   1   ,      &  !: in data domain indices 
    107       ! Domain characteristics 
    108       jperio  =   4   ,      &  !: lateral cond. type (between 0 and 6) 
    109       jpisl   =  18   ,      &  !: number of islands 
    110       jpnisl  = 800             !: maximum number of points per island 
    111  
     159   !!--------------------------------------------------------------------- 
     160   !!   default option  :                                     Empty module 
     161   !!--------------------------------------------------------------------- 
    112162#endif 
    113163 
    114    !!  Values set to pp_not_used indicates that this parameter is not used in THIS config. 
    115    !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr 
    116    REAL(wp), PARAMETER ::   & 
    117       pp_not_used       = 999999_wp , &  !: 
    118       pp_to_be_computed = 0._wp          !: 
    119  
    120    !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 ) 
    121  
    122    INTEGER,PARAMETER   ::    & ! 
    123       jphgr_msh = 0            !: type of horizontal mesh 
    124       !                        !  = 0 curvilinear coordinate on the sphere 
    125       !                        !      read in coordinate.nc file 
    126       !                        !  = 1 geographical mesh on the sphere 
    127       !                        !      with regular grid-spacing 
    128       !                        !  = 2 f-plane with regular grid-spacing 
    129       !                        !  = 3 beta-plane with regular grid-spacing 
    130       !                        !  = 4 Mercator grid with T/U point at the equator  with 
    131       !                        !      isotropic resolution (e1_deg) 
    132  
    133       !   ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid. 
    134       !   The mercator grid starts only approximately at gphi0 because 
    135       !   of the constraint that the equator be a T point. 
    136    REAL(wp) ,PARAMETER ::       &  ! 
    137       ppglam0  = pp_not_used,   &  !: longitude of first raw and column T-point (jphgr_msh = 1) 
    138       ppgphi0  = pp_not_used,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1) 
    139       !                            !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3) 
    140       ppe1_deg = pp_not_used,   &  !: zonal      grid-spacing (degrees) 
    141       ppe2_deg = pp_not_used,   &  !: meridional grid-spacing (degrees) 
    142       ! 
    143       ppe1_m   = pp_not_used,   &  !: zonal      grid-spacing (meters ) 
    144       ppe2_m   = pp_not_used       !: meridional grid-spacing (meters ) 
    145  
    146    !! 
    147    !! Vertical grid parameter for domzgr 
    148    !! ================================== 
    149    !! 
    150    REAL(wp), PARAMETER  ::       & 
    151       &     ppsur = -4762.96143546300_wp    ,  &  !: ORCA r4, r2 and r05 coefficients 
    152       &     ppa0  =   255.58049070440_wp    ,  &  !: (default coefficients) 
    153       &     ppa1  =   245.58132232490_wp    ,  &  !: 
    154       &     ppkth =    21.43336197938_wp    ,  &  !: (non dimensional): gives the approximate 
    155       !                                           !: layer number above which  stretching will 
    156       !                                           !: be maximum. Usually of order jpk/2. 
    157       &     ppacr =     3.00000000000_wp          !: (non dimensional): stretching factor 
    158       !                                           !: for the grid. The highest zacr, the smallest 
    159       !                                           !: the stretching. 
    160  
    161    !! 
    162    !!  If both ppa0 ppa1 and ppsur are specified to 0, then 
    163    !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr 
    164    !! 
    165    REAL(wp), PARAMETER ::        & 
    166       &     ppdzmin = pp_not_used           ,  &  !: (meters) vertical thickness of the top layer 
    167       &     pphmax  = pp_not_used                 !: (meters) Maximum depth of the ocean gdepw(jpk) 
    168    !!--------------------------------------------------------------------- 
     164   !!====================================================================== 
     165END MODULE par_orca_r2 
Note: See TracChangeset for help on using the changeset viewer.