Changeset 2382 for branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC
- Timestamp:
- 2010-11-13T14:08:12+01:00 (13 years ago)
- Location:
- branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r2364 r2382 11 11 !! NEMO 1.0 ! 2002-08 (G. Madec) F90: Free form and module 12 12 !! 2.0 ! 2005-11 (V. Garnier) Surface pressure gradient organization 13 !! 3.3 ! 2010-11 (G. Madec) initialisation in C1D configuration 13 14 !!---------------------------------------------------------------------- 14 15 … … 18 19 !! dom_ctl : control print for the ocean domain 19 20 !!---------------------------------------------------------------------- 20 USE oce ! 21 USE dom_oce ! ocean space and time domain21 USE oce ! ocean variables 22 USE dom_oce ! domain: ocean 22 23 USE sbc_oce ! surface boundary condition: ocean 23 24 USE phycst ! physical constants … … 32 33 USE domwri ! domain: write the meshmask file 33 34 USE domvvl ! variable volume 35 #if defined key_c1d 36 USE dyncor_c1d ! Coriolis term (c1d case) (cor_c1d routine) 37 #endif 34 38 35 39 IMPLICIT NONE … … 43 47 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 44 48 !! $Id$ 45 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)49 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 46 50 !!------------------------------------------------------------------------- 47 48 51 CONTAINS 49 52 … … 62 65 !! - dom_stp: defined the model time step 63 66 !! - dom_wri: create the meshmask file if nmsh=1 67 !! - "key_c1d": 1D configuration, move Coriolis, u and v at T-point 64 68 !!---------------------------------------------------------------------- 65 69 INTEGER :: jk ! dummy loop argument … … 79 83 CALL dom_msk ! Masks 80 84 IF( lk_vvl ) CALL dom_vvl ! Vertical variable mesh 85 ! 86 #if defined key_c1d 87 ! ! 1D configuration ("key_c1d") 88 CALL cor_c1d ! Coriolis set at T-point 89 umask(:,:,:) = tmask(:,:,:) ! U, V moved at T-point 90 vmask(:,:,:) = tmask(:,:,:) 91 #endif 81 92 ! 82 93 hu(:,:) = 0.e0 ! Ocean depth at U- and V-points … … 188 199 #endif 189 200 190 REWIND( numnam ) ! Namelist namdom : space & time domain (bathymetry, mesh, timestep)201 REWIND( numnam ) ! Namelist namdom : space & time domain (bathymetry, mesh, timestep) 191 202 READ ( numnam, namdom ) 192 203 … … 224 235 nclosea = nn_closea 225 236 226 REWIND( numnam ) ! Namelist cross land advection237 REWIND( numnam ) ! Namelist cross land advection 227 238 READ ( numnam, namcla ) 228 239 IF(lwp) THEN … … 238 249 239 250 #if defined key_netcdf4 240 241 REWIND( numnam ) ! Namelist namnc4 : netcdf4 chunking parameters251 ! ! NetCDF 4 case ("key_netcdf4" defined) 252 REWIND( numnam ) ! Namelist namnc4 : netcdf4 chunking parameters 242 253 READ ( numnam, namnc4 ) 243 IF(lwp) THEN 254 IF(lwp) THEN ! control print 244 255 WRITE(numout,*) 245 256 WRITE(numout,*) ' Namelist namnc4 - Netcdf4 chunking parameters' … … 256 267 snc4set%nk = nn_nchunks_k 257 268 snc4set%luse = ln_nc4zip 258 259 269 #else 260 261 snc4set%luse = .FALSE. 262 263 #endif 270 snc4set%luse = .FALSE. ! No NetCDF 4 case 271 #endif 272 ! 264 273 END SUBROUTINE dom_nam 265 274 -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r2375 r2382 37 37 !! tke_rst : read/write tke restart in ocean restart file 38 38 !!---------------------------------------------------------------------- 39 USE oce ! ocean dynamics and active tracers40 USE dom_oce ! ocean space and time domain41 USE dom vvl ! ocean space and time domain : variable volume layer42 USE zdf_oce ! ocean vertical physics39 USE oce ! ocean: dynamics and active tracers variables 40 USE phycst ! physical constants 41 USE dom_oce ! domain: ocean 42 USE domvvl ! domain: variable volume layer 43 43 USE sbc_oce ! surface boundary condition: ocean 44 USE phycst ! physical constants 45 USE zdfmxl ! mixed layer 46 USE restart ! only for lrst_oce 44 USE zdf_oce ! vertical physics: ocean variables 45 USE zdfmxl ! vertical physics: mixed layer 46 USE zdfbfr ! vertical mixing: bottom friction 47 USE restart ! ocean restart 47 48 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 48 49 USE prtctl ! Print control 49 50 USE in_out_manager ! I/O manager 50 51 USE iom ! I/O manager library 51 USE zdfbfr ! bottom friction52 52 53 53 IMPLICIT NONE … … 180 180 !! 181 181 INTEGER :: ji, jj, jk ! dummy loop arguments 182 !! $INTEGER :: ikbu, ikbv, ikbum1, ikbvm1 ! temporary scalar183 !! $INTEGER :: ikbt, ikbumm1, ikbvmm1 ! temporary scalar182 !!bfr INTEGER :: ikbu, ikbv, ikbum1, ikbvm1 ! temporary scalar 183 !!bfr INTEGER :: ikbt, ikbumm1, ikbvmm1 ! temporary scalar 184 184 REAL(wp) :: zrhoa = 1.22 ! Air density kg/m3 185 185 REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient … … 190 190 REAL(wp) :: zus , zwlc , zind ! - - 191 191 REAL(wp) :: zzd_up, zzd_lw ! - - 192 !! $REAL(wp) :: zebot ! - -192 !!bfr REAL(wp) :: zebot ! - - 193 193 INTEGER , DIMENSION(jpi,jpj) :: imlc ! 2D workspace 194 194 REAL(wp), DIMENSION(jpi,jpj) :: zhlc ! - - … … 209 209 END DO 210 210 END DO 211 ! 211 212 !!bfr - start commented area 212 213 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 213 214 ! ! Bottom boundary condition on tke … … 219 220 ! computational cost is justified 220 221 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 221 !222 222 ! en(bot) = (rn_ebb0/rau0)*0.5*sqrt(u_botfr^2+v_botfr^2) (min value rn_emin) 223 223 !CDIR NOVERRCHK … … 242 242 !! END DO 243 243 !! END DO 244 ! 244 !!bfr - end commented area 245 245 ! 246 246 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< … … 275 275 END DO 276 276 END DO 277 # if defined key_c1d278 hlc(:,:) = zhlc(:,:) * tmask(:,:,1) ! c1d configuration: save finite Langmuir Circulation depth279 # endif280 277 zcof = 0.016 / SQRT( zrhoa * zcdrag ) 281 278 !CDIR NOVERRCHK -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/opa.F90
r2329 r2382 36 36 !!---------------------------------------------------------------------- 37 37 38 USE step_oce ! Time stepping module definition38 USE step_oce ! module used in the ocean time stepping module 39 39 USE sbc_oce ! surface boundary condition: ocean 40 40 USE domcfg ! domain configuration (dom_cfg routine) … … 103 103 INTEGER :: istp ! time step index 104 104 !!---------------------------------------------------------------------- 105 105 ! 106 106 #if defined key_agrif 107 107 CALL Agrif_Init_Grids() ! AGRIF: set the meshes … … 247 247 ELSE ; CALL mpp_init2 ! eliminate land processors 248 248 ENDIF 249 !!gm c1d case can be moved in dom_init routine 250 #if defined key_c1d 251 CALL cor_c1d ! Coriolis defined at T-point 252 umask(:,:,:) = tmask(:,:,:) ! U, V and T-points are the same 253 vmask(:,:,:) = tmask(:,:,:) ! 254 #endif 255 !!gm c1d end 256 249 ! 257 250 ! ! General initialization 258 251 CALL phy_cst ! Physical constants … … 307 300 CALL trc_init 308 301 #endif 309 ! ! diagnostics302 ! ! Diagnostics 310 303 CALL iom_init ! iom_put initialization 311 304 IF( lk_floats ) CALL flo_init ! drifting Floats … … 314 307 CALL dia_hsb_init ! heat content, salt content and volume budgets 315 308 CALL trd_mod_init ! Mixed-layer/Vorticity/Integral constraints trends 316 IF( lk_diaobs ) THEN 317 CALL dia_obs_init! Initialize observational data318 CALL dia_obs( nit000 - 1 )! Observation operator for restart309 IF( lk_diaobs ) THEN ! Observation & model comparison 310 CALL dia_obs_init ! Initialize observational data 311 CALL dia_obs( nit000 - 1 ) ! Observation operator for restart 319 312 ENDIF 320 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments321 IF( lwp) WRITE(numout,*)'Euler time step switch is ', neuler322 313 ! ! Assimilation increments 314 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments 315 IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 323 316 ! 324 317 END SUBROUTINE opa_init -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/step.F90
r2370 r2382 32 32 USE trcstp ! passive tracer time-stepping (trc_stp routine) 33 33 #endif 34 #if defined key_agrif 35 USE agrif_opa_sponge ! Momemtum and tracers sponges 36 #endif 34 37 USE asminc ! assimilation increments (tra_asm_inc, dyn_asm_inc routines) 35 USE stpctl ! time stepping control (stp_ctl routine)36 USE restart ! ocean restart (rst_wri routine)37 USE prtctl ! Print control (prt_ctl routine)38 39 #if defined key_agrif40 USE agrif_opa_sponge ! Momemtum and tracers sponges41 #endif42 38 43 39 IMPLICIT NONE … … 116 112 ! VERTICAL PHYSICS 117 113 CALL zdf_bfr( kstp ) ! bottom friction 114 118 115 ! ! Vertical eddy viscosity and diffusivity coefficients 119 IF( lk_zdfric ) CALL zdf_ric ( kstp )! Richardson number dependent Kz120 IF( lk_zdftke ) CALL zdf_tke ( kstp )! TKE closure scheme for Kz121 IF( lk_zdfgls ) CALL zdf_gls ( kstp )! GLS closure scheme for Kz122 IF( lk_zdfkpp ) CALL zdf_kpp ( kstp )! KPP closure scheme for Kz123 IF( lk_zdfcst ) THEN! Constant Kz (reset avt, avm[uv] to the background value)116 IF( lk_zdfric ) CALL zdf_ric( kstp ) ! Richardson number dependent Kz 117 IF( lk_zdftke ) CALL zdf_tke( kstp ) ! TKE closure scheme for Kz 118 IF( lk_zdfgls ) CALL zdf_gls( kstp ) ! GLS closure scheme for Kz 119 IF( lk_zdfkpp ) CALL zdf_kpp( kstp ) ! KPP closure scheme for Kz 120 IF( lk_zdfcst ) THEN ! Constant Kz (reset avt, avm[uv] to the background value) 124 121 avt (:,:,:) = rn_avt0 * tmask(:,:,:) 125 122 avmu(:,:,:) = rn_avm0 * umask(:,:,:) … … 135 132 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) & 136 133 & CALL zdf_ddm( kstp ) ! double diffusive mixing 134 137 135 CALL zdf_mxl( kstp ) ! mixed layer depth 138 136 139 ! write tkeinformation in the restart file137 ! write TKE or GLS information in the restart file 140 138 IF( lrst_oce .AND. lk_zdftke ) CALL tke_rst( kstp, 'WRITE' ) 141 ! write gls information in the restart file142 139 IF( lrst_oce .AND. lk_zdfgls ) CALL gls_rst( kstp, 'WRITE' ) 143 140 ! … … 156 153 #if defined key_traldf_c2d 157 154 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient 158 # 155 #endif 159 156 160 157 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 179 176 ! Active tracers (ua, va used as workspace) 180 177 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 181 tsa(:,:,:,:) = 0.e0 178 tsa(:,:,:,:) = 0.e0 ! set tracer trends to zero 182 179 183 180 IF( ln_asmiau .AND. & … … 190 187 CALL tra_adv ( kstp ) ! horizontal & vertical advection 191 188 IF( n_cla == 1 ) CALL tra_cla ( kstp ) ! Cross Land Advection (Update Hor. advection) 192 IF( lk_zdfkpp )CALL tra_kpp ( kstp ) ! KPP non-local tracer fluxes189 IF( lk_zdfkpp ) CALL tra_kpp ( kstp ) ! KPP non-local tracer fluxes 193 190 CALL tra_ldf ( kstp ) ! lateral mixing 194 191 #if defined key_agrif … … 213 210 CALL tra_nxt ( kstp ) ! tracer fields at next time step 214 211 ENDIF 215 CALL tra_unswap 212 CALL tra_unswap ! udate T & S 3D arrays (to be suppressed) 216 213 217 214 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 222 219 223 220 IF( ln_asmiau .AND. & 224 & ln_dyninc ) CALL dyn_asm_inc( kstp )! apply dynamics assimilation increment221 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 225 222 CALL dyn_adv( kstp ) ! advection (vector or flux form) 226 223 CALL dyn_vor( kstp ) ! vorticity term including Coriolis … … 230 227 #endif 231 228 CALL dyn_hpg( kstp ) ! horizontal gradient of Hydrostatic pressure 232 CALL dyn_bfr( kstp ) 229 CALL dyn_bfr( kstp ) ! bottom friction 233 230 CALL dyn_zdf( kstp ) ! vertical diffusion 234 231 CALL dyn_spg( kstp, indic ) ! surface pressure gradient -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r2348 r2382 2 2 !!====================================================================== 3 3 !! *** MODULE step_oce *** 4 !! Time-stepping : module used for the oceantime stepping4 !! Ocean time-stepping : module used in both initialisation phase and time stepping 5 5 !!====================================================================== 6 !!---------------------------------------------------------------------- 7 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 8 !! $Id$ 9 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 6 !! History : 3.3 ! 2010-08 (C. Ethe) Original code - reorganisation of the initial phase 10 7 !!---------------------------------------------------------------------- 11 8 USE oce ! ocean dynamics and tracers variables … … 103 100 USE agrif_opa_sponge ! Momemtum and tracers sponges 104 101 #endif 102 !!---------------------------------------------------------------------- 103 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 104 !! $Id$ 105 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 105 106 !!====================================================================== 106 107 END MODULE step_oce
Note: See TracChangeset
for help on using the changeset viewer.