Changeset 5282 for branches/2015/dev_r5056_CMCC4_simplification
- Timestamp:
- 2015-05-18T17:19:50+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM
- Files:
-
- 3 added
- 10 deleted
- 111 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/ARCH/CMCC/arch-ifort_athena.fcm
r4865 r5282 15 15 16 16 17 %NCDF_INC -I$ NETCDF/include18 %NCDF_LIB -L$ NETCDF/lib -lnetcdf -lnetcdff17 %NCDF_INC -I${NETCDF}/include 18 %NCDF_LIB -L${NETCDF}/lib -lnetcdf -lnetcdff 19 19 %CPP cpp 20 20 %FC mpiifort -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/ARCH/CMCC/arch-ifort_athena_xios.fcm
r4997 r5282 32 32 33 33 # required modules 34 # module load INTEL/intel_xe_2013 NETCDF/netcdf-4.3_parallel NETCDF/parallel-netcdf-1.3.1 HDF5/hdf5-1.8.11_parallel34 # module load INTEL/intel_xe_2013 NETCDF/netcdf-4.3_parallel_shared NETCDF/parallel-netcdf-1.3.1 HDF5/hdf5-1.8.11_parallel_shared 35 35 36 36 # Environment variables set by user. Others should automatically define when loading modules. 37 # export XIOS=/users/home/models/nemo/xios 37 #export XIOS=/users/home/models/nemo/xios 38 #export HDF5=/users/home/opt/hdf5/hdf5-1.8.11_parallel_shared 39 #export NETCDF=/users/home/opt/netcdf/netcdf-4.3_parallel_shared 38 40 39 %NCDF_INC -I$ NETCDF/include -I$PNETCDF/include40 %NCDF_LIB -L$ NETCDF/lib -lnetcdff -lnetcdf -L$PNETCDF/lib -lpnetcdf41 %HDF5_INC -I$ PHDF5/include42 %HDF5_LIB -L$ PHDF5/lib -lhdf5_hl -lhdf541 %NCDF_INC -I${NETCDF}/include 42 %NCDF_LIB -L${NETCDF}/lib -lnetcdff -lnetcdf 43 %HDF5_INC -I$HDF5/include 44 %HDF5_LIB -L$HDF5/lib -lhdf5_hl -lhdf5 43 45 %XIOS_INC -I$XIOS/inc 44 46 %XIOS_LIB -L$XIOS/lib -lxios 45 47 %CPP cpp 46 48 %FC mpiifort 47 %FCFLAGS -r8 -O3 -xHost -fp-model source -traceback 49 %FCFLAGS -r8 -O3 -xHost -fp-model source -traceback ${CFLAGS} 48 50 %FFLAGS %FCFLAGS 49 51 %LD mpiifort 50 52 %FPPFLAGS -P -C -traditional 51 %LDFLAGS -lstdc++ -lz -lgpfs -lcurl 53 %LDFLAGS -lstdc++ -lz -lgpfs -lcurl ${LDFLAGS} 52 54 %AR ar 53 55 %ARFLAGS -r 54 56 %MK gmake 55 %USER_INC %XIOS_INC %NCDF_INC %HDF5_INC 57 %USER_INC %XIOS_INC %NCDF_INC %HDF5_INC 56 58 %USER_LIB %XIOS_LIB %NCDF_LIB %HDF5_LIB -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/AMM12/EXP00/namelist_cfg
r4839 r5282 50 50 !----------------------------------------------------------------------- 51 51 rn_rdt = 600. ! time step for the dynamics (and tracer if nn_acc=0) 52 rn_rdtmin = 600. ! minimum time step on tracers (used if nn_acc=1)53 rn_rdtmax = 600. ! maximum time step on tracers (used if nn_acc=1)54 rn_rdth = 600. ! depth variation of tracer time step (used if nn_acc=1)55 52 ppglam0 = 999999.0 ! longitude of first raw and column T-point (jphgr_msh = 1) 56 53 ppgphi0 = 999999.0 ! latitude of first raw and column T-point (jphgr_msh = 1) … … 422 419 !----------------------------------------------------------------------- 423 420 / 424 !-----------------------------------------------------------------------425 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)426 !-----------------------------------------------------------------------427 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/C1D_PAPA/EXP00/namelist_cfg
r4667 r5282 41 41 rn_bathy = 4198. ! value of the bathymetry. if (=0) bottom flat at jpkm1 42 42 nn_msh = 0 ! create (=1) a mesh file or not (=0) 43 rn_rdt = 360. ! time step for the dynamics (and tracer if nn_acc=0) 44 rn_rdtmin = 360. ! minimum time step on tracers (used if nn_acc=1) 45 rn_rdtmax = 360. ! maximum time step on tracers (used if nn_acc=1) 43 rn_rdt = 360. ! time step for the dynamics 46 44 jphgr_msh = 1 ! type of horizontal mesh 47 45 ppglam0 = -150.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 174 172 / 175 173 !----------------------------------------------------------------------- 176 &namcla ! cross land advection177 !-----------------------------------------------------------------------178 /179 !-----------------------------------------------------------------------180 174 &namobc ! open boundaries parameters ("key_obc") 181 175 !----------------------------------------------------------------------- … … 356 350 !----------------------------------------------------------------------- 357 351 / 358 !-----------------------------------------------------------------------359 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)360 !-----------------------------------------------------------------------361 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water362 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/GYRE/EXP00/namelist_cfg
r4990 r5282 43 43 !----------------------------------------------------------------------- 44 44 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 45 rn_rdt = 7200. ! time step for the dynamics (and tracer if nn_acc=0) 46 rn_rdtmin = 7200. ! minimum time step on tracers (used if nn_acc=1) 47 rn_rdtmax = 7200. ! maximum time step on tracers (used if nn_acc=1) 45 rn_rdt = 7200. ! time step for the dynamics 48 46 jphgr_msh = 5 ! type of horizontal mesh 49 47 ppglam0 = 0.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 156 154 / 157 155 !----------------------------------------------------------------------- 158 &namcla ! cross land advection159 !-----------------------------------------------------------------------160 /161 !-----------------------------------------------------------------------162 156 &namobc ! open boundaries parameters ("key_obc") 163 157 !----------------------------------------------------------------------- … … 376 370 !----------------------------------------------------------------------- 377 371 / 378 !-----------------------------------------------------------------------379 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)380 !-----------------------------------------------------------------------381 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water382 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/GYRE_BFM/EXP00/namelist_cfg
r4990 r5282 46 46 !----------------------------------------------------------------------- 47 47 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 48 rn_rdt = 7200. ! time step for the dynamics (and tracer if nn_acc=0) 49 rn_rdtmin = 7200. ! minimum time step on tracers (used if nn_acc=1) 50 rn_rdtmax = 7200. ! maximum time step on tracers (used if nn_acc=1) 48 rn_rdt = 7200. ! time step for the dynamics 51 49 jphgr_msh = 5 ! type of horizontal mesh 52 50 ppglam0 = 0.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 161 159 / 162 160 !----------------------------------------------------------------------- 163 &namcla ! cross land advection164 !-----------------------------------------------------------------------165 /166 !-----------------------------------------------------------------------167 161 &namobc ! open boundaries parameters ("key_obc") 168 162 !----------------------------------------------------------------------- … … 358 352 !----------------------------------------------------------------------- 359 353 / 360 !-----------------------------------------------------------------------361 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)362 !-----------------------------------------------------------------------363 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water364 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_cfg
r4990 r5282 36 36 !----------------------------------------------------------------------- 37 37 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 38 rn_rdt = 7200. ! time step for the dynamics (and tracer if nn_acc=0) 39 rn_rdtmin = 7200. ! minimum time step on tracers (used if nn_acc=1) 40 rn_rdtmax = 7200. ! maximum time step on tracers (used if nn_acc=1) 38 rn_rdt = 7200. ! time step for the dynamics 41 39 jphgr_msh = 5 ! type of horizontal mesh 42 40 ppglam0 = 0.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 104 102 / 105 103 !----------------------------------------------------------------------- 106 &namcla ! cross land advection107 !-----------------------------------------------------------------------108 /109 !-----------------------------------------------------------------------110 104 &nambfr ! bottom friction 111 105 !----------------------------------------------------------------------- … … 213 207 !----------------------------------------------------------------------- 214 208 / 215 !----------------------------------------------------------------------- 216 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 217 !----------------------------------------------------------------------- 218 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water 219 / 209 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/GYRE_XIOS/EXP00/namelist_cfg
r4373 r5282 40 40 !----------------------------------------------------------------------- 41 41 nn_bathy = 0 ! compute (=0) or read (=1) the bathymetry file 42 rn_rdt = 7200. ! time step for the dynamics (and tracer if nn_acc=0)42 rn_rdt = 7200. ! time step for the dynamics 43 43 ! nn_baro = 60 ! number of barotropic time step ("key_dynspg_ts") 44 rn_rdtmin = 7200. ! minimum time step on tracers (used if nn_acc=1)45 rn_rdtmax = 7200. ! maximum time step on tracers (used if nn_acc=1)46 44 jphgr_msh = 5 ! type of horizontal mesh 47 45 ppglam0 = 0.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 150 148 / 151 149 !----------------------------------------------------------------------- 152 &namcla ! cross land advection153 !-----------------------------------------------------------------------154 /155 !-----------------------------------------------------------------------156 150 &namobc ! open boundaries parameters ("key_obc") 157 151 !----------------------------------------------------------------------- … … 195 189 &nameos ! ocean physical parameters 196 190 !----------------------------------------------------------------------- 197 nn_eos = 2! type of equation of state and Brunt-Vaisala frequency191 nn_eos = 0 ! type of equation of state and Brunt-Vaisala frequency 198 192 / 199 193 !----------------------------------------------------------------------- … … 330 324 !----------------------------------------------------------------------- 331 325 / 332 !-----------------------------------------------------------------------333 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)334 !-----------------------------------------------------------------------335 ln_neptramp = .false. ! ramp down Neptune velocity in shallow water336 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ISOMIP/EXP00/namelist_cfg
r4924 r5282 5 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 !! 4 - lateral boundary (namlbc, nam cla, namobc, namagrif, nambdy, nambdy_tide)7 !! 4 - lateral boundary (namlbc, namobc, namagrif, nambdy, nambdy_tide) 8 8 !! 5 - bottom boundary (nambfr, nambbc, nambbl) 9 9 !! 6 - Tracer (nameos, namtra_adv, namtra_ldf, namtra_dmp) … … 41 41 nn_stock = 999999 ! frequency of creation of a restart file (modulo referenced to 1) 42 42 nn_write = 999999 ! frequency of write in the output file (modulo referenced to nn_it000) 43 ln_dimgnnn = .false. ! DIMG file format: 1 file for all processors (F) or by processor (T)44 43 ln_mskland = .false. ! mask land points in NetCDF outputs (costly: + ~15%) 45 44 ln_clobber = .false. ! clobber (overwrite) an existing file … … 99 98 rn_e3zps_rat= 0.1 ! rn_e3zps_min and rn_e3zps_rat*e3t, with 0<rn_e3zps_rat<1 100 99 ! 101 rn_rdt = 1800. ! time step for the dynamics (and tracer if nn_acc=0)100 rn_rdt = 1800. ! time step for the dynamics 102 101 rn_atfp = 0.1 ! asselin time filter parameter 103 nn_acc = 0 ! acceleration of convergence : =1 used, rdt < rdttra(k)104 ! =0, not used, rdt = rdttra105 rn_rdtmin = 1800. ! minimum time step on tracers (used if nn_acc=1)106 rn_rdtmax = 1800. ! maximum time step on tracers (used if nn_acc=1)107 rn_rdth = 800. ! depth variation of tracer time step (used if nn_acc=1)108 102 ln_crs = .false. ! Logical switch for coarsening module 109 103 jphgr_msh = 1 ! type of horizontal mesh … … 290 284 !!====================================================================== 291 285 !! namlbc lateral momentum boundary condition 292 !! namcla cross land advection293 286 !! namobc open boundaries parameters ("key_obc") 294 287 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") … … 302 295 rn_shlat = 0. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat 303 296 ! free slip ! partial slip ! no slip ! strong slip 304 /305 !-----------------------------------------------------------------------306 &namcla ! cross land advection307 !-----------------------------------------------------------------------308 297 / 309 298 !----------------------------------------------------------------------- … … 420 409 ! (normally=0; not used with Griffies) 421 410 rn_slpmax = 0.01 ! slope limit 422 rn_chsmag = 1. ! multiplicative factor in Smagorinsky diffusivity423 rn_smsh = 1. ! Smagorinsky diffusivity: = 0 - use only sheer424 411 rn_aht_m = 100. ! upper limit or stability criteria for lateral eddy diffusivity (m2/s) 425 412 / … … 482 469 rn_ahmb_0 = 0. ! background eddy viscosity for ldf_iso [m2/s] 483 470 rn_ahm_0_blp = 0. ! horizontal bilaplacian eddy viscosity [m4/s] 484 rn_cmsmag_1 = 3. ! constant in laplacian Smagorinsky viscosity485 rn_cmsmag_2 = 3 ! constant in bilaplacian Smagorinsky viscosity486 rn_cmsh = 1. ! 1 or 0 , if 0 -use only shear for Smagorinsky viscosity487 471 rn_ahm_m_blp = -1.e12 ! upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 488 472 rn_ahm_m_lap = 600. ! upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) … … 659 643 !----------------------------------------------------------------------- 660 644 / 661 !-----------------------------------------------------------------------662 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)663 !-----------------------------------------------------------------------664 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist_cfg
r4990 r5282 50 50 ppkth2 = 999999. ! 51 51 ppacr2 = 999999. ! 52 rn_rdt = 2880. ! time step for the dynamics (and tracer if nn_acc=0) 53 rn_rdtmin = 14400. ! minimum time step on tracers (used if nn_acc=1) 54 rn_rdtmax = 14400. ! maximum time step on tracers (used if nn_acc=1) 52 rn_rdt = 2880. ! time step for the dynamics 55 53 / 56 54 !----------------------------------------------------------------------- … … 117 115 / 118 116 !----------------------------------------------------------------------- 119 &namcla ! cross land advection120 !-----------------------------------------------------------------------121 /122 !-----------------------------------------------------------------------123 117 &namagrif ! AGRIF zoom ("key_agrif") 124 118 !----------------------------------------------------------------------- … … 218 212 / 219 213 !----------------------------------------------------------------------- 220 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)221 !-----------------------------------------------------------------------222 /223 !-----------------------------------------------------------------------224 214 &namobs ! observation usage ('key_diaobs') 225 215 !----------------------------------------------------------------------- -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist_cfg
r4990 r5282 93 93 / 94 94 !----------------------------------------------------------------------- 95 &namcla ! cross land advection96 !-----------------------------------------------------------------------97 /98 !-----------------------------------------------------------------------99 95 &nambfr ! bottom friction 100 96 !----------------------------------------------------------------------- … … 185 181 / 186 182 !----------------------------------------------------------------------- 187 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)188 !-----------------------------------------------------------------------189 /190 !-----------------------------------------------------------------------191 183 &namobs ! observation usage ('key_diaobs') 192 184 !----------------------------------------------------------------------- -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/1_namelist_cfg
r4990 r5282 50 50 ppkth2 = 999999. ! 51 51 ppacr2 = 999999. ! 52 rn_rdt = 2880. ! time step for the dynamics (and tracer if nn_acc=0) 53 rn_rdtmin = 14400. ! minimum time step on tracers (used if nn_acc=1) 54 rn_rdtmax = 14400. ! maximum time step on tracers (used if nn_acc=1) 52 rn_rdt = 2880. ! time step for the dynamics 55 53 / 56 54 !----------------------------------------------------------------------- … … 117 115 / 118 116 !----------------------------------------------------------------------- 119 &namcla ! cross land advection120 !-----------------------------------------------------------------------121 /122 !-----------------------------------------------------------------------123 117 &namagrif ! AGRIF zoom ("key_agrif") 124 118 !----------------------------------------------------------------------- -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/namelist_cfg
r4995 r5282 93 93 / 94 94 !----------------------------------------------------------------------- 95 &namcla ! cross land advection96 !-----------------------------------------------------------------------97 /98 !-----------------------------------------------------------------------99 95 &nambfr ! bottom friction 100 96 !----------------------------------------------------------------------- … … 187 183 !----------------------------------------------------------------------- 188 184 / 189 !-----------------------------------------------------------------------190 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)191 !-----------------------------------------------------------------------192 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/1_namelist_cfg
r4147 r5282 5 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 !! 4 - lateral boundary (namlbc, nam cla, namobc, namagrif, nambdy, nambdy_tide)7 !! 4 - lateral boundary (namlbc, namobc, namagrif, nambdy, nambdy_tide) 8 8 !! 5 - bottom boundary (nambfr, nambbc, nambbl) 9 9 !! 6 - Tracer (nameos, namtra_adv, namtra_ldf, namtra_dmp) … … 40 40 nn_stock = 10950 ! frequency of creation of a restart file (modulo referenced to 1) 41 41 nn_write = 10950 ! frequency of write in the output file (modulo referenced to nn_it000) 42 ln_dimgnnn = .false. ! DIMG file format: 1 file for all processors (F) or by processor (T)43 42 ln_mskland = .false. ! mask land points in NetCDF outputs (costly: + ~15%) 44 43 ln_clobber = .false. ! clobber (overwrite) an existing file … … 85 84 rn_e3zps_rat= 0.1 ! rn_e3zps_min and rn_e3zps_rat*e3t, with 0<rn_e3zps_rat<1 86 85 ! 87 rn_rdt = 2880. ! time step for the dynamics (and tracer if nn_acc=0)86 rn_rdt = 2880. ! time step for the dynamics 88 87 nn_baro = 64 ! number of barotropic time step ("key_dynspg_ts") 89 88 rn_atfp = 0.1 ! asselin time filter parameter 90 nn_acc = 0 ! acceleration of convergence : =1 used, rdt < rdttra(k)91 ! =0, not used, rdt = rdttra92 rn_rdtmin = 14400. ! minimum time step on tracers (used if nn_acc=1)93 rn_rdtmax = 14400. ! maximum time step on tracers (used if nn_acc=1)94 rn_rdth = 800. ! depth variation of tracer time step (used if nn_acc=1)95 89 / 96 90 !----------------------------------------------------------------------- … … 302 296 !!====================================================================== 303 297 !! namlbc lateral momentum boundary condition 304 !! namcla cross land advection305 298 !! namobc open boundaries parameters ("key_obc") 306 299 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") … … 314 307 rn_shlat = 2. ! shlat = 0 ! 0 < shlat < 2 ! shlat = 2 ! 2 < shlat 315 308 ! free slip ! partial slip ! no slip ! strong slip 316 /317 !-----------------------------------------------------------------------318 &namcla ! cross land advection319 !-----------------------------------------------------------------------320 nn_cla = 0 ! advection between 2 ocean pts separates by land321 309 / 322 310 !----------------------------------------------------------------------- -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/namelist_cfg
r4370 r5282 132 132 / 133 133 !----------------------------------------------------------------------- 134 &namcla ! cross land advection135 !-----------------------------------------------------------------------136 /137 !-----------------------------------------------------------------------138 134 &namobc ! open boundaries parameters ("key_obc") 139 135 !----------------------------------------------------------------------- … … 291 287 !----------------------------------------------------------------------- 292 288 / 293 !-----------------------------------------------------------------------294 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)295 !-----------------------------------------------------------------------296 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_cfg
r4370 r5282 93 93 / 94 94 !----------------------------------------------------------------------- 95 &namcla ! cross land advection96 !-----------------------------------------------------------------------97 /98 !-----------------------------------------------------------------------99 95 &nambfr ! bottom friction 100 96 !----------------------------------------------------------------------- … … 184 180 !----------------------------------------------------------------------- 185 181 / 186 !-----------------------------------------------------------------------187 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)188 !-----------------------------------------------------------------------189 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_cfg
r4370 r5282 32 32 !----------------------------------------------------------------------- 33 33 nn_msh = 1 ! create (=1) a mesh file or not (=0) 34 rn_rdt = 21600. ! time step for the dynamics (and tracer if nn_acc=0) 35 rn_rdtmin = 21600. ! minimum time step on tracers (used if nn_acc=1) 36 rn_rdtmax = 21600. ! maximum time step on tracers (used if nn_acc=1) 34 rn_rdt = 21600. ! time step for the dynamics 37 35 jphgr_msh = 0 ! type of horizontal mesh 38 36 ppglam0 = 999999.0 ! longitude of first raw and column T-point (jphgr_msh = 1) … … 77 75 !----------------------------------------------------------------------- 78 76 / 79 80 !-----------------------------------------------------------------------81 &namcla ! cross land advection82 !-----------------------------------------------------------------------83 /84 77 !----------------------------------------------------------------------- 85 78 &nambbl ! bottom boundary layer scheme -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/SHARED/namelist_ref
r5029 r5282 5 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 !! 4 - lateral boundary (namlbc, nam cla, namobc, namagrif, nambdy, nambdy_tide)7 !! 4 - lateral boundary (namlbc, namobc, namagrif, nambdy, nambdy_tide) 8 8 !! 5 - bottom boundary (nambfr, nambbc, nambbl) 9 9 !! 6 - Tracer (nameos, namtra_adv, namtra_ldf, namtra_dmp) … … 41 41 nn_stock = 5475 ! frequency of creation of a restart file (modulo referenced to 1) 42 42 nn_write = 5475 ! frequency of write in the output file (modulo referenced to nn_it000) 43 ln_dimgnnn = .false. ! DIMG file format: 1 file for all processors (F) or by processor (T)44 43 ln_mskland = .false. ! mask land points in NetCDF outputs (costly: + ~15%) 45 44 ln_clobber = .false. ! clobber (overwrite) an existing file … … 121 120 rn_e3zps_rat= 0.1 ! rn_e3zps_min and rn_e3zps_rat*e3t, with 0<rn_e3zps_rat<1 122 121 ! 123 rn_rdt = 5760. ! time step for the dynamics (and tracer if nn_acc=0)122 rn_rdt = 5760. ! time step for the dynamics 124 123 rn_atfp = 0.1 ! asselin time filter parameter 125 nn_acc = 0 ! acceleration of convergence : =1 used, rdt < rdttra(k)126 ! =0, not used, rdt = rdttra127 rn_rdtmin = 28800. ! minimum time step on tracers (used if nn_acc=1)128 rn_rdtmax = 28800. ! maximum time step on tracers (used if nn_acc=1)129 rn_rdth = 800. ! depth variation of tracer time step (used if nn_acc=1)130 124 ln_crs = .false. ! Logical switch for coarsening module 131 125 jphgr_msh = 0 ! type of horizontal mesh … … 526 520 !!====================================================================== 527 521 !! namlbc lateral momentum boundary condition 528 !! namcla cross land advection529 522 !! namobc open boundaries parameters ("key_obc") 530 523 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") … … 539 532 ! free slip ! partial slip ! no slip ! strong slip 540 533 ln_vorlat = .false. ! consistency of vorticity boundary condition with analytical eqs. 541 /542 !-----------------------------------------------------------------------543 &namcla ! cross land advection544 !-----------------------------------------------------------------------545 nn_cla = 0 ! advection between 2 ocean pts separates by land546 534 / 547 535 !----------------------------------------------------------------------- … … 783 771 ! (normally=0; not used with Griffies) 784 772 rn_slpmax = 0.01 ! slope limit 785 rn_chsmag = 1. ! multiplicative factor in Smagorinsky diffusivity786 rn_smsh = 1. ! Smagorinsky diffusivity: = 0 - use only sheer787 773 rn_aht_m = 2000. ! upper limit or stability criteria for lateral eddy diffusivity (m2/s) 788 774 / … … 876 862 rn_ahmb_0 = 0. ! background eddy viscosity for ldf_iso [m2/s] 877 863 rn_ahm_0_blp = 0. ! horizontal bilaplacian eddy viscosity [m4/s] 878 rn_cmsmag_1 = 3. ! constant in laplacian Smagorinsky viscosity879 rn_cmsmag_2 = 3 ! constant in bilaplacian Smagorinsky viscosity880 rn_cmsh = 1. ! 1 or 0 , if 0 -use only shear for Smagorinsky viscosity881 864 rn_ahm_m_blp = -1.e12 ! upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 882 865 rn_ahm_m_lap = 40000. ! upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) … … 1259 1242 cn_dir_cdg = './' ! root directory for the location of drag coefficient files 1260 1243 / 1261 !-----------------------------------------------------------------------1262 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed)1263 !-----------------------------------------------------------------------1264 ! Suggested lengthscale values are those of Eby & Holloway (1994) for a coarse model1265 ln_neptsimp = .false. ! yes/no use simplified neptune1266 1267 ln_smooth_neptvel = .false. ! yes/no smooth zunep, zvnep1268 rn_tslse = 1.2e4 ! value of lengthscale L at the equator1269 rn_tslsp = 3.0e3 ! value of lengthscale L at the pole1270 ! Specify whether to ramp down the Neptune velocity in shallow1271 ! water, and if so the depth range controlling such ramping down1272 ln_neptramp = .true. ! ramp down Neptune velocity in shallow water1273 rn_htrmin = 100.0 ! min. depth of transition range1274 rn_htrmax = 200.0 ! max. depth of transition range1275 / -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/CONFIG/cfg.txt
r4990 r5282 1 GYRE_PISCES OPA_SRC TOP_SRC2 1 ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 3 2 GYRE_XIOS OPA_SRC -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90
r4624 r5282 88 88 CALL ice_run_2 ! read in namelist some run parameters 89 89 ! 90 rdt_ice = nn_fsbc * rdt tra(1)! sea-ice time step90 rdt_ice = nn_fsbc * rdt ! sea-ice time step 91 91 numit = nit000 - 1 92 92 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_2/limrst_2.F90
r2528 r5282 67 67 WRITE(numout,*) 68 68 SELECT CASE ( jprstlib ) 69 CASE ( jprstdimg ) ; WRITE(numout,*) ' open ice restart binary file: '//clname70 69 CASE DEFAULT ; WRITE(numout,*) ' open ice restart NetCDF file: '//clname 71 70 END SELECT … … 185 184 ENDIF 186 185 187 IF ( jprstlib == jprstdimg ) THEN188 ! eventually read netcdf file (monobloc) for restarting on different number of processors189 ! if {cn_icerst_in}.nc exists, then set jlibalt to jpnf90190 INQUIRE( FILE = TRIM(cn_icerst_in)//'.nc', EXIST = llok )191 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF192 ENDIF193 194 186 CALL iom_open ( cn_icerst_in, numrir, kiolib = jlibalt ) 195 187 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90
r4696 r5282 85 85 86 86 #if ! defined key_iomput 87 # if defined key_dimgout88 !!----------------------------------------------------------------------89 !! 'key_dimgout' Direct Access file90 !!----------------------------------------------------------------------91 # include "limwri_dimg_2.h90"92 # else93 87 SUBROUTINE lim_wri_2( kt ) 94 88 !!------------------------------------------------------------------- … … 215 209 ! 216 210 END SUBROUTINE lim_wri_2 217 218 #endif219 211 220 212 SUBROUTINE lim_wri_init_2 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_3/iceini.F90
r4873 r5282 82 82 CALL lim_thd_sal_init ! set ice salinity parameters 83 83 ! 84 rdt_ice = nn_fsbc * rdt tra(1)! sea-ice timestep84 rdt_ice = nn_fsbc * rdt ! sea-ice timestep 85 85 r1_rdtice = 1._wp / rdt_ice ! sea-ice timestep inverse 86 86 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90
r4990 r5282 73 73 WRITE(numout,*) 74 74 SELECT CASE ( jprstlib ) 75 CASE ( jprstdimg ) ; WRITE(numout,*) ' open ice restart binary file: '//clname76 75 CASE DEFAULT ; WRITE(numout,*) ' open ice restart NetCDF file: '//clname 77 76 END SELECT … … 326 325 ENDIF 327 326 328 IF ( jprstlib == jprstdimg ) THEN329 ! eventually read netcdf file (monobloc) for restarting on different number of processors330 ! if {cn_icerst_in}.nc exists, then set jlibalt to jpnf90331 INQUIRE( FILE = TRIM(cn_icerst_in)//'.nc', EXIST = llok )332 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF333 ENDIF334 335 327 CALL iom_open ( cn_icerst_in, numrir, kiolib = jprstlib ) 336 328 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r4990 r5282 42 42 CONTAINS 43 43 44 #if defined key_dimgout45 # include "limwri_dimg.h90"46 #else47 44 48 45 SUBROUTINE lim_wri( kindic ) … … 280 277 281 278 END SUBROUTINE lim_wri 282 #endif283 279 284 280 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OFF_SRC/domain.F90
r4990 r5282 69 69 ENDIF 70 70 71 CALL dom_nam ! read namelist ( namrun, namdom , namcla)71 CALL dom_nam ! read namelist ( namrun, namdom ) 72 72 CALL dom_zgr ! Vertical mesh and bathymetry option 73 73 CALL dom_rea ! Create a domain file … … 112 112 !! ** input : - namrun namelist 113 113 !! - namdom namelist 114 !! - namcla namelist115 114 !!---------------------------------------------------------------------- 116 115 USE ioipsl … … 118 117 NAMELIST/namrun/ nn_no , cn_exp , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl, & 119 118 & nn_it000, nn_itend , nn_date0 , nn_leapy , nn_istate , nn_stock , & 120 & nn_write, ln_ dimgnnn, ln_mskland , ln_clobber , nn_chunksz, nn_euler119 & nn_write, ln_mskland , ln_clobber , nn_chunksz, nn_euler 121 120 NAMELIST/namdom/ nn_bathy , rn_bathy, rn_e3zps_min, rn_e3zps_rat, nn_msh , rn_hmin, & 122 & nn_acc , rn_atfp , rn_rdt , rn_rdtmin , & 123 & rn_rdtmax, rn_rdth , nn_baro , nn_closea , ln_crs, & 124 & jphgr_msh, & 121 & rn_atfp , rn_rdt , nn_baro , nn_closea , ln_crs, jphgr_msh, & 125 122 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 126 123 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 127 124 & ppa2, ppkth2, ppacr2 128 NAMELIST/namcla/ nn_cla129 125 #if defined key_netcdf4 130 126 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 157 153 WRITE(numout,*) ' frequency of restart file nn_stock = ', nn_stock 158 154 WRITE(numout,*) ' frequency of output file nn_write = ', nn_write 159 WRITE(numout,*) ' multi file dimgout ln_dimgnnn = ', ln_dimgnnn160 155 WRITE(numout,*) ' mask land points ln_mskland = ', ln_mskland 161 156 WRITE(numout,*) ' overwrite an existing file ln_clobber = ', ln_clobber … … 188 183 ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 189 184 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 190 adatrj = ( REAL( nit000-1, wp ) * rdt tra(1)) / rday185 adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 191 186 192 187 #if defined key_agrif … … 233 228 WRITE(numout,*) ' asselin time filter parameter rn_atfp = ', rn_atfp 234 229 WRITE(numout,*) ' time-splitting: nb of sub time-step nn_baro = ', nn_baro 235 WRITE(numout,*) ' acceleration of converge nn_acc = ', nn_acc236 WRITE(numout,*) ' nn_acc=1: surface tracer rdt rn_rdtmin = ', rn_rdtmin237 WRITE(numout,*) ' bottom tracer rdt rdtmax = ', rn_rdtmax238 WRITE(numout,*) ' depth of transition rn_rdth = ', rn_rdth239 230 WRITE(numout,*) ' suppression of closed seas (=0) nn_closea = ', nn_closea 240 231 WRITE(numout,*) ' type of horizontal mesh jphgr_msh = ', jphgr_msh … … 262 253 e3zps_rat = rn_e3zps_rat 263 254 nmsh = nn_msh 264 nacc = nn_acc265 255 atfp = rn_atfp 266 256 rdt = rn_rdt 267 rdtmin = rn_rdtmin268 rdtmax = rn_rdtmin269 rdth = rn_rdth270 271 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection272 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)273 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )274 275 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection276 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )277 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )278 IF(lwm) WRITE( numond, namcla )279 280 IF(lwp) THEN281 WRITE(numout,*)282 WRITE(numout,*) ' Namelist namcla'283 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla284 ENDIF285 286 257 #if defined key_netcdf4 287 258 ! ! NetCDF 4 case ("key_netcdf4" defined) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r4998 r5282 208 208 ENDIF 209 209 210 IF ( nacc /= 0 ) &211 & CALL ctl_stop( ' nacc /= 0 and key_asminc :', &212 & ' Assimilation increments have only been implemented', &213 & ' for synchronous time stepping' )214 210 215 211 IF ( ( ln_asmdin ).AND.( ln_asmiau ) ) & -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90
r4758 r5282 316 316 ENDIF 317 317 318 IF ( nsec_day == NINT(0.5_wp * rdt tra(1)) .AND. zflag==1 ) THEN318 IF ( nsec_day == NINT(0.5_wp * rdt) .AND. zflag==1 ) THEN 319 319 ! 320 320 kt_tide = kt … … 431 431 ! We refresh nodal factors every day below 432 432 ! This should be done somewhere else 433 IF ( nsec_day == NINT(0.5_wp * rdt tra(1)) .AND. lk_first_btstp ) THEN434 !433 IF ( nsec_day == NINT(0.5_wp * rdt) .AND. lk_first_btstp ) THEN 434 ! 435 435 kt_tide = kt 436 436 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90
r4667 r5282 44 44 !!---------------------------------------------------------------------- 45 45 NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin, & 46 & nn_acc , rn_atfp , rn_rdt , rn_rdtmin , & 47 & rn_rdtmax, rn_rdth , nn_closea , ln_crs, & 48 & jphgr_msh, & 46 & rn_atfp , rn_rdt,nn_closea , ln_crs, jphgr_msh, & 49 47 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 50 48 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90
r4149 r5282 52 52 !! 2. At time of output, rescale [1] by dimension and time 53 53 !! to yield the spatial and temporal average. 54 !! See. diawri_dimg.h90,sbcmod.F9054 !! See. sbcmod.F90 55 55 !! 56 56 !! ** Method : -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r4990 r5282 21 21 USE timing ! preformance summary 22 22 USE wrk_nemo ! working arrays 23 USE fldread ! type FLD_N 24 USE phycst ! physical constant 25 USE in_out_manager ! I/O manager 23 26 24 27 IMPLICIT NONE … … 197 200 REAL(wp) :: zztmp 198 201 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zsaldta ! Jan/Dec levitus salinity 202 ! reading initial file 203 LOGICAL :: ln_tsd_init !: T & S data flag 204 LOGICAL :: ln_tsd_tradmp !: internal damping toward input data flag 205 CHARACTER(len=100) :: cn_dir 206 TYPE(FLD_N) :: sn_tem,sn_sal 207 INTEGER :: ios=0 208 209 NAMELIST/namtsd/ ln_tsd_init,ln_tsd_tradmp,cn_dir,sn_tem,sn_sal 210 ! 211 212 REWIND( numnam_ref ) ! Namelist namtsd in reference namelist : 213 READ ( numnam_ref, namtsd, IOSTAT = ios, ERR = 901) 214 901 IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtsd in reference namelist for dia_ar5', lwp ) 215 REWIND( numnam_cfg ) ! Namelist namtsd in configuration namelist : Parameters of the run 216 READ ( numnam_cfg, namtsd, IOSTAT = ios, ERR = 902 ) 217 902 IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtsd in configuration namelist for dia_ar5', lwp ) 218 IF(lwm) WRITE ( numond, namtsd ) 219 ! 199 220 !!---------------------------------------------------------------------- 200 221 ! … … 216 237 END DO 217 238 IF( lk_mpp ) CALL mpp_sum( vol0 ) 218 219 CALL iom_open ( 'data_1m_salinity_nomask', inum )220 CALL iom_get ( inum, jpdom_data, 'vosaline', zsaldta(:,:,:,1), 1 )221 CALL iom_get ( inum, jpdom_data, 'vosaline', zsaldta(:,:,:,2), 12 )239 240 CALL iom_open ( TRIM( cn_dir )//TRIM(sn_sal%clname), inum ) 241 CALL iom_get ( inum, jpdom_data, TRIM(sn_sal%clvar), zsaldta(:,:,:,1), 1 ) 242 CALL iom_get ( inum, jpdom_data, TRIM(sn_sal%clvar), zsaldta(:,:,:,2), 12 ) 222 243 CALL iom_close( inum ) 223 244 sn0(:,:,:) = 0.5_wp * ( zsaldta(:,:,:,1) + zsaldta(:,:,:,2) ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90
r4990 r5282 115 115 116 116 ! Conversion in m3 117 a_fwf = a_fwf * rdt tra(1) * 1.e-3117 a_fwf = a_fwf * rdt * 1.e-3 118 118 119 119 ! fwf correction to bring back the mean ssh to zero … … 382 382 WRITE(inum,*) 383 383 WRITE(inum,*) 'Net freshwater budget ' 384 WRITE(inum,9010) ' fwf = ',a_fwf, ' m3 =', a_fwf /(FLOAT(nitend-nit000+1)*rdt tra(1)) * 1.e-6,' Sv'384 WRITE(inum,9010) ' fwf = ',a_fwf, ' m3 =', a_fwf /(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv' 385 385 WRITE(inum,*) 386 386 WRITE(inum,9010) ' zarea =',zarea -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90
r4990 r5282 23 23 USE ioipsl ! NetCDF IPSL library 24 24 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 25 USE diadimg ! To write dimg26 25 USE timing ! preformance summary 27 26 USE wrk_nemo ! working arrays … … 388 387 !!---------------------------------------------------------------------- 389 388 390 #if defined key_dimgout 391 cdfile_name_T = TRIM(cexper)//'_Tidal_harmonics_gridT.dimgproc' 392 cdfile_name_U = TRIM(cexper)//'_Tidal_harmonics_gridU.dimgproc' 393 cdfile_name_V = TRIM(cexper)//'_Tidal_harmonics_gridV.dimgproc' 394 #endif 389 !#if 390 !#endif 395 391 396 392 IF(lwp) WRITE(numout,*) ' ' 397 393 IF(lwp) WRITE(numout,*) 'dia_wri_harm : Write harmonic analysis results' 398 #if defined key_dimgout 399 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~ Output files: ', TRIM(cdfile_name_T) 400 IF(lwp) WRITE(numout,*) ' ', TRIM(cdfile_name_U) 401 IF(lwp) WRITE(numout,*) ' ', TRIM(cdfile_name_V) 402 #endif 394 !#if 395 !#endif 403 396 IF(lwp) WRITE(numout,*) ' ' 404 397 … … 406 399 !///////////// 407 400 ! 408 #if defined key_dimgout 409 cltext='Elevation amplitude and phase' 410 CALL dia_wri_dimg(TRIM(cdfile_name_T), TRIM(cltext), out_eta, 2*nb_ana, '2') 411 #else 401 !#if 402 !#else 412 403 DO jh = 1, nb_ana 413 404 CALL iom_put( TRIM(tname(jh))//'x', out_eta(:,:,jh) ) 414 405 CALL iom_put( TRIM(tname(jh))//'y', out_eta(:,:,nb_ana+jh) ) 415 406 END DO 416 #endif407 !#endif 417 408 418 409 ! B) ubar 419 410 !///////// 420 411 ! 421 #if defined key_dimgout 422 cltext='ubar amplitude and phase' 423 CALL dia_wri_dimg(TRIM(cdfile_name_U), TRIM(cltext), out_u, 2*nb_ana, '2') 424 #else 412 !#if 413 !#else 425 414 DO jh = 1, nb_ana 426 415 CALL iom_put( TRIM(tname(jh))//'x_u', out_u(:,:,jh) ) 427 416 CALL iom_put( TRIM(tname(jh))//'y_u', out_u(:,:,nb_ana+jh) ) 428 417 END DO 429 #endif418 !#endif 430 419 431 420 ! C) vbar 432 421 !///////// 433 422 ! 434 #if defined key_dimgout 435 cltext='vbar amplitude and phase' 436 CALL dia_wri_dimg(TRIM(cdfile_name_V), TRIM(cltext), out_v, 2*nb_ana, '2') 437 #else 423 !#if 424 !#else 438 425 DO jh = 1, nb_ana 439 426 CALL iom_put( TRIM(tname(jh))//'x_v', out_v(:,:,jh ) ) 440 427 CALL iom_put( TRIM(tname(jh))//'y_v', out_v(:,:,jh+nb_ana) ) 441 428 END DO 442 #endif429 !#endif 443 430 ! 444 431 END SUBROUTINE dia_wri_harm -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/dianam.F90
r2528 r5282 72 72 73 73 IF( llfsec .OR. kfreq < 0 ) THEN ; inbsec = kfreq ! output frequency already in seconds 74 ELSE ; inbsec = kfreq * NINT( rdt tra(1)) ! from time-step to seconds74 ELSE ; inbsec = kfreq * NINT( rdt ) ! from time-step to seconds 75 75 ENDIF 76 76 iddss = NINT( rday ) ! number of seconds in 1 day … … 116 116 ! date of the beginning and the end of the run 117 117 118 zdrun = rdt tra(1)/ rday * REAL( nitend - nit000, wp ) ! length of the run in days119 zjul = fjulday - rdt tra(1)/ rday118 zdrun = rdt / rday * REAL( nitend - nit000, wp ) ! length of the run in days 119 zjul = fjulday - rdt / rday 120 120 CALL ju2ymds( zjul , iyear1, imonth1, iday1, zsec1 ) ! year/month/day of the beginning of run 121 121 CALL ju2ymds( zjul + zdrun, iyear2, imonth2, iday2, zsec2 ) ! year/month/day of the end of run -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r4990 r5282 585 585 niter = ( nit000 - 1 ) / nn_fptr 586 586 zdt = rdt 587 IF( nacc == 1 ) zdt = rdtmin588 587 ! 589 588 IF(lwp) THEN -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r4990 r5282 43 43 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 44 44 USE in_out_manager ! I/O manager 45 USE diadimg ! dimg direct access file format output46 45 USE iom 47 46 USE ioipsl … … 97 96 END FUNCTION dia_wri_alloc 98 97 99 #if defined key_dimgout100 !!----------------------------------------------------------------------101 !! 'key_dimgout' DIMG output file102 !!----------------------------------------------------------------------103 # include "diawri_dimg.h90"104 105 #else106 98 !!---------------------------------------------------------------------- 107 99 !! Default option NetCDF output file 108 100 !!---------------------------------------------------------------------- 109 # 101 #if defined key_iomput 110 102 !!---------------------------------------------------------------------- 111 103 !! 'key_iomput' use IOM library … … 418 410 ! Define frequency of output and means 419 411 zdt = rdt 420 IF( nacc == 1 ) zdt = rdtmin421 412 IF( ln_mskland ) THEN ; clop = "only(x)" ! put 1.e+20 on land (very expensive!!) 422 413 ELSE ; clop = "x" ! no use of the mask value (require less cpu time) … … 762 753 IF( lk_vvl ) THEN 763 754 zw3d(:,:,:) = ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 764 CALL histwrite( nid_T, "vovvle3t", it, fse3t_n 755 CALL histwrite( nid_T, "vovvle3t", it, fse3t_n(:,:,:) , ndim_T , ndex_T ) ! level thickness 765 756 CALL histwrite( nid_T, "vovvldep", it, fsdept_n(:,:,:) , ndim_T , ndex_T ) ! t-point depth 766 757 CALL histwrite( nid_T, "vovvldef", it, zw3d , ndim_T , ndex_T ) ! level thickness deformation … … 914 905 ! 915 906 END SUBROUTINE dia_wri 916 # 917 918 #endif 907 #endif 908 909 919 910 920 911 SUBROUTINE dia_wri_state( cdfile_name, kt ) … … 1035 1026 ! ----------------- 1036 1027 CALL histclo( id_i ) 1037 #if ! defined key_iomput && ! defined key_dimgout1028 #if ! defined key_iomput 1038 1029 IF( ninist /= 1 ) THEN 1039 1030 CALL histclo( nid_T ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90
r5002 r5282 20 20 !! 21 21 !! we suppose that the time step is deviding the number of second of in a day 22 !! ---> MOD( rday, rdt tra(1)) == 022 !! ---> MOD( rday, rdt ) == 0 23 23 !! 24 24 !! ----------- WARNING ----------- … … 73 73 !!---------------------------------------------------------------------- 74 74 ! 75 ! all calendar staff is based on the fact that MOD( rday, rdt tra(1)) == 076 IF( MOD( rday , rdt tra(1)) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' )75 ! all calendar staff is based on the fact that MOD( rday, rdt ) == 0 76 IF( MOD( rday , rdt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 77 77 IF( MOD( rday , 2. ) /= 0. ) CALL ctl_stop( 'the number of second of in a day must be an even number' ) 78 IF( MOD( rdt tra(1), 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' )78 IF( MOD( rdt, 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' ) 79 79 nsecd = NINT(rday ) 80 80 nsecd05 = NINT(0.5 * rday ) 81 ndt = NINT( rdt tra(1))82 ndt05 = NINT(0.5 * rdt tra(1))81 ndt = NINT( rdt) 82 ndt05 = NINT(0.5 * rdt) 83 83 84 84 IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) … … 218 218 nsec_week = nsec_week + ndt 219 219 nsec_day = nsec_day + ndt 220 adatrj = adatrj + rdt tra(1)/ rday221 fjulday = fjulday + rdt tra(1)/ rday220 adatrj = adatrj + rdt / rday 221 fjulday = fjulday + rdt / rday 222 222 IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec ) fjulday = REAL(NINT(fjulday),wp) ! avoid truncation error 223 223 IF( ABS(adatrj - REAL(NINT(adatrj ),wp)) < zprec ) adatrj = REAL(NINT(adatrj ),wp) ! avoid truncation error … … 334 334 ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 335 335 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 336 adatrj = ( REAL( nit000-1, wp ) * rdt tra(1)) / rday336 adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 337 337 ! note this is wrong if time step has changed during run 338 338 ENDIF … … 340 340 ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 341 341 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 342 adatrj = ( REAL( nit000-1, wp ) * rdt tra(1)) / rday342 adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 343 343 ENDIF 344 344 IF( ABS(adatrj - REAL(NINT(adatrj),wp)) < 0.1 / rday ) adatrj = REAL(NINT(adatrj),wp) ! avoid truncation error -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r4990 r5282 35 35 REAL(wp), PUBLIC :: rn_e3zps_rat !: minimum thickness ration for partial steps 36 36 INTEGER , PUBLIC :: nn_msh !: = 1 create a mesh-mask file 37 INTEGER , PUBLIC :: nn_acc !: = 0/1 use of the acceleration of convergence technique38 37 REAL(wp), PUBLIC :: rn_atfp !: asselin time filter parameter 39 REAL(wp), PUBLIC :: rn_rdt !: time step for the dynamics (and tracer if nacc=0) 40 REAL(wp), PUBLIC :: rn_rdtmin !: minimum time step on tracers 41 REAL(wp), PUBLIC :: rn_rdtmax !: maximum time step on tracers 42 REAL(wp), PUBLIC :: rn_rdth !: depth variation of tracer step 38 REAL(wp), PUBLIC :: rn_rdt !: time step for the dynamics and tracer 43 39 INTEGER , PUBLIC :: nn_closea !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 44 40 INTEGER , PUBLIC :: nn_euler !: =0 start with forward time step or not (=1) … … 94 90 REAL(wp), PUBLIC :: e3zps_rat !: minimum thickness ration for partial steps 95 91 INTEGER , PUBLIC :: nmsh !: = 1 create a mesh-mask file 96 INTEGER , PUBLIC :: nacc !: = 0/1 use of the acceleration of convergence technique97 92 REAL(wp), PUBLIC :: atfp !: asselin time filter parameter 98 REAL(wp), PUBLIC :: rdt !: time step for the dynamics (and tracer if nacc=0) 99 REAL(wp), PUBLIC :: rdtmin !: minimum time step on tracers 100 REAL(wp), PUBLIC :: rdtmax !: maximum time step on tracers 101 REAL(wp), PUBLIC :: rdth !: depth variation of tracer step 93 REAL(wp), PUBLIC :: rdt !: time step for the dynamics and tracer 102 94 103 95 ! !!! associated variables 104 96 INTEGER , PUBLIC :: neuler !: restart euler forward option (0=Euler) 105 97 REAL(wp), PUBLIC :: atfp1 !: asselin time filter coeff. (atfp1= 1-2*atfp) 106 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: rdttra !: vertical profile of tracer time step 107 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: r2dtra !: = 2*rdttra except at nit000 (=rdttra) if neuler=0 108 109 ! !!* Namelist namcla : cross land advection 110 INTEGER, PUBLIC :: nn_cla !: =1 cross land advection for exchanges through some straits (ORCA2) 98 REAL(wp), PUBLIC :: r2dt !: = 2*rdt except at nit000 (=rdt) if neuler=0 111 99 112 100 !!---------------------------------------------------------------------- … … 336 324 ierr(:) = 0 337 325 ! 338 ALLOCATE( rdttra(jpk), r2dtra(jpk),mig(jpi), mjg(jpj), nfiimpp(jpni,jpnj), &326 ALLOCATE( mig(jpi), mjg(jpj), nfiimpp(jpni,jpnj), & 339 327 & nfipproc(jpni,jpnj), nfilcit(jpni,jpnj), STAT=ierr(1) ) 340 328 ! 341 329 ALLOCATE( nimppt(jpnij) , ibonit(jpnij) , nlcit(jpnij) , nlcjt(jpnij) , & 342 330 & njmppt(jpnij) , ibonjt(jpnij) , nldit(jpnij) , nldjt(jpnij) , & -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r4990 r5282 81 81 ENDIF 82 82 ! 83 CALL dom_nam ! read namelist ( namrun, namdom , namcla)83 CALL dom_nam ! read namelist ( namrun, namdom ) 84 84 CALL dom_clo ! Closed seas and lake 85 85 CALL dom_hgr ! Horizontal mesh … … 131 131 !! ** input : - namrun namelist 132 132 !! - namdom namelist 133 !! - namcla namelist134 133 !! - namnc4 namelist ! "key_netcdf4" only 135 134 !!---------------------------------------------------------------------- … … 137 136 NAMELIST/namrun/ nn_no , cn_exp , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl, & 138 137 & nn_it000, nn_itend , nn_date0 , nn_leapy , nn_istate , nn_stock , & 139 & nn_write, ln_ dimgnnn, ln_mskland , ln_clobber , nn_chunksz, nn_euler138 & nn_write, ln_mskland , ln_clobber , nn_chunksz, nn_euler 140 139 NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin, & 141 & nn_acc , rn_atfp , rn_rdt , rn_rdtmin , & 142 & rn_rdtmax, rn_rdth , nn_closea , ln_crs, & 143 & jphgr_msh, & 140 & rn_atfp, rn_rdt , nn_closea , ln_crs, jphgr_msh, & 144 141 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 145 142 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 146 143 & ppa2, ppkth2, ppacr2 147 NAMELIST/namcla/ nn_cla 144 148 145 #if defined key_netcdf4 149 146 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 180 177 WRITE(numout,*) ' frequency of restart file nn_stock = ', nn_stock 181 178 WRITE(numout,*) ' frequency of output file nn_write = ', nn_write 182 WRITE(numout,*) ' multi file dimgout ln_dimgnnn = ', ln_dimgnnn183 179 WRITE(numout,*) ' mask land points ln_mskland = ', ln_mskland 184 180 WRITE(numout,*) ' overwrite an existing file ln_clobber = ', ln_clobber … … 259 255 WRITE(numout,*) ' ocean time step rn_rdt = ', rn_rdt 260 256 WRITE(numout,*) ' asselin time filter parameter rn_atfp = ', rn_atfp 261 WRITE(numout,*) ' acceleration of converge nn_acc = ', nn_acc262 WRITE(numout,*) ' nn_acc=1: surface tracer rdt rn_rdtmin = ', rn_rdtmin263 WRITE(numout,*) ' bottom tracer rdt rdtmax = ', rn_rdtmax264 WRITE(numout,*) ' depth of transition rn_rdth = ', rn_rdth265 257 WRITE(numout,*) ' suppression of closed seas (=0) nn_closea = ', nn_closea 266 258 WRITE(numout,*) ' online coarsening of dynamical fields ln_crs = ', ln_crs … … 289 281 e3zps_rat = rn_e3zps_rat 290 282 nmsh = nn_msh 291 nacc = nn_acc292 283 atfp = rn_atfp 293 284 rdt = rn_rdt 294 rdtmin = rn_rdtmin295 rdtmax = rn_rdtmin296 rdth = rn_rdth297 298 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection299 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)300 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )301 302 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection303 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )304 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )305 IF(lwm) WRITE( numond, namcla )306 307 IF(lwp) THEN308 WRITE(numout,*)309 WRITE(numout,*) ' Namelist namcla'310 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla311 ENDIF312 IF ( nn_cla .EQ. 1 ) THEN313 IF ( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2314 CONTINUE315 ELSE316 CALL ctl_stop( 'STOP', 'Cross land advation iplemented only for ORCA2 configuration: cp_cfg = "orca" and jp_cfg = 2 ' )317 ENDIF318 ENDIF319 285 320 286 #if defined key_netcdf4 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90
r4990 r5282 134 134 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 configuration 135 135 ! ! ===================== 136 IF( nn_cla == 0 ) THEN137 !138 136 ii0 = 139 ; ii1 = 140 ! Gibraltar Strait (e2u = 20 km) 139 137 ij0 = 102 ; ij1 = 102 ; e2u( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 20.e3 … … 147 145 IF(lwp) WRITE(numout,*) ' orca_r2: Bab el Mandeb: e2u reduced to 30 km' 148 146 IF(lwp) WRITE(numout,*) ' e1v reduced to 18 km' 149 ENDIF150 147 151 148 ii0 = 145 ; ii1 = 146 ! Danish Straits (e2u = 10 km) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r4990 r5282 366 366 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA_R2 configuration 367 367 ! ! Increased lateral friction near of some straits 368 IF( nn_cla == 0 ) THEN369 368 ! ! Gibraltar strait : partial slip (fmask=0.5) 370 369 ij0 = 101 ; ij1 = 101 … … 379 378 ii0 = 159 ; ii1 = 159 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) = 1._wp 380 379 ! 381 ENDIF382 380 ! ! Danish straits : strong slip (fmask > 2) 383 381 ! We keep this as an example but it is instable in this case -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/domstp.F90
r4292 r5282 41 41 !! filter parameter read in namelist 42 42 !! - Model time step: 43 !! nacc = 0 : synchronous time intergration. 44 !! There is one time step only, defined by: rdt, rdttra(k)=rdt 45 !! nacc = 1 : accelerating the convergence. There is 2 different 46 !! time steps for dynamics and tracers: 47 !! rdt : dynamical part 48 !! rdttra(k): temperature and salinity 49 !! The tracer time step is a function of vertical level. the model 50 !! reference time step ( i.e. for wind stress, surface heat and 51 !! salt fluxes) is the surface tracer time step is rdttra(1). 52 !! N.B. depth dependent acceleration of convergence is not im- 53 !! plemented for s-coordinate. 43 !! synchronous time intergration. 44 !! There is one time step only, defined by: rdt for dynamics and 45 !! tracer,wind stress, surface heat and salt fluxes 54 46 !! 55 !! ** Action : - rdttra : vertical profile of tracer time step47 !! ** Action : [REMOVED - rdttra: vertical profile of tracer time step] 56 48 !! - atfp1 : = 1 - 2*atfp 57 49 !! … … 72 64 atfp1 = 1. - 2. * atfp 73 65 74 SELECT CASE ( nacc ) 66 IF(lwp) WRITE(numout,*)' synchronous time stepping' 67 IF(lwp) WRITE(numout,*)' dynamics and tracer time step = ', rdt/3600., ' hours' 75 68 76 CASE ( 0 ) ! Synchronous time stepping77 IF(lwp) WRITE(numout,*)' synchronous time stepping'78 IF(lwp) WRITE(numout,*)' dynamics and tracer time step = ', rdt/3600., ' hours'79 80 rdttra(:) = rdt81 82 CASE ( 1 ) ! Accelerating the convergence83 IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline'84 IF(lwp) WRITE(numout,*)' accelerating the convergence'85 IF(lwp) WRITE(numout,*)' dynamics time step = ', rdt/3600., ' hours'86 IF( ln_sco .AND. rdtmin /= rdtmax .AND. lk_vvl ) &87 & CALL ctl_stop ( ' depth dependent acceleration of convergence not implemented in s-coordinates &88 & nor in variable volume' )89 IF(lwp) WRITE(numout,*)' tracers time step : dt (hours) level'90 91 DO jk = 1, jpk92 IF( gdept_1d(jk) <= rdth ) rdttra(jk) = rdtmin93 IF( gdept_1d(jk) > rdth ) THEN94 rdttra(jk) = rdtmin + ( rdtmax - rdtmin ) &95 * ( EXP( ( gdept_1d(jk ) - rdth ) / rdth ) - 1. ) &96 / ( EXP( ( gdept_1d(jpk) - rdth ) / rdth ) - 1. )97 ENDIF98 IF(lwp) WRITE(numout,"(36x,f5.2,5x,i3)") rdttra(jk)/3600., jk99 END DO100 101 CASE DEFAULT ! E R R O R102 103 WRITE(ctmp1,*) ' nacc value e r r o r, nacc= ',nacc104 CALL ctl_stop( ctmp1 )105 106 END SELECT107 69 108 70 END SUBROUTINE dom_stp -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r4998 r5282 156 156 ! Vertical scale factor interpolations 157 157 ! ------------------------------------ 158 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n 158 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n(:,:,:), 'W' ) 159 159 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' ) 160 160 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' ) 161 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3w_b 161 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3w_b(:,:,:), 'W' ) 162 162 CALL dom_vvl_interpol( fse3u_b(:,:,:), fse3uw_b(:,:,:), 'UW' ) 163 163 CALL dom_vvl_interpol( fse3v_b(:,:,:), fse3vw_b(:,:,:), 'VW' ) … … 627 627 ! - ML - fse3u_b and fse3v_b are allready computed in dynnxt 628 628 ! - JC - hu_b, hv_b, hur_b, hvr_b also 629 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n 629 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' ) 630 630 ! Vertical scale factor interpolations 631 631 ! ------------------------------------ 632 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n 632 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n(:,:,:), 'W' ) 633 633 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' ) 634 634 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' ) 635 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3w_b 635 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3w_b(:,:,:), 'W' ) 636 636 CALL dom_vvl_interpol( fse3u_b(:,:,:), fse3uw_b(:,:,:), 'UW' ) 637 637 CALL dom_vvl_interpol( fse3v_b(:,:,:), fse3vw_b(:,:,:), 'VW' ) … … 663 663 ! Local depth and Inverse of the local depth of the water column at u- and v- points 664 664 ! ---------------------------------------------------------------------------------- 665 hu (:,:) = hu_a(:,:)666 hv (:,:) = hv_a(:,:)665 hu(:,:) = hu_a(:,:) 666 hv(:,:) = hv_a(:,:) 667 667 668 668 ! Inverse of the local depth … … 680 680 ! ============= 681 681 z_e3t_def(:,:,:) = ( ( fse3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 682 CALL iom_put( "cellthc" , fse3t_n 683 CALL iom_put( "tpt_dep" , fsde3w_n 682 CALL iom_put( "cellthc" , fse3t_n(:,:,:) ) 683 CALL iom_put( "tpt_dep" , fsde3w_n(:,:,:) ) 684 684 CALL iom_put( "e3tdef" , z_e3t_def(:,:,:) ) 685 685 … … 1057 1057 ! ! ===================== 1058 1058 !! acc 1059 IF( nn_cla == 0 ) THEN1060 !1061 1059 ii0 = 139 ; ii1 = 140 ! Gibraltar Strait (e2u was modified) 1062 1060 ij0 = 102 ; ij1 = 102 … … 1105 1103 END DO 1106 1104 END DO 1107 ENDIF1108 1105 1109 1106 ii0 = 145 ; ii1 = 146 ! Danish Straits (e2u was modified) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r5040 r5282 507 507 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 configuration 508 508 ! ! ===================== 509 IF( nn_cla == 0 ) THEN 510 ii0 = 140 ; ii1 = 140 ! Gibraltar Strait open 509 ii0 = 140 ; ii1 = 140 ! Gibraltar Strait open 511 510 ij0 = 102 ; ij1 = 102 ! (Thomson, Ocean Modelling, 1995) 512 511 DO ji = mi0(ii0), mi1(ii1) … … 527 526 IF(lwp) WRITE(numout,*) 528 527 IF(lwp) WRITE(numout,*) ' orca_r2: Bab el Mandeb strait open at i=',ii0,' j=',ij0 529 ENDIF530 528 ! 531 529 ENDIF … … 548 546 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 configuration 549 547 ! 550 IF( nn_cla == 0 ) THEN 551 ii0 = 140 ; ii1 = 140 ! Gibraltar Strait open 548 ii0 = 140 ; ii1 = 140 ! Gibraltar Strait open 552 549 ij0 = 102 ; ij1 = 102 ! (Thomson, Ocean Modelling, 1995) 553 550 DO ji = mi0(ii0), mi1(ii1) … … 568 565 IF(lwp) WRITE(numout,*) 569 566 IF(lwp) WRITE(numout,*) ' orca_r2: Bab el Mandeb strait open at i=',ii0,' j=',ij0 570 ENDIF571 567 ! 572 568 ENDIF … … 1995 1991 1996 1992 IF( nprint == 1 .AND. lwp ) THEN 1997 WRITE(numout,*) ' MAX val hif t ', MAXVAL( hift (:,:) ), ' f ', MAXVAL( hiff(:,:) ), &1998 & ' u ', MAXVAL( hifu (:,:) ), ' v ', MAXVAL( hifv(:,:) )1999 WRITE(numout,*) ' MIN val hif t ', MINVAL( hift (:,:) ), ' f ', MINVAL( hiff(:,:) ), &2000 & ' u ', MINVAL( hifu (:,:) ), ' v ', MINVAL( hifv(:,:) )1993 WRITE(numout,*) ' MAX val hif t ', MAXVAL( hift(:,:) ), ' f ', MAXVAL( hiff(:,:) ), & 1994 & ' u ', MAXVAL( hifu(:,:) ), ' v ', MAXVAL( hifv(:,:) ) 1995 WRITE(numout,*) ' MIN val hif t ', MINVAL( hift(:,:) ), ' f ', MINVAL( hiff(:,:) ), & 1996 & ' u ', MINVAL( hifu(:,:) ), ' v ', MINVAL( hifv(:,:) ) 2001 1997 WRITE(numout,*) ' MAX val hbat t ', MAXVAL( hbatt(:,:) ), ' f ', MAXVAL( hbatf(:,:) ), & 2002 1998 & ' u ', MAXVAL( hbatu(:,:) ), ' v ', MAXVAL( hbatv(:,:) ) … … 2068 2064 #endif 2069 2065 2070 fsdept(:,:,:) = gdept_0 2071 fsdepw(:,:,:) = gdepw_0 2066 fsdept(:,:,:) = gdept_0(:,:,:) 2067 fsdepw(:,:,:) = gdepw_0(:,:,:) 2072 2068 fsde3w(:,:,:) = gdep3w_0(:,:,:) 2073 fse3t (:,:,:) = e3t_0(:,:,:)2074 fse3u (:,:,:) = e3u_0(:,:,:)2075 fse3v (:,:,:) = e3v_0(:,:,:)2076 fse3f (:,:,:) = e3f_0(:,:,:)2077 fse3w (:,:,:) = e3w_0(:,:,:)2078 fse3uw(:,:,:) = e3uw_0 2079 fse3vw(:,:,:) = e3vw_0 2069 fse3t(:,:,:) = e3t_0(:,:,:) 2070 fse3u(:,:,:) = e3u_0(:,:,:) 2071 fse3v(:,:,:) = e3v_0(:,:,:) 2072 fse3f(:,:,:) = e3f_0(:,:,:) 2073 fse3w(:,:,:) = e3w_0(:,:,:) 2074 fse3uw(:,:,:) = e3uw_0(:,:,:) 2075 fse3vw(:,:,:) = e3vw_0(:,:,:) 2080 2076 !! 2081 2077 ! HYBRID : -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90
r4990 r5282 174 174 END DO 175 175 END DO 176 IF( nn_cla == 1 ) THEN ! Cross Land advection177 il0 = 138 ; il1 = 138 ! set T & S profile at Gibraltar Strait178 ij0 = 101 ; ij1 = 102179 ii0 = 139 ; ii1 = 139180 DO jl = mi0(il0), mi1(il1)181 DO jj = mj0(ij0), mj1(ij1)182 DO ji = mi0(ii0), mi1(ii1)183 sf_tsd(jp_tem)%fnow(ji,jj,:) = sf_tsd(jp_tem)%fnow(jl,jj,:)184 sf_tsd(jp_sal)%fnow(ji,jj,:) = sf_tsd(jp_sal)%fnow(jl,jj,:)185 END DO186 END DO187 END DO188 il0 = 164 ; il1 = 164 ! set T & S profile at Bab el Mandeb Strait189 ij0 = 87 ; ij1 = 88190 ii0 = 161 ; ii1 = 163191 DO jl = mi0(il0), mi1(il1)192 DO jj = mj0(ij0), mj1(ij1)193 DO ji = mi0(ii0), mi1(ii1)194 sf_tsd(jp_tem)%fnow(ji,jj,:) = sf_tsd(jp_tem)%fnow(jl,jj,:)195 sf_tsd(jp_sal)%fnow(ji,jj,:) = sf_tsd(jp_sal)%fnow(jl,jj,:)196 END DO197 END DO198 END DO199 ELSE ! No Cross Land advection200 176 ij0 = 87 ; ij1 = 96 ! Reduced temperature in Red Sea 201 177 ii0 = 148 ; ii1 = 160 … … 203 179 sf_tsd(jp_tem)%fnow( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 11:13 ) = 6.5_wp 204 180 sf_tsd(jp_tem)%fnow( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 14:20 ) = 6.0_wp 205 ENDIF206 181 ENDIF 207 182 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90
r4990 r5282 17 17 !! 3.3 ! 2010-09 (D.Storkey and E.O'Dea) bug fixes for BDY module 18 18 !! - ! 2010-10 (R. Furner, G. Madec) runoff and cla added directly here 19 !! 3.6 ! 2014-15 cla removed 19 20 !!---------------------------------------------------------------------- 20 21 … … 28 29 USE sbcrnf ! river runoff 29 30 USE sbcisf ! ice shelf 30 USE cla ! cross land advection (cla_div routine)31 31 USE in_out_manager ! I/O manager 32 32 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 68 68 !! hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 69 69 !! correct hdiv with runoff inflow (div_rnf), ice shelf melting (div_isf) 70 !! and cross land flow (div_cla)70 !! [REMOVED cross land flow (div_cla)] 71 71 !! II. vorticity : 72 72 !! - save the curl computed at the previous time-step … … 229 229 IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 230 230 IF( ln_divisf .AND. (nn_isf /= 0) ) CALL sbc_isf_div( hdivn ) ! ice shelf (update hdivn field) 231 IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (Update Hor. divergence) 232 231 233 232 ! 4. Lateral boundary conditions on hdivn and rotn 234 233 ! ---------------------------------=======---====== … … 259 258 !! - compute the now divergence given by : 260 259 !! hdivn = 1/(e1t*e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 261 !! correct hdiv with runoff inflow (div_rnf) and cross land flow (div_cla) 260 !! correct hdiv with runoff inflow (div_rnf) 261 !! [REMOVED cross land flow (div_cla)] 262 262 !! - Relavtive Vorticity : 263 263 !! - save the curl computed at the previous time-step (rotb = rotn) … … 328 328 IF( ln_rnf ) CALL sbc_rnf_div( hdivn ) ! runoffs (update hdivn field) 329 329 IF( ln_divisf .AND. (nn_isf .GT. 0) ) CALL sbc_isf_div( hdivn ) ! ice shelf (update hdivn field) 330 IF( nn_cla == 1 ) CALL cla_div ( kt ) ! Cross Land Advection (update hdivn field)331 330 ! 332 331 CALL lbc_lnk( hdivn, 'T', 1. ) ; CALL lbc_lnk( rotn , 'F', 1. ) ! lateral boundary cond. (no sign change) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r4990 r5282 753 753 & * ( rhd(ji,jj,1) & 754 754 & + 0.5_wp * ( rhd(ji,jj,2) - rhd(ji,jj,1) ) & 755 & * ( fse3w 755 & * ( fse3w(ji,jj,1) - fsde3w(ji,jj,1) ) & 756 756 & / ( fsde3w(ji,jj,2) - fsde3w(ji,jj,1) ) ) 757 757 END DO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
r4990 r5282 140 140 141 141 ! Multiply by the eddy viscosity coef. (at u- and v-points) 142 zlu(:,:,jk) = zlu(:,:,jk) * ( fsahmu(:,:,jk) * (1-nkahm_smag) + nkahm_smag) 143 144 zlv(:,:,jk) = zlv(:,:,jk) * ( fsahmv(:,:,jk) * (1-nkahm_smag) + nkahm_smag) 145 142 zlu(:,:,jk) = zlu(:,:,jk) * ( fsahmu(:,:,jk) ) 143 144 zlv(:,:,jk) = zlv(:,:,jk) * ( fsahmv(:,:,jk) ) 146 145 ! Contravariant "laplacian" 147 146 zcu(:,:) = e1u(:,:) * zlu(:,:,jk) … … 197 196 & + ( zut(ji,jj+1,jk) - zut(ji ,jj,jk) ) / e2v(ji,jj) 198 197 ! add it to the general momentum trends 199 ua(ji,jj,jk) = ua(ji,jj,jk) + zua * ( fsahmu(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag ))200 va(ji,jj,jk) = va(ji,jj,jk) + zva * ( fsahmv(ji,jj,jk)*nkahm_smag +(1 -nkahm_smag ))198 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 199 va(ji,jj,jk) = va(ji,jj,jk) + zva 201 200 END DO 202 201 END DO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r4990 r5282 434 434 ! II.3 Divergence of vertical fluxes added to the horizontal divergence 435 435 ! --------------------------------------------------------------------- 436 IF( (kahm -nkahm_smag)==1 ) THEN436 IF( kahm ==1 ) THEN 437 437 ! multiply the laplacian by the eddy viscosity coefficient 438 438 DO jk = 1, jpkm1 … … 449 449 END DO 450 450 END DO 451 ELSEIF( (kahm +nkahm_smag )== 2 ) THEN451 ELSEIF( kahm == 2 ) THEN 452 452 ! second call, no multiplication 453 453 DO jk = 1, jpkm1 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r4990 r5282 272 272 #endif 273 273 274 ! ! Control of timestep choice275 IF( lk_dynspg_ts .OR. lk_dynspg_exp ) THEN276 IF( nn_cla == 1 ) CALL ctl_stop( 'Crossland advection not implemented for this free surface formulation' )277 ENDIF278 279 274 ! ! Control of hydrostatic pressure choice 280 275 IF( lk_dynspg_ts .AND. ln_dynhpg_imp ) THEN -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r4990 r5282 36 36 USE bdydyn ! ocean open boundary condition on dynamics 37 37 USE bdyvol ! ocean open boundary condition (bdy_vol routine) 38 USE cla ! cross land advection39 38 USE trd_oce ! trends: ocean variables 40 39 USE trddyn ! trend manager: dynamics … … 206 205 CALL Agrif_dyn( kt ) ! Update velocities on each coarse/fine interfaces 207 206 #endif 208 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_dynspg( kt ) ! Cross Land Advection (update (ua,va))209 207 210 208 ! compute the next vertically averaged velocity (effect of the additional force not included) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90
r4990 r5282 35 35 36 36 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used, defined from ln_zdf... namlist logicals 37 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=038 37 39 38 !! * Substitutions … … 64 63 ! 65 64 ! ! set time step 66 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt ra(restart with Euler time stepping)67 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2. * rdt ! = 2 rdt tra(leapfrog)65 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt(restart with Euler time stepping) 66 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2. * rdt ! = 2 rdt (leapfrog) 68 67 ENDIF 69 68 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
r4990 r5282 38 38 INTEGER :: nn_write !: model standard output frequency 39 39 INTEGER :: nn_stock !: restart file frequency 40 LOGICAL :: ln_dimgnnn !: type of dimgout. (F): 1 file for all proc41 !: (T): 1 file per proc42 40 LOGICAL :: ln_mskland !: mask land points in NetCDF outputs (costly: + ~15%) 43 41 LOGICAL :: ln_clobber !: clobber (overwrite) an existing file -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r5043 r5282 8 8 !! 3.0 ! 2007-07 (D. Storkey) Changes to iom_gettime 9 9 !! 3.4 ! 2012-12 (R. Bourdalle-Badie and G. Reffray) add C1D case 10 !! 3.6 ! 2014-15 DIMG format removed 10 11 !!-------------------------------------------------------------------- 11 12 … … 23 24 USE lbclnk ! lateal boundary condition / mpp exchanges 24 25 USE iom_def ! iom variables definitions 25 USE iom_ioipsl ! NetCDF format with IOIPSL library26 26 USE iom_nf90 ! NetCDF format with native NetCDF library 27 USE iom_rstdimg ! restarts access direct format "dimg" style...28 27 USE in_out_manager ! I/O manager 29 28 USE lib_mpp ! MPP library … … 205 204 CHARACTER(LEN=256) :: clname ! the name of the file based on cdname [[+clcpu]+clcpu] 206 205 CHARACTER(LEN=256) :: cltmpn ! tempory name to store clname (in writting mode) 207 CHARACTER(LEN=10) :: clsuffix ! ".nc" or ".dimg"206 CHARACTER(LEN=10) :: clsuffix ! ".nc" 208 207 CHARACTER(LEN=15) :: clcpu ! the cpu number (max jpmax_digits digits) 209 208 CHARACTER(LEN=256) :: clinfo ! info character … … 268 267 ! which suffix should we use? 269 268 SELECT CASE (iolib) 270 CASE (jpioipsl ) ; clsuffix = '.nc'271 269 CASE (jpnf90 ) ; clsuffix = '.nc' 272 CASE (jprstdimg) ; clsuffix = '.dimg'273 270 CASE DEFAULT ; clsuffix = '' 274 CALL ctl_stop( TRIM(clinfo), 'accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )271 CALL ctl_stop( TRIM(clinfo), 'accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 275 272 END SELECT 276 273 ! Add the suffix if needed … … 285 282 IF( .NOT.llok ) THEN 286 283 ! we try to add the cpu number to the name 287 IF( iolib == jprstdimg ) THEN ; WRITE(clcpu,*) narea 288 ELSE ; WRITE(clcpu,*) narea-1 289 ENDIF 284 WRITE(clcpu,*) narea-1 285 290 286 clcpu = TRIM(ADJUSTL(clcpu)) 291 287 iln = INDEX(clname,TRIM(clsuffix), back = .TRUE.) … … 334 330 END SELECT 335 331 ENDIF 336 ! Open the NetCDF or RSTDIMGfile332 ! Open the NetCDF file 337 333 ! ============= 338 334 ! do we have some free file identifier? … … 358 354 IF( istop == nstop ) THEN ! no error within this routine 359 355 SELECT CASE (iolib) 360 CASE (jpioipsl ) ; CALL iom_ioipsl_open( clname, kiomid, llwrt, llok, idompar )361 356 CASE (jpnf90 ) ; CALL iom_nf90_open( clname, kiomid, llwrt, llok, idompar ) 362 CASE (jprstdimg) ; CALL iom_rstdimg_open( clname, kiomid, llwrt, llok, idompar )363 357 CASE DEFAULT 364 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )358 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 365 359 END SELECT 366 360 ENDIF … … 397 391 IF( iom_file(jf)%nfid > 0 ) THEN 398 392 SELECT CASE (iom_file(jf)%iolib) 399 CASE (jpioipsl ) ; CALL iom_ioipsl_close( jf )400 393 CASE (jpnf90 ) ; CALL iom_nf90_close( jf ) 401 CASE (jprstdimg) ; CALL iom_rstdimg_close( jf )402 394 CASE DEFAULT 403 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )395 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 404 396 END SELECT 405 397 iom_file(jf)%nfid = 0 ! free the id … … 456 448 IF( iiv <= jpmax_vars ) THEN 457 449 SELECT CASE (iom_file(kiomid)%iolib) 458 CASE (jpioipsl ) ; iom_varid = iom_ioipsl_varid( kiomid, cdvar, iiv, kdimsz )459 450 CASE (jpnf90 ) ; iom_varid = iom_nf90_varid ( kiomid, cdvar, iiv, kdimsz, kndims ) 460 CASE (jprstdimg) ; iom_varid = -1 ! all variables are listed in iom_file 461 CASE DEFAULT 462 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 451 CASE DEFAULT 452 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 463 453 END SELECT 464 454 ELSE … … 518 508 & 'Use ncwa -a to suppress the unnecessary dimensions' ) 519 509 SELECT CASE (iom_file(kiomid)%iolib) 520 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, pvar, itime )521 510 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, pvar, itime ) 522 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idvar, pvar ) 523 CASE DEFAULT 524 CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 511 CASE DEFAULT 512 CALL ctl_stop( 'iom_g0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 525 513 END SELECT 526 514 ENDIF … … 785 773 786 774 SELECT CASE (iom_file(kiomid)%iolib) 787 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2, &788 & pv_r1d, pv_r2d, pv_r3d )789 775 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2, & 790 776 & pv_r1d, pv_r2d, pv_r3d ) 791 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idom, idvar, ix1, ix2, iy1, iy2, & 792 & pv_r1d, pv_r2d, pv_r3d ) 793 CASE DEFAULT 794 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 777 CASE DEFAULT 778 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 795 779 END SELECT 796 780 … … 879 863 IF( iom_file(kiomid)%dimsz(1,idvar) <= size(ptime) ) THEN 880 864 SELECT CASE (iom_file(kiomid)%iolib) 881 CASE (jpioipsl ) ; CALL iom_ioipsl_gettime( kiomid, idvar, ptime, cdunits, cdcalendar )882 865 CASE (jpnf90 ) ; CALL iom_nf90_gettime( kiomid, idvar, ptime, cdunits, cdcalendar ) 883 CASE (jprstdimg) ; CALL ctl_stop( TRIM(clinfo)//' case IO library == jprstdimg not coded...' ) 884 CASE DEFAULT 885 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 866 CASE DEFAULT 867 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 886 868 END SELECT 887 869 ELSE … … 914 896 IF( iom_file(kiomid)%nfid > 0 ) THEN 915 897 SELECT CASE (iom_file(kiomid)%iolib) 916 CASE (jpioipsl ) ; CALL ctl_stop('iom_getatt: only nf90 available')917 898 CASE (jpnf90 ) ; CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 918 CASE (jprstdimg) ; CALL ctl_stop('iom_getatt: only nf90 available') 919 CASE DEFAULT 920 CALL ctl_stop( 'iom_g0d_att: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 899 CASE DEFAULT 900 CALL ctl_stop( 'iom_g0d_att: accepted IO library is only jpnf90' ) 921 901 END SELECT 922 902 ENDIF … … 940 920 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 941 921 SELECT CASE (iom_file(kiomid)%iolib) 942 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar )943 922 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 944 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pvar ) 945 CASE DEFAULT 946 CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 923 CASE DEFAULT 924 CALL ctl_stop( 'iom_rp0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 947 925 END SELECT 948 926 ENDIF … … 962 940 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 963 941 SELECT CASE (iom_file(kiomid)%iolib) 964 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar )965 942 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 966 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r1d = pvar ) 967 CASE DEFAULT 968 CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 943 CASE DEFAULT 944 CALL ctl_stop( 'iom_rp1d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 969 945 END SELECT 970 946 ENDIF … … 984 960 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 985 961 SELECT CASE (iom_file(kiomid)%iolib) 986 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar )987 962 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 988 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r2d = pvar ) 989 CASE DEFAULT 990 CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 963 CASE DEFAULT 964 CALL ctl_stop( 'iom_rp2d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 991 965 END SELECT 992 966 ENDIF … … 1006 980 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 1007 981 SELECT CASE (iom_file(kiomid)%iolib) 1008 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar )1009 982 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 1010 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r3d = pvar ) 1011 CASE DEFAULT 1012 CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' ) 983 CASE DEFAULT 984 CALL ctl_stop( 'iom_rp3d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 1013 985 END SELECT 1014 986 ENDIF … … 1417 1389 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 1418 1390 DO WHILE ( idx /= 0 ) 1419 cldate = iom_sdate( fjulday - rdt tra(1)/ rday )1391 cldate = iom_sdate( fjulday - rdt / rday ) 1420 1392 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+11:LEN_TRIM(clname)) 1421 1393 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') … … 1424 1396 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 1425 1397 DO WHILE ( idx /= 0 ) 1426 cldate = iom_sdate( fjulday - rdt tra(1)/ rday, ldfull = .TRUE. )1398 cldate = iom_sdate( fjulday - rdt / rday, ldfull = .TRUE. ) 1427 1399 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+15:LEN_TRIM(clname)) 1428 1400 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') … … 1431 1403 idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 1432 1404 DO WHILE ( idx /= 0 ) 1433 cldate = iom_sdate( fjulday + rdt tra(1)/ rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. )1405 cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 1434 1406 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+9:LEN_TRIM(clname)) 1435 1407 idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') … … 1438 1410 idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 1439 1411 DO WHILE ( idx /= 0 ) 1440 cldate = iom_sdate( fjulday + rdt tra(1)/ rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. )1412 cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 1441 1413 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+13:LEN_TRIM(clname)) 1442 1414 idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/IOM/iom_def.F90
r4205 r5282 28 28 INTEGER, PARAMETER, PUBLIC :: jpdom_autodta = 9 !: 29 29 30 INTEGER, PARAMETER, PUBLIC :: jpioipsl = 100 !: Use ioipsl (fliocom only) library31 30 INTEGER, PARAMETER, PUBLIC :: jpnf90 = 101 !: Use nf90 library 32 INTEGER, PARAMETER, PUBLIC :: jprstdimg = 102 !: Use restart dimgs (fortran direct acces) library 33 #if defined key_dimgout 34 INTEGER, PARAMETER, PUBLIC :: jprstlib = jprstdimg !: restarts io library 35 #else 31 36 32 INTEGER, PARAMETER, PUBLIC :: jprstlib = jpnf90 !: restarts io library 37 #endif38 33 39 34 INTEGER, PARAMETER, PUBLIC :: jp_r8 = 200 !: write REAL(8) … … 54 49 CHARACTER(LEN=240) :: name !: name of the file 55 50 INTEGER :: nfid !: identifier of the file (0 if closed) 56 INTEGER :: iolib !: library used to read the file (jpioipsl, jpnf90 or jprstdimg) 51 INTEGER :: iolib !: library used to read the file (jpnf90 or new formats, 52 !: jpioipsl option has been removed) 57 53 INTEGER :: nvars !: number of identified varibles in the file 58 54 INTEGER :: iduld !: id of the unlimited dimension -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
r4990 r5282 82 82 WRITE(numout,*) 83 83 SELECT CASE ( jprstlib ) 84 CASE ( jprstdimg ) ; WRITE(numout,*) ' open ocean restart binary file: '//clname85 84 CASE DEFAULT ; WRITE(numout,*) ' open ocean restart NetCDF file: '//clname 86 85 END SELECT … … 110 109 !!---------------------------------------------------------------------- 111 110 112 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rdt ) ! dynamics time step 113 CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) ) ! surface tracer time step 111 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rdt ) ! dynamics and tracer time step 114 112 115 113 CALL iom_rstput( kt, nitrst, numrow, 'ub' , ub ) ! before fields … … 165 163 SELECT CASE ( jprstlib ) 166 164 CASE ( jpnf90 ) ; WRITE(numout,*) 'rst_read : read oce NetCDF restart file' 167 CASE ( jprstdimg ) ; WRITE(numout,*) 'rst_read : read oce binary restart file'168 165 END SELECT 169 166 IF ( snc4set%luse ) WRITE(numout,*) 'rst_read : configured with NetCDF4 support' … … 171 168 ENDIF 172 169 173 IF ( jprstlib == jprstdimg ) THEN174 ! eventually read netcdf file (monobloc) for restarting on different number of processors175 ! if {cn_ocerst_in}.nc exists, then set jlibalt to jpnf90176 INQUIRE( FILE = TRIM(cn_ocerst_in)//'.nc', EXIST = llok )177 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF178 ENDIF179 170 CALL iom_open( cn_ocerst_in, numror, kiolib = jlibalt ) 180 171 ENDIF … … 189 180 !! ** Method : Read in restart.nc file fields which are necessary for restart 190 181 !!---------------------------------------------------------------------- 191 REAL(wp) :: zrdt , zrdttra1182 REAL(wp) :: zrdt 192 183 INTEGER :: jk 193 184 LOGICAL :: llok … … 201 192 IF( zrdt /= rdt ) neuler = 0 202 193 ENDIF 203 IF( iom_varid( numror, 'rdttra1', ldstop = .FALSE. ) > 0 ) THEN 204 CALL iom_get( numror, 'rdttra1', zrdttra1 ) 205 IF( zrdttra1 /= rdttra(1) ) neuler = 0 206 ENDIF 207 ! 194 ! 208 195 IF( iom_varid( numror, 'ub', ldstop = .FALSE. ) > 0 ) THEN 209 196 CALL iom_get( numror, jpdom_autoglo, 'ub' , ub ) ! before fields -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r4990 r5282 297 297 298 298 IF( mynode == 0 ) THEN 299 CALL ctl_opn( kumond, 'output.namelist.dyn', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', - 1, 6, .FALSE. , 1 )299 CALL ctl_opn( kumond, 'output.namelist.dyn', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -2, 6, .TRUE. , 1 ) 300 300 WRITE(kumond, nammpp) 301 301 ENDIF … … 3198 3198 IF( PRESENT( localComm ) .OR. .NOT.PRESENT( localComm ) ) function_value = 0 3199 3199 IF( .FALSE. ) ldtxt(:) = 'never done' 3200 CALL ctl_opn( kumond, 'output.namelist.dyn', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, . FALSE. , 1 )3200 CALL ctl_opn( kumond, 'output.namelist.dyn', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, .TRUE. , 1 ) 3201 3201 END FUNCTION mynode 3202 3202 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90
r4679 r5282 457 457 # include "mppini_2.h90" 458 458 459 # if defined key_dimgout460 !!----------------------------------------------------------------------461 !! 'key_dimgout' NO use of NetCDF files462 !!----------------------------------------------------------------------463 SUBROUTINE mpp_init_ioipsl ! Dummy routine464 END SUBROUTINE mpp_init_ioipsl465 # else466 459 SUBROUTINE mpp_init_ioipsl 467 460 !!---------------------------------------------------------------------- … … 509 502 END SUBROUTINE mpp_init_ioipsl 510 503 511 # endif512 504 #endif 513 505 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r4624 r5282 69 69 & ln_dynldf_level, ln_dynldf_hor , ln_dynldf_iso, & 70 70 & rn_ahm_0_lap , rn_ahmb_0 , rn_ahm_0_blp , & 71 & rn_cmsmag_1 , rn_cmsmag_2 , rn_cmsh, &72 71 & rn_ahm_m_lap , rn_ahm_m_blp 73 72 … … 155 154 IF(lwp) WRITE(numout,*) ' ahm1 = ahm2 = ahm0 = ',ahm0 156 155 #endif 157 nkahm_smag = 0158 #if defined key_dynldf_smag159 nkahm_smag = 1160 #endif161 156 162 157 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_oce.F90
r4147 r5282 23 23 REAL(wp), PUBLIC :: rn_ahm_0_blp !: lateral bilaplacian eddy viscosity (m4/s) 24 24 REAL(wp), PUBLIC :: ahm0, ahmb0, ahm0_blp !: OLD namelist names 25 REAL(wp), PUBLIC :: rn_cmsmag_1 !: constant in laplacian Smagorinsky viscosity26 REAL(wp), PUBLIC :: rn_cmsmag_2 !: constant in bilaplacian Smagorinsky viscosity27 REAL(wp), PUBLIC :: rn_cmsh !: 1 or 0 , if 0 -use only shear for Smagorinsky viscosity28 25 REAL(wp), PUBLIC :: rn_ahm_m_blp !: upper limit for bilap abs(ahm) < min( dx^4/128rdt, rn_ahm_m_blp) 29 26 REAL(wp), PUBLIC :: rn_ahm_m_lap !: upper limit for lap ahm < min(dx^2/16rdt, rn_ahm_m_lap) 30 27 31 INTEGER , PUBLIC :: nkahm_smag = 0 !:32 28 33 29 ! !!! eddy coeff. at U-,V-,W-pts [m2/s] -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r4624 r5282 70 70 & ln_triad_iso , ln_botmix_grif , & 71 71 & rn_aht_0 , rn_ahtb_0 , rn_aeiv_0, & 72 & rn_slpmax , rn_chsmag , rn_smsh, & 73 & rn_aht_m 72 & rn_slpmax , rn_aht_m 74 73 !!---------------------------------------------------------------------- 75 74 … … 167 166 #endif 168 167 169 #if defined key_traldf_smag && ! defined key_traldf_c3d170 CALL ctl_stop( 'key_traldf_smag can only be used with key_traldf_c3d' )171 #endif172 #if defined key_traldf_smag173 IF(lwp) WRITE(numout,*)' SMAGORINSKY DIFFUSION'174 IF(lwp .AND. rn_smsh < 1) WRITE(numout,*)' only shear is used '175 IF(lwp.and.ln_traldf_bilap) CALL ctl_stop(' SMAGORINSKY + BILAPLACIAN - UNSTABLE OR NON_CONSERVATIVE' )176 #endif177 178 168 ! 179 169 END SUBROUTINE ldf_tra_init -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_oce.F90
r4147 r5282 30 30 REAL(wp), PUBLIC :: rn_aeiv_0 !: eddy induced velocity coefficient (m2/s) 31 31 REAL(wp), PUBLIC :: rn_slpmax !: slope limit 32 REAL(wp), PUBLIC :: rn_chsmag !: multiplicative factor in Smagorinsky diffusivity33 REAL(wp), PUBLIC :: rn_smsh !: Smagorinsky diffusivity: = 0 - use only sheer34 32 REAL(wp), PUBLIC :: rn_aht_m !: upper limit or stability criteria for lateral eddy diffusivity (m2/s) 35 33 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r4784 r5282 162 162 isecsbc = nsec_year + nsec1jan000 + (kit+it_offset)*NINT( rdt/REAL(nn_baro,wp) ) 163 163 ELSE ! middle of sbc time step 164 isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdttra(1)) + it_offset * NINT(rdttra(1))164 isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdt) + it_offset * NINT(rdt) 165 165 ENDIF 166 166 imf = SIZE( sd ) … … 189 189 CALL fld_rec( kn_fsbc, sd(jf), kt_offset = it_offset, kit = kit ) ! update after record informations 190 190 191 ! if kn_fsbc*rdt trais larger than nfreqh (which is kind of odd),191 ! if kn_fsbc*rdt is larger than nfreqh (which is kind of odd), 192 192 ! it is possible that the before value is no more the good one... we have to re-read it 193 193 ! if before is not the last record of the file currently opened and after is the first record to be read … … 210 210 IF( sd(jf)%ln_tint ) THEN 211 211 212 ! if kn_fsbc*rdt trais larger than nfreqh (which is kind of odd),212 ! if kn_fsbc*rdt is larger than nfreqh (which is kind of odd), 213 213 ! it is possible that the before value is no more the good one... we have to re-read it 214 214 ! if before record is not just just before the after record... … … 241 241 ! year/month/week/day file to be not present. If the run continue further than the current 242 242 ! year/month/week/day, next year/month/week/day file must exist 243 isecend = nsec_year + nsec1jan000 + (nitend - kt) * NINT(rdt tra(1)) ! second at the end of the run243 isecend = nsec_year + nsec1jan000 + (nitend - kt) * NINT(rdt) ! second at the end of the run 244 244 llstop = isecend > sd(jf)%nrec_a(2) ! read more than 1 record of next year 245 245 ! we suppose that the date of next file is next day (should be ok even for weekly files...) … … 454 454 IF( PRESENT(kt_offset) ) it_offset = kt_offset 455 455 IF( PRESENT(kit) ) THEN ; it_offset = ( kit + it_offset ) * NINT( rdt/REAL(nn_baro,wp) ) 456 ELSE ; it_offset = it_offset * NINT( rdt tra(1))456 ELSE ; it_offset = it_offset * NINT( rdt ) 457 457 ENDIF 458 458 ! … … 531 531 ELSE ; ztmp = REAL(nsec_year ,wp) ! since 00h on Jan 1 of the current year 532 532 ENDIF 533 ztmp = ztmp + 0.5 * REAL(kn_fsbc - 1, wp) * rdt tra(1)+ REAL( it_offset, wp ) ! centrered in the middle of sbc time step534 ztmp = ztmp + 0.01 * rdt tra(1) ! avoid truncation error533 ztmp = ztmp + 0.5 * REAL(kn_fsbc - 1, wp) * rdt + REAL( it_offset, wp ) ! centrered in the middle of sbc time step 534 ztmp = ztmp + 0.01 * rdt ! avoid truncation error 535 535 IF( sdjf%ln_tint ) THEN ! time interpolation, shift by 1/2 record 536 536 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r5009 r5282 645 645 LOGICAL :: llnewtx, llnewtau ! update wind stress components and module?? 646 646 INTEGER :: ji, jj, jn ! dummy loop indices 647 INTEGER :: isec ! number of seconds since nit000 (assuming rdt tradid not change since nit000)647 INTEGER :: isec ! number of seconds since nit000 (assuming rdt did not change since nit000) 648 648 REAL(wp) :: zcumulneg, zcumulpos ! temporary scalars 649 649 REAL(wp) :: zcoef ! temporary scalar … … 658 658 CALL wrk_alloc( jpi,jpj, ztx, zty ) 659 659 ! ! Receive all the atmos. fields (including ice information) 660 isec = ( kt - nit000 ) * NINT( rdt tra(1)) ! date of exchanges660 isec = ( kt - nit000 ) * NINT( rdt ) ! date of exchanges 661 661 DO jn = 1, jprcv ! received fields sent by the atmosphere 662 662 IF( srcv(jn)%laction ) CALL cpl_rcv( jn, isec, frcv(jn)%z3, xcplmask, nrcvinfo(jn) ) … … 1338 1338 CALL wrk_alloc( jpi,jpj,jpl, ztmp3, ztmp4 ) 1339 1339 1340 isec = ( kt - nit000 ) * NINT(rdt tra(1)) ! date of exchanges1340 isec = ( kt - nit000 ) * NINT(rdt) ! date of exchanges 1341 1341 1342 1342 zfr_l(:,:) = 1.- fr_i(:,:) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90
r3764 r5282 90 90 91 91 ! When are we during the day (from 0 to 1) 92 zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdt tra(1)) / rday93 zup = zlo + ( REAL(nn_fsbc, wp) * rdt tra(1)) / rday92 zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdt ) / rday 93 zup = zlo + ( REAL(nn_fsbc, wp) * rdt ) / rday 94 94 ! 95 95 IF( nday_qsr == -1 ) THEN ! first time step only … … 189 189 END DO 190 190 ! 191 ztmp = rday / ( rdt tra(1)* REAL(nn_fsbc, wp) )191 ztmp = rday / ( rdt * REAL(nn_fsbc, wp) ) 192 192 rscal(:,:) = rscal(:,:) * ztmp 193 193 ! -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r4990 r5282 125 125 ENDIF 126 126 ! ! Update fwfold if new year start 127 ikty = 365 * 86400 / rdt tra(1)!!bug use of 365 days leap year or 360d year !!!!!!!127 ikty = 365 * 86400 / rdt !!bug use of 365 days leap year or 360d year !!!!!!! 128 128 IF( MOD( kt, ikty ) == 0 ) THEN 129 129 a_fwb_b = a_fwb ! mean sea level taking into account the ice+snow -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r4990 r5282 255 255 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3u_b(:,:,:), 'U' ) 256 256 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3v_b(:,:,:), 'V' ) 257 CALL dom_vvl_interpol( fse3 t_n(:,:,:), fse3u_n(:,:,:), 'U' )257 CALL dom_vvl_interpol( fse333333333333333333333333333333333t_n(:,:,:), fse3u_n(:,:,:), 'U' ) 258 258 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' ) 259 259 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' ) 260 260 ! Vertical scale factor interpolations 261 261 ! ------------------------------------ 262 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n 262 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n(:,:,:), 'W' ) 263 263 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' ) 264 264 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
r4990 r5282 461 461 CALL iom_close( inum ) ! close file 462 462 ! 463 IF( nn_closea == 1 ) CALL clo_rnf( rnfmsk ) ! closed sea inflow set as r uver mouth463 IF( nn_closea == 1 ) CALL clo_rnf( rnfmsk ) ! closed sea inflow set as river mouth 464 464 ! 465 465 rnfmsk_z(:) = 0._wp ! vertical structure -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r4292 r5282 49 49 !!---------------------------------------------------------------------- 50 50 51 IF( nsec_day == NINT(0.5_wp * rdt tra(1)) ) THEN ! start a new day51 IF( nsec_day == NINT(0.5_wp * rdt) ) THEN ! start a new day 52 52 ! 53 53 IF( kt == nit000 ) THEN -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r4990 r5282 24 24 USE traadv_eiv ! eddy induced velocity (tra_adv_eiv routine) 25 25 USE traadv_mle ! ML eddy induced velocity (tra_adv_mle routine) 26 USE cla ! cross land advection (cla_traadv routine)27 26 USE ldftra_oce ! lateral diffusion coefficient on tracers 28 27 USE in_out_manager ! I/O manager … … 84 83 ! ! set time step 85 84 IF( neuler == 0 .AND. kt == nit000 ) THEN ! at nit000 86 r2dt ra(:) = rdttra(:) ! = rdtra(restarting with Euler time stepping)85 r2dt = rdt ! = rdt (restarting with Euler time stepping) 87 86 ELSEIF( kt <= nit000 + 1) THEN ! at nit000 or nit000+1 88 r2dtra(:) = 2._wp * rdttra(:) ! = 2 rdttra (leapfrog) 89 ENDIF 90 ! 91 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_traadv( kt ) !== Cross Land Advection ==! (hor. advection) 87 r2dt = 2._wp * rdt ! = 2 rdt (leapfrog) 88 ENDIF 92 89 ! 93 90 ! !== effective transport ==! … … 117 114 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 118 115 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered 119 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD120 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups ) ! MUSCL121 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2122 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS123 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST124 CASE ( 7 ) ; CALL tra_adv_tvd_zts( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD ZTS116 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD 117 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups ) ! MUSCL 118 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2 119 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 120 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 121 CASE ( 7 ) ; CALL tra_adv_tvd_zts( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD ZTS 125 122 ! 126 123 CASE (-1 ) !== esopa: test all possibility with control print ==! … … 128 125 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv0 - Ta: ', mask1=tmask, & 129 126 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 130 CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts )127 CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 131 128 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv1 - Ta: ', mask1=tmask, & 132 129 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 133 CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups )130 CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups ) 134 131 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv3 - Ta: ', mask1=tmask, & 135 132 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 136 CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts )133 CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 137 134 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv4 - Ta: ', mask1=tmask, & 138 135 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 139 CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts )136 CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 140 137 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv5 - Ta: ', mask1=tmask, & 141 138 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 142 CALL tra_adv_qck ( kt, nit000, 'TRA', r2dt ra, zun, zvn, zwn, tsb, tsn, tsa, jpts )139 CALL tra_adv_qck ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) 143 140 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask, & 144 141 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r4990 r5282 72 72 INTEGER , INTENT(in ) :: kjpt ! number of tracers 73 73 LOGICAL , INTENT(in ) :: ld_msc_ups ! use upstream scheme within muscl 74 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step74 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 75 75 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components 76 76 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb ! before tracer field … … 176 176 ! !-- MUSCL horizontal advective fluxes 177 177 DO jk = 1, jpkm1 ! interior values 178 zdt = p2dt (jk)178 zdt = p2dt 179 179 DO jj = 2, jpjm1 180 180 DO ji = fs_2, fs_jpim1 ! vector opt. … … 259 259 ! 260 260 DO jk = 1, jpkm1 ! interior values 261 zdt = p2dt (jk)261 zdt = p2dt 262 262 DO jj = 2, jpjm1 263 263 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl2.F90
r4990 r5282 63 63 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 64 64 INTEGER , INTENT(in ) :: kjpt ! number of tracers 65 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step65 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 66 66 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components 67 67 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before & now tracer fields … … 133 133 ! !-- MUSCL horizontal advective fluxes 134 134 DO jk = 1, jpkm1 ! interior values 135 zdt = p2dt (jk)135 zdt = p2dt 136 136 DO jj = 2, jpjm1 137 137 DO ji = fs_2, fs_jpim1 ! vector opt. … … 240 240 ! 241 241 DO jk = 1, jpkm1 ! interior values 242 zdt = p2dt (jk)242 zdt = p2dt 243 243 DO jj = 2, jpjm1 244 244 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r4990 r5282 88 88 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 89 89 INTEGER , INTENT(in ) :: kjpt ! number of tracers 90 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step90 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 91 91 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components 92 92 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields … … 125 125 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 126 126 INTEGER , INTENT(in ) :: kjpt ! number of tracers 127 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step127 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 128 128 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun ! i-velocity components 129 129 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields … … 170 170 ! 171 171 DO jk = 1, jpkm1 172 zdt = p2dt (jk)172 zdt = p2dt 173 173 DO jj = 2, jpjm1 174 174 DO ji = fs_2, fs_jpim1 ! vector opt. … … 246 246 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 247 247 INTEGER , INTENT(in ) :: kjpt ! number of tracers 248 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step248 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 249 249 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pvn ! j-velocity components 250 250 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields … … 293 293 ! 294 294 DO jk = 1, jpkm1 295 zdt = p2dt (jk)295 zdt = p2dt 296 296 DO jj = 2, jpjm1 297 297 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r4990 r5282 74 74 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 75 75 INTEGER , INTENT(in ) :: kjpt ! number of tracers 76 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step76 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 77 77 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components 78 78 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields … … 161 161 ! total advective trend 162 162 DO jk = 1, jpkm1 163 z2dtt = p2dt (jk)163 z2dtt = p2dt 164 164 DO jj = 2, jpjm1 165 165 DO ji = fs_2, fs_jpim1 ! vector opt. … … 287 287 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 288 288 INTEGER , INTENT(in ) :: kjpt ! number of tracers 289 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step289 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 290 290 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean velocity components 291 291 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields 292 292 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pta ! tracer trend 293 293 ! 294 REAL(wp) , DIMENSION( jpk ):: zts ! length of sub-timestep for vertical advection295 REAL(wp) , DIMENSION( jpk ):: zr_p2dt ! reciprocal of tracer timestep294 REAL(wp) :: zts ! length of sub-timestep for vertical advection 295 REAL(wp) :: zr_p2dt ! reciprocal of tracer timestep 296 296 INTEGER :: ji, jj, jk, jl, jn ! dummy loop indices 297 297 INTEGER :: jnzts = 5 ! number of sub-timesteps for vertical advection … … 330 330 zwi(:,:,:) = 0._wp 331 331 z_rzts = 1._wp / REAL( jnzts, wp ) 332 zr_p2dt (:) = 1._wp / p2dt(:)332 zr_p2dt = 1._wp / p2dt 333 333 ! 334 334 ! ! =========== … … 375 375 ! total advective trend 376 376 DO jk = 1, jpkm1 377 z2dtt = p2dt (jk)377 z2dtt = p2dt 378 378 DO jj = 2, jpjm1 379 379 DO ji = fs_2, fs_jpim1 ! vector opt. … … 446 446 IF( jl == 1 ) THEN ! Euler forward to kick things off 447 447 jtb = 1 ; jtn = 1 ; jta = 2 448 zts (:) = p2dt(:)* z_rzts448 zts = p2dt * z_rzts 449 449 jtaken = MOD( jnzts + 1 , 2) ! Toggle to collect every second flux 450 450 ! starting at jl =1 if jnzts is odd; … … 452 452 ELSEIF( jl == 2 ) THEN ! First leapfrog step 453 453 jtb = 1 ; jtn = 2 ; jta = 3 454 zts (:) = 2._wp * p2dt(:)* z_rzts454 zts = 2._wp * p2dt * z_rzts 455 455 ELSE ! Shuffle pointers for subsequent leapfrog steps 456 456 jtb = MOD(jtb,3) + 1 … … 462 462 DO ji = fs_2, fs_jpim1 463 463 zwz(ji,jj,jk) = 0.5_wp * pwn(ji,jj,jk) * ( ztrs(ji,jj,jk,jtn) + ztrs(ji,jj,jk-1,jtn) ) 464 IF( jtaken == 0 ) zwzts(ji,jj,jk) = zwzts(ji,jj,jk) + zwz(ji,jj,jk)*zts (jk)! Accumulate time-weighted vertcal flux464 IF( jtaken == 0 ) zwzts(ji,jj,jk) = zwzts(ji,jj,jk) + zwz(ji,jj,jk)*zts ! Accumulate time-weighted vertcal flux 465 465 END DO 466 466 END DO … … 475 475 ! total advective trends 476 476 ztra = - zbtr * ( zhdiv(ji,jj,jk) + zwz(ji,jj,jk) - zwz(ji ,jj ,jk+1) ) 477 ztrs(ji,jj,jk,jta) = ztrs(ji,jj,jk,jtb) + zts (jk)* ztra477 ztrs(ji,jj,jk,jta) = ztrs(ji,jj,jk,jtb) + zts * ztra 478 478 END DO 479 479 END DO … … 485 485 DO jj = 2, jpjm1 486 486 DO ji = fs_2, fs_jpim1 487 zwz(ji,jj,jk) = zwzts(ji,jj,jk) * zr_p2dt (jk)- zwz_sav(ji,jj,jk)487 zwz(ji,jj,jk) = zwzts(ji,jj,jk) * zr_p2dt - zwz_sav(ji,jj,jk) 488 488 END DO 489 489 END DO … … 553 553 !! in-space based differencing for fluid 554 554 !!---------------------------------------------------------------------- 555 REAL(wp) , DIMENSION(jpk) , INTENT(in ) :: p2dt ! vertical profile oftracer time-step555 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 556 556 REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in ) :: pbef, paft ! before & after field 557 557 REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(inout) :: paa, pbb, pcc ! monotonic fluxes in the 3 directions … … 584 584 DO jk = mikt(ji,jj), jpkm1 585 585 ikm1 = MAX(jk-1,mikt(ji,jj)) 586 z2dtt = p2dt (jk)586 z2dtt = p2dt 587 587 588 588 ! search maximum in neighbourhood -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r4990 r5282 81 81 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 82 82 INTEGER , INTENT(in ) :: kjpt ! number of tracers 83 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step83 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 84 84 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pun, pvn, pwn ! 3 ocean transport components 85 85 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb, ptn ! before and now tracer fields … … 207 207 ! update and guess with monotonic sheme 208 208 DO jk = 1, jpkm1 209 z2dtt = p2dt (jk)209 z2dtt = p2dt 210 210 DO jj = 2, jpjm1 211 211 DO ji = fs_2, fs_jpim1 ! vector opt. … … 281 281 !! in-space based differencing for fluid 282 282 !!---------------------------------------------------------------------- 283 REAL(wp), INTENT(in ) , DIMENSION(jpk) :: p2dt ! vertical profile oftracer time-step283 REAL(wp), INTENT(in ) :: p2dt ! tracer time-step 284 284 REAL(wp), DIMENSION (jpi,jpj,jpk) :: pbef ! before field 285 285 REAL(wp), INTENT(inout), DIMENSION (jpi,jpj,jpk) :: paft ! after field … … 340 340 341 341 DO jk = 1, jpkm1 342 z2dtt = p2dt (jk)342 z2dtt = p2dt 343 343 DO jj = 2, jpjm1 344 344 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r4990 r5282 362 362 DO ji = 1, jpi 363 363 ik = mbkt(ji,jj) ! bottom T-level index 364 zts 365 zts 364 zts(ji,jj,jp_tem) = tsb(ji,jj,ik,jp_tem) ! bottom before T and S 365 zts(ji,jj,jp_sal) = tsb(ji,jj,ik,jp_sal) 366 366 ! 367 367 zdep(ji,jj) = fsdept(ji,jj,ik) ! bottom T-level reference depth 368 zub 369 zvb 368 zub(ji,jj) = un(ji,jj,mbku(ji,jj)) ! bottom velocity 369 zvb(ji,jj) = vn(ji,jj,mbkv(ji,jj)) 370 370 END DO 371 371 END DO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r4990 r5282 326 326 ELSE 327 327 DO jk = 1, jpkm1 328 t0_ldf(:,:,jk) = ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / ( z12 *rdt tra(jk))329 s0_ldf(:,:,jk) = ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / ( z12 *rdt tra(jk))328 t0_ldf(:,:,jk) = ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / ( z12 *rdt ) 329 s0_ldf(:,:,jk) = ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / ( z12 *rdt ) 330 330 END DO 331 331 ENDIF -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r4990 r5282 120 120 121 121 ! set time step size (Euler/Leapfrog) 122 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dtra(:) = rdttra(:)! at nit000 (Euler)123 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dtra(:) = 2._wp* rdttra(:)! at nit000 or nit000+1 (Leapfrog)122 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler) 123 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp* rdt ! at nit000 or nit000+1 (Leapfrog) 124 124 ENDIF 125 125 … … 155 155 ! trends computation 156 156 IF( l_trdtra ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 157 DO jk = 1, jpkm1 158 zfact = 1._wp / r2dtra(jk) 157 zfact = 1._wp / r2dt 158 DO jk = 1, jpkm1 159 ! zfact = 1._wp / r2dt 159 160 ztrdt(:,:,jk) = ( tsb(:,:,jk,jp_tem) - ztrdt(:,:,jk) ) * zfact 160 161 ztrds(:,:,jk) = ( tsb(:,:,jk,jp_sal) - ztrds(:,:,jk) ) * zfact … … 297 298 DO jn = 1, kjpt 298 299 DO jk = 1, jpkm1 299 zfact1 = atfp * rdt tra(jk)300 zfact1 = atfp * rdt 300 301 zfact2 = zfact1 / rau0 301 302 DO jj = 1, jpj -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
r4990 r5282 28 28 USE sbcrnf ! River runoff 29 29 USE sbcisf ! Ice shelf 30 USE sbcmod ! ln_rnf31 30 USE iom 32 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r4990 r5282 66 66 ! 67 67 IF( neuler == 0 .AND. kt == nit000 ) THEN ! at nit000 68 r2dt ra(:) = rdttra(:) ! = rdtra(restarting with Euler time stepping)68 r2dt = rdt ! = rdt (restarting with Euler time stepping) 69 69 ELSEIF( kt <= nit000 + 1) THEN ! at nit000 or nit000+1 70 r2dt ra(:) = 2. * rdttra(:) ! = 2 rdttra(leapfrog)70 r2dt = 2. * rdt ! = 2 rdt (leapfrog) 71 71 ENDIF 72 72 … … 78 78 79 79 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 80 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nit000, 'TRA', r2dt ra, nn_zdfexp, tsb, tsa, jpts ) ! explicit scheme81 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt ra, tsb, tsa, jpts ) ! implicit scheme80 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nit000, 'TRA', r2dt, nn_zdfexp, tsb, tsa, jpts ) ! explicit scheme 81 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt, tsb, tsa, jpts ) ! implicit scheme 82 82 CASE ( -1 ) ! esopa: test all possibility with control print 83 CALL tra_zdf_exp( kt, nit000, 'TRA', r2dt ra, nn_zdfexp, tsb, tsa, jpts )83 CALL tra_zdf_exp( kt, nit000, 'TRA', r2dt, nn_zdfexp, tsb, tsa, jpts ) 84 84 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf0 - Ta: ', mask1=tmask, & 85 85 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 86 CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt ra, tsb, tsa, jpts )86 CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt, tsb, tsa, jpts ) 87 87 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' zdf1 - Ta: ', mask1=tmask, & 88 88 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 91 91 IF( l_trdtra ) THEN ! save the vertical diffusive trends for further diagnostics 92 92 DO jk = 1, jpkm1 93 ztrdt(:,:,jk) = ( ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / r2dt ra(jk)) - ztrdt(:,:,jk)94 ztrds(:,:,jk) = ( ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / r2dt ra(jk)) - ztrds(:,:,jk)93 ztrdt(:,:,jk) = ( ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / r2dt ) - ztrdt(:,:,jk) 94 ztrds(:,:,jk) = ( ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / r2dt ) - ztrds(:,:,jk) 95 95 END DO 96 96 CALL lbc_lnk( ztrdt, 'T', 1. ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r3294 r5282 81 81 INTEGER , INTENT(in ) :: kjpt ! number of tracers 82 82 INTEGER , INTENT(in ) :: kn_zdfexp ! number of sub-time step 83 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step83 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 84 84 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb ! before and now tracer fields 85 85 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pta ! tracer trend … … 136 136 DO ji = fs_2, fs_jpim1 ! vector opt. 137 137 ze3tr = zlavmr / fse3t_n(ji,jj,jk) 138 zwx(ji,jj,jk) = zwx(ji,jj,jk) + p2dt (jk)* ( zwy(ji,jj,jk) - zwy(ji,jj,jk+1) ) * ze3tr138 zwx(ji,jj,jk) = zwx(ji,jj,jk) + p2dt * ( zwy(ji,jj,jk) - zwy(ji,jj,jk+1) ) * ze3tr 139 139 END DO 140 140 END DO … … 150 150 DO ji = fs_2, fs_jpim1 ! vector opt. 151 151 ze3tb = fse3t_b(ji,jj,jk) / fse3t(ji,jj,jk) ! before e3t 152 ztra = zwx(ji,jj,jk) - ptb(ji,jj,jk,jn) + p2dt (jk) * pta(ji,jj,jk,jn) ! total trends * 2*rdt152 ztra = zwx(ji,jj,jk) - ptb(ji,jj,jk,jn) + p2dt * pta(ji,jj,jk,jn) ! total trends * 2*rdt 153 153 pta(ji,jj,jk,jn) = ( ze3tb * ptb(ji,jj,jk,jn) + ztra ) * tmask(ji,jj,jk) 154 154 END DO … … 159 159 DO jj = 2, jpjm1 160 160 DO ji = fs_2, fs_jpim1 ! vector opt. 161 pta(ji,jj,jk,jn) = ( zwx(ji,jj,jk) + p2dt (jk)* pta(ji,jj,jk,jn) ) * tmask(ji,jj,jk)161 pta(ji,jj,jk,jn) = ( zwx(ji,jj,jk) + p2dt * pta(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 162 162 END DO 163 163 END DO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r4990 r5282 82 82 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 83 83 INTEGER , INTENT(in ) :: kjpt ! number of tracers 84 REAL(wp) , DIMENSION( jpk ), INTENT(in ) :: p2dt ! vertical profile oftracer time-step84 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 85 85 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb ! before and now tracer fields 86 86 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pta ! tracer trend … … 154 154 ze3ta = ( 1. - r_vvl ) + r_vvl * fse3t_a(ji,jj,jk) ! after scale factor at T-point 155 155 ze3tn = r_vvl + ( 1. - r_vvl ) * fse3t_n(ji,jj,jk) ! now scale factor at T-point 156 zwi(ji,jj,jk) = - p2dt (jk)* zwt(ji,jj,jk ) / ( ze3tn * fse3w(ji,jj,jk ) )157 zws(ji,jj,jk) = - p2dt (jk)* zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) )156 zwi(ji,jj,jk) = - p2dt * zwt(ji,jj,jk ) / ( ze3tn * fse3w(ji,jj,jk ) ) 157 zws(ji,jj,jk) = - p2dt * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) 158 158 zwd(ji,jj,jk) = ze3ta - zwi(ji,jj,jk) - zws(ji,jj,jk) 159 159 END DO … … 199 199 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t(ji,jj,mikt(ji,jj)) 200 200 pta(ji,jj,mikt(ji,jj),jn) = ze3tb * ptb(ji,jj,mikt(ji,jj),jn) & 201 & + p2dt (mikt(ji,jj))* ze3tn * pta(ji,jj,mikt(ji,jj),jn)201 & + p2dt * ze3tn * pta(ji,jj,mikt(ji,jj),jn) 202 202 DO jk = mikt(ji,jj)+1, jpkm1 203 203 ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b(ji,jj,jk) 204 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t 205 zrhs = ze3tb * ptb(ji,jj,jk,jn) + p2dt (jk) * ze3tn * pta(ji,jj,jk,jn) ! zrhs=right hand side204 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t(ji,jj,jk) 205 zrhs = ze3tb * ptb(ji,jj,jk,jn) + p2dt * ze3tn * pta(ji,jj,jk,jn) ! zrhs=right hand side 206 206 pta(ji,jj,jk,jn) = zrhs - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) * pta(ji,jj,jk-1,jn) 207 207 END DO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90
r4990 r5282 32 32 USE ioipsl ! NetCDF library 33 33 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 34 USE diadimg ! dimg direct access file format output35 34 USE trdmxl_rst ! restart for diagnosing the ML trends 36 35 USE prtctl ! Print control … … 298 297 !! 299 298 !! ** Purpose : Compute and cumulate the mixed layer trends over an analysis 300 !! period, and write NetCDF (or dimg)outputs.299 !! period, and write NetCDF outputs. 301 300 !! 302 301 !! ** Method/usage : … … 349 348 REAL(wp), POINTER, DIMENSION(:,: ) :: ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2 350 349 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztmltrd2, zsmltrd2 ! only needed for mean diagnostics 351 #if defined key_dimgout352 INTEGER :: iyear,imon,iday353 CHARACTER(LEN=80) :: cltext, clmode354 #endif355 350 !!---------------------------------------------------------------------- 356 351 … … 801 796 END IF 802 797 803 IF( nn_cla == 1 ) CALL ctl_warn( ' You set n_cla = 1. Note that the Mixed-Layer diagnostics ', &804 & ' are not exact along the corresponding straits. ')805 806 798 ! ! allocate trdmxl arrays 807 799 IF( trd_mxl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trd_mxl_init : unable to allocate trdmxl arrays' ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl_rst.F90
r4990 r5282 59 59 WRITE(numout,*) 60 60 SELECT CASE ( jprstlib ) 61 CASE ( jprstdimg ) ; WRITE(numout,*) ' open ocean restart_mxl binary file: '//clname62 61 CASE DEFAULT ; WRITE(numout,*) ' open ocean restart_mxl NetCDF file: '//clname 63 62 END SELECT … … 140 139 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~' 141 140 ENDIF 142 IF ( jprstlib == jprstdimg ) THEN143 ! eventually read netcdf file (monobloc) for restarting on different number of processors144 ! if {cn_trdrst_in}.nc exists, then set jlibalt to jpnf90145 INQUIRE( FILE = TRIM(cn_trdrst_in)//'.nc', EXIST = llok )146 IF ( llok ) THEN ; jlibalt = jpnf90147 ELSE ; jlibalt = jprstlib148 ENDIF149 ENDIF150 141 151 142 CALL iom_open( cn_trdrst_in, inum, kiolib = jlibalt ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r4990 r5282 36 36 PUBLIC trd_tra ! called by all tra_... modules 37 37 38 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=038 ! REAL(wp) :: r2dt ! time-step, = 2 rdt except at nit000 (=rdt) if neuler=0 39 39 40 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends … … 227 227 !!---------------------------------------------------------------------- 228 228 229 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt ra(restart with Euler time stepping)230 ELSEIF( kt <= nit000 + 1) THEN ; r2dt = 2. * rdt ! = 2 rdt tra(leapfrog)229 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt (restart with Euler time stepping) 230 ELSEIF( kt <= nit000 + 1) THEN ; r2dt = 2. * rdt ! = 2 rdt (leapfrog) 231 231 ENDIF 232 232 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90
r4990 r5282 85 85 !! 86 86 !! ** Purpose : computation of cumulated trends over analysis period 87 !! and make outputs (NetCDF or DIMGformat)87 !! and make outputs (NetCDF format) 88 88 !!---------------------------------------------------------------------- 89 89 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: putrd, pvtrd ! U and V trends … … 318 318 !! 319 319 !! ** Purpose : computation of cumulated trends over analysis period 320 !! and make outputs (NetCDF or DIMGformat)320 !! and make outputs (NetCDF format) 321 321 !!---------------------------------------------------------------------- 322 322 INTEGER , INTENT(in ) :: kt ! time step -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r4990 r5282 42 42 !!---------------------------------------------------------------------- 43 43 USE step_oce ! module used in the ocean time stepping module 44 USE cla ! cross land advection (tra_cla routine)45 44 USE domcfg ! domain configuration (dom_cfg routine) 46 45 USE mppini ! shared/distributed memory setting (mpp_init routine) … … 388 387 & CALL bdytide_init ! Open boundaries initialisation of tidal harmonic forcing 389 388 390 CALL dyn_nept_init ! simplified form of Neptune effect391 389 392 390 ! … … 429 427 430 428 ! ! Misc. options 431 IF( nn_cla == 1 .AND. cp_cfg == 'orca' .AND. jp_cfg == 2 ) CALL cla_init ! Cross Land Advection432 429 CALL icb_init( rdt, nit000) ! initialise icebergs instance 433 430 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/step.F90
r5012 r5282 158 158 IF( lk_traldf_eiv ) CALL ldf_eiv( kstp ) ! eddy induced velocity coefficient 159 159 #endif 160 #if defined key_traldf_c3d && key_traldf_smag161 CALL ldf_tra_smag( kstp ) ! eddy induced velocity coefficient162 # endif163 #if defined key_dynldf_c3d && key_dynldf_smag164 CALL ldf_dyn_smag( kstp ) ! eddy induced velocity coefficient165 # endif166 160 167 161 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 185 179 IF( ln_asmiau .AND. & 186 180 & ln_dyninc ) CALL dyn_asm_inc ( kstp ) ! apply dynamics assimilation increment 187 IF( ln_neptsimp ) CALL dyn_nept_cor ( kstp ) ! subtract Neptune velocities (simplified)188 181 IF( lk_bdy ) CALL bdy_dyn3d_dmp( kstp ) ! bdy damping trends 189 182 CALL dyn_adv ( kstp ) ! advection (vector or flux form) 190 183 CALL dyn_vor ( kstp ) ! vorticity term including Coriolis 191 184 CALL dyn_ldf ( kstp ) ! lateral mixing 192 IF( ln_neptsimp ) CALL dyn_nept_cor ( kstp ) ! add Neptune velocities (simplified)193 185 #if defined key_agrif 194 186 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_dyn ! momentum sponge … … 289 281 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 290 282 IF( ln_bkgwri ) CALL asm_bkg_wri( kstp ) ! output background fields 291 IF( ln_neptsimp ) CALL dyn_nept_cor( kstp ) ! subtract Neptune velocities (simplified)292 283 IF( lk_bdy ) CALL bdy_dyn3d_dmp(kstp ) ! bdy damping trends 293 284 CALL dyn_adv( kstp ) ! advection (vector or flux form) 294 285 CALL dyn_vor( kstp ) ! vorticity term including Coriolis 295 286 CALL dyn_ldf( kstp ) ! lateral mixing 296 IF( ln_neptsimp ) CALL dyn_nept_cor( kstp ) ! add Neptune velocities (simplified)297 287 #if defined key_agrif 298 288 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_dyn ! momemtum sponge -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r4990 r5282 50 50 USE dynspg_oce ! surface pressure gradient (dyn_spg routine) 51 51 USE dynspg ! surface pressure gradient (dyn_spg routine) 52 USE dynnept ! simp. form of Neptune effect(dyn_nept_cor routine)53 52 54 53 USE dynnxt ! time-stepping (dyn_nxt routine) … … 68 67 USE ldfslp ! iso-neutral slopes (ldf_slp routine) 69 68 USE ldfeiv ! eddy induced velocity coef. (ldf_eiv routine) 70 USE ldftra_smag ! Smagirinsky diffusion (ldftra_smag routine)71 USE ldfdyn_smag ! Smagorinsky viscosity (ldfdyn_smag routine)72 69 73 70 USE zdftmx ! tide-induced vertical mixing (zdf_tmx routine) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/SAS_SRC/daymod.F90
r4162 r5282 20 20 !! 21 21 !! we suppose that the time step is deviding the number of second of in a day 22 !! ---> MOD( rday, rdt tra(1)) == 022 !! ---> MOD( rday, rdt ) == 0 23 23 !! 24 24 !! ----------- WARNING ----------- … … 71 71 !!---------------------------------------------------------------------- 72 72 ! 73 ! all calendar staff is based on the fact that MOD( rday, rdt tra(1)) == 074 IF( MOD( rday , rdt tra(1)) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' )73 ! all calendar staff is based on the fact that MOD( rday, rdt ) == 0 74 IF( MOD( rday , rdt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 75 75 IF( MOD( rday , 2. ) /= 0. ) CALL ctl_stop( 'the number of second of in a day must be an even number' ) 76 IF( MOD( rdt tra(1), 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' )76 IF( MOD( rdt, 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' ) 77 77 nsecd = NINT(rday ) 78 78 nsecd05 = NINT(0.5 * rday ) 79 ndt = NINT( rdt tra(1))80 ndt05 = NINT(0.5 * rdt tra(1))79 ndt = NINT( rdt) 80 ndt05 = NINT(0.5 * rdt) 81 81 82 82 ! parameters corresponding to nit000 - 1 (as we start the step loop with a call to day) 83 83 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 84 adatrj = ( REAL( nit000-1, wp ) * rdt tra(1)) / rday84 adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 85 85 IF( ABS(adatrj - REAL(NINT(adatrj),wp)) < 0.1 / rday ) adatrj = REAL(NINT(adatrj),wp) ! avoid truncation error 86 86 ! … … 226 226 nsec_week = nsec_week + ndt 227 227 nsec_day = nsec_day + ndt 228 adatrj = adatrj + rdt tra(1)/ rday229 fjulday = fjulday + rdt tra(1)/ rday228 adatrj = adatrj + rdt / rday 229 fjulday = fjulday + rdt / rday 230 230 IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec ) fjulday = REAL(NINT(fjulday),wp) ! avoid truncation error 231 231 IF( ABS(adatrj - REAL(NINT(adatrj ),wp)) < zprec ) adatrj = REAL(NINT(adatrj ),wp) ! avoid truncation error -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/SAS_SRC/diawri.F90
r4292 r5282 40 40 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 41 41 USE in_out_manager ! I/O manager 42 USE diadimg ! dimg direct access file format output43 42 USE diaar5, ONLY : lk_diaar5 44 43 USE iom … … 85 84 END FUNCTION dia_wri_alloc 86 85 87 #if defined key_dimgout88 !!----------------------------------------------------------------------89 !! 'key_dimgout' DIMG output file90 !!----------------------------------------------------------------------91 # include "diawri_dimg.h90"92 93 #else94 86 !!---------------------------------------------------------------------- 95 87 !! Default option NetCDF output file 96 88 !!---------------------------------------------------------------------- 97 # 89 #if defined key_iomput 98 90 !!---------------------------------------------------------------------- 99 91 !! 'key_iomput' use IOM library … … 164 156 ! Define frequency of output and means 165 157 zdt = rdt 166 IF( nacc == 1 ) zdt = rdtmin167 158 IF( ln_mskland ) THEN ; clop = "only(x)" ! put 1.e+20 on land (very expensive!!) 168 159 ELSE ; clop = "x" ! no use of the mask value (require less cpu time) … … 338 329 ! 339 330 END SUBROUTINE dia_wri 340 # endif341 342 331 #endif 332 333 343 334 344 335 SUBROUTINE dia_wri_state( cdfile_name, kt ) … … 435 426 ! ----------------- 436 427 CALL histclo( id_i ) 437 #if ! defined key_iomput && ! defined key_dimgout428 #if ! defined key_iomput 438 429 IF( ninist /= 1 ) THEN 439 430 CALL histclo( nid_T ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/SAS_SRC/nemogcm.F90
r4624 r5282 42 42 USE step_oce ! module used in the ocean time stepping module 43 43 USE sbc_oce ! surface boundary condition: ocean 44 USE cla ! cross land advection (tra_cla routine)45 44 USE domcfg ! domain configuration (dom_cfg routine) 46 45 USE daymod ! calendar -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sedrst.F90
r3443 r5282 59 59 60 60 ALLOCATE( zdta(jpi,jpj,jpksed,jptrased), zdta1(jpi,jpj,jpksed,2), zhipor(jpoce,jpksed) ) 61 62 IF ( jprstlib == jprstdimg ) THEN63 ! eventually read netcdf file (monobloc) for restarting on different number of processors64 ! if restart_sed.nc exists, then set jlibalt to jpnf9065 INQUIRE( FILE = 'restart_sed.nc', EXIST = llok )66 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF67 ENDIF68 61 69 62 CALL iom_open( 'restart_sed', numrsr, kiolib = jlibalt ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
r4996 r5282 107 107 CALL p4z_sms_init ! Maint routine 108 108 ! ! Time-step 109 rfact = rdttrc (1)! ---------109 rfact = rdttrc ! --------- 110 110 rfactr = 1. / rfact 111 111 rfact2 = rfact / FLOAT( nrdttrc ) 112 112 rfact2r = 1. / rfact2 113 113 114 IF(lwp) WRITE(numout,*) ' Passive Tracer time step rfact = ', rfact, ' rdt = ', rdt tra(1)114 IF(lwp) WRITE(numout,*) ' Passive Tracer time step rfact = ', rfact, ' rdt = ', rdt 115 115 IF(lwp) write(numout,*) ' PISCES Biology time step rfact2 = ', rfact2 116 116 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r4610 r5282 32 32 33 33 PUBLIC trc_adv ! routine called by step module 34 PUBLIC trc_adv_alloc ! routine called by nemogcm module 35 36 INTEGER :: nadv ! choice of the type of advection scheme 37 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt ! vertical profile time-step, = 2 rdttra 38 ! ! except at nitrrc000 (=rdttra) if neuler=0 34 35 INTEGER :: nadv ! choice of the type of advection scheme 36 REAL(wp):: r2dtrc ! time-step, = 2 rdttrc 37 ! ! ! except at nitrrc000 (=rdttrc) if neuler=0 39 38 40 39 !! * Substitutions … … 47 46 !!---------------------------------------------------------------------- 48 47 CONTAINS 49 50 INTEGER FUNCTION trc_adv_alloc()51 !!----------------------------------------------------------------------52 !! *** ROUTINE trc_adv_alloc ***53 !!----------------------------------------------------------------------54 55 ALLOCATE( r2dt(jpk), STAT=trc_adv_alloc )56 57 IF( trc_adv_alloc /= 0 ) CALL ctl_warn('trc_adv_alloc : failed to allocate array.')58 59 END FUNCTION trc_adv_alloc60 61 48 62 49 SUBROUTINE trc_adv( kt ) … … 84 71 85 72 IF( ln_top_euler) THEN 86 r2dt (:) = rdttrc(:)! = rdttrc (use Euler time stepping)73 r2dtrc = rdttrc ! = rdttrc (use Euler time stepping) 87 74 ELSE 88 75 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 89 r2dt (:) = rdttrc(:)! = rdttrc (restarting with Euler time stepping)76 r2dtrc = rdttrc ! = rdttrc (restarting with Euler time stepping) 90 77 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 91 r2dt (:) = 2. * rdttrc(:)! = 2 rdttrc (leapfrog)78 r2dtrc = 2. * rdttrc ! = 2 rdttrc (leapfrog) 92 79 ENDIF 93 80 ENDIF … … 118 105 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 119 106 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nittrc000, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) ! 2nd order centered 120 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra ) ! TVD121 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, tra, jptra, ln_trcadv_msc_ups ) ! MUSCL122 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra ) ! MUSCL2123 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra ) ! UBS124 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra ) ! QUICKEST107 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) ! TVD 108 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, tra, jptra, ln_trcadv_msc_ups ) ! MUSCL 109 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) ! MUSCL2 110 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) ! UBS 111 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) ! QUICKEST 125 112 ! 126 113 CASE (-1 ) !== esopa: test all possibility with control print ==! … … 128 115 WRITE(charout, FMT="('adv1')") ; CALL prt_ctl_trc_info(charout) 129 116 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 130 CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra )117 CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) 131 118 WRITE(charout, FMT="('adv2')") ; CALL prt_ctl_trc_info(charout) 132 119 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 133 CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, tra, jptra, ln_trcadv_msc_ups )120 CALL tra_adv_muscl ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, tra, jptra, ln_trcadv_msc_ups ) 134 121 WRITE(charout, FMT="('adv3')") ; CALL prt_ctl_trc_info(charout) 135 122 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 136 CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra )123 CALL tra_adv_muscl2( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) 137 124 WRITE(charout, FMT="('adv4')") ; CALL prt_ctl_trc_info(charout) 138 125 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 139 CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra )126 CALL tra_adv_ubs ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) 140 127 WRITE(charout, FMT="('adv5')") ; CALL prt_ctl_trc_info(charout) 141 128 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 142 CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra )129 CALL tra_adv_qck ( kt, nittrc000, 'TRC', r2dtrc, zun, zvn, zwn, trb, trn, tra, jptra ) 143 130 WRITE(charout, FMT="('adv6')") ; CALL prt_ctl_trc_info(charout) 144 131 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r4990 r5282 41 41 42 42 PUBLIC trc_nxt ! routine called by step.F90 43 PUBLIC trc_nxt_alloc ! routine called by nemogcm.F9044 43 45 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt44 REAL(wp) :: r2dtrc 46 45 47 46 !!---------------------------------------------------------------------- … … 51 50 !!---------------------------------------------------------------------- 52 51 CONTAINS 53 54 INTEGER FUNCTION trc_nxt_alloc()55 !!----------------------------------------------------------------------56 !! *** ROUTINE trc_nxt_alloc ***57 !!----------------------------------------------------------------------58 ALLOCATE( r2dt(jpk), STAT=trc_nxt_alloc )59 !60 IF( trc_nxt_alloc /= 0 ) CALL ctl_warn('trc_nxt_alloc : failed to allocate array')61 !62 END FUNCTION trc_nxt_alloc63 64 52 65 53 SUBROUTINE trc_nxt( kt ) … … 117 105 118 106 ! set time step size (Euler/Leapfrog) 119 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ; r2dt (:) = rdttrc(:)! at nittrc000 (Euler)120 ELSEIF( kt <= nittrc000 + 1 ) THEN ; r2dt (:) = 2.* rdttrc(:)! at nit000 or nit000+1 (Leapfrog)107 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ; r2dtrc = rdttrc ! at nittrc000 (Euler) 108 ELSEIF( kt <= nittrc000 + 1 ) THEN ; r2dtrc = 2.* rdttrc ! at nit000 or nit000+1 (Leapfrog) 121 109 ENDIF 122 110 … … 143 131 144 132 ! trends computation 145 IF( l_trdtrc ) THEN 133 IF( l_trdtrc ) THEN! trends 146 134 DO jn = 1, jptra 135 zfact = 1.e0 / r2dtrc 147 136 DO jk = 1, jpkm1 148 zfact = 1.e0 / r2dt(jk)149 137 ztrdt(:,:,jk,jn) = ( trb(:,:,jk,jn) - ztrdt(:,:,jk,jn) ) * zfact 150 138 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90
r4990 r5282 27 27 28 28 PUBLIC trc_zdf ! called by step.F90 29 PUBLIC trc_zdf_alloc ! called by nemogcm.F9030 29 31 30 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used 32 31 ! ! defined from ln_zdf... namlist logicals) 33 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt ! vertical profile time-step, = 2 rdttra34 ! ! except at nittrc000 (=rdttra) if neuler=032 REAL(wp) :: r2dtrc ! vertical profile time-step, = 2 rdt 33 ! ! except at nittrc000 (=rdt) if neuler=0 35 34 36 35 !! * Substitutions … … 44 43 !!---------------------------------------------------------------------- 45 44 CONTAINS 46 47 INTEGER FUNCTION trc_zdf_alloc()48 !!----------------------------------------------------------------------49 !! *** ROUTINE trc_zdf_alloc ***50 !!----------------------------------------------------------------------51 ALLOCATE( r2dt(jpk) , STAT=trc_zdf_alloc )52 !53 IF( trc_zdf_alloc /= 0 ) CALL ctl_warn('trc_zdf_alloc : failed to allocate array.')54 !55 END FUNCTION trc_zdf_alloc56 57 45 58 46 SUBROUTINE trc_zdf( kt ) … … 74 62 75 63 IF( ln_top_euler) THEN 76 r2dt (:) = rdttrc(:)! = rdttrc (use Euler time stepping)64 r2dtrc = rdttrc ! = rdttrc (use Euler time stepping) 77 65 ELSE 78 66 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! at nittrc000 79 r2dt (:) = rdttrc(:)! = rdttrc (restarting with Euler time stepping)67 r2dtrc = rdttrc ! = rdttrc (restarting with Euler time stepping) 80 68 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 81 r2dt (:) = 2. * rdttrc(:)! = 2 rdttrc (leapfrog)69 r2dtrc = 2. * rdttrc ! = 2 rdttrc (leapfrog) 82 70 ENDIF 83 71 ENDIF … … 90 78 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 91 79 CASE ( -1 ) ! esopa: test all possibility with control print 92 CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dt , nn_trczdf_exp, trb, tra, jptra )80 CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dtrc, nn_trczdf_exp, trb, tra, jptra ) 93 81 WRITE(charout, FMT="('zdf1 ')") ; CALL prt_ctl_trc_info(charout) 94 82 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 95 CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dt , trb, tra, jptra )83 CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dtrc, trb, tra, jptra ) 96 84 WRITE(charout, FMT="('zdf2 ')") ; CALL prt_ctl_trc_info(charout) 97 85 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 98 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dt , nn_trczdf_exp, trb, tra, jptra ) ! explicit scheme99 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dt , trb, tra, jptra ) ! implicit scheme86 CASE ( 0 ) ; CALL tra_zdf_exp( kt, nittrc000, 'TRC', r2dtrc, nn_trczdf_exp, trb, tra, jptra ) ! explicit scheme 87 CASE ( 1 ) ; CALL tra_zdf_imp( kt, nittrc000, 'TRC', r2dtrc, trb, tra, jptra ) ! implicit scheme 100 88 101 89 END SELECT … … 104 92 DO jn = 1, jptra 105 93 DO jk = 1, jpkm1 106 ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dt (jk)) - ztrtrd(:,:,jk,jn)94 ztrtrd(:,:,jk,jn) = ( ( tra(:,:,jk,jn) - trb(:,:,jk,jn) ) / r2dtrc ) - ztrtrd(:,:,jk,jn) 107 95 END DO 108 96 CALL trd_tra( kt, 'TRC', jn, jptra_zdf, ztrtrd(:,:,:,jn) ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc.F90
r4990 r5282 331 331 !! 332 332 !! ** Purpose : Compute and cumulate the mixed layer trends over an analysis 333 !! period, and write NetCDF (or dimg)outputs.333 !! period, and write NetCDF outputs. 334 334 !! 335 335 !! ** Method/usage : … … 391 391 ! 392 392 CHARACTER (LEN=10) :: clvar 393 #if defined key_dimgout394 INTEGER :: iyear,imon,iday395 CHARACTER(LEN=80) :: cltext, clmode396 #endif397 393 !!---------------------------------------------------------------------- 398 394 … … 775 771 ! ====================================================================== 776 772 777 ! IV.1 Code for dimg mpp output 778 ! ----------------------------- 779 780 # if defined key_dimgout 781 STOP 'Not implemented' 782 # else 773 !# if 774 !# else 783 775 784 ! IV. 2Code for IOIPSL/NetCDF output776 ! IV.1 Code for IOIPSL/NetCDF output 785 777 ! ---------------------------------- 786 778 … … 866 858 icount = 1 867 859 868 # endif /* key_dimgout */ 860 !# endif 869 861 870 862 IF( MOD( itmod, nn_trd_trc ) == 0 ) THEN … … 897 889 !! 898 890 !! ** Purpose : Compute and cumulate the mixed layer biological trends over an analysis 899 !! period, and write NetCDF (or dimg)outputs.891 !! period, and write NetCDF outputs. 900 892 !! 901 893 !! ** Method/usage : … … 944 936 LOGICAL :: llwarn = .TRUE., lldebug = .TRUE. 945 937 REAL(wp) :: zfn, zfn2 946 #if defined key_dimgout947 INTEGER :: iyear,imon,iday948 CHARACTER(LEN=80) :: cltext, clmode949 #endif950 938 !!---------------------------------------------------------------------- 951 939 ! ... Warnings … … 1056 1044 ! ====================================================================== 1057 1045 1058 ! IV.1 Code for dimg mpp output 1059 ! ----------------------------- 1060 1061 # if defined key_dimgout 1062 STOP 'Not implemented' 1063 # else 1064 1065 ! IV.2 Code for IOIPSL/NetCDF output 1046 !# if 1047 !# else 1048 1049 ! IV.1 Code for IOIPSL/NetCDF output 1066 1050 ! ---------------------------------- 1067 1051 … … 1108 1092 1109 1093 1110 # endif /* key_dimgout */ 1094 !# endif 1111 1095 1112 1096 IF( MOD( itmod, nn_trd_trc ) == 0 ) THEN … … 1259 1243 ! ====================================================================== 1260 1244 1261 #if defined key_dimgout 1262 ??? 1263 #else 1245 !#if 1246 !#else 1264 1247 ! clmxl = legend root for netCDF output 1265 1248 IF( nn_ctls_trc == 0 ) THEN ! control surface = mixed-layer with density criterion … … 1404 1387 #endif 1405 1388 1406 #endif /* key_dimgout */ 1389 !#endif 1407 1390 END SUBROUTINE trd_mxl_trc_init 1408 1391 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc_rst.F90
r4990 r5282 141 141 ENDIF 142 142 143 IF ( jprstlib == jprstdimg ) THEN144 ! eventually read netcdf file (monobloc) for restarting on different number of processors145 ! if {cn_trdrst_trc_in}.nc exists, then set jlibalt to jpnf90146 INQUIRE( FILE = TRIM(cn_trdrst_trc_in)//'.nc', EXIST = llok )147 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF148 ENDIF149 150 143 CALL iom_open( cn_trdrst_trc_in, inum, kiolib = jlibalt ) 151 144 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/trc.F90
r4990 r5282 55 55 CHARACTER(len = 80) , PUBLIC :: cn_trcrst_in !: suffix of pass. tracer restart name (input) 56 56 CHARACTER(len = 80) , PUBLIC :: cn_trcrst_out !: suffix of pass. tracer restart name (output) 57 REAL(wp) , PUBLIC , ALLOCATABLE, SAVE, DIMENSION(:) :: rdttrc !: vertical profile ofpassive tracer time step57 REAL(wp) , PUBLIC :: rdttrc !: passive tracer time step 58 58 LOGICAL , PUBLIC :: ln_top_euler !: boolean term for euler integration 59 59 LOGICAL , PUBLIC :: ln_trcdta !: Read inputs data from files … … 187 187 & gtru (jpi,jpj,jptra) , gtrv (jpi,jpj,jptra) , & 188 188 & gtrui(jpi,jpj,jptra) , gtrvi(jpi,jpj,jptra) , & 189 & cvol(jpi,jpj,jpk) , rdttrc(jpk) ,trai(jptra) , &189 & cvol(jpi,jpj,jpk) , trai(jptra) , & 190 190 & ctrcnm(jptra) , ctrcln(jptra) , ctrcun(jptra) , & 191 191 & ln_trc_ini(jptra) , ln_trc_wri(jptra) , STAT = trc_alloc ) -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r4990 r5282 76 76 77 77 IF( ltrcdm2dc )CALL ctl_warn( ' Diurnal cycle on physics but not in PISCES or LOBSTER ' ) 78 79 IF( nn_cla == 1 ) &80 & CALL ctl_stop( ' Cross Land Advection not yet implemented with passive tracer ; nn_cla must be 0' )81 78 82 79 CALL trc_nam ! read passive tracers namelists … … 187 184 !! ** Purpose : Allocate all the dynamic arrays of the OPA modules 188 185 !!---------------------------------------------------------------------- 189 USE trcadv , ONLY: trc_adv_alloc ! TOP-related alloc routines...190 186 USE trc , ONLY: trc_alloc 191 USE trcnxt , ONLY: trc_nxt_alloc192 USE trczdf , ONLY: trc_zdf_alloc193 187 USE trdtrc_oce , ONLY: trd_trc_oce_alloc 194 188 #if defined key_trdmxl_trc … … 199 193 !!---------------------------------------------------------------------- 200 194 ! 201 ierr = trc_adv_alloc() ! Start of TOP-related alloc routines... 202 ierr = ierr + trc_alloc () 203 ierr = ierr + trc_nxt_alloc() 204 ierr = ierr + trc_zdf_alloc() 195 ierr = trc_alloc() 205 196 ierr = ierr + trd_trc_oce_alloc() 206 197 #if defined key_trdmxl_trc -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r4990 r5282 109 109 ENDIF 110 110 111 112 rdttrc(:) = rdttra(:) * FLOAT( nn_dttrc ) ! vertical profile of passive tracer time-step 111 rdttrc = rdt * FLOAT( nn_dttrc ) ! passive tracer time-step 113 112 114 113 IF(lwp) THEN ! control print 115 114 WRITE(numout,*) 116 WRITE(numout,*) ' Passive Tracer time step rdttrc = ', rdttrc (1)115 WRITE(numout,*) ' Passive Tracer time step rdttrc = ', rdttrc 117 116 WRITE(numout,*) 118 117 ENDIF -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r4990 r5282 123 123 !!---------------------------------------------------------------------- 124 124 ! 125 CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rdttrc (1) ) ! surfacepassive tracer time step125 CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rdttrc ) ! passive tracer time step 126 126 ! prognostic variables 127 127 ! -------------------- … … 186 186 IF(lwp) WRITE(numout,*) 'trc_rst_cal : read the TOP restart file for calendar' 187 187 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 188 189 IF ( jprstlib == jprstdimg ) THEN190 ! eventually read netcdf file (monobloc) for restarting on different number of processors191 ! if {cn_trcrst_in}.nc exists, then set jlibalt to jpnf90192 INQUIRE( FILE = TRIM(cn_trcrst_in)//'.nc', EXIST = llok )193 IF ( llok ) THEN ; jlibalt = jpnf90 ; ELSE ; jlibalt = jprstlib ; ENDIF194 ENDIF195 188 196 189 CALL iom_open( cn_trcrst_in, numrtr, kiolib = jlibalt ) … … 226 219 ELSE 227 220 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam 228 adatrj = ( REAL( nittrc000-1, wp ) * rdt tra(1)) / rday221 adatrj = ( REAL( nittrc000-1, wp ) * rdt ) / rday 229 222 ! note this is wrong if time step has changed during run 230 223 ENDIF -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/SETTE/iodef_sette.xml
r4773 r5282 30 30 <file_group id="6h" output_freq="6h" output_level="10" enabled=".TRUE."/> <!-- 6h files --> 31 31 <file_group id="1d" output_freq="1d" output_level="10" enabled=".TRUE."/> <!-- 1d files --> 32 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 32 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 33 33 <file_group id="5d" output_freq="5d" output_level="10" enabled=".TRUE."/> <!-- 5d files --> 34 34 <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files --> … … 102 102 <file_group id="6h" output_freq="6h" output_level="10" enabled=".TRUE."/> <!-- 6h files --> 103 103 <file_group id="1d" output_freq="1d" output_level="10" enabled=".TRUE."/> <!-- 1d files --> 104 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 104 <file_group id="3d" output_freq="3d" output_level="10" enabled=".TRUE."/> <!-- 3d files --> 105 105 <file_group id="5d" output_freq="5d" output_level="10" enabled=".TRUE."/> <!-- 5d files --> 106 106 <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files --> -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/SETTE/sette.sh
r4990 r5282 88 88 # 89 89 # Compiler among those in NEMOGCM/ARCH 90 COMPILER= X64_ADA91 export BATCH_COMMAND_PAR=" llsubmit"90 COMPILER=ifort_athena 91 export BATCH_COMMAND_PAR="bsub <" 92 92 export BATCH_COMMAND_SEQ=$BATCH_COMMAND_PAR 93 93 export INTERACT_FLAG="no" 94 94 export MPIRUN_FLAG="yes" 95 export USING_XIOS=" yes"95 export USING_XIOS="no" 96 96 # 97 97 export DEL_KEYS="key_iomput" … … 142 142 # ORCA2_LIM_OBS: 15 143 143 # ORCA2_AGRIF_LIM :16 144 for config in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 145 144 for config in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 146 145 do 147 146 -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/SETTE/sette_xios.sh
r4990 r5282 84 84 # 85 85 # Compiler among those in NEMOGCM/ARCH 86 COMPILER= 87 export BATCH_COMMAND_PAR=" llsubmit"86 COMPILER=ifort_athena_xios 87 export BATCH_COMMAND_PAR="bsub <" 88 88 export BATCH_COMMAND_SEQ=$BATCH_COMMAND_PAR 89 89 export INTERACT_FLAG="no" -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/TOOLS/COMPILE/tools.txt
r2281 r5282 1 REBUILD 1 REBUILD_NEMO -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/TOOLS/NESTING/src/agrif_create_restart.f90
r2455 r5282 411 411 ENDIF 412 412 ! 413 CASE('nfice','nfbulk','kt','ndastp','adatrj','rdt' ,'rdttra1')413 CASE('nfice','nfbulk','kt','ndastp','adatrj','rdt') 414 414 IF(.NOT. dimg ) THEN 415 415 WRITE(*,*) 'copy ',TRIM(Ncdf_varname(i)) … … 417 417 CALL Read_Ncdf_var(TRIM(Ncdf_varname(i)),TRIM(restart_file),tabtemp0dreal) 418 418 SELECT CASE (TRIM(Ncdf_varname(i))) 419 CASE('rdt' ,'rdttra1')419 CASE('rdt') 420 420 tabtemp0dreal = tabtemp0dreal/rhot 421 421 CASE('kt') -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/TOOLS/OBSTOOLS/src/in_out_manager.F90
r3000 r5282 37 37 INTEGER :: nn_write = 10 !: model standard output frequency 38 38 INTEGER :: nn_stock = 10 !: restart file frequency 39 LOGICAL :: ln_dimgnnn = .FALSE. !: type of dimgout. (F): 1 file for all proc40 !: (T): 1 file per proc41 39 LOGICAL :: ln_mskland = .FALSE. !: mask land points in NetCDF outputs (costly: + ~15%) 42 40 LOGICAL :: ln_clobber = .FALSE. !: clobber (overwrite) an existing file -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/TOOLS/SIREN/cfg/variable.cfg
r5037 r5282 41 41 kt | | | | | | 42 42 rdt | | | | | | 43 rdttra1 | | | | | |44 43 utau_b | | XYT | U |surface_downward_eastward_stress | | 45 44 vtau_b | | XYT | V |surface_downward_northward_stress | | -
branches/2015/dev_r5056_CMCC4_simplification/NEMOGCM/TOOLS/SIREN/src/vgrid.f90
r5037 r5282 229 229 dd_gdepw(jk) = ( dl_zw - 1.0 ) * dl_za1 230 230 dd_gdept(jk) = ( dl_zt - 1.0 ) * dl_za1 231 dd_e3w 232 dd_e3t 231 dd_e3w(jk) = dl_za1 232 dd_e3t(jk) = dl_za1 233 233 END DO 234 234 … … 244 244 & dl_za1 * dl_zacr * LOG( COSH( (dl_zt-dl_zkth)/dl_zacr ) ) + & 245 245 & dl_za2 * dl_zacr2* LOG( COSH( (dl_zt-dl_zkth2)/dl_zacr2 ) ) ) 246 dd_e3w 246 dd_e3w(jk) = dl_za0 + & 247 247 & dl_za1 * TANH( (dl_zw-dl_zkth)/dl_zacr ) + & 248 248 & dl_za2 * TANH( (dl_zw-dl_zkth2)/dl_zacr2 ) 249 dd_e3t 249 dd_e3t(jk) = dl_za0 + & 250 250 & dl_za1 * TANH( (dl_zt-dl_zkth)/dl_zacr ) + & 251 251 & dl_za2 * TANH( (dl_zt-dl_zkth2)/dl_zacr2 )
Note: See TracChangeset
for help on using the changeset viewer.