Changeset 778 for branches/dev_001_GM/NEMO/OPA_SRC/par_gyre.F90
- Timestamp:
- 2007-12-22T11:30:56+01:00 (16 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_001_GM/NEMO/OPA_SRC/par_gyre.F90
r772 r778 1 !!--------------------------------------------------------------------- 2 !! *** par_GYRE.h90 *** 3 !! Ocean Domain : GYRE configuration at 1/jp_cfg degree resolution 4 !!--------------------------------------------------------------------- 1 MODULE par_gyre 2 !!====================================================================== 3 !! *** par_gyre *** 4 !! Ocean Domain parameter : rotated square bassin on a beta-plane at 1/jp_cfg 5 !! degree resolution (GYRE configuration) and a 1D configuration case 6 !! NB: with AGRIF, values are not set as parameters 7 !!====================================================================== 8 !! History : 9.0 ! 2007-11 (G. Madec) Original code from par_GYRE.h90 5 9 !!---------------------------------------------------------------------- 6 !! OPA 9.0 , LOCEAN-IPSL (2005)7 !! $Header $8 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt10 !! NEMO/OPA 2.4 , LOCEAN-IPSL (2007) 11 !! $Header: $ 12 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 9 13 !!---------------------------------------------------------------------- 10 CHARACTER (len=16) & 11 #if !defined key_agrif 12 , PARAMETER & 13 #endif 14 :: & 15 cp_cfg = "gyre" !: name of the configuration 16 INTEGER & 17 #if !defined key_agrif 18 , PARAMETER & 19 #endif 20 :: & 21 jp_cfg = 1 , & !: 14 #if defined key_gyre 15 !!---------------------------------------------------------------------- 16 !! 'key_gyre' : GYRE configuration 17 !!---------------------------------------------------------------------- 18 USE par_kind ! kind parameters 22 19 23 ! data size !!! * size of all the input files * 24 jpidta = 30*jp_cfg+2, & !: 1st horizontal dimension ( >= jpi ) 25 jpjdta = 20*jp_cfg+2, & !: 2nd " " ( >= jpj ) 26 jpkdta = 31, & !: number of levels ( >= jpk ) 20 IMPLICIT NONE 21 PUBLIC 27 22 28 ! global domain size !!! * full domain * 29 jpiglo = jpidta, & !: 1st dimension of global domain --> i 30 jpjglo = jpjdta, & !: 2nd " " --> j 31 jpk = jpkdta, & !: number of vertical levels 32 ! zoom starting position 33 jpizoom = 1 , & !: left bottom (i,j) indices of the zoom 34 jpjzoom = 1 , & !: in data indices 23 # if defined key_agrif 24 !------!!-------------------------------------------------------------- 25 ! !! 'key_agrif' : AGRIF 26 !------!!-------------------------------------------------------------- 35 27 36 ! Domain characteristics 37 jperio = 0 , & !: lateral cond. type (between 0 and 6) 38 jpisl = 1 , & !: number of islands 39 jpnisl = jpiglo !: 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) 40 34 41 !! Values set to pp_not_used indicates that this parameter is not used in THIS config. 42 !! Values set to pp_to_be_computed indicates that variables will be computed in domzgr 43 REAL(wp), PARAMETER :: & !: 44 pp_not_used = 999999._wp , & !: ??? 45 pp_to_be_computed = 0._wp !: ??? 46 !! 47 !! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 ) 48 !! 49 INTEGER,PARAMETER :: & !: 50 jphgr_msh = 5 !: type of horizontal mesh 51 ! ! = 0 curvilinear coordinate on the sphere 52 ! ! read in coordinate.nc file 53 ! ! = 1 geographical mesh on the sphere 54 ! ! with regular grid-spacing 55 ! ! = 2 f-plane with regular grid-spacing 56 ! ! = 3 beta-plane with regular grid-spacing 57 ! ! = 4 Mercator grid with T/U point at the equator with 58 ! ! isotropic resolution (e1_deg) 59 ! ! =5 beta-plane with regular grid-spacing and rotated domain (GYRE configuration) 35 # else 36 !------!!-------------------------------------------------------------- 37 ! !! Default : no AGRIF: model parameters 38 !------!!-------------------------------------------------------------- 60 39 61 ! ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid. 62 ! The mercator grid starts only approximately at gphi0 because 63 ! of the constraint that the equator be a T point. 64 REAL(wp) & 65 #if !defined key_agrif 66 , PARAMETER & 67 #endif 68 :: & !: 69 ppglam0 = 0.0_wp, & !: longitude of first raw and column T-point (jphgr_msh = 1) 70 ppgphi0 = 29.0_wp, & !: latitude of first raw and column T-point (jphgr_msh = 1) 71 ! ! latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3) 72 ppe1_deg = pp_not_used , & !: zonal grid-spacing (degrees) 73 ppe2_deg = pp_not_used , & !: meridional grid-spacing (degrees) 74 ! 75 ppe1_m = pp_not_used, & !: zonal grid-spacing (meters ) 76 ppe2_m = pp_not_used !: meridional grid-spacing (meters ) 77 !! 78 !! Coefficients associated with the vertical coordinate system 79 !! 40 ! Configuration name and resolution !!! * GYRE * 41 CHARACTER (len=16), PARAMETER :: cp_cfg = "gyre" !: name of the configuration 42 INTEGER, PARAMETER :: jp_cfg = 1 !: resolution of the configuration (degrees) 43 ! ! control the size of GYRE configurations 80 44 81 REAL(wp), PARAMETER :: & !: 82 & ppsur = -2033.194295283385_wp , & !: 83 & ppa0 = 155.8325369664153_wp , & !: 84 & ppa1 = 146.3615918601890_wp , & !: 85 ! 86 & ppkth = 17.28520372419791_wp , & !: (non dimensional): gives the approximate 87 ! ! layer number above which stretching will 88 ! ! be maximum. Usually of order jpk/2. 89 & ppacr = 5.000000000000000_wp !: (non dimensional): stretching factor 90 ! ! for the grid. The highest zacr, the smallest 91 ! ! the stretching. 45 ! input data size !!! * size of all input files * 46 INTEGER, PARAMETER :: jpidta = 30 * jp_cfg + 2 !: 1st lateral dimension ( >= jpiglo ) 47 INTEGER, PARAMETER :: jpjdta = 20 * jp_cfg + 2 !: 2nd " " ( >= jpjglo ) 48 INTEGER, PARAMETER :: jpkdta = 31 !: number of levels ( >= jpk ) 92 49 93 !! 94 !! If all ppa0 ppa1 and ppsur are specified to 0, then 95 !! they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr 96 !! 97 REAL(wp), PARAMETER :: & !: 98 & ppdzmin = pp_not_used , & !: (meters): depth of the top (first) model layer 99 ! ! depth of second "w" level 100 & pphmax = pp_not_used !: (meters): maximum depth of the ocean 101 ! ! depth of the last "w" level 50 # if defined key_cfg_1d 51 !------------!!-------------------------------------------------------- 52 ! !! 'key_cfg_1d' : 1D configuration of MY_CFG 53 !------------!!-------------------------------------------------------- 54 ! global domain size !!! * 1D configuration * 55 INTEGER, PARAMETER :: jpiglo = 3 !: 1st dimension of global domain --> i 56 INTEGER, PARAMETER :: jpjglo = 3 !: 2nd " " --> j 57 INTEGER, PARAMETER :: jpk = jpkdta !: number of vertical levels 58 ! starting position of the zoom 59 INTEGER, PARAMETER :: jpizoom = 16 !: left bottom (i,j) indices of the zoom 60 INTEGER, PARAMETER :: jpjzoom = 11 !: in data domain indices 61 ! Domain characteristics 62 INTEGER, PARAMETER :: jperio = 0 !: lateral cond. type (between 0 and 6) 63 INTEGER, PARAMETER :: jpisl = 0 !: number of islands 64 INTEGER, PARAMETER :: jpnisl = 0 !: maximum number of points per island 65 66 # else 67 !------------!!-------------------------------------------------------- 68 ! !! Default : Full global domain of GYRE 69 !------------!!-------------------------------------------------------- 70 ! global domain size !!! * global domain * 71 INTEGER, PARAMETER :: jpiglo = jpidta !: 1st dimension of global domain --> i 72 INTEGER, PARAMETER :: jpjglo = jpjdta !: 2nd " " --> j 73 INTEGER, PARAMETER :: jpk = jpkdta !: number of vertical levels 74 ! starting position of the zoom 75 INTEGER, PARAMETER :: jpizoom = 1 !: left bottom (i,j) indices of the zoom 76 INTEGER, PARAMETER :: jpjzoom = 1 !: in data domain indices 77 ! Domain characteristics 78 INTEGER, PARAMETER :: jperio = 0 !: lateral cond. type (between 0 and 6) 79 INTEGER, PARAMETER :: jpisl = 1 !: number of islands 80 INTEGER, PARAMETER :: jpnisl = 1 !: maximum number of points per island 81 # endif 82 83 # endif 102 84 103 85 !!--------------------------------------------------------------------- 86 !! grid parameters for domhgr and domzgr 87 !!--------------------------------------------------------------------- 88 ! Values set to pp_not_used indicates that this parameter is not used in THIS config. 89 ! Values set to pp_to_be_computed indicates that variables will be computed in domzgr 90 REAL(wp), PARAMETER :: pp_not_used = 999999_wp !: default value for "not used" 91 REAL(wp), PARAMETER :: pp_to_be_computed = 0._wp !: default value for "to be computed" 92 93 ! horizontal mesh (domhgr) 94 ! Coefficients associated with the horizontal coordinate system (jphgr_msh /= 0 ) 95 INTEGER, PARAMETER :: jphgr_msh = 5 !: type of horizontal mesh 96 ! ! = 5 beta-plane with regular grid-spacing and rotated domain 97 98 ! ppglam0 , ppgphi0: coordinates of the lower leftmost T point of the grid. 99 ! The mercator grid starts only approximately at gphi0 because 100 ! of the constraint that the equator be a T point. 101 REAL(wp) ,PARAMETER :: ppglam0 = 0.0_wp !: longitude of first raw and column T-point (jphgr_msh=1) 102 REAL(wp) ,PARAMETER :: ppgphi0 = 29.0_wp !: latitude of first raw and column T-point (jphgr_msh=1) 103 ! ! latitude of the Coriolis/Beta parameter (jphgr_msh=2 or 3) 104 REAL(wp) ,PARAMETER :: ppe1_deg = pp_not_used !: zonal grid-spacing (degrees) 105 REAL(wp) ,PARAMETER :: ppe2_deg = pp_not_used !: meridional grid-spacing (degrees) 106 ! 107 REAL(wp) ,PARAMETER :: ppe1_m = pp_not_used !: zonal grid-spacing (meters ) 108 REAL(wp) ,PARAMETER :: ppe2_m = pp_not_used !: meridional grid-spacing (meters ) 109 110 ! Vertical mesh (domzgr) 111 ! parameter used in the analytical function defining the repartition of the level and their thickness 112 REAL(wp), PARAMETER :: ppsur = -2033.194295283385_wp !: GYRE coefficients 113 REAL(wp), PARAMETER :: ppa0 = 155.8325369664153_wp !: 114 REAL(wp), PARAMETER :: ppa1 = 146.3615918601890_wp !: 115 REAL(wp), PARAMETER :: ppkth = 17.28520372419791_wp !: (non dimensional): gives the approximate 116 ! !: layer number above which stretching will 117 ! !: be maximum. Usually of order jpk/2. 118 REAL(wp), PARAMETER :: ppacr = 5.00000000000_wp !: (non dimensional): stretching factor 119 ! !: for the grid. The highest zacr, the smallest 120 ! !: the stretching. 121 ! If both ppa0 ppa1 and ppsur are specified to 0, then 122 ! they are computed from ppdzmin, pphmax, ppkth, ppacr in dom_zgr 123 REAL(wp), PARAMETER :: ppdzmin = pp_not_used !: vertical thickness of the top layer [meters] 124 REAL(wp), PARAMETER :: pphmax = pp_not_used !: maximum depth of the ocean gdepw(jpk) [meters] 125 126 #else 127 !!--------------------------------------------------------------------- 128 !! default option : Empty module 129 !!--------------------------------------------------------------------- 130 #endif 131 132 !!====================================================================== 133 END MODULE par_gyre
Note: See TracChangeset
for help on using the changeset viewer.