Changeset 5766 for branches/2015
- Timestamp:
- 2015-09-28T16:42:34+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM
- Files:
-
- 2 deleted
- 53 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/CONFIG/ORCA2_LIM/cpp_ORCA2_LIM.fcm
r5759 r5766 1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_dynldf_c3d key_zdftke key_zdfddm key_zdftmx key_mpp_mpi 1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_dynldf_c3d key_zdftke key_zdfddm key_zdftmx key_mpp_mpi key_iomput -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/namelist_cfg
r5759 r5766 150 150 ln_traldf_lev = .false. ! iso-level 151 151 ln_traldf_hor = .false. ! horizontal (geopotential) 152 ln_traldf_iso = . false. ! iso-neutral (Standard operator)153 ln_traldf_triad = . true. ! iso-neutral (Triads operator)152 ln_traldf_iso = .true. ! iso-neutral (Standard operator) 153 ln_traldf_triad = .false. ! iso-neutral (Triads operator) 154 154 ! 155 155 ! ! iso-neutral options: -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_cfg
r5759 r5766 133 133 ln_traldf_lev = .false. ! iso-level 134 134 ln_traldf_hor = .false. ! horizontal (geopotential) 135 ln_traldf_iso = .true. ! iso-neutral (standard operator)136 ln_traldf_triad = .false. ! iso-neutral (triadoperator)135 ln_traldf_iso = .true. ! iso-neutral (Standard operator) 136 ln_traldf_triad = .false. ! iso-neutral (Triads operator) 137 137 ! 138 ! ! iso-neutral options:138 ! ! iso-neutral options: 139 139 ln_traldf_msc = .true. ! Method of Stabilizing Correction (both operators) 140 140 rn_slpmax = 0.01 ! slope limit (both operators) … … 144 144 ! 145 145 ! ! Coefficients: 146 nn_aht_ijk_t = 0! space/time variation of eddy coef146 nn_aht_ijk_t = 21 ! space/time variation of eddy coef 147 147 ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file 148 ! ! = 0 constant 149 ! ! = 10 F(k) =ldf_c1d 150 ! ! = 20 F(i,j) =ldf_c2d 148 ! ! = 0 constant 149 ! ! = 10 F(k) =ldf_c1d 150 ! ! = 20 F(i,j) =ldf_c2d 151 151 ! ! = 21 F(i,j,t) =Treguier et al. JPO 1997 formulation 152 152 ! ! = 30 F(i,j,k) =ldf_c2d + ldf_c1d … … 158 158 &namtra_ldfeiv ! eddy induced velocity param. 159 159 !---------------------------------------------------------------------------------- 160 ln_ldfeiv =. false. ! use eddy induced velocity parameterization161 ln_ldfeiv_dia =. false. ! diagnose eiv stream function and velocities160 ln_ldfeiv =.true. ! use eddy induced velocity parameterization 161 ln_ldfeiv_dia =.true. ! diagnose eiv stream function and velocities 162 162 rn_aeiv_0 = 2000. ! eddy induced velocity coefficient [m2/s] 163 163 nn_aei_ijk_t = 21 ! space/time variation of the eiv coeficient 164 164 ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file 165 ! ! = 0 constant 166 ! ! = 10 F(k) =ldf_c1d 167 ! ! = 20 F(i,j) =ldf_c2d 165 ! ! = 0 constant 166 ! ! = 10 F(k) =ldf_c1d 167 ! ! = 20 F(i,j) =ldf_c2d 168 168 ! ! = 21 F(i,j,t) =Treguier et al. JPO 1997 formulation 169 169 ! ! = 30 F(i,j,k) =ldf_c2d + ldf_c1d -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/cpp_ORCA2_LIM_PISCES.fcm
r5759 r5766 1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_dynldf_c3d key_zdftke key_zdfddm key_zdftmx key_top key_pisces key_mpp_mpi 1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_dynldf_c3d key_zdftke key_zdfddm key_zdftmx key_top key_pisces key_mpp_mpi key_iomput -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/CONFIG/SHARED/namelist_top_ref
r5416 r5766 52 52 &namtrc_ldf ! lateral diffusion scheme for passive tracer 53 53 !----------------------------------------------------------------------- 54 ! ! Type of the operator : 55 ln_trcldf_ lap = .true. ! laplacian operator56 ln_trcldf_bilap = .false. ! bilaplacian operator57 ! Direction of action :58 ln_trcldf_ level = .false. ! iso-level59 ln_trcldf_ hor = .false. ! horizontal (geopotential) (require "key_ldfslp" when ln_sco=T)60 ln_trcldf_ iso = .true. ! iso-neutral (require "key_ldfslp")61 ! ! Coefficient 62 rn_ahtrc_0 = 2000. ! horizontal eddy diffusivity for tracers[m2/s]63 rn_ ahtrb_0 = 0. ! background eddy diffusivity for ldf_iso [m2/s]54 ln_trcldf_lap = .true. ! laplacian operator 55 ln_trcldf_blp = .false. ! bilaplacian operator 56 ! ! Direction of action: 57 ln_trcldf_lev = .false. ! iso-level 58 ln_trcldf_hor = .false. ! horizontal (geopotential) 59 ln_trcldf_iso = .true. ! iso-neutral (standard operator) 60 ln_trcldf_triad = .false. ! iso-neutral (triad operator) 61 ! 62 rn_ahtrc_0 = 2000. ! lateral eddy diffusivity (lap. operator) [m2/s] 63 rn_bhtrc_0 = 1.e+12 ! lateral eddy diffusivity (bilap. operator) [m4/s] 64 64 / 65 65 !----------------------------------------------------------------------- -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r5758 r5766 127 127 ENDIF 128 128 ! 129 CALL eos( tsb, rhd, rhop, gdept_0(:,:,:) ) ! before potential and in situ densities130 #if ! defined key_c1d131 IF( ln_zps .AND. .NOT. ln_isfcav) &132 & CALL zps_hde ( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient133 & rhd, gru , grv ) ! of t, s, rd at the last ocean level134 IF( ln_zps .AND. ln_isfcav) &135 & CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps for top cell (ISF)136 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , &137 & gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi ) ! of t, s, rd at the last ocean level138 #endif139 !140 129 ! - ML - sshn could be modified by istate_eel, so that initialization of fse3t_b is done here 141 130 IF( lk_vvl ) THEN -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r5758 r5766 150 150 IF ( ln_sco ) THEN ! s-coordinate 151 151 IF ( ln_traldf_lev ) nldf = n_lap ! iso-level (no rotation) 152 IF ( ln_traldf_hor ) nldf = n_lap_i t ! horizontal ( rotation) !!gm a checker....152 IF ( ln_traldf_hor ) nldf = n_lap_i ! horizontal ( rotation) 153 153 IF ( ln_traldf_iso ) nldf = n_lap_i ! iso-neutral: standard (rotation) 154 154 IF ( ln_traldf_triad ) nldf = n_lap_it ! iso-neutral: triad (rotation) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/SAS_SRC/diawri.F90
r5217 r5766 26 26 USE dom_oce ! ocean space and time domain 27 27 USE zdf_oce ! ocean vertical physics 28 USE ldftra_oce ! ocean active tracers: lateral physics29 28 USE ldfdyn_oce ! ocean dynamics: lateral physics 30 USE traldf_iso_grif, ONLY : psix_eiv, psiy_eiv31 29 USE sol_oce ! solver variables 32 30 USE sbc_oce ! Surface boundary condition: ocean fields -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r5215 r5766 50 50 51 51 !! * Substitutions 52 # include "top_substitute.h90" 53 52 # include "domzgr_substitute.h90" 54 53 !!---------------------------------------------------------------------- 55 54 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/C14b/trcwri_c14b.F90
r5407 r5766 20 20 PUBLIC trc_wri_c14b 21 21 22 # include "top_substitute.h90"23 22 CONTAINS 24 23 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r4996 r5766 51 51 52 52 !! * Substitutions 53 # include " top_substitute.h90"53 # include "domzgr_substitute.h90" 54 54 !!---------------------------------------------------------------------- 55 55 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/CFC/trcwri_cfc.F90
r5407 r5766 20 20 PUBLIC trc_wri_cfc 21 21 22 # include "top_substitute.h90"23 22 CONTAINS 24 23 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcwri_my_trc.F90
r5407 r5766 20 20 PUBLIC trc_wri_my_trc 21 21 22 # include "top_substitute.h90"23 22 CONTAINS 24 23 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r5656 r5766 59 59 REAL(wp) :: fdbod ! zooplankton mortality fraction that goes to detritus 60 60 61 !!* Substitution 62 # include "top_substitute.h90" 61 !! * Substitutions 62 # include "domzgr_substitute.h90" 63 # include "vectopt_loop_substitute.h90" 63 64 !!---------------------------------------------------------------------- 64 65 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r5215 r5766 41 41 REAL(wp) :: areacot !: surface coastal area 42 42 43 !!* Substitution 44 # include "top_substitute.h90" 43 !! * Substitutions 44 # include "domzgr_substitute.h90" 45 # include "vectopt_loop_substitute.h90" 45 46 !!---------------------------------------------------------------------- 46 47 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r5385 r5766 40 40 REAL(wp), PUBLIC :: reddom ! redfield ratio (C:N) for DOM 41 41 42 !! * Substitution43 # include " top_substitute.h90"42 !! * Substitutions 43 # include "domzgr_substitute.h90" 44 44 !!---------------------------------------------------------------------- 45 45 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r5215 r5766 34 34 REAL(wp), PUBLIC :: xhr ! coeff for martin''s remineralisation profile 35 35 36 !! * Substitution37 # include " top_substitute.h90"36 !! * Substitutions 37 # include "domzgr_substitute.h90" 38 38 !!---------------------------------------------------------------------- 39 39 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90
r5656 r5766 34 34 PUBLIC p4z_bio 35 35 36 !! * Substitution37 # include " top_substitute.h90"36 !! * Substitutions 37 # include "domzgr_substitute.h90" 38 38 !!---------------------------------------------------------------------- 39 39 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r5656 r5766 164 164 REAL(wp) :: devk55 = 0.3692E-3 165 165 166 !! * Substitution167 # include "top_substitute.h90"166 !! * Substitutions 167 # include "domzgr_substitute.h90" 168 168 !!---------------------------------------------------------------------- 169 169 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r5385 r5766 39 39 REAL(wp) :: kl1, kl2, kb1, kb2, ks, kpr, spd, con, kth 40 40 41 !! * Substitution42 # include " top_substitute.h90"41 !! * Substitutions 42 # include "domzgr_substitute.h90" 43 43 !!---------------------------------------------------------------------- 44 44 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r5656 r5766 59 59 REAL(wp) :: xconv = 0.01_wp / 3600._wp !: coefficients for conversion 60 60 61 !! * Substitution62 # include " top_substitute.h90"61 !! * Substitutions 62 # include "domzgr_substitute.h90" 63 63 !!---------------------------------------------------------------------- 64 64 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r5656 r5766 52 52 REAL(wp) :: xcoef2 = 1.21E-5 * 14. / 55.85 / 7.625 * 0.5 * 1.5 53 53 REAL(wp) :: xcoef3 = 1.15E-4 * 14. / 55.85 / 7.625 * 0.5 54 !!* Substitution 55 # include "top_substitute.h90" 54 56 55 !!---------------------------------------------------------------------- 57 56 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r5656 r5766 50 50 REAL(wp), PUBLIC :: grazflux !: mesozoo flux feeding rate 51 51 52 !!* Substitution53 # include "top_substitute.h90"54 52 !!---------------------------------------------------------------------- 55 53 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r5656 r5766 49 49 50 50 51 !!* Substitution52 # include "top_substitute.h90"53 51 !!---------------------------------------------------------------------- 54 52 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r5656 r5766 35 35 36 36 37 !!* Substitution38 # include "top_substitute.h90"39 37 !!---------------------------------------------------------------------- 40 38 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r5656 r5766 51 51 REAL(wp), DIMENSION(3,61), PUBLIC :: xkrgb !: tabulated attenuation coefficients for RGB absorption 52 52 53 !! * Substitution54 # include " top_substitute.h90"53 !! * Substitutions 54 # include "domzgr_substitute.h90" 55 55 !!---------------------------------------------------------------------- 56 56 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r5656 r5766 54 54 REAL(wp) :: texcret2 !: 1 - excret2 55 55 56 57 !!* Substitution 58 # include "top_substitute.h90" 56 !! * Substitutions 57 # include "domzgr_substitute.h90" 59 58 !!---------------------------------------------------------------------- 60 59 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r5385 r5766 50 50 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitnh4 !: - - - - - 51 51 52 !! * Substitution53 # include " top_substitute.h90"52 !! * Substitutions 53 # include "domzgr_substitute.h90" 54 54 !!---------------------------------------------------------------------- 55 55 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r5656 r5766 81 81 82 82 83 !!* Substitution 84 # include "top_substitute.h90" 83 !! * Substitutions 84 # include "domzgr_substitute.h90" 85 # include "vectopt_loop_substitute.h90" 85 86 !!---------------------------------------------------------------------- 86 87 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r5656 r5766 38 38 REAL(wp) :: r1_rday !: inverse of rday 39 39 40 !! * Substitution41 # include " top_substitute.h90"40 !! * Substitutions 41 # include "domzgr_substitute.h90" 42 42 !!---------------------------------------------------------------------- 43 43 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r5656 r5766 65 65 #endif 66 66 67 !! * Substitution68 # include " top_substitute.h90"67 !! * Substitutions 68 # include "domzgr_substitute.h90" 69 69 !!---------------------------------------------------------------------- 70 70 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r5547 r5766 45 45 46 46 47 !! * Substitutions48 # include "top_substitute.h90"49 47 !!---------------------------------------------------------------------- 50 48 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
r5385 r5766 27 27 PUBLIC trc_ini_pisces ! called by trcini.F90 module 28 28 29 30 # include "top_substitute.h90"31 29 !!---------------------------------------------------------------------- 32 30 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90
r4996 r5766 21 21 PUBLIC trc_wri_pisces 22 22 23 # include "top_substitute.h90" 23 !! * Substitutions 24 # include "domzgr_substitute.h90" 25 24 26 CONTAINS 25 27 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r5758 r5766 12 12 !!---------------------------------------------------------------------- 13 13 !! trc_adv : compute ocean tracer advection trend 14 !! trc_adv_ ctl: control the different options of advection scheme14 !! trc_adv_ini : control the different options of advection scheme 15 15 !!---------------------------------------------------------------------- 16 16 USE oce_trc ! ocean dynamics and active tracers 17 17 USE trc ! ocean passive tracers variables 18 USE trcnam_trp ! passive tracers transport namelist variables19 18 USE traadv_cen2 ! 2nd order centered scheme (tra_adv_cen2 routine) 20 19 USE traadv_tvd ! TVD scheme (tra_adv_tvd routine) … … 23 22 USE traadv_ubs ! UBS scheme (tra_adv_ubs routine) 24 23 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine) 25 USE traadv_eiv ! eddy induced velocity (tra_adv_eiv routine)26 24 USE traadv_mle ! ML eddy induced velocity (tra_adv_mle routine) 27 25 USE ldftra ! lateral diffusion coefficient on tracers … … 31 29 PRIVATE 32 30 33 PUBLIC trc_adv ! routine called by step module 34 PUBLIC trc_adv_alloc ! routine called by nemogcm module 31 PUBLIC trc_adv 32 PUBLIC trc_adv_alloc 33 PUBLIC trc_adv_ini 34 35 ! !!: ** Advection (namtrc_adv) ** 36 LOGICAL , PUBLIC :: ln_trcadv_cen2 ! 2nd order centered scheme flag 37 LOGICAL , PUBLIC :: ln_trcadv_tvd ! TVD scheme flag 38 LOGICAL , PUBLIC :: ln_trcadv_muscl ! MUSCL scheme flag 39 LOGICAL , PUBLIC :: ln_trcadv_muscl2 ! MUSCL2 scheme flag 40 LOGICAL , PUBLIC :: ln_trcadv_ubs ! UBS scheme flag 41 LOGICAL , PUBLIC :: ln_trcadv_qck ! QUICKEST scheme flag 42 LOGICAL , PUBLIC :: ln_trcadv_msc_ups ! use upstream scheme within muscl 35 43 36 44 INTEGER :: nadv ! choice of the type of advection scheme … … 79 87 CALL wrk_alloc( jpi,jpj,jpk, zun, zvn, zwn ) 80 88 ! 81 82 IF( kt == nittrc000 ) CALL trc_adv_ctl ! initialisation & control of options83 84 89 IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN ! at nittrc000 85 90 r2dt(:) = rdttrc(:) ! = rdttrc (use or restarting with Euler time stepping) … … 131 136 132 137 133 SUBROUTINE trc_adv_ ctl138 SUBROUTINE trc_adv_ini 134 139 !!--------------------------------------------------------------------- 135 !! *** ROUTINE trc_adv_ ctl***140 !! *** ROUTINE trc_adv_ini *** 136 141 !! 137 142 !! ** Purpose : Control the consistency between namelist options for … … 139 144 !!---------------------------------------------------------------------- 140 145 INTEGER :: ioptio 141 !!---------------------------------------------------------------------- 142 ! 146 INTEGER :: ios ! Local integer output status for namelist read 147 !! 148 NAMELIST/namtrc_adv/ ln_trcadv_cen2 , ln_trcadv_tvd , & 149 & ln_trcadv_muscl, ln_trcadv_muscl2, & 150 & ln_trcadv_ubs , ln_trcadv_qck, ln_trcadv_msc_ups 151 !!---------------------------------------------------------------------- 152 ! 153 REWIND( numnat_ref ) ! namtrc_adv in reference namelist 154 READ ( numnat_ref, namtrc_adv, IOSTAT = ios, ERR = 901) 155 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in reference namelist', lwp ) 156 157 REWIND( numnat_cfg ) ! namtrc_adv in configuration namelist 158 READ ( numnat_cfg, namtrc_adv, IOSTAT = ios, ERR = 902 ) 159 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in configuration namelist', lwp ) 160 IF(lwm) WRITE ( numont, namtrc_adv ) 161 162 IF(lwp) THEN ! Namelist print 163 WRITE(numout,*) 164 WRITE(numout,*) 'trc_adv_ini : choice/control of the tracer advection scheme' 165 WRITE(numout,*) '~~~~~~~~~~~' 166 WRITE(numout,*) ' Namelist namtrc_adv : chose a advection scheme for tracers' 167 WRITE(numout,*) ' 2nd order advection scheme ln_trcadv_cen2 = ', ln_trcadv_cen2 168 WRITE(numout,*) ' TVD advection scheme ln_trcadv_tvd = ', ln_trcadv_tvd 169 WRITE(numout,*) ' MUSCL advection scheme ln_trcadv_muscl = ', ln_trcadv_muscl 170 WRITE(numout,*) ' MUSCL2 advection scheme ln_trcadv_muscl2 = ', ln_trcadv_muscl2 171 WRITE(numout,*) ' UBS advection scheme ln_trcadv_ubs = ', ln_trcadv_ubs 172 WRITE(numout,*) ' QUICKEST advection scheme ln_trcadv_qck = ', ln_trcadv_qck 173 ENDIF 174 ! 175 143 176 ioptio = 0 ! Parameter control 144 177 IF( ln_trcadv_cen2 ) ioptio = ioptio + 1 … … 169 202 ENDIF 170 203 ! 171 END SUBROUTINE trc_adv_ ctl204 END SUBROUTINE trc_adv_ini 172 205 173 206 #else -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r4990 r5766 22 22 USE oce_trc ! ocean dynamics and active tracers variables 23 23 USE trc ! ocean passive tracers variables 24 USE trcnam_trp ! passive tracers transport namelist variables25 24 USE trabbl ! 26 25 USE prtctl_trc ! Print control for debbuging … … 30 29 PUBLIC trc_bbl ! routine called by step.F90 31 30 32 33 !! * Substitutions34 # include "top_substitute.h90"35 31 !!---------------------------------------------------------------------- 36 32 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r5506 r5766 18 18 USE oce_trc ! ocean dynamics and tracers variables 19 19 USE trc ! ocean passive tracers variables 20 USE trcnam_trp ! passive tracers transport namelist variables21 20 USE trcdta 22 21 USE tradmp … … 29 28 PRIVATE 30 29 31 PUBLIC trc_dmp ! routine called by step.F90 32 PUBLIC trc_dmp_clo ! routine called by step.F90 33 PUBLIC trc_dmp_alloc ! routine called by nemogcm.F90 30 PUBLIC trc_dmp 31 PUBLIC trc_dmp_clo 32 PUBLIC trc_dmp_alloc 33 PUBLIC trc_dmp_ini 34 35 INTEGER , PUBLIC :: nn_zdmp_tr ! = 0/1/2 flag for damping in the mixed layer 36 CHARACTER(LEN=200) , PUBLIC :: cn_resto_tr !File containing restoration coefficient 34 37 35 38 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: restotr ! restoring coeff. on tracers (s-1) … … 40 43 41 44 !! * Substitutions 42 # include "top_substitute.h90" 45 # include "domzgr_substitute.h90" 46 # include "vectopt_loop_substitute.h90" 43 47 !!---------------------------------------------------------------------- 44 48 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 90 94 IF( nn_timing == 1 ) CALL timing_start('trc_dmp') 91 95 ! 92 ! 0. Initialization (first time-step only)93 ! --------------94 IF( kt == nittrc000 ) CALL trc_dmp_init95 96 96 IF( l_trdtrc ) CALL wrk_alloc( jpi, jpj, jpk, ztrtrd ) ! temporary save of trends 97 97 ! … … 171 171 END SUBROUTINE trc_dmp 172 172 173 SUBROUTINE trc_dmp_ini 174 !!---------------------------------------------------------------------- 175 !! *** ROUTINE trc_dmp_ini *** 176 !! 177 !! ** Purpose : Initialization for the newtonian damping 178 !! 179 !! ** Method : read the nammbf namelist and check the parameters 180 !! called by trc_dmp at the first timestep (nittrc000) 181 !!---------------------------------------------------------------------- 182 ! 183 INTEGER :: ios ! Local integer output status for namelist read 184 INTEGER :: imask !local file handle 185 ! 186 NAMELIST/namtrc_dmp/ nn_zdmp_tr , cn_resto_tr 187 !!---------------------------------------------------------------------- 188 189 IF( nn_timing == 1 ) CALL timing_start('trc_dmp_init') 190 ! 191 192 REWIND( numnat_ref ) ! Namelist namtrc_dmp in reference namelist : Passive tracers newtonian damping 193 READ ( numnat_ref, namtrc_dmp, IOSTAT = ios, ERR = 909) 194 909 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in reference namelist', lwp ) 195 196 REWIND( numnat_cfg ) ! Namelist namtrc_dmp in configuration namelist : Passive tracers newtonian damping 197 READ ( numnat_cfg, namtrc_dmp, IOSTAT = ios, ERR = 910) 198 910 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in configuration namelist', lwp ) 199 IF(lwm) WRITE ( numont, namtrc_dmp ) 200 201 IF(lwp) THEN ! Namelist print 202 WRITE(numout,*) 203 WRITE(numout,*) 'trc_dmp : Passive tracers newtonian damping' 204 WRITE(numout,*) '~~~~~~~' 205 WRITE(numout,*) ' Namelist namtrc_dmp : set damping parameter' 206 WRITE(numout,*) ' mixed layer damping option nn_zdmp_tr = ', nn_zdmp_tr, '(zoom: forced to 0)' 207 WRITE(numout,*) ' Restoration coeff file cn_resto_tr = ', cn_resto_tr 208 ENDIF 209 ! 210 IF( lzoom ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries 211 SELECT CASE ( nn_zdmp_tr ) 212 CASE ( 0 ) ; IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column' 213 CASE ( 1 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline (avt > 5 cm2/s)' 214 CASE ( 2 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the mixed layer' 215 CASE DEFAULT 216 WRITE(ctmp1,*) 'bad flag value for nn_zdmp_tr = ', nn_zdmp_tr 217 CALL ctl_stop(ctmp1) 218 END SELECT 219 220 IF( .NOT. ln_tradmp ) & 221 & CALL ctl_stop( 'passive trace damping need key_tradmp to compute damping coef.' ) 222 ! 223 ! ! Read damping coefficients from file 224 !Read in mask from file 225 CALL iom_open ( cn_resto_tr, imask) 226 CALL iom_get ( imask, jpdom_autoglo, 'resto', restotr) 227 CALL iom_close( imask ) 228 ! 229 IF( nn_timing == 1 ) CALL timing_stop('trc_dmp_init') 230 ! 231 END SUBROUTINE trc_dmp_ini 232 173 233 SUBROUTINE trc_dmp_clo( kt ) 174 234 !!--------------------------------------------------------------------- … … 303 363 304 364 305 SUBROUTINE trc_dmp_init306 !!----------------------------------------------------------------------307 !! *** ROUTINE trc_dmp_init ***308 !!309 !! ** Purpose : Initialization for the newtonian damping310 !!311 !! ** Method : read the nammbf namelist and check the parameters312 !! called by trc_dmp at the first timestep (nittrc000)313 !!----------------------------------------------------------------------314 !315 INTEGER :: imask !local file handle316 317 IF( nn_timing == 1 ) CALL timing_start('trc_dmp_init')318 !319 320 IF( lzoom ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries321 SELECT CASE ( nn_zdmp_tr )322 CASE ( 0 ) ; IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column'323 CASE ( 1 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline (avt > 5 cm2/s)'324 CASE ( 2 ) ; IF(lwp) WRITE(numout,*) ' no tracer damping in the mixed layer'325 CASE DEFAULT326 WRITE(ctmp1,*) 'bad flag value for nn_zdmp_tr = ', nn_zdmp_tr327 CALL ctl_stop(ctmp1)328 END SELECT329 330 IF( .NOT. ln_tradmp ) &331 & CALL ctl_stop( 'passive trace damping need key_tradmp to compute damping coef.' )332 !333 ! ! Read damping coefficients from file334 !Read in mask from file335 CALL iom_open ( cn_resto_tr, imask)336 CALL iom_get ( imask, jpdom_autoglo, 'resto', restotr)337 CALL iom_close( imask )338 !339 IF( nn_timing == 1 ) CALL timing_stop('trc_dmp_init')340 !341 END SUBROUTINE trc_dmp_init342 343 365 #else 344 366 !!---------------------------------------------------------------------- -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r5758 r5766 13 13 !!---------------------------------------------------------------------- 14 14 !! trc_ldf : update the tracer trend with the lateral diffusion 15 !! ldf_ctl: initialization, namelist read, and parameters control15 !! trc_ldf_ini : initialization, namelist read, and parameters control 16 16 !!---------------------------------------------------------------------- 17 17 USE trc ! ocean passive tracers variables 18 18 USE oce_trc ! ocean dynamics and active tracers 19 USE trcnam_trp ! passive tracers transport namelist variables20 19 USE ldfslp ! lateral diffusion: iso-neutral slope 21 20 USE traldf_lap ! lateral diffusion: laplacian iso-level operator (tra_ldf_lap routine) … … 31 30 PRIVATE 32 31 33 PUBLIC trc_ldf ! called by trctrp.F90 34 ! !!: ** lateral mixing namelist (nam_trcldf) ** 35 REAL(wp) :: rldf_rat ! ratio between active and passive tracers diffusive coefficient 32 PUBLIC trc_ldf 33 PUBLIC trc_ldf_ini 34 ! 35 LOGICAL , PUBLIC :: ln_trcldf_lap !: laplacian operator 36 LOGICAL , PUBLIC :: ln_trcldf_blp !: bilaplacian operator 37 LOGICAL , PUBLIC :: ln_trcldf_lev !: iso-level direction 38 LOGICAL , PUBLIC :: ln_trcldf_hor !: horizontal direction (rotation to geopotential) 39 LOGICAL , PUBLIC :: ln_trcldf_iso !: iso-neutral direction (standard) 40 LOGICAL , PUBLIC :: ln_trcldf_triad !: iso-neutral direction (triad) 41 REAL(wp), PUBLIC :: rn_ahtrc_0 !: laplacian diffusivity coefficient for passive tracer [m2/s] 42 REAL(wp), PUBLIC :: rn_bhtrc_0 !: bilaplacian - -- - - [m4/s] 43 ! 44 !!: ** lateral mixing namelist (nam_trcldf) ** 45 REAL(wp) :: rldf ! ratio between active and passive tracers diffusive coefficient 36 46 INTEGER :: nldf = 0 ! type of lateral diffusion used defined from ln_trcldf_... namlist logicals) 37 47 … … 64 74 ! 65 75 66 !!gm this call should be put in trcini !67 IF( kt == nittrc000 ) CALL ldf_ctl ! initialisation & control of options68 !!gm end69 70 76 IF( l_trdtrc ) THEN 71 77 CALL wrk_alloc( jpi,jpj,jpk,jptra, ztrtrd ) … … 75 81 ! ! set the lateral diffusivity coef. for passive tracer 76 82 CALL wrk_alloc( jpi,jpj,jpk, zahu, zahv ) 77 zahu(:,:,:) = rldf _rat* ahtu(:,:,:)78 zahv(:,:,:) = rldf _rat* ahtv(:,:,:)83 zahu(:,:,:) = rldf * ahtu(:,:,:) 84 zahv(:,:,:) = rldf * ahtv(:,:,:) 79 85 80 86 SELECT CASE ( nldf ) !* compute lateral mixing trend and add it to the general trend … … 115 121 !!gm ldf_ctl should be called in trcini so that l_ldfslp=T cause the slope init and calculation 116 122 117 SUBROUTINE ldf_ctl123 SUBROUTINE trc_ldf_ini 118 124 !!---------------------------------------------------------------------- 119 125 !! *** ROUTINE ldf_ctl *** … … 129 135 !!---------------------------------------------------------------------- 130 136 INTEGER :: ioptio, ierr ! temporary integers 131 !!---------------------------------------------------------------------- 137 INTEGER :: ios ! Local integer output status for namelist read 138 ! 139 NAMELIST/namtrc_ldf/ ln_trcldf_lap, ln_trcldf_blp, & 140 & ln_trcldf_lev, ln_trcldf_hor, ln_trcldf_iso, ln_trcldf_triad, & 141 & rn_ahtrc_0 , rn_bhtrc_0 142 !!---------------------------------------------------------------------- 143 REWIND( numnat_ref ) ! namtrc_ldf in reference namelist 144 READ ( numnat_ref, namtrc_ldf, IOSTAT = ios, ERR = 903) 145 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in reference namelist', lwp ) 146 147 REWIND( numnat_cfg ) ! namtrc_ldf in configuration namelist 148 READ ( numnat_cfg, namtrc_ldf, IOSTAT = ios, ERR = 904 ) 149 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in configuration namelist', lwp ) 150 IF(lwm) WRITE ( numont, namtrc_ldf ) 151 152 IF(lwp) THEN ! Namelist print 153 WRITE(numout,*) 154 WRITE(numout,*) 'trc_ldf_ini : lateral tracer diffusive operator' 155 WRITE(numout,*) '~~~~~~~~~~~' 156 WRITE(numout,*) ' Namelist namtrc_ldf : set lateral mixing parameters (type, direction, coefficients)' 157 WRITE(numout,*) ' operator' 158 WRITE(numout,*) ' laplacian ln_trcldf_lap = ', ln_trcldf_lap 159 WRITE(numout,*) ' bilaplacian ln_trcldf_blp = ', ln_trcldf_blp 160 WRITE(numout,*) ' direction of action' 161 WRITE(numout,*) ' iso-level ln_trcldf_lev = ', ln_trcldf_lev 162 WRITE(numout,*) ' horizontal (geopotential) ln_trcldf_hor = ', ln_trcldf_hor 163 WRITE(numout,*) ' iso-neutral (standard) ln_trcldf_iso = ', ln_trcldf_iso 164 WRITE(numout,*) ' iso-neutral (triad) ln_trcldf_triad = ', ln_trcldf_triad 165 WRITE(numout,*) ' diffusivity coefficient' 166 WRITE(numout,*) ' laplacian rn_ahtrc_0 = ', rn_ahtrc_0 167 WRITE(numout,*) ' bilaplacian rn_bhtrc_0 = ', rn_bhtrc_0 168 ENDIF 132 169 ! 133 170 ! ! control the namelist parameters … … 172 209 IF( ABS(rn_aht_0) < 2._wp*TINY(1.e0) ) THEN 173 210 IF( ABS(rn_ahtrc_0) < 2._wp*TINY(1.e0) ) THEN 174 rldf _rat= 1.0_wp211 rldf = 1.0_wp 175 212 ELSE 176 CALL ctl_stop( 'STOP', 'trc_ldf_ctl : cannot define rldf _rat, rn_aht_0==0, rn_ahtrc_0 /=0' )213 CALL ctl_stop( 'STOP', 'trc_ldf_ctl : cannot define rldf, rn_aht_0==0, rn_ahtrc_0 /=0' ) 177 214 ENDIF 178 215 ELSE 179 rldf _rat= rn_ahtrc_0 / rn_aht_0216 rldf = rn_ahtrc_0 / rn_aht_0 180 217 ENDIF 181 218 ENDIF … … 203 240 IF( ABS(rn_bht_0) < 2._wp*TINY(1.e0) ) THEN 204 241 IF( ABS(rn_bhtrc_0) < 2._wp*TINY(1.e0) ) THEN 205 rldf _rat= 1.0_wp242 rldf = 1.0_wp 206 243 ELSE 207 CALL ctl_stop( 'STOP', 'trc_ldf_ctl : cannot define rldf _rat, rn_aht_0==0, rn_ahtrc_0 /=0' )244 CALL ctl_stop( 'STOP', 'trc_ldf_ctl : cannot define rldf, rn_aht_0==0, rn_ahtrc_0 /=0' ) 208 245 ENDIF 209 246 ELSE 210 rldf _rat= SQRT( ABS( rn_bhtrc_0 / rn_bht_0 ) )247 rldf = SQRT( ABS( rn_bhtrc_0 / rn_bht_0 ) ) 211 248 ENDIF 212 249 ENDIF … … 231 268 ENDIF 232 269 ! 233 END SUBROUTINE ldf_ctl270 END SUBROUTINE trc_ldf_ini 234 271 #else 235 272 !!---------------------------------------------------------------------- -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90
r4990 r5766 22 22 PRIVATE 23 23 24 PUBLIC trc_rad ! routine called by trcstp.F90 25 26 !! * Substitutions 27 # include "top_substitute.h90" 24 PUBLIC trc_rad 25 PUBLIC trc_rad_ini 26 27 LOGICAL , PUBLIC :: ln_trcrad !: flag to artificially correct negative concentrations 28 28 29 !!---------------------------------------------------------------------- 29 30 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 76 77 ! 77 78 END SUBROUTINE trc_rad 79 80 SUBROUTINE trc_rad_ini 81 !!--------------------------------------------------------------------- 82 !! *** ROUTINE trc _rad_ini *** 83 !! 84 !! ** Purpose : read namelist options 85 !!---------------------------------------------------------------------- 86 INTEGER :: ios ! Local integer output status for namelist read 87 NAMELIST/namtrc_rad/ ln_trcrad 88 !!---------------------------------------------------------------------- 89 90 ! 91 REWIND( numnat_ref ) ! namtrc_rad in reference namelist 92 READ ( numnat_ref, namtrc_rad, IOSTAT = ios, ERR = 907) 93 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in reference namelist', lwp ) 94 95 REWIND( numnat_cfg ) ! namtrc_rad in configuration namelist 96 READ ( numnat_cfg, namtrc_rad, IOSTAT = ios, ERR = 908 ) 97 908 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in configuration namelist', lwp ) 98 IF(lwm) WRITE ( numont, namtrc_rad ) 99 100 IF(lwp) THEN ! ! Control print 101 WRITE(numout,*) 102 WRITE(numout,*) ' Namelist namtrc_rad : treatment of negative concentrations' 103 WRITE(numout,*) ' correct artificially negative concen. or not ln_trcrad = ', ln_trcrad 104 ENDIF 105 ! 106 END SUBROUTINE trc_rad_ini 78 107 79 108 SUBROUTINE trc_rad_sms( kt, ptrb, ptrn, jp_sms0, jp_sms1, cpreserv ) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r5385 r5766 31 31 32 32 !! * Substitutions 33 # include "top_substitute.h90" 33 # include "domzgr_substitute.h90" 34 # include "vectopt_loop_substitute.h90" 34 35 !!---------------------------------------------------------------------- 35 36 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 83 84 CASE( 0 ) ; zswitch = 1 ! (0) standard levitating sea-ice : salt exchange only 84 85 CASE( 1, 2 ) ; zswitch = 0 ! (1) levitating sea-ice: salt and volume exchange but no pressure effect 85 86 ! ! (2) embedded sea-ice : salt and volume fluxes and pressure 86 87 END SELECT 87 88 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r5758 r5766 15 15 USE oce_trc ! ocean dynamics and active tracers variables 16 16 USE trc ! ocean passive tracers variables 17 USE trcnam_trp ! passive tracers transport namelist variables18 17 USE trabbl ! bottom boundary layer (trc_bbl routine) 19 18 USE trcbbl ! bottom boundary layer (trc_bbl routine) 20 USE zdfkpp ! KPP non-local tracer fluxes (trc_kpp routine)21 19 USE trcdmp ! internal damping (trc_dmp routine) 22 20 USE trcldf ! lateral mixing (trc_ldf routine) … … 38 36 PUBLIC trc_trp ! called by trc_stp 39 37 40 !! * Substitutions41 # include "top_substitute.h90"42 38 !!---------------------------------------------------------------------- 43 39 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 69 65 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kt ) ! internal damping trends on closed seas only 70 66 CALL trc_adv ( kt ) ! horizontal & vertical advection 67 ! ! Partial top/bottom cell: GRADh( trb ) 68 IF( ln_zps ) THEN 69 IF( ln_isfcav ) THEN ; CALL zps_hde_isf( kt, jptra, trb, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! both top & bottom 70 ELSE ; CALL zps_hde ( kt, jptra, trb, gtru, gtrv ) ! only bottom 71 ENDIF 72 ENDIF 73 ! 71 74 CALL trc_ldf ( kt ) ! lateral mixing 72 75 #if defined key_agrif … … 78 81 79 82 #if defined key_agrif 80 IF( .NOT.Agrif_Root())CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only83 IF( .NOT.Agrif_Root()) CALL Agrif_Update_Trc( kt ) ! Update tracer at AGRIF zoom boundaries : children only 81 84 #endif 82 83 ! ! Partial top/bottom cell: GRADh( trn )84 IF( ln_isfcav .AND. ln_zps ) THEN ; CALL zps_hde_isf( kt, jptra, trn, gtru, gtrv, gtrui, gtrvi ) ! both top & bottom85 ELSEIF( ln_zps ) THEN ; CALL zps_hde ( kt, jptra, trn, gtru, gtrv ) ! only bottom86 ENDIF87 !!gm IF( ln_zps ) THEN88 ! & CALL zps_hde ( kt, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive89 ! IF( ln_isfcav) &90 ! & CALL zps_hde_isf( kt, jptra, trn, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! Partial steps: now horizontal gradient of passive91 !!gm ENDIF92 85 ! 93 86 ELSE ! 1D vertical configuration 94 87 CALL trc_sbc( kt ) ! surface boundary condition 95 IF( .NOT. lk_offline .AND. lk_zdfkpp ) &96 & CALL trc_kpp( kt ) ! KPP non-local tracer fluxes97 88 CALL trc_zdf( kt ) ! vertical mixing and after tracer fields 98 89 CALL trc_nxt( kt ) ! tracer fields at next time step -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trczdf.F90
r5385 r5766 11 11 !! 'key_top' TOP models 12 12 !!---------------------------------------------------------------------- 13 !! trc_ ldf : update the tracer trend with the lateral diffusion14 !! ldf_ctl: initialization, namelist read, and parameters control13 !! trc_zdf : update the tracer trend with the lateral diffusion 14 !! trc_zdf_ini : initialization, namelist read, and parameters control 15 15 !!---------------------------------------------------------------------- 16 16 USE oce_trc ! ocean dynamics and active tracers 17 17 USE trc ! ocean passive tracers variables 18 USE trcnam_trp ! passive tracers transport namelist variables19 18 USE trazdf_exp ! vertical diffusion: explicit (tra_zdf_exp routine) 20 19 USE trazdf_imp ! vertical diffusion: implicit (tra_zdf_imp routine) 20 USE trcldf 21 21 USE trd_oce 22 22 USE trdtra … … 28 28 PUBLIC trc_zdf ! called by step.F90 29 29 PUBLIC trc_zdf_alloc ! called by nemogcm.F90 30 PUBLIC trc_zdf_ini ! called by nemogcm.F90 31 ! !!: ** Vertical diffusion 32 ! (nam_trczdf) ** 33 LOGICAL , PUBLIC :: ln_trczdf_exp !: explicit vertical diffusion scheme flag 34 INTEGER , PUBLIC :: nn_trczdf_exp !: number of sub-time step (explicit time stepping) 30 35 31 36 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used … … 55 60 END FUNCTION trc_zdf_alloc 56 61 57 58 62 SUBROUTINE trc_zdf( kt ) 59 63 !!---------------------------------------------------------------------- … … 71 75 IF( nn_timing == 1 ) CALL timing_start('trc_zdf') 72 76 ! 73 IF( kt == nittrc000 ) CALL zdf_ctl ! initialisation & control of options74 75 77 IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN ! at nittrc000 76 78 r2dt(:) = rdttrc(:) ! = rdttrc (use or restarting with Euler time stepping) … … 116 118 END SUBROUTINE trc_zdf 117 119 118 119 SUBROUTINE zdf_ctl 120 SUBROUTINE trc_zdf_ini 120 121 !!---------------------------------------------------------------------- 121 !! *** ROUTINE zdf_ctl***122 !! *** ROUTINE trc_zdf_ini *** 122 123 !! 123 124 !! ** Purpose : Choose the vertical mixing scheme … … 128 129 !! NB: The implicit scheme is required when using : 129 130 !! - rotated lateral mixing operator 130 !! - TKE, GLS or KPP vertical mixing scheme 131 !! - TKE, GLS vertical mixing scheme 132 !!---------------------------------------------------------------------- 133 INTEGER :: ios ! Local integer output status for namelist read 134 ! 135 NAMELIST/namtrc_zdf/ ln_trczdf_exp , nn_trczdf_exp 131 136 !!---------------------------------------------------------------------- 132 137 138 ! ! Vertical mixing 139 REWIND( numnat_ref ) ! namtrc_zdf in reference namelist 140 READ ( numnat_ref, namtrc_zdf, IOSTAT = ios, ERR = 905) 141 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in reference namelist', lwp ) 142 143 REWIND( numnat_cfg ) ! namtrc_zdf in configuration namelist 144 READ ( numnat_cfg, namtrc_zdf, IOSTAT = ios, ERR = 906 ) 145 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in configuration namelist', lwp ) 146 IF(lwm) WRITE ( numont, namtrc_zdf ) 147 148 IF(lwp) THEN ! ! Control print 149 WRITE(numout,*) 150 WRITE(numout,*) ' Namelist namtrc_zdf : set vertical diffusion parameters' 151 WRITE(numout,*) ' time splitting / backward scheme ln_trczdf_exp = ', ln_trczdf_exp 152 WRITE(numout,*) ' number of time step nn_trczdf_exp = ', nn_trczdf_exp 153 ENDIF 154 133 155 ! Define the vertical tracer physics scheme 134 ! ========================================== 135 136 ! Choice from ln_zdfexp already read in namelist in zdfini module 137 IF( ln_trczdf_exp ) THEN ! use explicit scheme 138 nzdf = 0 139 ELSE ! use implicit scheme 140 nzdf = 1 156 IF( ln_trczdf_exp ) THEN ; nzdf = 0 ! explicit scheme 157 ELSE ; nzdf = 1 ! implicit scheme 141 158 ENDIF 142 159 … … 144 161 IF( ln_trcldf_iso ) nzdf = 1 ! iso-neutral lateral physics 145 162 IF( ln_trcldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 146 #if defined key_zdftke || defined key_zdfgls || defined key_zdfkpp147 nzdf = 1 ! TKE , GLS or KPPphysics163 #if defined key_zdftke || defined key_zdfgls 164 nzdf = 1 ! TKE or GLS physics 148 165 #endif 149 IF( ln_trczdf_exp .AND. nzdf == 1 ) THEN150 CALL ctl_stop( 'trc_zdf : If using the rotated lateral mixing operator or TKE, GLS or KPPvertical scheme ', &166 IF( ln_trczdf_exp .AND. nzdf == 1 ) & 167 CALL ctl_stop( 'trc_zdf : If using the rotated lateral mixing operator or TKE, GLS vertical scheme ', & 151 168 & ' the implicit scheme is required, set ln_trczdf_exp = .false.' ) 152 ENDIF153 154 ! Test: esopa155 IF( lk_esopa ) nzdf = -1 ! All schemes used156 169 157 170 IF(lwp) THEN … … 159 172 WRITE(numout,*) 'trc:zdf_ctl : vertical passive tracer physics scheme' 160 173 WRITE(numout,*) '~~~~~~~~~~~' 161 IF( nzdf == -1 ) WRITE(numout,*) ' ESOPA test All scheme used'162 174 IF( nzdf == 0 ) WRITE(numout,*) ' Explicit time-splitting scheme' 163 175 IF( nzdf == 1 ) WRITE(numout,*) ' Implicit (euler backward) scheme' 164 176 ENDIF 165 177 166 END SUBROUTINE zdf_ctl178 END SUBROUTINE trc_zdf_ini 167 179 #else 168 180 !!---------------------------------------------------------------------- -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc.F90
r5215 r5766 24 24 USE zdfddm , ONLY : avs ! salinity vertical diffusivity coeff. at w-point 25 25 # endif 26 USE trcnam_trp ! passive tracers transport namelist variables27 26 USE trdtrc_oce ! definition of main arrays used for trends computations 28 27 USE in_out_manager ! I/O manager … … 67 66 68 67 !! * Substitutions 69 # include " top_substitute.h90"68 # include "domzgr_substitute.h90" 70 69 # include "zdfddm_substitute.h90" 71 70 !!---------------------------------------------------------------------- -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc.F90
r5215 r5766 14 14 !!---------------------------------------------------------------------- 15 15 USE trc ! tracer definitions (trn, trb, tra, etc.) 16 USE trcnam_trp17 16 USE trd_oce 18 17 USE trdtrc_oce ! definition of main arrays used for trends computations … … 29 28 PUBLIC trd_trc 30 29 31 !! * Substitutions32 # include "top_substitute.h90"33 30 !!---------------------------------------------------------------------- 34 31 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcdia.F90
r4292 r5766 51 51 INTEGER :: nhoritb !: id for horizontal mesh 52 52 53 !! * Substitutions54 # include "top_substitute.h90"55 53 !!---------------------------------------------------------------------- 56 54 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r5758 r5766 18 18 USE oce_trc ! shared variables between ocean and passive tracers 19 19 USE trc ! passive tracers common variables 20 USE trcrst ! passive tracers restart21 20 USE trcnam ! Namelist read 22 USE trcini_cfc ! CFC initialisation23 USE trcini_pisces ! PISCES initialisation24 USE trcini_c14b ! C14 bomb initialisation25 USE trcini_my_trc ! MY_TRC initialisation26 USE trcdta ! initialisation from files27 21 USE daymod ! calendar manager 28 USE zpshde ! partial step: hor. derivative (zps_hde routine)29 22 USE prtctl_trc ! Print control passive tracers (prt_ctl_trc_init routine) 30 23 USE trcsub ! variables to substep passive tracers 24 USE trcrst 31 25 USE lib_mpp ! distribued memory computing library 32 26 USE sbc_oce … … 59 53 !! or read data or analytical formulation 60 54 !!--------------------------------------------------------------------- 61 INTEGER :: jk, jn, jl ! dummy loop indices62 CHARACTER (len=25) :: charout63 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 4D workspace64 55 !!--------------------------------------------------------------------- 65 56 ! … … 70 61 IF(lwp) WRITE(numout,*) '~~~~~~~' 71 62 72 CALL top_alloc() ! allocate TOP arrays 73 63 ! 64 CALL top_alloc() ! allocate TOP arrays 65 ! 66 CALL trc_ini_ctl ! control 67 ! 68 CALL trc_nam ! read passive tracers namelists 69 ! 70 IF(lwp) WRITE(numout,*) 71 ! 72 IF( ln_rsttr .AND. .NOT. lk_offline ) CALL trc_rst_cal( nit000, 'READ' ) ! calendar 73 ! 74 IF(lwp) WRITE(numout,*) 75 ! 76 CALL trc_ini_sms ! SMS 77 ! 78 CALL trc_ini_trp ! passive tracers transport 79 ! 80 CALL trc_ice_ini ! Tracers in sea ice 81 ! 82 IF( lwp ) & 83 & CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp , narea ) 84 ! 85 CALL trc_ini_state ! passive tracers initialisation : from a restart or from clim 86 ! 87 IF( nn_dttrc /= 1 ) CALL trc_sub_ini ! Initialize variables for substepping passive tracers 88 ! 89 CALL trc_ini_inv ! Inventories 90 ! 91 IF( nn_timing == 1 ) CALL timing_stop('trc_init') 92 ! 93 END SUBROUTINE trc_init 94 95 SUBROUTINE trc_ini_ctl 96 !!---------------------------------------------------------------------- 97 !! *** ROUTINE trc_ini_ctl *** 98 !! ** Purpose : Control + ocean volume 99 !!---------------------------------------------------------------------- 100 INTEGER :: jk ! dummy loop indices 101 ! 102 ! Define logical parameter ton control dirunal cycle in TOP 74 103 l_trcdm2dc = ln_dm2dc .OR. ( ln_cpl .AND. ncpl_qsr_freq /= 1 ) 75 104 l_trcdm2dc = l_trcdm2dc .AND. .NOT. lk_offline … … 78 107 & Computation of a daily mean shortwave for some biogeochemical models) ') 79 108 109 ! 80 110 IF( nn_cla == 1 ) & 81 111 & CALL ctl_stop( ' Cross Land Advection not yet implemented with passive tracer ; nn_cla must be 0' ) 82 83 CALL trc_nam ! read passive tracers namelists 84 ! 85 IF(lwp) WRITE(numout,*) 86 ! 87 IF( ln_rsttr .AND. .NOT. lk_offline ) CALL trc_rst_cal( nit000, 'READ' ) ! calendar 88 ! 89 IF(lwp) WRITE(numout,*) 90 ! masked grid volume 112 ! 113 END SUBROUTINE trc_ini_ctl 114 115 SUBROUTINE trc_ini_inv 116 !!---------------------------------------------------------------------- 117 !! *** ROUTINE trc_ini_stat *** 118 !! ** Purpose : passive tracers inventories at initialsation phase 119 !!---------------------------------------------------------------------- 120 INTEGER :: jk, jn ! dummy loop indices 121 CHARACTER (len=25) :: charout 122 !!---------------------------------------------------------------------- 91 123 ! ! masked grid volume 92 124 DO jk = 1, jpk … … 96 128 ! ! total volume of the ocean 97 129 areatot = glob_sum( cvol(:,:,:) ) 98 130 ! 131 trai(:) = 0._wp ! initial content of all tracers 132 DO jn = 1, jptra 133 trai(jn) = trai(jn) + glob_sum( trn(:,:,:,jn) * cvol(:,:,:) ) 134 END DO 135 136 IF(lwp) THEN ! control print 137 WRITE(numout,*) 138 WRITE(numout,*) 139 WRITE(numout,*) ' *** Total number of passive tracer jptra = ', jptra 140 WRITE(numout,*) ' *** Total volume of ocean = ', areatot 141 WRITE(numout,*) ' *** Total inital content of all tracers ' 142 WRITE(numout,*) 143 DO jn = 1, jptra 144 WRITE(numout,9000) jn, TRIM( ctrcnm(jn) ), trai(jn) 145 ENDDO 146 WRITE(numout,*) 147 ENDIF 148 IF(lwp) WRITE(numout,*) 149 IF(ln_ctl) THEN ! print mean trends (used for debugging) 150 CALL prt_ctl_trc_init 151 WRITE(charout, FMT="('ini ')") 152 CALL prt_ctl_trc_info( charout ) 153 CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 154 ENDIF 155 9000 FORMAT(' tracer nb : ',i2,' name :',a10,' initial content :',e18.10) 156 ! 157 END SUBROUTINE trc_ini_inv 158 159 SUBROUTINE trc_ini_sms 160 !!---------------------------------------------------------------------- 161 !! *** ROUTINE trc_ini_sms *** 162 !! ** Purpose : SMS initialisation 163 !!---------------------------------------------------------------------- 164 USE trcini_cfc ! CFC initialisation 165 USE trcini_pisces ! PISCES initialisation 166 USE trcini_c14b ! C14 bomb initialisation 167 USE trcini_my_trc ! MY_TRC initialisation 168 !!---------------------------------------------------------------------- 99 169 IF( lk_pisces ) CALL trc_ini_pisces ! PISCES bio-model 100 170 IF( lk_cfc ) CALL trc_ini_cfc ! CFC tracers 101 171 IF( lk_c14b ) CALL trc_ini_c14b ! C14 bomb tracer 102 172 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 103 104 CALL trc_ice_ini ! Tracers in sea ice 105 106 IF( lwp ) THEN 107 ! 108 CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp , narea ) 109 ! 110 ENDIF 111 173 ! 174 END SUBROUTINE trc_ini_sms 175 176 SUBROUTINE trc_ini_trp 177 !!---------------------------------------------------------------------- 178 !! *** ROUTINE trc_ini_trp *** 179 !! 180 !! ** Purpose : Allocate all the dynamic arrays of the OPA modules 181 !!---------------------------------------------------------------------- 182 USE trcdmp , ONLY: trc_dmp_ini 183 USE trcadv , ONLY: trc_adv_ini 184 USE trcldf , ONLY: trc_ldf_ini 185 USE trczdf , ONLY: trc_zdf_ini 186 USE trcrad , ONLY: trc_rad_ini 187 ! 188 INTEGER :: ierr 189 !!---------------------------------------------------------------------- 190 ! 191 IF( ln_trcdmp ) CALL trc_dmp_ini ! damping 192 CALL trc_adv_ini ! advection 193 CALL trc_ldf_ini ! lateral diffusion 194 CALL trc_zdf_ini ! vertical diffusion 195 CALL trc_rad_ini ! positivity of passive tracers 196 ! 197 END SUBROUTINE trc_ini_trp 198 199 SUBROUTINE trc_ini_state 200 !!---------------------------------------------------------------------- 201 !! *** ROUTINE trc_ini_state *** 202 !! ** Purpose : Initialisation of passive tracer concentration 203 !!---------------------------------------------------------------------- 204 USE zpshde ! partial step: hor. derivative (zps_hde routine) 205 USE trcrst ! passive tracers restart 206 USE trcdta ! initialisation from files 207 ! 208 INTEGER :: jk, jn, jl ! dummy loop indices 209 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 4D workspace 210 !!---------------------------------------------------------------------- 211 ! 112 212 IF( ln_trcdta ) CALL trc_dta_init(jptra) 113 114 213 115 214 IF( ln_rsttr ) THEN … … 146 245 147 246 tra(:,:,:,:) = 0._wp 148 149 !!gm case not.lk_c1d is useless since in 1D, 9 identical column all resulting arrays are zero 150 !! it is at the initialization so not a issue 151 ! IF(.NOT. lk_c1d ) THEN 152 !!gm 153 IF( ln_isfcav .AND. ln_zps ) THEN ; CALL zps_hde_isf( nit000, jptra, trn, gtru, gtrv, gtrui, gtrvi ) ! both top & bottom 154 ELSEIF( ln_zps ) THEN ; CALL zps_hde ( nit000, jptra, trn, gtru, gtrv ) ! only bottom 155 ENDIF 156 !!gm 157 ! ENDIF 158 !!gm 159 160 !!gm ===>>>>>> Anyyway, I don't understand why a call to zps_hde is needed here ! 161 162 ! 163 IF( nn_dttrc /= 1 ) CALL trc_sub_ini ! Initialize variables for substepping passive tracers 164 ! 165 166 trai(:) = 0._wp ! initial content of all tracers 167 DO jn = 1, jptra 168 trai(jn) = trai(jn) + glob_sum( trn(:,:,:,jn) * cvol(:,:,:) ) 169 END DO 170 171 IF(lwp) THEN ! control print 172 WRITE(numout,*) 173 WRITE(numout,*) 174 WRITE(numout,*) ' *** Total number of passive tracer jptra = ', jptra 175 WRITE(numout,*) ' *** Total volume of ocean = ', areatot 176 WRITE(numout,*) ' *** Total inital content of all tracers ' 177 WRITE(numout,*) 178 DO jn = 1, jptra 179 WRITE(numout,9000) jn, TRIM( ctrcnm(jn) ), trai(jn) 180 ENDDO 181 WRITE(numout,*) 182 ENDIF 183 IF(lwp) WRITE(numout,*) 184 IF(ln_ctl) THEN ! print mean trends (used for debugging) 185 CALL prt_ctl_trc_init 186 WRITE(charout, FMT="('ini ')") 187 CALL prt_ctl_trc_info( charout ) 188 CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 189 ENDIF 190 9000 FORMAT(' tracer nb : ',i2,' name :',a10,' initial content :',e18.10) 191 ! 192 IF( nn_timing == 1 ) CALL timing_stop('trc_init') 193 ! 194 END SUBROUTINE trc_init 195 247 ! ! Partial top/bottom cell: GRADh(trn) 248 END SUBROUTINE trc_ini_state 196 249 197 250 SUBROUTINE top_alloc -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r5758 r5766 20 20 USE oce_trc ! shared variables between ocean and passive tracers 21 21 USE trc ! passive tracers common variables 22 USE trcnam_trp ! Transport namelist23 22 USE trcnam_pisces ! PISCES namelist 24 23 USE trcnam_cfc ! CFC SMS namelist … … 35 34 PUBLIC trc_nam ! called in trcini 36 35 37 !! * Substitutions38 # include "top_substitute.h90"39 36 !!---------------------------------------------------------------------- 40 37 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 62 59 CALL trc_nam_dia ! Parameters of additional diagnostics 63 60 ! 64 CALL trc_nam_trp ! namelist of transport65 !66 61 ! 67 62 IF( ln_rsttr ) ln_trcdta = .FALSE. ! restart : no need of clim data -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r5513 r5766 25 25 USE oce_trc 26 26 USE trc 27 USE trcnam_trp28 27 USE iom 29 28 USE daymod … … 37 36 38 37 !! * Substitutions 39 # include " top_substitute.h90"38 # include "domzgr_substitute.h90" 40 39 41 40 CONTAINS -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r5758 r5766 48 48 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm , vslp_tm , wslpi_tm , wslpj_tm !: time mean 49 49 50 !! * Substitution51 # include " top_substitute.h90"50 !! * Substitutions 51 # include "domzgr_substitute.h90" 52 52 !!---------------------------------------------------------------------- 53 53 !! NEMO/TOP 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r3750 r5766 26 26 27 27 PUBLIC trc_wri 28 29 !! * Substitutions30 # include "top_substitute.h90"31 28 32 29 CONTAINS -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/SETTE/param.cfg
r5423 r5766 1 #- forcing files storing 1 #- forcing files storing 2 2 FORCING_DIR=~/FORCING 3 #- input files storing 3 #- input files storing 4 4 INPUT_DIR=${CONFIG_DIR}/${NEW_CONF}/EXP00 5 5 #- only for IBM 6 6 #TMPDIR=${CONFIG_DIR}/${NEW_CONF}/EXP00 7 #- VALIDATION files storing 7 #- VALIDATION files storing 8 8 NEMO_VALIDATION_DIR=~/NEMO_VALIDATION -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/SETTE/sette.sh
r5753 r5766 291 291 . ./prepare_exe_dir.sh 292 292 JOB_FILE=${EXE_DIR}/run_job.sh 293 NPROC= 4293 NPROC=8 294 294 if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi 295 295 cd ${EXE_DIR} -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/SETTE/sette_rpt
r5589 r5766 393 393 394 394 395 if ( -d ./WORCA2_LIM_OBS ) then 396 set dorv = `ls -1rtd ./WORCA2_LIM_OBS/{$mach}/* | tail -1l ` 397 set dorv = $dorv:t 398 set f1o = ./WORCA2_LIM_OBS/{$mach}/{$dorv}/REPRO_2_8/ocean.output 399 set f1s = ./WORCA2_LIM_OBS/{$mach}/{$dorv}/REPRO_2_8/solver.stat 400 set f2o = ./WORCA2_LIM_OBS/{$mach}/{$dorv}/REPRO_4_4/ocean.output 401 set f2s = ./WORCA2_LIM_OBS/{$mach}/{$dorv}/REPRO_4_4/solver.stat 402 403 cmp -s $f1s $f2s 404 if ( $status == 0 ) then 405 echo "ORCA2_LIM_OBS reproducibility passed" 406 else 407 echo "ORCA2_LIM_OBS reproducibility FAILED" 408 if ( $pass == 1 ) then 409 echo "<return> to view solver.stat differences" 410 set y = $< 411 sdiff $f1s $f2s 412 echo "<return> to view ocean.output differences" 413 set y = $< 414 sdiff $f1o $f2o | grep "|" 415 echo "<return> to continue" 416 set y = $< 417 endif 418 endif 419 endif 420 421 395 422 if ( -d ./WSAS_32 ) then 396 423 set dorv = `ls -1rtd ./WSAS_32/{$mach}/* | tail -1l `
Note: See TracChangeset
for help on using the changeset viewer.