Changeset 6624 for branches/2016/dev_r6409_SIMPLIF_2_usrdef
- Timestamp:
- 2016-05-26T10:59:48+02:00 (8 years ago)
- Location:
- branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM
- Files:
-
- 1 deleted
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/AMM12/EXP00/namelist_cfg
r6596 r6624 22 22 cp_cfg = "amm" ! name of the configuration 23 23 jp_cfg = 011 ! resolution of the configuration 24 ! jpkdta = 51 ! number of levels ( >= jpk )25 ! jpiglo = 198 ! 1st dimension of global domain --> i =jpidta26 ! jpjglo = 224 ! 2nd - - --> j =jpjdta27 jperio = 0 ! lateral cond. type (between 0 and 6)28 24 / 29 25 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/GYRE/EXP00/namelist_cfg
r6596 r6624 29 29 cp_cfg = "gyre" ! name of the configuration 30 30 jp_cfg = 1 ! resolution of the configuration 31 jperio = 0 ! lateral cond. type (between 0 and 6)32 31 / 33 32 !----------------------------------------------------------------------- … … 46 45 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 47 46 rn_rdt = 7200. ! time step for the dynamics 48 nn_msh = 47 nn_msh = -1 ! create (=1) a mesh file or not (=0) 49 48 ppsur = -2033.194295283385 ! ORCA r4, r2 and r05 coefficients 50 49 ppa0 = 155.8325369664153 ! (default coefficients) -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/GYRE_BFM/EXP00/namelist_cfg
r6596 r6624 24 24 cp_cfg = "gyre" ! name of the configuration 25 25 jp_cfg = 1 ! resolution of the configuration 26 jperio = 0 ! lateral cond. type (between 0 and 6)27 26 / 28 27 &namzgr ! vertical coordinate -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_cfg
r6596 r6624 17 17 cp_cfg = "gyre" ! name of the configuration 18 18 jp_cfg = 1 ! resolution of the configuration 19 jperio = 0 ! lateral cond. type (between 0 and 6)20 19 / 21 20 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/GYRE_XIOS/EXP00/namelist_cfg
r6596 r6624 17 17 cp_cfg = "gyre" ! name of the configuration 18 18 jp_cfg = 1 ! resolution of the configuration 19 jperio = 0 ! lateral cond. type (between 0 and 6)20 19 / 21 20 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist_cfg
r6596 r6624 17 17 cp_cfg = "default" ! name of the configuration 18 18 jp_cfg = -1 ! resolution of the configuration 19 jpidta = 182 ! 1st lateral dimension ( >= jpi )20 jpjdta = 149 ! 2nd " " ( >= jpj )21 jpkdta = 31 ! number of levels ( >= jpk )22 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta23 jpjglo = 149 ! 2nd - - --> j =jpjdta24 jpizoom = 1 ! left bottom (i,j) indices of the zoom25 jpjzoom = 1 ! in data domain indices26 jperio = 0 ! lateral cond. type (between 0 and 6)27 19 / 28 20 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist_cfg
r6596 r6624 16 16 cp_cfg = "orca" ! name of the configuration 17 17 jp_cfg = 2 ! resolution of the configuration 18 jpidta = 182 ! 1st lateral dimension ( >= jpi )19 jpjdta = 149 ! 2nd " " ( >= jpj )20 jpkdta = 31 ! number of levels ( >= jpk )21 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta22 jpjglo = 149 ! 2nd - - --> j =jpjdta23 jpizoom = 1 ! left bottom (i,j) indices of the zoom24 jpjzoom = 1 ! in data domain indices25 jperio = 4 ! lateral cond. type (between 0 and 6)26 18 / 27 19 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/1_namelist_cfg
r6140 r6624 16 16 cp_cfg = "default" ! name of the configuration 17 17 jp_cfg = -1 ! resolution of the configuration 18 jpidta = 182 ! 1st lateral dimension ( >= jpi )19 jpjdta = 149 ! 2nd " " ( >= jpj )20 jpkdta = 31 ! number of levels ( >= jpk )21 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta22 jpjglo = 149 ! 2nd - - --> j =jpjdta23 jpizoom = 1 ! left bottom (i,j) indices of the zoom24 jpjzoom = 1 ! in data domain indices25 jperio = 0 ! lateral cond. type (between 0 and 6)26 18 / 27 19 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/namelist_cfg
r6596 r6624 16 16 cp_cfg = "orca" ! name of the configuration 17 17 jp_cfg = 2 ! resolution of the configuration 18 jpidta = 182 ! 1st lateral dimension ( >= jpi )19 jpjdta = 149 ! 2nd " " ( >= jpj )20 jpkdta = 31 ! number of levels ( >= jpk )21 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta22 jpjglo = 149 ! 2nd - - --> j =jpjdta23 jpizoom = 1 ! left bottom (i,j) indices of the zoom24 jpjzoom = 1 ! in data domain indices25 jperio = 4 ! lateral cond. type (between 0 and 6)26 18 / 27 19 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/namelist_cfg
r6596 r6624 19 19 cp_cfg = "orca" ! name of the configuration 20 20 jp_cfg = 2 ! resolution of the configuration 21 jpidta = 182 ! 1st lateral dimension ( >= jpi )22 jpjdta = 149 ! 2nd " " ( >= jpj )23 jpkdta = 31 ! number of levels ( >= jpk )24 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta25 jpjglo = 149 ! 2nd - - --> j =jpjdta26 jpizoom = 1 ! left bottom (i,j) indices of the zoom27 jpjzoom = 1 ! in data domain indices28 jperio = 4 ! lateral cond. type (between 0 and 6)29 21 / 30 22 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_cfg
r6596 r6624 12 12 cp_cfg = "orca" ! name of the configuration 13 13 jp_cfg = 2 ! resolution of the configuration 14 jpidta = 182 ! 1st lateral dimension ( >= jpi )15 jpjdta = 149 ! 2nd " " ( >= jpj )16 jpkdta = 31 ! number of levels ( >= jpk )17 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta18 jpjglo = 149 ! 2nd - - --> j =jpjdta19 jpizoom = 1 ! left bottom (i,j) indices of the zoom20 jpjzoom = 1 ! in data domain indices21 jperio = 4 ! lateral cond. type (between 0 and 6)22 14 / 23 15 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_cfg
r6596 r6624 15 15 cp_cfg = "orca" ! name of the configuration 16 16 jp_cfg = 2 ! resolution of the configuration 17 jpidta = 182 ! 1st lateral dimension ( >= jpi )18 jpjdta = 149 ! 2nd " " ( >= jpj )19 jpkdta = 31 ! number of levels ( >= jpk )20 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta21 jpjglo = 149 ! 2nd - - --> j =jpjdta22 jpizoom = 1 ! left bottom (i,j) indices of the zoom23 jpjzoom = 1 ! in data domain indices24 jperio = 4 ! lateral cond. type (between 0 and 6)25 17 / 26 18 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/ORCA2_SAS_LIM/EXP00/namelist_cfg
r6596 r6624 14 14 cp_cfg = "orca" ! name of the configuration 15 15 jp_cfg = 2 ! resolution of the configuration 16 jpidta = 182 ! 1st lateral dimension ( >= jpi )17 jpjdta = 149 ! 2nd " " ( >= jpj )18 jpkdta = 31 ! number of levels ( >= jpk )19 jpiglo = 182 ! 1st dimension of global domain --> i =jpidta20 jpjglo = 149 ! 2nd - - --> j =jpjdta21 jpizoom = 1 ! left bottom (i,j) indices of the zoom22 jpjzoom = 1 ! in data domain indices23 jperio = 4 ! lateral cond. type (between 0 and 6)24 16 / 25 17 !----------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/SHARED/namelist_ref
r6596 r6624 75 75 ! bathymetry, boudary condition, initial state, sbc) or (.false.) to call user_defined.F90 module 76 76 cp_cfg = "default" ! name of the configuration 77 cp_cfz = "no zoom" ! name of the zoom of configuration78 77 jp_cfg = 0 ! resolution of the configuration 79 jperio = 0 ! lateral cond. type (between 0 and 6)80 ! = 0 closed ; = 1 cyclic East-West81 ! = 2 equatorial symmetric ; = 3 North fold T-point pivot82 ! = 4 cyclic East-West AND North fold T-point pivot83 ! = 5 North fold F-point pivot84 ! = 6 cyclic East-West AND North fold F-point pivot85 78 ln_use_jattr = .false. ! use (T) the file attribute: open_ocean_jstart, if present 86 79 ! in netcdf input files, as the start j-row for reading -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r6596 r6624 29 29 !! time & space domain namelist 30 30 !! ---------------------------- 31 ! 32 INTEGER , PUBLIC :: nn_bathy 33 REAL(wp), PUBLIC :: rn_bathy 34 REAL(wp), PUBLIC :: rn_hmin 35 REAL(wp), PUBLIC :: rn_isfhmin 36 REAL(wp), PUBLIC :: rn_e3zps_min 37 REAL(wp), PUBLIC :: rn_e3zps_rat 38 INTEGER , PUBLIC :: nn_msh 39 REAL(wp), PUBLIC :: rn_atfp 40 REAL(wp), PUBLIC :: rn_rdt 41 INTEGER , PUBLIC :: nn_closea 42 INTEGER , PUBLIC :: nn_euler 31 ! !!* 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) 35 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 39 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) 42 INTEGER , PUBLIC :: nn_euler !: =0 start with forward time step or not (=1) 43 43 LOGICAL , PUBLIC :: ln_iscpl !: coupling with ice sheet 44 LOGICAL , PUBLIC :: ln_crs 44 LOGICAL , PUBLIC :: ln_crs !: Apply grid coarsening to dynamical model output or online passive tracers 45 45 46 46 !! Free surface parameters 47 47 !! ======================= 48 LOGICAL , PUBLIC :: ln_dynspg_exp 49 LOGICAL , PUBLIC :: ln_dynspg_ts 48 LOGICAL , PUBLIC :: ln_dynspg_exp !: Explicit free surface flag 49 LOGICAL , PUBLIC :: ln_dynspg_ts !: Split-Explicit free surface flag 50 50 51 51 !! Time splitting parameters 52 52 !! ========================= 53 LOGICAL, PUBLIC :: ln_bt_fw 54 LOGICAL, PUBLIC :: ln_bt_av 55 LOGICAL, PUBLIC :: ln_bt_auto 56 INTEGER, PUBLIC :: nn_bt_flt 57 INTEGER, PUBLIC :: nn_baro 58 REAL(wp), PUBLIC :: rn_bt_cmax 53 LOGICAL, PUBLIC :: ln_bt_fw !: Forward integration of barotropic sub-stepping 54 LOGICAL, PUBLIC :: ln_bt_av !: Time averaging of barotropic variables 55 LOGICAL, PUBLIC :: ln_bt_auto !: Set number of barotropic iterations automatically 56 INTEGER, PUBLIC :: nn_bt_flt !: Filter choice 57 INTEGER, PUBLIC :: nn_baro !: Number of barotropic iterations during one baroclinic step (rdt) 58 REAL(wp), PUBLIC :: rn_bt_cmax !: Maximum allowed courant number (used if ln_bt_auto=T) 59 59 60 60 !! Vertical grid parameter for domzgr 61 61 !! ================================== 62 REAL(wp) :: ppsur 63 REAL(wp) :: ppa0 64 REAL(wp) :: ppa1 65 REAL(wp) :: ppkth 66 REAL(wp) :: ppacr 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 67 ! 68 68 ! If both ppa0 ppa1 and ppsur are specified to 0, then 69 69 ! they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr 70 REAL(wp) :: ppdzmin 71 REAL(wp) :: pphmax 70 REAL(wp) :: ppdzmin !: Minimum vertical spacing 71 REAL(wp) :: pphmax !: Maximum depth 72 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 !: 77 78 ! !! 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 83 REAL(wp), PUBLIC :: atfp !: asselin time filter parameter 84 REAL(wp), PUBLIC :: rdt !: time step for the dynamics and tracer 85 86 ! !!! associated variables 87 INTEGER , PUBLIC :: neuler !: restart euler forward option (0=Euler) 88 REAL(wp), PUBLIC :: atfp1 !: asselin time filter coeff. (atfp1= 1-2*atfp) 89 REAL(wp), PUBLIC :: r2dt !: = 2*rdt except at nit000 (=rdt) if neuler=0 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 !: 77 78 ! !! 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 83 REAL(wp), PUBLIC :: atfp !: asselin time filter parameter 84 REAL(wp), PUBLIC :: rdt !: time step for the dynamics and tracer 85 86 ! !!! associated variables 87 INTEGER , PUBLIC :: neuler !: restart euler forward option (0=Euler) 88 REAL(wp), PUBLIC :: r2dt !: = 2*rdt except at nit000 (=rdt) if neuler=0 90 89 91 90 !!---------------------------------------------------------------------- 92 91 !! space domain parameters 93 92 !!---------------------------------------------------------------------- 94 ! !!! domain parameters linked to mpp 95 INTEGER, PUBLIC :: nperio !: type of lateral boundary condition 96 INTEGER, PUBLIC :: nimpp, njmpp !: i- & j-indexes for mpp-subdomain left bottom 97 INTEGER, PUBLIC :: nreci, nrecj !: overlap region in i and j 98 INTEGER, PUBLIC :: nproc !: number for local processor 99 INTEGER, PUBLIC :: narea !: number for local area 100 INTEGER, PUBLIC :: nbondi, nbondj !: mark of i- and j-direction local boundaries 93 INTEGER, PUBLIC :: jperio !: Global domain lateral boundary type (between 0 and 6) 94 ! ! = 0 closed ; = 1 cyclic East-West 95 ! ! = 2 equatorial symmetric ; = 3 North fold T-point pivot 96 ! ! = 4 cyclic East-West AND North fold T-point pivot 97 ! ! = 5 North fold F-point pivot 98 ! ! = 6 cyclic East-West AND North fold F-point pivot 99 INTEGER, PUBLIC :: nperio !: Local domain lateral boundary type (deduced from jperio and MPP decomposition) 100 101 ! ! domain MPP decomposition parameters 102 INTEGER , PUBLIC :: nimpp, njmpp !: i- & j-indexes for mpp-subdomain left bottom 103 INTEGER , PUBLIC :: nreci, nrecj !: overlap region in i and j 104 INTEGER , PUBLIC :: nproc !: number for local processor 105 INTEGER , PUBLIC :: narea !: number for local area 106 INTEGER , PUBLIC :: nbondi, nbondj !: mark of i- and j-direction local boundaries 101 107 INTEGER, ALLOCATABLE, PUBLIC :: nbondi_bdy(:) !: mark i-direction local boundaries for BDY open boundaries 102 108 INTEGER, ALLOCATABLE, PUBLIC :: nbondj_bdy(:) !: mark j-direction local boundaries for BDY open boundaries … … 131 137 !! horizontal curvilinear coordinate and scale factors 132 138 !! --------------------------------------------------------------------- 133 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: glamt , glamu, glamv , glamf !: longitude at t, u, v, f-points [degree]134 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: gphit , gphiu, gphiv , gphif !: latitude at t, u, v, f-points [degree]139 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: glamt , glamu, glamv , glamf !: longitude at t, u, v, f-points [degree] 140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: gphit , gphiu, gphiv , gphif !: latitude at t, u, v, f-points [degree] 135 141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:) :: e1t , e2t , r1_e1t, r1_e2t !: t-point horizontal scale factors [m] 136 142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:) :: e1u , e2u , r1_e1u, r1_e2u !: horizontal scale factors at u-point [m] … … 138 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:) :: e1f , e2f , r1_e1f, r1_e2f !: horizontal scale factors at f-point [m] 139 145 ! 140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2t , r1_e1e2t !: associated metrics at t-point141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2u , r1_e1e2u , e2_e1u !: associated metrics at u-point142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2v , r1_e1e2v , e1_e2v !: associated metrics at v-point143 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2f , r1_e1e2f !: associated metrics at f-point146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2t , r1_e1e2t !: associated metrics at t-point 147 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2u , r1_e1e2u , e2_e1u !: associated metrics at u-point 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2v , r1_e1e2v , e1_e2v !: associated metrics at v-point 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2f , r1_e1e2f !: associated metrics at f-point 144 150 ! 145 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: ff_f, ff_t !: coriolis factor at f- and t-point [1/s]151 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: ff_f, ff_t !: coriolis factor at f- and t-point [1/s] 146 152 147 153 !!---------------------------------------------------------------------- -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r6596 r6624 17 17 18 18 !!---------------------------------------------------------------------- 19 !! dom_init : initialize the space and time domain 20 !! dom_nam : read and contral domain namelists 21 !! dom_ctl : control print for the ocean domain 22 !! dom_stiff : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 19 !! dom_init : initialize the space and time domain 20 !! dom_nam : read and contral domain namelists 21 !! dom_ctl : control print for the ocean domain 22 !! dom_stiff : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 23 !! cfg_wri : create the "domain_cfg.nc" file containing all required configuration information 23 24 !!---------------------------------------------------------------------- 24 25 USE oce ! ocean variables … … 29 30 USE domhgr ! domain: set the horizontal mesh 30 31 USE domzgr ! domain: set the vertical mesh 31 USE domstp ! domain: set the time-step32 32 USE dommsk ! domain: set the mask system 33 33 USE domwri ! domain: write the meshmask file … … 37 37 ! 38 38 USE in_out_manager ! I/O manager 39 USE iom ! I/O library 40 USE lbclnk ! ocean lateral boundary condition (or mpp link) 41 USE lib_mpp ! distributed memory computing library 39 42 USE wrk_nemo ! Memory Allocation 40 USE lib_mpp ! distributed memory computing library41 USE lbclnk ! ocean lateral boundary condition (or mpp link)42 43 USE timing ! Timing 43 44 … … 66 67 !! and scale factors, and the coriolis factor 67 68 !! - dom_zgr: define the vertical coordinate and the bathymetry 68 !! - dom_stp: defined the model time step69 69 !! - dom_wri: create the meshmask file if nmsh=1 70 70 !! - 1D configuration, move Coriolis, u and v at T-point … … 72 72 INTEGER :: jk ! dummy loop indices 73 73 INTEGER :: iconf = 0 ! local integers 74 CHARACTER (len=64) :: cform = "(A12, 3(A13, I7) )" 74 75 REAL(wp), POINTER, DIMENSION(:,:) :: z1_hu_0, z1_hv_0 75 76 !!---------------------------------------------------------------------- … … 83 84 ENDIF 84 85 ! 86 ! Ocean domain Parameters (control print) 87 ! ----------------------- 88 IF(lwp) THEN 89 WRITE(numout,*) ' Domain info' 90 WRITE(numout,*) ' dimension of model' 91 WRITE(numout,*) ' Local domain Global domain Data domain ' 92 WRITE(numout,cform) ' ',' jpi : ', jpi, ' jpiglo : ', jpiglo, ' jpidta : ', jpidta 93 WRITE(numout,cform) ' ',' jpj : ', jpj, ' jpjglo : ', jpjglo, ' jpjdta : ', jpjdta 94 WRITE(numout,cform) ' ',' jpk : ', jpk, ' jpkglo : ', jpkglo, ' jpkdta : ', jpkdta 95 WRITE(numout,cform) ' ' ,' jpij : ', jpij 96 WRITE(numout,*) ' mpp local domain info (mpp)' 97 WRITE(numout,*) ' jpni : ', jpni, ' jpreci : ', jpreci 98 WRITE(numout,*) ' jpnj : ', jpnj, ' jprecj : ', jprecj 99 WRITE(numout,*) ' jpnij : ', jpnij 100 WRITE(numout,*) ' lateral boundary of the Global domain : jperio = ', jperio 101 ENDIF 102 85 103 ! !== Reference coordinate system ==! 86 104 ! … … 90 108 CALL dom_zgr ! Vertical mesh and bathymetry 91 109 CALL dom_msk ! Masks 110 ! 92 111 IF( ln_sco ) CALL dom_stiff ! Maximum stiffness ratio/hydrostatic consistency 93 112 ! … … 139 158 IF( lk_c1d ) CALL cor_c1d ! 1D configuration: Coriolis set at T-point 140 159 ! 141 CALL dom_stp ! time step 142 IF( nmsh /= 0 .AND. .NOT. ln_iscpl ) CALL dom_wri ! Create a domain file 143 IF( nmsh /= 0 .AND. ln_iscpl .AND. .NOT. ln_rstart ) CALL dom_wri ! Create a domain file 160 IF( nmsh > 0 .AND. .NOT. ln_iscpl ) CALL dom_wri ! Create a domain file 161 IF( nmsh > 0 .AND. ln_iscpl .AND. .NOT. ln_rstart ) CALL dom_wri ! Create a domain file 144 162 IF( .NOT.ln_rstart ) CALL dom_ctl ! Domain control 163 ! 164 165 IF(lwp) THEN 166 WRITE(numout,*) 167 WRITE(numout,*) 'dom_init : end of domain initialization nmsh=', nmsh 168 WRITE(numout,*) 169 ENDIF 170 ! 171 IF( nmsh == -1 ) CALL cfg_wri ! create the configuration file 145 172 ! 146 173 IF( nn_timing == 1 ) CALL timing_stop('dom_init') … … 307 334 WRITE(numout,*) ' ppacr2 = ', ppacr2 308 335 ENDIF 336 337 call flush( numout ) 309 338 ! 310 339 ntopo = nn_bathy ! conversion DOCTOR names into model names (this should disappear soon) … … 344 373 snc4set%luse = .FALSE. ! No NetCDF 4 case 345 374 #endif 375 376 call flush( numout ) 377 346 378 ! 347 379 END SUBROUTINE dom_nam … … 410 442 !! Haney, R. L., 1991: On the pressure gradient force 411 443 !! over steep topography in sigma coordinate ocean models. 412 !! J. Phys. Oceanogr., 21, 610 ???619.444 !! J. Phys. Oceanogr., 21, 610-619. 413 445 !!---------------------------------------------------------------------- 414 446 INTEGER :: ji, jj, jk … … 458 490 END SUBROUTINE dom_stiff 459 491 492 493 SUBROUTINE cfg_wri 494 !!---------------------------------------------------------------------- 495 !! *** ROUTINE cfg_wri *** 496 !! 497 !! ** Purpose : Create the NetCDF file(s) which contain(s) all the 498 !! ocean domain informations (mesh and mask arrays). This (these) 499 !! file(s) is (are) used for visualisation (SAXO software) and 500 !! diagnostic computation. 501 !! 502 !! ** Method : Write in a file all the arrays generated in routines 503 !! domhgr, domzgr, and dommsk. Note: the file contain depends on 504 !! the vertical coord. used (z-coord, partial steps, s-coord) 505 !! MOD(nmsh, 3) = 1 : 'mesh_mask.nc' file 506 !! = 2 : 'mesh.nc' and mask.nc' files 507 !! = 0 : 'mesh_hgr.nc', 'mesh_zgr.nc' and 508 !! 'mask.nc' files 509 !! For huge size domain, use option 2 or 3 depending on your 510 !! vertical coordinate. 511 !! 512 !! if nmsh <= 3: write full 3D arrays for e3[tuvw] and gdep[tuvw] 513 !! if 3 < nmsh <= 6: write full 3D arrays for e3[tuvw] and 2D arrays 514 !! corresponding to the depth of the bottom t- and w-points 515 !! if 6 < nmsh <= 9: write 2D arrays corresponding to the depth and the 516 !! thickness (e3[tw]_ps) of the bottom points 517 !! 518 !! ** output file : meshmask.nc : domain size, horizontal grid-point position, 519 !! masks, depth and vertical scale factors 520 !!---------------------------------------------------------------------- 521 INTEGER :: ji, jj, jk ! dummy loop indices 522 INTEGER :: izco, izps, isco, icav 523 INTEGER :: inum ! temprary units for 'domain_cfg.nc' file 524 CHARACTER(len=21) :: clnam ! filename (mesh and mask informations) 525 !!---------------------------------------------------------------------- 526 ! 527 IF(lwp) WRITE(numout,*) 528 IF(lwp) WRITE(numout,*) 'cfg_wri : create the "domain_cfg.nc" file containing all required configuration information' 529 IF(lwp) WRITE(numout,*) '~~~~~~~' 530 ! 531 ! ! ============================= ! 532 ! ! create 'domain_cfg.nc' file ! 533 ! ! ============================= ! 534 ! 535 clnam = 'domain_cfg' ! filename (configuration information) 536 CALL iom_open( TRIM(clnam), inum, ldwrt = .TRUE., kiolib = jprstlib ) 537 538 ! !== global domain size ==! 539 CALL iom_rstput( 0, 0, inum, 'jpiglo', REAL( jpiglo, wp), ktype = jp_i4 ) 540 CALL iom_rstput( 0, 0, inum, 'jpjglo', REAL( jpjglo, wp), ktype = jp_i4 ) 541 CALL iom_rstput( 0, 0, inum, 'jpkglo', REAL( jpk , wp), ktype = jp_i4 ) 542 543 ! !== domain characteristics ==! 544 ! ! lateral boundary of the global domain 545 CALL iom_rstput( 0, 0, inum, 'jperio', REAL( jperio, wp), ktype = jp_i4 ) 546 ! ! type of vertical coordinate 547 IF( ln_zco ) THEN ; izco = 1 ; ELSE ; izco = 0 ; ENDIF 548 IF( ln_zps ) THEN ; izps = 1 ; ELSE ; izps = 0 ; ENDIF 549 IF( ln_sco ) THEN ; isco = 1 ; ELSE ; isco = 0 ; ENDIF 550 CALL iom_rstput( 0, 0, inum, 'ln_zco' , REAL( izco, wp), ktype = jp_i4 ) 551 CALL iom_rstput( 0, 0, inum, 'ln_zps' , REAL( izps, wp), ktype = jp_i4 ) 552 CALL iom_rstput( 0, 0, inum, 'ln_sco' , REAL( isco, wp), ktype = jp_i4 ) 553 ! ! ocean cavities under iceshelves 554 IF( ln_isfcav ) THEN ; icav = 1 ; ELSE ; icav = 0 ; ENDIF 555 CALL iom_rstput( 0, 0, inum, 'ln_isfcav', REAL( icav, wp), ktype = jp_i4 ) 556 557 ! !== horizontal mesh ! 558 ! 559 CALL iom_rstput( 0, 0, inum, 'glamt', glamt, ktype = jp_r8 ) ! latitude 560 CALL iom_rstput( 0, 0, inum, 'glamu', glamu, ktype = jp_r8 ) 561 CALL iom_rstput( 0, 0, inum, 'glamv', glamv, ktype = jp_r8 ) 562 CALL iom_rstput( 0, 0, inum, 'glamf', glamf, ktype = jp_r8 ) 563 ! 564 CALL iom_rstput( 0, 0, inum, 'gphit', gphit, ktype = jp_r8 ) ! longitude 565 CALL iom_rstput( 0, 0, inum, 'gphiu', gphiu, ktype = jp_r8 ) 566 CALL iom_rstput( 0, 0, inum, 'gphiv', gphiv, ktype = jp_r8 ) 567 CALL iom_rstput( 0, 0, inum, 'gphif', gphif, ktype = jp_r8 ) 568 ! 569 CALL iom_rstput( 0, 0, inum, 'e1t' , e1t , ktype = jp_r8 ) ! i-scale factors (e1.) 570 CALL iom_rstput( 0, 0, inum, 'e1u' , e1u , ktype = jp_r8 ) 571 CALL iom_rstput( 0, 0, inum, 'e1v' , e1v , ktype = jp_r8 ) 572 CALL iom_rstput( 0, 0, inum, 'e1f' , e1f , ktype = jp_r8 ) 573 ! 574 CALL iom_rstput( 0, 0, inum, 'e2t' , e2t , ktype = jp_r8 ) ! j-scale factors (e2.) 575 CALL iom_rstput( 0, 0, inum, 'e2u' , e2u , ktype = jp_r8 ) 576 CALL iom_rstput( 0, 0, inum, 'e2v' , e2v , ktype = jp_r8 ) 577 CALL iom_rstput( 0, 0, inum, 'e2f' , e2f , ktype = jp_r8 ) 578 ! 579 CALL iom_rstput( 0, 0, inum, 'ff_f' , ff_f , ktype = jp_r8 ) ! coriolis factor 580 CALL iom_rstput( 0, 0, inum, 'ff_t' , ff_t , ktype = jp_r8 ) 581 582 583 ! !== vertical mesh - 3D mask ==! 584 ! 585 CALL iom_rstput( 0, 0, inum, 'gdept_1d', gdept_1d, ktype = jp_r8 ) ! reference 1D-coordinate 586 CALL iom_rstput( 0, 0, inum, 'gdepw_1d', gdepw_1d, ktype = jp_r8 ) 587 CALL iom_rstput( 0, 0, inum, 'e3t_1d' , e3t_1d , ktype = jp_r8 ) 588 CALL iom_rstput( 0, 0, inum, 'e3w_1d' , e3w_1d , ktype = jp_r8 ) 589 ! 590 CALL iom_rstput( 0, 0, inum, 'gdept_0' , gdept_0 , ktype = jp_r8 ) ! depth (t- & w-points) 591 CALL iom_rstput( 0, 0, inum, 'gdepw_0' , gdepw_0 , ktype = jp_r8 ) 592 ! 593 CALL iom_rstput( 0, 0, inum, 'e3t_0' , e3t_0 , ktype = jp_r8 ) ! vertical scale factors (e 594 CALL iom_rstput( 0, 0, inum, 'e3u_0' , e3u_0 , ktype = jp_r8 ) 595 CALL iom_rstput( 0, 0, inum, 'e3v_0' , e3v_0 , ktype = jp_r8 ) 596 CALL iom_rstput( 0, 0, inum, 'e3w_0' , e3w_0 , ktype = jp_r8 ) 597 ! 598 CALL iom_rstput( 0, 0, inum, 'tmask' , tmask , ktype = jp_i1 ) ! masks (in bytes) 599 CALL iom_rstput( 0, 0, inum, 'umask' , umask , ktype = jp_i1 ) 600 CALL iom_rstput( 0, 0, inum, 'vmask' , vmask , ktype = jp_i1 ) 601 CALL iom_rstput( 0, 0, inum, 'fmask' , fmask , ktype = jp_i1 ) 602 603 !!gm Probably not required fields : 604 CALL iom_rstput( 0, 0, inum, 'bathy' , bathy , ktype = jp_r8 ) ! depth of the ocean at T-points 605 CALL iom_rstput( 0, 0, inum, 'mbathy' , REAL( mbathy , wp ) , ktype = jp_i4 ) ! nb of ocean T-points 606 CALL iom_rstput( 0, 0, inum, 'mbkt' , REAL( mbkt , wp ) , ktype = jp_i4 ) ! nb of ocean T-points 607 608 ! 609 CALL iom_rstput( 0, 0, inum, 'bathy' , risfdep , ktype = jp_r8 ) ! depth of the iceshelves at T-points 610 CALL iom_rstput( 0, 0, inum, 'misfdep', REAL( misfdep, wp ) , ktype = jp_i4 ) ! nb of ocean T-points (ISF) 611 612 !!gm end 613 614 !!gm ? 615 ! CALL iom_rstput( 0, 0, inum, 'hbatt', hbatt ) 616 ! CALL iom_rstput( 0, 0, inum, 'hbatu', hbatu ) 617 ! CALL iom_rstput( 0, 0, inum, 'hbatv', hbatv ) 618 ! CALL iom_rstput( 0, 0, inum, 'hbatf', hbatf ) 619 !!gm ? 620 !!gm ? 621 ! CALL iom_rstput( 0, 0, inum, 'rx1' , rx1 ) ! Max. grid stiffness ratio 622 !!gm ? 623 ! 624 ! DO jk = 1,jpk 625 ! DO jj = 1, jpjm1 626 ! DO ji = 1, fs_jpim1 ! vector opt. 627 ! zdepu(ji,jj,jk) = MIN( gdept_0(ji,jj,jk) , gdept_0(ji+1,jj ,jk) ) 628 ! zdepv(ji,jj,jk) = MIN( gdept_0(ji,jj,jk) , gdept_0(ji ,jj+1,jk) ) 629 ! END DO 630 ! END DO 631 ! END DO 632 ! CALL lbc_lnk( zdepu, 'U', 1. ) ; CALL lbc_lnk( zdepv, 'V', 1. ) 633 ! CALL iom_rstput( 0, 0, inum, 'gdepu' , zdepu , ktype = jp_r8 ) 634 ! CALL iom_rstput( 0, 0, inum, 'gdepv' , zdepv , ktype = jp_r8 ) 635 636 ! ! ============================ 637 ! ! close the files 638 ! ! ============================ 639 CALL iom_close( inum ) 640 ! 641 END SUBROUTINE cfg_wri 642 460 643 !!====================================================================== 461 644 END MODULE domain -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90
r6596 r6624 120 120 ff_t(:,:) = 2. * omega * SIN( rad * gphit(:,:) ) ! - - - at t-point 121 121 ELSE 122 IF(lwp) WRITE(numout,*) ' Coriolis parameter have been read in "mesh_mask" file' 122 IF( ln_read_cfg ) THEN 123 IF(lwp) WRITE(numout,*) ' Coriolis parameter have been read in "mesh_mask" file' 124 ELSE 125 IF(lwp) WRITE(numout,*) ' Coriolis parameter have been set in usr_def_hgr routine' 126 ENDIF 123 127 ENDIF 124 128 ! … … 152 156 153 157 154 SUBROUTINE hgr_read( plamt , plamu , plamv , plamf , 155 & pphit , pphiu , pphiv , pphif , 156 & kff , pff_f , pff_t , 157 & pe1t , pe1u , pe1v , pe1f , 158 & pe2t , pe2u , pe2v , pe2f , 159 & ke1e2u_v , pe2_e1u, pe1_e2v )! u- & v-surfaces (if gridsize reduction in some straits)158 SUBROUTINE hgr_read( plamt , plamu , plamv , plamf , & ! gridpoints position (required) 159 & pphit , pphiu , pphiv , pphif , & 160 & kff , pff_f , pff_t , & ! Coriolis parameter (if not on the sphere) 161 & pe1t , pe1u , pe1v , pe1f , & ! scale factors (required) 162 & pe2t , pe2u , pe2v , pe2f , & 163 & ke1e2u_v , pe2_e1u, pe1_e2v ) ! u- & v-surfaces (if gridsize reduction in some straits) 160 164 !!--------------------------------------------------------------------- 161 165 !! *** ROUTINE hgr_read *** … … 174 178 ! 175 179 INTEGER :: inum ! logical unit 176 REAL(wp) :: ziglo, zjglo, zkglo ! domain size177 180 !!---------------------------------------------------------------------- 178 181 ! … … 183 186 ENDIF 184 187 ! 185 CALL iom_open( 'mesh_mask', inum ) 186 ! 187 CALL iom_get( inum, 'jpiglo', ziglo ) 188 CALL iom_get( inum, 'jpjglo', zjglo ) 189 CALL iom_get( inum, 'jpkglo', zkglo ) 190 WRITE(numout,*) ' read size read: i,j,k = ', INT(ziglo), INT(zjglo), INT(zkglo) 191 188 CALL iom_open( 'domain_cfg', inum ) 192 189 ! 193 190 CALL iom_get( inum, jpdom_data, 'glamt', plamt, lrowattr=ln_use_jattr ) -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r6351 r6624 896 896 tilde_e3t_b(:,:,:) = 0.0_wp 897 897 tilde_e3t_n(:,:,:) = 0.0_wp 898 IF( ln_vvl_ztilde ) hdiv_lf(:,:,:) = 0. 0_wp898 IF( ln_vvl_ztilde ) hdiv_lf(:,:,:) = 0._wp 899 899 END IF 900 900 ENDIF -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
r6596 r6624 27 27 PUBLIC dom_wri ! routine called by inidom.F90 28 28 PUBLIC dom_wri_coordinate ! routine called by domhgr.F90 29 29 30 !! * Substitutions 30 31 # include "vectopt_loop_substitute.h90" … … 140 141 CHARACTER(len=21) :: clnam4 ! filename (vertical mesh informations) 141 142 INTEGER :: ji, jj, jk ! dummy loop indices 143 INTEGER :: izco, izps, isco, icav 142 144 ! ! workspaces 143 145 REAL(wp), POINTER, DIMENSION(:,: ) :: zprt, zprw … … 193 195 CALL iom_rstput( 0, 0, inum2, 'jpkglo', REAL( jpk , wp), ktype = jp_i4 ) 194 196 195 196 197 197 ! ! domain characteristics 198 CALL iom_rstput( 0, 0, inum2, 'jperio', REAL( jperio, wp), ktype = jp_i4 ) 199 ! ! type of vertical coordinate 200 IF( ln_zco ) THEN ; izco = 1 ; ELSE ; izco = 0 ; ENDIF 201 IF( ln_zps ) THEN ; izps = 1 ; ELSE ; izps = 0 ; ENDIF 202 IF( ln_sco ) THEN ; isco = 1 ; ELSE ; isco = 0 ; ENDIF 203 CALL iom_rstput( 0, 0, inum, 'ln_zco' , REAL( izco, wp), ktype = jp_i4 ) 204 CALL iom_rstput( 0, 0, inum, 'ln_zps' , REAL( izps, wp), ktype = jp_i4 ) 205 CALL iom_rstput( 0, 0, inum, 'ln_sco' , REAL( isco, wp), ktype = jp_i4 ) 206 ! ! ocean cavities under iceshelves 207 IF( ln_isfcav ) THEN ; icav = 1 ; ELSE ; icav = 0 ; ENDIF 208 CALL iom_rstput( 0, 0, inum, 'ln_isfcav', REAL( icav, wp), ktype = jp_i4 ) 209 198 210 ! ! masks (inum2) 199 211 CALL iom_rstput( 0, 0, inum2, 'tmask', tmask, ktype = jp_i1 ) ! ! land-sea mask -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r6596 r6624 23 23 !!---------------------------------------------------------------------- 24 24 !! dom_zgr : defined the ocean vertical coordinate system 25 !! zgr_read : read the vertical domain coordinate and mask in domain_cfg file 25 26 !! zgr_bat : bathymetry fields (levels and meters) 26 27 !! zgr_bat_ctl : check the bathymetry files … … 177 178 ! 178 179 END SUBROUTINE dom_zgr 180 181 182 SUBROUTINE zgr_read( pdept_1d, pdepw_1d, pe3t_1d , pe3w_1d , & 183 & pdept , pdepw , & ! gridpoints depth (required) 184 & pe3t , pe3u , pe3v , pe3w , & ! scale factors (required) 185 & ptmask , pumask , pvmask , pfmask, & 186 & pbathy , prisfdep, & 187 & kbathy, kbkt, kisfdep ) 188 ! & pe3f , pe3uw , pe3vw ) ! u- & v-surfaces (if gridsize reduction in some straits) 189 !!--------------------------------------------------------------------- 190 !! *** ROUTINE zgr_read *** 191 !! 192 !! ** Purpose : Read the vertical information in a domain_cfg.nc file 193 !! 194 !!---------------------------------------------------------------------- 195 REAL(wp), DIMENSION(:,:,:), INTENT(out) :: pdept_1d, pdepw_1d ! 1D grid-point depth [m] 196 REAL(wp), DIMENSION(:,:,:), INTENT(out) :: pe3t_1d , pe3w_1d ! 1D grid-point depth [m] 197 REAL(wp), DIMENSION(:,:,:), INTENT(out) :: pdept, pdepw !, pde3w ! grid-point depth [m] 198 REAL(wp), DIMENSION(:,:,:), INTENT(out) :: pe3t , pe3u , pe3v , pe3w ! vertical scale factors [m] 199 ! REAL(wp), DIMENSION(:,:,:), INTENT(out) :: pe3f , pe3uw, pe3vw ! i-scale factors 200 REAL(wp), DIMENSION(:,:,:), INTENT(out) :: ptmask , pumask , pvmask , pfmask ! masks [-] 201 REAL(wp), DIMENSION(:,:) , INTENT(out) :: pbathy , prisfdep ! bathymetry, iceshelf depth [m] 202 INTEGER , DIMENSION(:,:) , INTENT(out) :: kbathy, kbkt, kisfdep ! bathymetry, iceshelf depth [m] 203 ! 204 INTEGER :: inum ! local logical unit 205 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 206 !!---------------------------------------------------------------------- 207 ! 208 IF(lwp) THEN 209 WRITE(numout,*) 210 WRITE(numout,*) 'hgr_read : read the vertical coordinates in mesh_mask' 211 WRITE(numout,*) '~~~~~~~~ jpiglo = ', jpiglo, ' jpjglo = ', jpjglo, ' jpk = ', jpk 212 ENDIF 213 ! 214 CALL iom_open( 'mesh_mask', inum ) 215 ! 216 CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d ) ! reference 1D-coordinate 217 CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d ) 218 CALL iom_get( inum, jpdom_unknown, 'e3t_1d' , pe3t_1d ) 219 CALL iom_get( inum, jpdom_unknown, 'e3w_1d' , pe3w_1d ) 220 ! 221 CALL iom_get( inum, jpdom_data, 'gdept_0', pdept, lrowattr=ln_use_jattr ) ! depth 222 CALL iom_get( inum, jpdom_data, 'gdepw_0', pdepw, lrowattr=ln_use_jattr ) 223 ! CALL iom_get( inum, jpdom_data, 'gde3w_0', pde3w, lrowattr=ln_use_jattr ) 224 ! 225 CALL iom_get( inum, jpdom_data, 'e3t_0' , pe3t , lrowattr=ln_use_jattr ) ! vertical scale factors 226 CALL iom_get( inum, jpdom_data, 'e3u_0' , pe3u , lrowattr=ln_use_jattr ) 227 CALL iom_get( inum, jpdom_data, 'e3v_0' , pe3v , lrowattr=ln_use_jattr ) 228 ! CALL iom_get( inum, jpdom_data, 'e3f_0' , pe3f , lrowattr=ln_use_jattr ) 229 CALL iom_get( inum, jpdom_data, 'e3w_0' , pe3w , lrowattr=ln_use_jattr ) 230 ! CALL iom_get( inum, jpdom_data, 'e3uw_0' , pe3uw, lrowattr=ln_use_jattr ) 231 ! CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw, lrowattr=ln_use_jattr ) 232 233 234 235 236 237 CALL iom_get( inum, jpdom_data, 'tmask' , ptmask ) ! masks 238 CALL iom_get( inum, jpdom_data, 'umask' , pumask ) 239 CALL iom_get( inum, jpdom_data, 'vmask' , pvmask ) 240 CALL iom_get( inum, jpdom_data, 'fmask' , pfmask ) 241 242 243 !!gm Probably not required fields : 244 CALL iom_get( inum, jpdom_data, 'bathy' , bathy ) ! depth of the ocean at T-points 245 CALL iom_get( inum, jpdom_data, 'mbathy' , z2d ) ! nb of ocean T-points 246 kbathy(:,:) = INT( z2d(:,:) ) 247 CALL iom_get( inum, jpdom_data, 'mbkt' , z2d ) ! nb of ocean T-points 248 kbkt(:,:) = INT( z2d(:,:) ) 249 250 ! 251 CALL iom_get( inum, jpdom_data, 'bathy' , risfdep ) ! depth of the iceshelves at T-points 252 CALL iom_get( inum, jpdom_data, 'misfdep', z2d ) ! nb of ocean T-points (ISF) 253 kisfdep(:,:) = INT( z2d(:,:) ) 254 255 256 ! 257 CALL iom_close( inum ) 258 ! 259 END SUBROUTINE zgr_read 179 260 180 261 … … 457 538 END DO 458 539 END DO 459 risfdep(:,:) =0.e0460 misfdep(:,:) =1540 risfdep(:,:) = 0._wp 541 misfdep(:,:) = 1 461 542 ! 462 543 DEALLOCATE( idta, zdta ) … … 507 588 CALL iom_close( inum ) 508 589 ! 509 risfdep(:,:) =0._wp510 misfdep(:,:) =1590 risfdep(:,:) = 0._wp 591 misfdep(:,:) = 1 511 592 IF ( ln_isfcav ) THEN 512 593 CALL iom_open ( 'isf_draft_meter.nc', inum ) … … 518 599 ! (a treshold could be set here if needed, or set it offline based on the grounded fraction) 519 600 WHERE ( bathy(:,:) <= risfdep(:,:) + rn_isfhmin ) 520 misfdep(:,:) = 0 ;risfdep(:,:) = 0._wp521 mbathy (:,:) = 0 ;bathy (:,:) = 0._wp601 misfdep(:,:) = 0 ; risfdep(:,:) = 0._wp 602 mbathy (:,:) = 0 ; bathy (:,:) = 0._wp 522 603 END WHERE 523 604 END IF … … 1130 1211 END DO 1131 1212 WHERE ( 0._wp < risfdep(:,:) .AND. risfdep(:,:) <= e3t_1d(1) ) 1132 risfdep(:,:) = 0. ;misfdep(:,:) = 11213 risfdep(:,:) = 0._wp ; misfdep(:,:) = 1 1133 1214 END WHERE 1134 1215 … … 1149 1230 ! check at each iteration if isf is grounded or not (1cm treshold have to be update after first coupling experiments) 1150 1231 WHERE (bathy(:,:) <= risfdep(:,:) + rn_isfhmin) 1151 misfdep(:,:) = 0 ;risfdep(:,:) = 0._wp1152 mbathy (:,:) = 0 ;bathy (:,:) = 0._wp1232 misfdep(:,:) = 0 ; risfdep(:,:) = 0._wp 1233 mbathy (:,:) = 0 ; bathy (:,:) = 0._wp 1153 1234 END WHERE 1154 1235 WHERE (mbathy(:,:) <= 0) 1155 misfdep(:,:) = 0 ;risfdep(:,:) = 0._wp1156 mbathy (:,:) = 0 ;bathy (:,:) = 0._wp1236 misfdep(:,:) = 0 ; risfdep(:,:) = 0._wp 1237 mbathy (:,:) = 0 ; bathy (:,:) = 0._wp 1157 1238 END WHERE 1158 1239 IF( lk_mpp ) THEN -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/phycst.F90
r5147 r6624 100 100 !! *** ROUTINE phy_cst *** 101 101 !! 102 !! ** Purpose : Print model parameters and set and print the constants 103 !!---------------------------------------------------------------------- 104 CHARACTER (len=64) :: cform = "(A12, 3(A13, I7) )" 102 !! ** Purpose : set and print the constants 105 103 !!---------------------------------------------------------------------- 106 104 107 105 IF(lwp) WRITE(numout,*) 108 IF(lwp) WRITE(numout,*) ' phy_cst : initialization of ocean parameters andconstants'106 IF(lwp) WRITE(numout,*) ' phy_cst : initialization of physical constants' 109 107 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 110 108 111 ! Ocean Parameters 112 ! ---------------- 113 IF(lwp) THEN 114 WRITE(numout,*) ' Domain info' 115 WRITE(numout,*) ' dimension of model' 116 WRITE(numout,*) ' Local domain Global domain Data domain ' 117 WRITE(numout,cform) ' ',' jpi : ', jpi, ' jpiglo : ', jpiglo, ' jpidta : ', jpidta 118 WRITE(numout,cform) ' ',' jpj : ', jpj, ' jpjglo : ', jpjglo, ' jpjdta : ', jpjdta 119 WRITE(numout,cform) ' ',' jpk : ', jpk, ' jpk : ', jpk , ' jpkdta : ', jpkdta 120 WRITE(numout,*) ' ',' jpij : ', jpij 121 WRITE(numout,*) ' mpp local domain info (mpp)' 122 WRITE(numout,*) ' jpni : ', jpni, ' jpreci : ', jpreci 123 WRITE(numout,*) ' jpnj : ', jpnj, ' jprecj : ', jprecj 124 WRITE(numout,*) ' jpnij : ', jpnij 125 WRITE(numout,*) ' lateral domain boundary condition type : jperio = ', jperio 126 ENDIF 127 128 ! Define constants 129 ! ---------------- 109 ! Define & print constants 110 ! ------------------------ 130 111 IF(lwp) WRITE(numout,*) 131 112 IF(lwp) WRITE(numout,*) ' Constants' -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r6596 r6624 238 238 INTEGER :: ilocal_comm ! local integer 239 239 INTEGER :: ios, inum ! - - 240 REAL(wp) :: ziglo, zjglo, zkglo ! local scalars240 REAL(wp) :: ziglo, zjglo, zkglo, zperio ! local scalars 241 241 CHARACTER(len=120), DIMENSION(16) :: cltxt, cltxt2, clnam, clbug 242 242 ! … … 244 244 & nn_isplt, nn_jsplt, nn_jctls, nn_jctle, & 245 245 & nn_timing, nn_diacfl 246 NAMELIST/namcfg/ ln_read_cfg, cp_cfg, cp_cfz, jp_cfg, & 247 & jperio, ln_use_jattr 246 NAMELIST/namcfg/ ln_read_cfg, cp_cfg, jp_cfg, ln_use_jattr 248 247 !!---------------------------------------------------------------------- 249 248 ! … … 284 283 285 284 ! !--------------------------! 286 ! ! Set global domain size ! 285 ! ! Set global domain size ! (control print return in cltxt2) 287 286 ! !--------------------------! 288 287 IF( ln_read_cfg ) THEN ! Read sizes in configuration "mesh_mask" file 289 CALL iom_open( 'mesh_mask', inum ) 290 CALL iom_get( inum, 'jpiglo', ziglo ) ; jpiglo = INT( ziglo ) 291 CALL iom_get( inum, 'jpjglo', zjglo ) ; jpjglo = INT( zjglo ) 292 CALL iom_get( inum, 'jpkglo', zkglo ) ; jpkglo = INT( zkglo ) 288 CALL iom_open( 'domain_cfg', inum ) 289 CALL iom_get( inum, 'jpiglo', ziglo ) ; jpiglo = INT( ziglo ) 290 CALL iom_get( inum, 'jpjglo', zjglo ) ; jpjglo = INT( zjglo ) 291 CALL iom_get( inum, 'jpkglo', zkglo ) ; jpkglo = INT( zkglo ) 292 CALL iom_get( inum, 'jperio', zperio ) ; jperio = INT( zperio ) 293 293 CALL iom_close( inum ) 294 294 WRITE(cltxt2(1),*) 295 WRITE(cltxt2(2),*) 'mesh_mask : domain size read in "mesh_mask" file : i,j,k = ', jpiglo, jpjglo, jpk 296 WRITE(cltxt2(3),*) '~~~~~~~~~' 297 ELSE ! user-defined namelist (control print return in cltxt2) 298 CALL usr_def_nam( cltxt2, clnam, jpiglo, jpjglo, jpkglo ) 295 WRITE(cltxt2(2),*) 'domain_cfg : domain size read in "domain_cfg" file : jp(i,j,k)glo = ', jpiglo, jpjglo, jpkglo 296 WRITE(cltxt2(3),*) '~~~~~~~~~~ lateral boudary type of the global domain jperio= ', jperio 297 ! 298 ELSE ! user-defined namelist 299 CALL usr_def_nam( cltxt2, clnam, jpiglo, jpjglo, jpkglo, jperio ) 299 300 ENDIF 300 301 jpk = jpkglo … … 426 427 WRITE(numout,*) 427 428 DO ji = 1, SIZE(cltxt2) 428 IF( TRIM(cltxt2(ji)) /= '' ) WRITE(numout,*) cltxt2(ji) ! control print of domain size 429 ! IF( TRIM(cltxt2(ji)) /= '' ) WRITE(numout,*) cltxt2(ji) ! control print of domain size 430 IF( cltxt2(ji) /= '' ) WRITE(numout,*) cltxt2(ji) ! control print of domain size 429 431 END DO 430 432 ! … … 433 435 ENDIF 434 436 435 ! Now we know the dimensions of the grid and numout has been set we can 436 ! allocate arrays 437 ! Now we know the dimensions of the grid and numout has been set: we can allocate arrays 437 438 CALL nemo_alloc() 438 439 WRITE(numout,*) ' -after alloc-- nstop', nstop440 441 439 ! !-------------------------------! 442 440 ! ! NEMO general initialization ! … … 601 599 WRITE(numout,*) ' read configuration definition files ln_read_cfg = ', ln_read_cfg 602 600 WRITE(numout,*) ' configuration name cp_cfg = ', TRIM(cp_cfg) 603 WRITE(numout,*) ' configuration zoom name cp_cfz = ', TRIM(cp_cfz)604 601 WRITE(numout,*) ' configuration resolution jp_cfg = ', jp_cfg 605 WRITE(numout,*) ' lateral cond. type (between 0 and 6) jperio = ', jperio606 602 WRITE(numout,*) ' use file attribute if exists as i/p j-start ln_use_jattr = ', ln_use_jattr 607 603 ENDIF -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/par_oce.F90
r6596 r6624 30 30 LOGICAL :: ln_read_cfg !: logical to read all needed files for a configuration 31 31 CHARACTER(lc) :: cp_cfg !: name of the configuration 32 CHARACTER(lc) :: cp_cfz !: name of the zoom of configuration33 32 INTEGER :: jp_cfg !: resolution of the configuration 34 33 … … 71 70 72 71 73 ! Domain characteristics74 INTEGER :: jperio !: lateral cond. type (between 0 and 6)75 ! ! = 0 closed ; = 1 cyclic East-West76 ! ! = 2 equatorial symmetric ; = 3 North fold T-point pivot77 ! ! = 4 cyclic East-West AND North fold T-point pivot78 ! ! = 5 North fold F-point pivot79 ! ! = 6 cyclic East-West AND North fold F-point pivot80 81 72 ! Input file read offset 82 73 LOGICAL :: ln_use_jattr !: Use file global attribute: open_ocean_jstart to determine start j-row -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/usrdef.F90
r6596 r6624 38 38 CONTAINS 39 39 40 SUBROUTINE usr_def_nam( ldtxt, ldnam, kpi, kpj, kpk )40 SUBROUTINE usr_def_nam( ldtxt, ldnam, kpi, kpj, kpk, kperio ) 41 41 !!---------------------------------------------------------------------- 42 42 !! *** ROUTINE dom_nam *** … … 52 52 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information 53 53 INTEGER , INTENT(out) :: kpi, kpj, kpk ! global domain sizes 54 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 54 55 ! 55 56 INTEGER :: ios, ii ! Local integer … … 72 73 ! 73 74 ! ! control print 74 WRITE(ldtxt(ii),*) 75 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 75 76 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1 76 77 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1 … … 81 82 WRITE(ldtxt(ii),*) ' jpjglo = 20*nn_GYRE+2 jpjglo = ', kpj ; ii = ii + 1 82 83 WRITE(ldtxt(ii),*) ' number of model levels jpkglo = ', kpk ; ii = ii + 1 84 85 ! ! Set the lateral boundary condition of the global domain 86 kperio = 0 ! GYRE configuration : closed domain 87 ! 88 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 89 WRITE(ldtxt(ii),*) ' Lateral b.c. of the global domain set to closed jperio = ', kperio ; ii = ii + 1 83 90 ! 84 91 END SUBROUTINE usr_def_nam … … 90 97 & pe1t , pe1u , pe1v , pe1f , & ! scale factors (required) 91 98 & pe2t , pe2u , pe2v , pe2f , & ! 92 & ke1e2u_v , pe1e2u , pe1e2v )! u- & v-surfaces (if gridsize reduction is used in strait(s))99 & ke1e2u_v , pe1e2u , pe1e2v ) ! u- & v-surfaces (if gridsize reduction is used in strait(s)) 93 100 !!---------------------------------------------------------------------- 94 101 !! *** ROUTINE usr_def_hgr *** … … 128 135 ! 129 136 IF(lwp) WRITE(numout,*) 130 IF(lwp) WRITE(numout,*) ' beta-plane with regular grid-spacing and rotated domain (GYRE configuration)' 137 IF(lwp) WRITE(numout,*) 'usr_def_hgr : GYRE configuration (beta-plane with rotated regular grid-spacing)' 138 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 139 ! 131 140 ! 132 141 ! !== grid point position ==!
Note: See TracChangeset
for help on using the changeset viewer.