Changeset 4617
- Timestamp:
- 2014-04-06T17:47:31+02:00 (10 years ago)
- Location:
- branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/CONFIG/GYRE_BFM/cpp_GYRE_BFM.fcm
r4230 r4617 1 bld::tool::fppkeys key_dynspg_flt key_ldfslp key_zdftke key_ vectopt_loop key_top key_my_trc key_mpp_mpi key_iomput1 bld::tool::fppkeys key_dynspg_flt key_ldfslp key_zdftke key_top key_my_trc key_mpp_mpi key_iomput 2 2 inc $BFMDIR/src/nemo/bfm.fcm -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/iodef.xml
r4245 r4617 74 74 </file> 75 75 76 <file id="file5" name ="_ptrc_T" description="lobster sms variables" >76 <file id="file5" name_suffix="_ptrc_T" description="lobster sms variables" > 77 77 <field field_ref="DET" /> 78 78 <field field_ref="ZOO" /> -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_cfg
r4370 r4617 31 31 ln_zco = .true. ! z-coordinate - full steps (T/F) ("key_zco" may also be defined) 32 32 ln_zps = .false. ! z-coordinate - partial steps (T/F) 33 / 34 !----------------------------------------------------------------------- 35 &namzgr_sco ! s-coordinate or hybrid z-s-coordinate 36 !----------------------------------------------------------------------- 33 37 / 34 38 !----------------------------------------------------------------------- … … 78 82 !----------------------------------------------------------------------- 79 83 nn_fsbc = 1 ! frequency of surface boundary condition computation 80 84 ! ! (also = the frequency of sea-ice model call) 81 85 ln_ana = .true. ! analytical formulation (T => fill namsbc_ana ) 82 86 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) … … 87 91 / 88 92 !----------------------------------------------------------------------- 93 &namsbc_ana ! analytical surface boundary condition 94 !----------------------------------------------------------------------- 95 nn_tau000 = 100 ! gently increase the stress over the first ntau_rst time-steps 96 rn_utau0 = 0.1e0 ! uniform value for the i-stress 97 / 98 !----------------------------------------------------------------------- 99 &namsbc_flx ! surface boundary condition : flux formulation 100 !----------------------------------------------------------------------- 101 / 102 !----------------------------------------------------------------------- 103 &namsbc_clio ! namsbc_clio CLIO bulk formulae 104 !----------------------------------------------------------------------- 105 / 106 !----------------------------------------------------------------------- 107 &namsbc_core ! namsbc_core CORE bulk formulae 108 !----------------------------------------------------------------------- 109 / 110 !----------------------------------------------------------------------- 111 &namsbc_mfs ! namsbc_mfs MFS bulk formulae 112 !----------------------------------------------------------------------- 113 / 114 !----------------------------------------------------------------------- 115 &namsbc_cpl ! coupled ocean/atmosphere model ("key_coupled") 116 !----------------------------------------------------------------------- 117 / 118 !----------------------------------------------------------------------- 89 119 &namtra_qsr ! penetrative solar radiation 90 120 !----------------------------------------------------------------------- … … 93 123 nn_chldta = 0 ! RGB : Chl data (=1) or cst value (=0) 94 124 / 95 125 !----------------------------------------------------------------------- 126 &namsbc_rnf ! runoffs namelist surface boundary condition 127 !----------------------------------------------------------------------- 128 ln_rnf_mouth = .false. ! specific treatment at rivers mouths 129 / 130 !----------------------------------------------------------------------- 131 &namsbc_apr ! Atmospheric pressure used as ocean forcing or in bulk 132 !----------------------------------------------------------------------- 133 / 134 !----------------------------------------------------------------------- 135 &namsbc_ssr ! surface boundary condition : sea surface restoring 136 !----------------------------------------------------------------------- 137 nn_sssr = 0 ! add a damping term in the surface freshwater flux (=2) 138 rn_deds = -27.7 ! magnitude of the damping on salinity [mm/day] 139 ln_sssr_bnd = .false. ! flag to bound erp term (associated with nn_sssr=2) 140 / 141 !----------------------------------------------------------------------- 142 &namsbc_alb ! albedo parameters 143 !----------------------------------------------------------------------- 144 / 96 145 !----------------------------------------------------------------------- 97 146 &namberg ! iceberg parameters … … 105 154 !----------------------------------------------------------------------- 106 155 &namcla ! cross land advection 156 !----------------------------------------------------------------------- 157 / 158 !----------------------------------------------------------------------- 159 &namobc ! open boundaries parameters ("key_obc") 160 !----------------------------------------------------------------------- 161 / 162 !----------------------------------------------------------------------- 163 &namagrif ! AGRIF zoom ("key_agrif") 164 !----------------------------------------------------------------------- 165 / 166 !----------------------------------------------------------------------- 167 &nam_tide ! tide parameters (#ifdef key_tide) 168 !----------------------------------------------------------------------- 169 / 170 !----------------------------------------------------------------------- 171 &nambdy ! unstructured open boundaries ("key_bdy") 172 !----------------------------------------------------------------------- 173 / 174 !----------------------------------------------------------------------- 175 &nambdy_dta ! open boundaries - external data ("key_bdy") 176 !----------------------------------------------------------------------- 177 / 178 !----------------------------------------------------------------------- 179 &nambdy_tide ! tidal forcing at open boundaries 107 180 !----------------------------------------------------------------------- 108 181 / … … 119 192 / 120 193 !----------------------------------------------------------------------- 194 &nambbl ! bottom boundary layer scheme 195 !----------------------------------------------------------------------- 196 / 197 !----------------------------------------------------------------------- 121 198 &nameos ! ocean physical parameters 122 199 !----------------------------------------------------------------------- … … 127 204 !----------------------------------------------------------------------- 128 205 ln_traadv_msc_ups= .false. ! use upstream scheme within muscl 206 / 207 !----------------------------------------------------------------------- 208 &namtra_adv_mle ! mixed layer eddy parametrisation (Fox-Kemper param) 209 !----------------------------------------------------------------------- 129 210 / 130 211 !---------------------------------------------------------------------------------- 131 212 &namtra_ldf ! lateral diffusion scheme for tracers 132 213 !---------------------------------------------------------------------------------- 133 rn_aeiv_0 = 0. ! eddy induced velocity coefficient [m2/s] 134 rn_aht_0 = 1000. ! horizontal eddy diffusivity for tracers [m2/s] 214 ! ! Operator type: 215 ln_traldf_lap = .true. ! laplacian operator 216 ln_traldf_blp = .false. ! bilaplacian operator 217 ! ! Direction of action: 218 ln_traldf_lev = .false. ! iso-level 219 ln_traldf_hor = .false. ! horizontal (geopotential) 220 ln_traldf_iso = .false. ! iso-neutral 221 ln_traldf_triad = .true. ! iso-neutral with Griffies triads 222 ! 223 ! ! iso-neutral options 224 ln_traldf_msc = .true. ! Method of Stabilizing Correction (both operator) 225 rn_slpmax = 0.01 ! slope limit (both operator) 226 ln_triad_iso = .false. ! pure horizontal mixing in ML (triad only) 227 ln_botmix_triad = .false. ! lateral mixing on bottom (triad only) 228 ! 229 ! ! Coefficients 230 nn_aht_ijk_t = 0 ! space/time variation of eddy coef 231 ! ! =0 constant ; =10 F(k) ; =20 F(i,j)=F(grid spacing) ; =30 F(i,j,k) 232 ! ! =21 F(i,jt)=Treguier et al. JPO 1997 formulation 233 ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file 234 rn_aht_0 = 1000. ! lateral eddy diffusivity (lap. operator) [m2/s] 235 rn_bht_0 = 5.e+11 ! lateral eddy diffusivity (bilap. operator) [m4/s] 236 / 237 !---------------------------------------------------------------------------------- 238 &namtra_ldfeiv ! eddy induced velocity param. 239 !---------------------------------------------------------------------------------- 240 ln_ldfeiv =.false. ! use eddy induced velocity parameterization 241 ln_ldfeiv_dia =.false. ! diagnose eiv stream function and velocities 242 rn_aeiv_0 = 1000. ! eddy induced velocity coefficient [m2/s] 243 nn_aei_ijk_t = 0 ! space/time variation of the eiv coeficient 244 ! ! =0 constant ; =10 F(k) ; =20 F(i,j) = F(grid spacing) ; =30 F(i,j,k) 245 ! ! =21 F(i,jt)=Treguier et al. JPO 1997 formulation 246 ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file 135 247 / 136 248 !----------------------------------------------------------------------- … … 159 271 / 160 272 !----------------------------------------------------------------------- 273 !namdyn_spg ! surface pressure gradient (CPP key only) 274 !----------------------------------------------------------------------- 275 276 !----------------------------------------------------------------------- 161 277 &namdyn_ldf ! lateral diffusion on momentum 162 278 !----------------------------------------------------------------------- 163 rn_ahm_0_lap = 100000. ! horizontal laplacian eddy viscosity [m2/s] 279 ! ! Type of the operator : 280 ln_dynldf_lap = .true. ! laplacian operator 281 ln_dynldf_blp = .false. ! bilaplacian operator 282 ! ! Direction of action : 283 ln_dynldf_lev = .false. ! iso-level 284 ln_dynldf_hor = .true. ! horizontal (geopotential) 285 ln_dynldf_iso = .false. ! iso-neutral 286 ! ! Coefficient 287 nn_ahm_ijk_t = 0 ! space/time variation of eddy coef 288 ! ! =0 constant ; =10 F(k) ; =20 F(i,j)=F(grid spacing) ; =30 F(i,j,k) 289 ! ! =-20 (=-30) read in eddy_induced_velocity_2D.nc (..._3D.nc) file 290 rn_ahm_0 = 100000. ! horizontal laplacian eddy viscosity [m2/s] 291 rn_ahm_b = 0. ! background eddy viscosity for ldf_iso [m2/s] 292 rn_bhm_0 = 1.e+12 ! horizontal bilaplacian eddy viscosity [m4/s] 164 293 / 165 294 !----------------------------------------------------------------------- … … 169 298 / 170 299 !----------------------------------------------------------------------- 300 &namzdf_ric ! richardson number dependent vertical diffusion ("key_zdfric" ) 301 !----------------------------------------------------------------------- 302 / 303 !----------------------------------------------------------------------- 171 304 &namzdf_tke ! turbulent eddy kinetic dependent vertical diffusion ("key_zdftke") 172 305 !----------------------------------------------------------------------- 173 306 nn_etau = 0 ! penetration of tke below the mixed layer (ML) due to internal & intertial waves 307 / 308 !------------------------------------------------------------------------ 309 &namzdf_kpp ! K-Profile Parameterization dependent vertical mixing ("key_zdfkpp", and optionally: 310 !------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 311 / 312 !----------------------------------------------------------------------- 313 &namzdf_gls ! GLS vertical diffusion ("key_zdfgls") 314 !----------------------------------------------------------------------- 315 / 316 !----------------------------------------------------------------------- 317 &namzdf_ddm ! double diffusive mixing parameterization ("key_zdfddm") 318 !----------------------------------------------------------------------- 319 / 320 !----------------------------------------------------------------------- 321 &namzdf_tmx ! tidal mixing parameterization ("key_zdftmx") 322 !----------------------------------------------------------------------- 323 ln_tmx_itf = .false. ! ITF specific parameterisation 174 324 / 175 325 !----------------------------------------------------------------------- … … 189 339 / 190 340 !----------------------------------------------------------------------- 341 &namnc4 ! netcdf4 chunking and compression settings ("key_netcdf4") 342 !----------------------------------------------------------------------- 343 / 344 !----------------------------------------------------------------------- 345 &namtrd ! diagnostics on dynamics and/or tracer trends ("key_trddyn" and/or "key_trdtra") 346 ! ! or mixed-layer trends or barotropic vorticity ("key_trdmld" or "key_trdvor") 347 !----------------------------------------------------------------------- 348 / 349 !----------------------------------------------------------------------- 350 &namflo ! float parameters ("key_float") 351 !----------------------------------------------------------------------- 352 / 353 !----------------------------------------------------------------------- 191 354 &namptr ! Poleward Transport Diagnostic 192 355 !----------------------------------------------------------------------- … … 197 360 / 198 361 !----------------------------------------------------------------------- 362 &namdct ! transports through sections 363 !----------------------------------------------------------------------- 364 nn_dct = 60 ! time step frequency for transports computing 365 nn_dctwri = 60 ! time step frequency for transports writing 366 nn_secdebug = 0 ! 0 : no section to debug 367 / 368 !----------------------------------------------------------------------- 369 &namobs ! observation usage switch ('key_diaobs') 370 !----------------------------------------------------------------------- 371 / 372 !----------------------------------------------------------------------- 373 &nam_asminc ! assimilation increments ('key_asminc') 374 !----------------------------------------------------------------------- 375 / 376 !----------------------------------------------------------------------- 377 &namsbc_wave ! External fields from wave model 378 !----------------------------------------------------------------------- 379 / 380 !----------------------------------------------------------------------- 199 381 &namdyn_nept ! Neptune effect (simplified: lateral and vertical diffusions removed) 200 382 !----------------------------------------------------------------------- -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/CONFIG/GYRE_PISCES/cpp_GYRE_PISCES.fcm
r4230 r4617 1 bld::tool::fppkeys key_dynspg_flt key_ ldfslp key_zdftke key_top key_pisces_reduced key_iomput key_mpp_mpi1 bld::tool::fppkeys key_dynspg_flt key_zdftke key_top key_pisces_reduced key_iomput key_mpp_mpi -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r4147 r4617 66 66 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 67 67 !!---------------------------------------------------------------------- 68 69 68 CONTAINS 70 69 … … 90 89 !! for passive tracers are saved for futher diagnostics. 91 90 !!--------------------------------------------------------------------- 92 !!93 91 INTEGER, INTENT( in ) :: kt ! ocean time-step index 94 ! !92 ! 95 93 INTEGER :: ji, jj, jk, jl 96 94 REAL(wp) :: zdet, zzoo, zphy, zno3, znh4, zdom ! now concentrations … … 476 474 END SUBROUTINE p2z_bio 477 475 476 478 477 SUBROUTINE p2z_bio_init 479 478 !!---------------------------------------------------------------------- … … 485 484 !! 486 485 !!---------------------------------------------------------------------- 486 INTEGER :: ios ! local integer 487 !! 487 488 NAMELIST/namlobphy/ tmumax, rgamma, fphylab, tmminp, aki 488 489 NAMELIST/namlobnut/ akno3, aknh4, taunn, psinut … … 490 491 NAMELIST/namlobdet/ taudn, fdetlab 491 492 NAMELIST/namlobdom/ taudomn 492 INTEGER :: ios ! Local integer output status for namelist read493 493 !!---------------------------------------------------------------------- 494 494 -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r3446 r4617 48 48 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 49 49 !!---------------------------------------------------------------------- 50 51 50 CONTAINS 52 51 … … 64 63 !! COLUMN BELOW THE SURFACE LAYER. 65 64 !!--------------------------------------------------------------------- 66 !!67 65 INTEGER, INTENT( in ) :: kt ! ocean time-step index 68 ! !66 ! 69 67 INTEGER :: ji, jj, jk, jl, ikt 70 68 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt … … 77 75 ! 78 76 IF( kt == nittrc000 ) CALL p2z_exp_init 79 77 ! 80 78 CALL wrk_alloc( jpi, jpj, zsedpoca ) 81 zsedpoca(:,:) = 0. 79 zsedpoca(:,:) = 0._wp 82 80 83 81 IF( l_trdtrc ) THEN … … 102 100 ! Find the last level of the water column 103 101 ! Compute fluxes due to sinking particles (slow) 104 105 102 106 103 zgeolpoc = 0.e0 ! Initialization … … 180 177 END SUBROUTINE p2z_exp 181 178 179 182 180 SUBROUTINE p2z_exp_init 183 181 !!---------------------------------------------------------------------- … … 272 270 END SUBROUTINE p2z_exp_init 273 271 272 274 273 INTEGER FUNCTION p2z_exp_alloc() 275 274 !!---------------------------------------------------------------------- -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r4147 r4617 47 47 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 48 48 !!---------------------------------------------------------------------- 49 50 49 CONTAINS 51 50 … … 64 63 !! neln ??? 65 64 !!--------------------------------------------------------------------- 66 !!67 65 INTEGER, INTENT( in ) :: kt ! index of the time stepping 68 ! !66 ! 69 67 INTEGER :: ji, jj, jk ! dummy loop indices 70 68 CHARACTER (len=25) :: charout ! temporary character … … 153 151 END SUBROUTINE p2z_opt 154 152 153 155 154 SUBROUTINE p2z_opt_init 156 155 !!---------------------------------------------------------------------- … … 164 163 NAMELIST/namlobopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 165 164 NAMELIST/namlobrat/ rcchl, redf, reddom 166 INTEGER :: ios ! Local integer output status for namelist read165 INTEGER :: ios ! local integer 167 166 !!---------------------------------------------------------------------- 168 167 ! 169 168 REWIND( numnatp_ref ) ! Namelist namlobopt in reference namelist : Lobster options 170 169 READ ( numnatp_ref, namlobopt, IOSTAT = ios, ERR = 901) 171 170 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in reference namelist', lwp ) 172 171 ! 173 172 REWIND( numnatp_cfg ) ! Namelist namlobopt in configuration namelist : Lobster options 174 173 READ ( numnatp_cfg, namlobopt, IOSTAT = ios, ERR = 902 ) 175 174 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in configuration namelist', lwp ) 176 175 WRITE ( numonp, namlobopt ) 177 176 ! 178 177 IF(lwp) THEN 179 178 WRITE(numout,*) … … 192 191 READ ( numnatp_ref, namlobrat, IOSTAT = ios, ERR = 903) 193 192 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in reference namelist', lwp ) 194 193 ! 195 194 REWIND( numnatp_cfg ) ! Namelist namlobrat in configuration namelist : Lobster ratios 196 195 READ ( numnatp_cfg, namlobrat, IOSTAT = ios, ERR = 904 ) 197 196 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in configuration namelist', lwp ) 198 197 WRITE ( numonp, namlobrat ) 199 198 ! 200 199 IF(lwp) THEN 201 200 WRITE(numout,*) ' Namelist namlobrat' -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r4147 r4617 41 41 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 42 42 !!---------------------------------------------------------------------- 43 44 43 CONTAINS 45 44 … … 62 61 !! trend of passive tracers is saved for futher diagnostics. 63 62 !!--------------------------------------------------------------------- 64 !!65 63 INTEGER, INTENT( in ) :: kt ! ocean time-step index 66 64 !! … … 78 76 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 79 77 ENDIF 80 81 ! Allocate temporary workspace 82 CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 83 IF( ln_diatrc ) CALL wrk_alloc( jpi, jpj, zw2d ) 78 ! 79 CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 80 ! 84 81 IF( l_trdtrc ) THEN 85 82 CALL wrk_alloc( jpi, jpj, jpk, ztrbio ) … … 110 107 111 108 IF( ln_diatrc ) THEN 112 DO jk = 1, jpkm1 109 CALL wrk_alloc( jpi, jpj, zw2d ) 110 zw2d(:,:) = ztra(:,:,1) * fse3t(:,:,1) * 86400. 111 DO jk = 2, jpkm1 113 112 zw2d(:,:) = zw2d(:,:) + ztra(:,:,jk) * fse3t(:,:,jk) * 86400. 114 113 END DO … … 121 120 ENDIF 122 121 ! 123 IF( ln_diabio ) trbio(:,:,:,jp_pcs0_trd + 7) = ztra(:,:,:)122 IF( ln_diabio .AND. .NOT.lk_iomput ) trbio(:,:,:,jp_pcs0_trd + 7) = ztra(:,:,:) 124 123 CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra ) 125 124 ! … … 130 129 CALL wrk_dealloc( jpi, jpj, jpk, ztrbio ) 131 130 ENDIF 132 131 ! 133 132 IF(ln_ctl) THEN ! print mean trends (used for debugging) 134 133 WRITE(charout, FMT="('sed')") … … 141 140 END SUBROUTINE p2z_sed 142 141 142 143 143 SUBROUTINE p2z_sed_init 144 144 !!---------------------------------------------------------------------- … … 150 150 !! 151 151 !!---------------------------------------------------------------------- 152 INTEGER :: ios ! Local integer 153 ! 152 154 NAMELIST/namlobsed/ sedlam, sedlostpoc, vsed, xhr 153 INTEGER :: ios ! Local integer output status for namelist read154 155 !!---------------------------------------------------------------------- 156 ! 155 157 REWIND( numnatp_ref ) ! Namelist namlobsed in reference namelist : Lobster sediments 156 158 READ ( numnatp_ref, namlobsed, IOSTAT = ios, ERR = 901) 157 159 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlosed in reference namelist', lwp ) 158 160 ! 159 161 REWIND( numnatp_cfg ) ! Namelist namlobsed in configuration namelist : Lobster sediments 160 162 READ ( numnatp_cfg, namlobsed, IOSTAT = ios, ERR = 902 ) 161 163 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobsed in configuration namelist', lwp ) 162 164 WRITE ( numonp, namlobsed ) 163 165 ! 164 166 IF(lwp) THEN 165 167 WRITE(numout,*) ' Namelist namlobsed' -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r4147 r4617 58 58 CALL p2z_sed( kt ) ! sedimentation model 59 59 CALL p2z_exp( kt ) ! export 60 60 ! 61 61 IF( l_trdtrc ) THEN 62 62 DO jn = jp_pcs0, jp_pcs1 … … 64 64 END DO 65 65 END IF 66 66 ! 67 67 IF( lk_trdmld_trc ) CALL trd_mld_bio( kt ) ! trends: Mixed-layer 68 68 ! 69 IF ( kt == nittrc000 ) CALL FLUSH ( numonp )! flush output namelist PISCES70 IF( nn_timing == 1 )CALL timing_stop('p2z_sms')69 IF( kt == nittrc000 ) CALL FLUSH( numonp ) ! flush output namelist PISCES 70 IF( nn_timing == 1 ) CALL timing_stop('p2z_sms') 71 71 ! 72 72 END SUBROUTINE p2z_sms -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r3557 r4617 195 195 ! CHEMICAL CONSTANTS - SURFACE LAYER 196 196 ! ---------------------------------- 197 !CDIR NOVERRCHK198 197 DO jj = 1, jpj 199 !CDIR NOVERRCHK200 198 DO ji = 1, jpi 201 199 ! ! SET ABSOLUTE TEMPERATURE … … 227 225 ! OXYGEN SOLUBILITY - DEEP OCEAN 228 226 ! ------------------------------- 229 !CDIR NOVERRCHK230 227 DO jk = 1, jpk 231 !CDIR NOVERRCHK232 228 DO jj = 1, jpj 233 !CDIR NOVERRCHK234 229 DO ji = 1, jpi 235 230 ztkel = tsn(ji,jj,jk,jp_tem) + 273.16 … … 252 247 ! CHEMICAL CONSTANTS - DEEP OCEAN 253 248 ! ------------------------------- 254 !CDIR NOVERRCHK255 249 DO jk = 1, jpk 256 !CDIR NOVERRCHK257 250 DO jj = 1, jpj 258 !CDIR NOVERRCHK259 251 DO ji = 1, jpi 260 252 -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r4529 r4617 113 113 ! Chemistry is supposed to be fast enough to be at equilibrium 114 114 ! ------------------------------------------------------------ 115 !CDIR NOVERRCHK116 115 DO jk = 1, jpkm1 117 !CDIR NOVERRCHK118 116 DO jj = 1, jpj 119 !CDIR NOVERRCHK120 117 DO ji = 1, jpi 121 118 ! Calculate ligand concentrations : assume 2/3rd of excess goes to … … 195 192 ! Chemistry is supposed to be fast enough to be at equilibrium 196 193 ! ------------------------------------------------------------ 197 !CDIR NOVERRCHK198 194 DO jk = 1, jpkm1 199 !CDIR NOVERRCHK200 195 DO jj = 1, jpj 201 !CDIR NOVERRCHK202 196 DO ji = 1, jpi 203 197 zTL1(ji,jj,jk) = ztotlig(ji,jj,jk) … … 217 211 ENDIF 218 212 219 zdust = 0. ! if no dust available 220 !CDIR NOVERRCHK 213 zdust = 0._wp ! if no dust available 221 214 DO jk = 1, jpkm1 222 !CDIR NOVERRCHK223 215 DO jj = 1, jpj 224 !CDIR NOVERRCHK225 216 DO ji = 1, jpi 226 217 zstep = xstep -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r4230 r4617 122 122 123 123 DO jm = 1, 10 124 !CDIR NOVERRCHK125 124 DO jj = 1, jpj 126 !CDIR NOVERRCHK127 125 DO ji = 1, jpi 128 126 … … 155 153 ! ------------------------------------------- 156 154 157 !CDIR NOVERRCHK158 155 DO jj = 1, jpj 159 !CDIR NOVERRCHK160 156 DO ji = 1, jpi 161 157 ztc = MIN( 35., tsn(ji,jj,1,jp_tem) ) -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r4147 r4617 81 81 DO jn = 1, 5 ! BEGIN OF ITERATION 82 82 ! 83 !CDIR NOVERRCHK84 83 DO jk = 1, jpkm1 85 !CDIR NOVERRCHK86 84 DO jj = 1, jpj 87 !CDIR NOVERRCHK88 85 DO ji = 1, jpi 89 86 zfact = rhop(ji,jj,jk) / 1000. + rtrn -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r4361 r4617 90 90 ze2(:,:,jpk) = 0._wp 91 91 ze3(:,:,jpk) = 0._wp 92 93 92 ! !* attenuation coef. function of Chlorophyll and wavelength (Red-Green-Blue) 94 93 DO jk = 1, jpkm1 ! -------------------------------------------------------- 95 !CDIR NOVERRCHK 96 DO jj = 1, jpj 97 !CDIR NOVERRCHK 94 DO jj = 1, jpj 98 95 DO ji = 1, jpi 99 96 zchl = ( trn(ji,jj,jk,jpnch) + trn(ji,jj,jk,jpdch) + rtrn ) * 1.e6 … … 107 104 END DO 108 105 END DO 109 110 106 ! 111 107 ! !* Photosynthetically Available Radiation (PAR) 112 108 ! ! -------------------------------------- 113 114 109 IF( ln_varpar ) THEN 115 110 ze1(:,:,1) = par_varsw(:,:) * qsr(:,:) * EXP( -0.5 * zekb(:,:,1) ) … … 122 117 ENDIF 123 118 124 !CDIR NOVERRCHK125 119 DO jj = 1, jpj 126 !CDIR NOVERRCHK127 120 DO ji = 1, jpi 128 121 zc1 = ze1(ji,jj,1) … … 135 128 END DO 136 129 137 138 130 DO jk = 2, nksrp 139 !CDIR NOVERRCHK 140 DO jj = 1, jpj 141 !CDIR NOVERRCHK 131 DO jj = 1, jpj 142 132 DO ji = 1, jpi 143 133 zc1 = ze1(ji,jj,jk-1) * EXP( -0.5 * ( zekb(ji,jj,jk-1) + zekb(ji,jj,jk) ) ) … … 175 165 ! 176 166 DO jk = 2, nksrp + 1 177 !CDIR NOVERRCHK178 167 DO jj = 1, jpj 179 !CDIR NOVERRCHK180 168 DO ji = 1, jpi 181 169 zc0 = ze0(ji,jj,jk-1) * EXP( -fse3t(ji,jj,jk-1) * zxsi0r ) … … 221 209 222 210 DO jk = 1, nksrp 223 !CDIR NOVERRCHK 224 DO jj = 1, jpj 225 !CDIR NOVERRCHK 211 DO jj = 1, jpj 226 212 DO ji = 1, jpi 227 213 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN … … 238 224 ! 239 225 DO jk = 1, nksrp 240 !CDIR NOVERRCHK 241 DO jj = 1, jpj 242 !CDIR NOVERRCHK 226 DO jj = 1, jpj 243 227 DO ji = 1, jpi 244 228 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN … … 273 257 END SUBROUTINE p4z_opt 274 258 259 275 260 SUBROUTINE p4z_optsbc( kt ) 276 261 !!---------------------------------------------------------------------- -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r4529 r4617 31 31 PUBLIC p4z_prod_alloc 32 32 33 !! * Shared module variables34 33 LOGICAL , PUBLIC :: ln_newprod !: 35 34 REAL(wp), PUBLIC :: pislope !: … … 150 149 151 150 IF( ln_newprod ) THEN 152 !CDIR NOVERRCHK153 151 DO jk = 1, jpkm1 154 !CDIR NOVERRCHK155 152 DO jj = 1, jpj 156 !CDIR NOVERRCHK157 153 DO ji = 1, jpi 158 154 ! Computation of the P-I slope for nanos and diatoms … … 188 184 END DO 189 185 ELSE 190 !CDIR NOVERRCHK191 186 DO jk = 1, jpkm1 192 !CDIR NOVERRCHK193 187 DO jj = 1, jpj 194 !CDIR NOVERRCHK195 188 DO ji = 1, jpi 196 189 … … 231 224 ! Computation of a proxy of the N/C ratio 232 225 ! --------------------------------------- 233 !CDIR NOVERRCHK234 226 DO jk = 1, jpkm1 235 !CDIR NOVERRCHK236 227 DO jj = 1, jpj 237 !CDIR NOVERRCHK238 228 DO ji = 1, jpi 239 229 zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) ) & … … 246 236 END DO 247 237 END DO 248 249 250 238 DO jk = 1, jpkm1 251 239 DO jj = 1, jpj 252 240 DO ji = 1, jpi 253 254 241 ! 242 IF( etot(ji,jj,jk) > 1.E-3 ) THEN 255 243 ! Si/C of diatoms 256 244 ! ------------------------ … … 268 256 ENDIF 269 257 zysopt(ji,jj,jk) = grosip * zlim * zsilfac * zsilfac2 270 ENDIF258 ENDIF 271 259 END DO 272 260 END DO … … 296 284 297 285 ! Computation of the various production terms 298 !CDIR NOVERRCHK299 286 DO jk = 1, jpkm1 300 !CDIR NOVERRCHK301 287 DO jj = 1, jpj 302 !CDIR NOVERRCHK303 288 DO ji = 1, jpi 304 289 IF( etot(ji,jj,jk) > 1.E-3 ) THEN … … 331 316 332 317 IF( ln_newprod ) THEN 333 !CDIR NOVERRCHK334 318 DO jk = 1, jpkm1 335 !CDIR NOVERRCHK336 319 DO jj = 1, jpj 337 !CDIR NOVERRCHK338 320 DO ji = 1, jpi 339 321 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN … … 359 341 END DO 360 342 ELSE 361 !CDIR NOVERRCHK362 343 DO jk = 1, jpkm1 363 !CDIR NOVERRCHK364 344 DO jj = 1, jpj 365 !CDIR NOVERRCHK366 345 DO ji = 1, jpi 367 346 IF( etot(ji,jj,jk) > 1.E-3 ) THEN -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r4162 r4617 15 15 USE oce_trc ! shared variables between ocean and passive tracers 16 16 USE trc ! passive tracers common variables 17 USE trcdta 17 USE trcdta ! 18 18 USE sms_pisces ! PISCES Source Minus Sink variables 19 19 USE p4zbio ! Biological model … … 24 24 USE p4zsed ! Sedimentation 25 25 USE p4zint ! time interpolation 26 USE iom ! I/O manager27 26 USE trdmod_oce ! Ocean trends variables 28 27 USE trdmod_trc ! TOP trends variables 29 28 USE sedmodel ! Sediment model 29 ! 30 30 USE prtctl_trc ! print control for debugging 31 USE iom ! I/O manager 31 32 32 33 IMPLICIT NONE … … 34 35 35 36 PUBLIC p4z_sms_init ! called in p4zsms.F90 36 PUBLIC p4z_sms ! called in p4zsms.F9037 PUBLIC p4z_sms ! called in p4zsms.F90 37 38 38 39 REAL(wp) :: alkbudget, no3budget, silbudget, ferbudget … … 58 59 !! - ... 59 60 !!--------------------------------------------------------------------- 60 !61 61 INTEGER, INTENT( in ) :: kt ! ocean time-step index 62 62 !! … … 73 73 jl = jn + jp_pcs0 - 1 74 74 ztrdpis(:,:,:,jn) = trn(:,:,:,jl) 75 END DO75 END DO 76 76 ENDIF 77 77 ! … … 91 91 ! 92 92 ndayflxtr = nday_year 93 93 ! 94 94 IF(lwp) write(numout,*) 95 95 IF(lwp) write(numout,*) ' New chemical constants and various rates for biogeochemistry at new day : ', nday_year 96 96 IF(lwp) write(numout,*) '~~~~~~' 97 97 ! 98 98 CALL p4z_che ! computation of chemical constants 99 99 CALL p4z_int( kt ) ! computation of various rates for biogeochemistry 100 100 ! 101 101 ENDIF 102 103 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients 104 102 IF( ll_sbc ) CALL p4z_sbc( kt ) ! external sources of nutrients 103 ! 105 104 DO jnt = 1, nrdttrc ! Potential time splitting if requested 106 105 ! … … 110 109 DO jn = jp_pcs0, jp_pcs1 111 110 trb(:,:,:,jn) = trn(:,:,:,jn) 112 END DO111 END DO 113 112 ! 114 113 END DO … … 118 117 jl = jn + jp_pcs0 - 1 119 118 ztrdpis(:,:,:,jn) = ( ztrdpis(:,:,:,jn) - trn(:,:,:,jl) ) * rfact2r 120 END DO119 END DO 121 120 ENDIF 122 121 … … 152 151 ! 153 152 CALL p4z_chk_mass( kt ) ! Mass conservation checking 154 155 IF ( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 156 IF( nn_timing == 1 ) CALL timing_stop('p4z_sms') 157 ! 153 ! 154 IF( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 155 IF( nn_timing == 1 ) CALL timing_stop('p4z_sms') 158 156 ! 159 157 END SUBROUTINE p4z_sms 158 160 159 161 160 SUBROUTINE p4z_sms_init … … 260 259 WRITE(numout,*) ' Flag to check mass conservation of NO3/Si/TALK ln_check_mass = ', ln_check_mass 261 260 ENDIF 262 261 ! 263 262 END SUBROUTINE p4z_sms_init 263 264 264 265 265 SUBROUTINE p4z_ph_ini … … 291 291 END SUBROUTINE p4z_ph_ini 292 292 293 293 294 SUBROUTINE p4z_rst( kt, cdrw ) 294 295 !!--------------------------------------------------------------------- … … 341 342 END SUBROUTINE p4z_rst 342 343 344 343 345 SUBROUTINE p4z_dmp( kt ) 344 346 !!---------------------------------------------------------------------- … … 347 349 !! ** purpose : Relaxation of some tracers 348 350 !!---------------------------------------------------------------------- 349 ! 350 INTEGER, INTENT( in ) :: kt ! time step 351 INTEGER, INTENT(in) :: kt ! time step 351 352 ! 352 353 REAL(wp) :: alkmean = 2426. ! mean value of alkalinity ( Glodap ; for Goyet 2391. ) … … 357 358 REAL(wp) :: zarea, zalksum, zpo4sum, zno3sum, zsilsum 358 359 !!--------------------------------------------------------------------- 359 360 360 361 361 IF(lwp) WRITE(numout,*) … … 386 386 ! 387 387 ENDIF 388 388 ! 389 389 END SUBROUTINE p4z_dmp 390 390 … … 397 397 !! 398 398 !!--------------------------------------------------------------------- 399 ! 400 INTEGER, INTENT( in ) :: kt ! ocean time-step index 401 !! 402 !!--------------------------------------------------------------------- 403 399 INTEGER, INTENT(in) :: kt ! ocean time-step index 400 !!--------------------------------------------------------------------- 401 ! 404 402 IF( kt == nittrc000 ) THEN 405 403 IF( ln_check_mass .AND. lwp) THEN ! Open budget file of NO3, ALK, Si, Fer … … 434 432 & + trn(:,:,:,jpzoo) * ferat3 & 435 433 & + trn(:,:,:,jpmes) * ferat3 ) * cvol(:,:,:) ) 436 437 ! 434 ! 438 435 t_atm_co2_flx = t_atm_co2_flx / glob_sum( e1e2t(:,:) ) 439 436 t_oce_co2_flx = t_oce_co2_flx * 12. / 1.e15 * (-1 ) … … 452 449 ! 453 450 ENDIF 454 455 9000 456 9500 457 451 ! 452 9000 FORMAT(i8,f10.5,e18.10,f10.5,f10.5) 453 9500 FORMAT(i8,4e18.10) 454 ! 458 455 END SUBROUTINE p4z_chk_mass 459 456 -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r3718 r4617 23 23 USE traadv_ubs ! UBS scheme (tra_adv_ubs routine) 24 24 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine) 25 USE traadv_eiv ! eddy induced velocity (tra_adv_eiv routine)26 USE ldf tra_oce ! lateral diffusion coefficient on tracers25 USE ldftra ! lateral diffusion: eddy diffusivity & EIV coeff. 26 USE ldfslp ! Lateral diffusion: slopes of neutral surfaces 27 27 USE prtctl_trc ! Print control 28 28 … … 41 41 # include "vectopt_loop_substitute.h90" 42 42 !!---------------------------------------------------------------------- 43 !! NEMO/TOP 3. 3 , NEMO Consortium (2010)43 !! NEMO/TOP 3.7 , NEMO Consortium (2014) 44 44 !! $Id$ 45 45 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 51 51 !! *** ROUTINE trc_adv_alloc *** 52 52 !!---------------------------------------------------------------------- 53 54 53 ALLOCATE( r2dt(jpk), STAT=trc_adv_alloc ) 55 56 IF( trc_adv_alloc /= 0 ) CALL ctl_warn('trc_adv_alloc : failed to allocate array.') 57 54 IF( trc_adv_alloc /= 0 ) CALL ctl_warn('trc_adv_alloc : failed to allocate array.') 58 55 END FUNCTION trc_adv_alloc 59 56 … … 67 64 !! ** Method : - Update the tracer with the advection term following nadv 68 65 !!---------------------------------------------------------------------- 69 !!70 66 INTEGER, INTENT(in) :: kt ! ocean time-step index 71 67 ! 72 68 INTEGER :: jk 73 69 CHARACTER (len=22) :: charout 74 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn ! effective velocity70 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn ! effective transport 75 71 !!---------------------------------------------------------------------- 76 72 ! … … 79 75 CALL wrk_alloc( jpi, jpj, jpk, zun, zvn, zwn ) 80 76 ! 81 82 77 IF( kt == nittrc000 ) CALL trc_adv_ctl ! initialisation & control of options 83 84 IF( ln_top_euler ) THEN78 ! 79 IF( ln_top_euler ) THEN 85 80 r2dt(:) = rdttrc(:) ! = rdttrc (use Euler time stepping) 86 81 ELSE … … 92 87 ENDIF 93 88 94 ! ! effective transport89 ! !== effective transport ==! 95 90 DO jk = 1, jpkm1 96 ! ! eulerian transport only 97 zun(:,:,jk) = e2u (:,:) * fse3u(:,:,jk) * un(:,:,jk) 91 zun(:,:,jk) = e2u (:,:) * fse3u(:,:,jk) * un(:,:,jk) ! eulerian transport 98 92 zvn(:,:,jk) = e1v (:,:) * fse3v(:,:,jk) * vn(:,:,jk) 99 93 zwn(:,:,jk) = e1e2t(:,:) * wn(:,:,jk) 100 !101 94 END DO 102 zwn(:,:,jpk) = 0.e0 ! no transport trough the bottom 103 104 IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif ) & ! add the eiv transport (if necessary) 105 & CALL tra_adv_eiv( kt, nittrc000, zun, zvn, zwn, 'TRC' ) 95 !!gm IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN !!gm to be added like on T and S ???? 96 !!gm zun(:,:,:) = zun(:,:,:) + un_td(:,:,:) 97 !!gm zvn(:,:,:) = zvn(:,:,:) + vn_td(:,:,:) 98 !!gm ENDIF 99 zun(:,:,jpk) = 0._wp ! no transport in the bottom 100 zvn(:,:,jpk) = 0._wp ! no transport in the bottom 101 zwn(:,:,jpk) = 0.e0 ! no transport trough the bottom 102 103 IF( ln_ldfeiv .AND. .NOT. ln_traldf_triad ) & 104 & CALL ldf_eiv_trp( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the eiv transport (if necessary) 105 ! 106 !!gm to be added like in T and S ? 107 !!gm IF( ln_mle ) CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the mle transport (if necessary) 106 108 ! 107 109 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 110 ! 108 111 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nittrc000, 'TRC', zun, zvn, zwn, trb, trn, tra, jptra ) ! 2nd order centered 109 112 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nittrc000, 'TRC', r2dt, zun, zvn, zwn, trb, trn, tra, jptra ) ! TVD … … 132 135 WRITE(charout, FMT="('adv6')") ; CALL prt_ctl_trc_info(charout) 133 136 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 134 !135 137 END SELECT 136 138 … … 157 159 INTEGER :: ioptio 158 160 !!---------------------------------------------------------------------- 159 161 ! 160 162 ioptio = 0 ! Parameter control 161 163 IF( ln_trcadv_cen2 ) ioptio = ioptio + 1 -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r3294 r4617 4 4 !! Ocean Passive tracers : lateral diffusive trends 5 5 !!===================================================================== 6 !! History : 9.0 ! 2005-11 (G. Madec) Original code 7 !! NEMO 3.0 ! 2008-01 (C. Ethe, G. Madec) merge TRC-TRA 6 !! History : 1.0 ! 2005-11 (G. Madec) Original code 7 !! 3.0 ! 2008-01 (C. Ethe, G. Madec) merge TRC-TRA 8 !! 3.7 ! 2014-03 (G. Madec) LDF simplification 8 9 !!---------------------------------------------------------------------- 9 10 #if defined key_top 10 11 !!---------------------------------------------------------------------- 11 12 !! 'key_top' TOP models 12 !!----------------------------------------------------------------------13 13 !!---------------------------------------------------------------------- 14 14 !! trc_ldf : update the tracer trend with the lateral diffusion 15 15 !! ldf_ctl : initialization, namelist read, and parameters control 16 16 !!---------------------------------------------------------------------- 17 USE oce_trc ! ocean dynamics and active tracers 18 USE trc ! ocean passive tracers variables 19 USE trcnam_trp ! passive tracers transport namelist variables 20 USE ldftra_oce ! lateral diffusion coefficient on tracers 21 USE ldfslp ! ??? 22 USE traldf_bilapg ! lateral mixing (tra_ldf_bilapg routine) 23 USE traldf_bilap ! lateral mixing (tra_ldf_bilap routine) 24 USE traldf_iso ! lateral mixing (tra_ldf_iso routine) 25 USE traldf_iso_grif ! lateral mixing (tra_ldf_iso_grif routine) 26 USE traldf_lap ! lateral mixing (tra_ldf_lap routine) 17 USE trc ! ocean passive tracers variables 18 USE oce_trc ! ocean dynamics and active tracers 19 USE trcnam_trp ! passive tracers transport namelist variables 20 USE ldftra ! lateral diffusion: eddy diffusivity & EIV coeff. 21 USE ldfslp ! lateral diffusion: iso-neutral slope 22 USE traldf_lap ! lateral diffusion: iso-level lap/blp (tra_ldf_lap/_blp routine) 23 USE traldf_iso ! lateral diffusion (Madec operator) (tra_ldf_iso routine) 24 USE traldf_iso_triad ! lateral diffusion (triad operator) (tra_ldf_iso_triad routine) 27 25 USE trdmod_oce 28 26 USE trdtra 27 ! 29 28 USE prtctl_trc ! Print control 30 29 … … 40 39 # include "vectopt_loop_substitute.h90" 41 40 !!---------------------------------------------------------------------- 42 !! NEMO/TOP 3. 3 , NEMO Consortium (2010)41 !! NEMO/TOP 3.7 , NEMO Consortium (2014) 43 42 !! $Id$ 44 43 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 45 44 !!---------------------------------------------------------------------- 46 47 45 CONTAINS 48 46 … … 63 61 IF( nn_timing == 1 ) CALL timing_start('trc_ldf') 64 62 ! 63 64 !!gm this call should be put in trcini ! 65 65 IF( kt == nittrc000 ) CALL ldf_ctl ! initialisation & control of options 66 !!gm end 66 67 67 68 rldf = rldf_rat … … 73 74 74 75 SELECT CASE ( nldf ) ! compute lateral mixing trend and add it to the general trend 75 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra) ! iso-level laplacian76 CASE ( 1 ) 77 IF( ln_traldf_grif ) THEN78 CALL tra_ldf_iso_grif( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )79 ELSE80 CALL tra_ldf_iso ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 )81 82 CASE ( 2 ) ; CALL tra_ldf_b ilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra )! iso-level bilaplacian83 CASE ( 3 ) ; CALL tra_ldf_ bilapg( kt, nittrc000, 'TRC', trb, tra, jptra ) ! s-coord. horizontalbilaplacian76 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, ahtu, ahtv, trb , tra, jpts, 1) ! iso-level laplacian 77 CASE ( 1 ) ! rotated laplacian 78 IF( ln_traldf_triad ) THEN 79 CALL tra_ldf_iso_triad( kt, nittrc000,'TRC', gtru, gtrv, ahtu, ahtv, trb, trb, tra, jpts, 1 ) ! triad operator 80 ELSE 81 CALL tra_ldf_iso ( kt, nittrc000,'TRC', gtru, gtrv, ahtu, ahtv, trb, trb, tra, jpts, 1 ) ! Madec operator 82 ENDIF 83 CASE ( 2 ) ; CALL tra_ldf_blp ( kt, nittrc000,'TRC', gtru, gtrv, ahtu, ahtv, trb , tra, jpts ) ! iso-level bilaplacian 84 CASE ( 3 ) ; CALL tra_ldf_iso_blp ( kt, nittrc000,'TRC', gtru, gtrv, ahtu, ahtv, trb , tra, jpts ) ! rotated bilaplacian 84 85 ! 85 CASE ( -1 ) ! esopa: test all possibility with control print 86 CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) 87 WRITE(charout, FMT="('ldf0 ')") ; CALL prt_ctl_trc_info(charout) 88 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 89 IF( ln_traldf_grif ) THEN 90 CALL tra_ldf_iso_grif( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) 91 ELSE 92 CALL tra_ldf_iso ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra, rn_ahtb_0 ) 93 ENDIF 94 WRITE(charout, FMT="('ldf1 ')") ; CALL prt_ctl_trc_info(charout) 95 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 96 CALL tra_ldf_bilap ( kt, nittrc000, 'TRC', gtru, gtrv, trb, tra, jptra ) 97 WRITE(charout, FMT="('ldf2 ')") ; CALL prt_ctl_trc_info(charout) 98 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 99 CALL tra_ldf_bilapg( kt, nittrc000, 'TRC', trb, tra, jptra ) 100 WRITE(charout, FMT="('ldf3 ')") ; CALL prt_ctl_trc_info(charout) 101 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 86 CASE ( -1 ) ! esopa: test all possibility with control print 87 CALL tra_ldf_lap ( kt, nittrc000, 'TRC', gtru, gtrv, ahtu, ahtv, trb, tra, jpts, 1 ) 88 WRITE(charout, FMT="('ldf0')") ; CALL prt_ctl_trc_info(charout) 89 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm,clinfo2='trd') 90 IF( ln_traldf_triad ) THEN 91 CALL tra_ldf_iso_triad( kt, nittrc000, 'TRC', gtru, gtrv, ahtu, ahtv, trb, trb, tra, jpts, 1 ) 92 ELSE 93 CALL tra_ldf_iso ( kt, nittrc000, 'TRC', gtru, gtrv, ahtu, ahtv, trb, trb, tra, jpts, 1 ) 94 ENDIF 95 WRITE(charout, FMT="('ldf1')") ; CALL prt_ctl_trc_info(charout) 96 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 97 CALL tra_ldf_blp ( kt, nittrc000, 'TRC', gtru, gtrv, ahtu, ahtv, trb, tra, jpts ) 98 WRITE(charout, FMT="('ldf2')") ; CALL prt_ctl_trc_info(charout) 99 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 102 100 END SELECT 103 101 ! … … 111 109 ! ! print mean trends (used for debugging) 112 110 IF( ln_ctl ) THEN 113 WRITE(charout, FMT="('ldf ')") ;CALL prt_ctl_trc_info(charout)114 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )111 WRITE(charout, FMT="('ldf ')") ; CALL prt_ctl_trc_info(charout) 112 CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 115 113 ENDIF 116 114 ! … … 119 117 END SUBROUTINE trc_ldf 120 118 119 !!gm ldf_ctl should be called in trcini so that l_ldfslp=T cause the slope init and calculation 121 120 122 121 SUBROUTINE ldf_ctl … … 155 154 IF( ioptio > 1 ) CALL ctl_stop( ' use ONE or NONE of the 2 lap/bilap operator type on tracer' ) 156 155 IF( ioptio == 0 ) nldf = -2 ! No lateral diffusion 156 157 IF( ln_traldf_lap .AND. ln_trcldf_bilap ) CALL ctl_stop( ' bilaplacian should be used on both TRC and TRA' ) 158 IF( ln_traldf_blp .AND. ln_trcldf_lap ) CALL ctl_stop( ' laplacian should be used on both TRC and TRA' ) 159 157 160 ioptio = 0 158 161 IF( ln_trcldf_level ) ioptio = ioptio + 1 … … 202 205 IF( ierr == 1 ) CALL ctl_stop( ' iso-level in z-coordinate - partial step, not allowed' ) 203 206 IF( ierr == 2 ) CALL ctl_stop( ' isoneutral bilaplacian operator does not exist' ) 204 IF( l k_traldf_eiv .AND. .NOT.ln_trcldf_iso ) &207 IF( ln_ldfeiv .AND. .NOT.ln_trcldf_iso ) & 205 208 CALL ctl_stop( ' eddy induced velocity on tracers', & 206 209 & ' the eddy induced velocity on tracers requires isopycnal laplacian diffusion' ) 207 210 IF( nldf == 1 .OR. nldf == 3 ) THEN ! rotation 208 IF( .NOT.lk_ldfslp ) CALL ctl_stop( ' the rotation of the diffusive tensor require key_ldfslp' ) 209 #if defined key_offline 210 l_traldf_rot = .TRUE. ! needed for trazdf_imp 211 #endif 211 IF( .NOT.l_ldfslp ) CALL ctl_stop( ' the rotation of the diffusive tensor require l_ldfslp' ) 212 212 ENDIF 213 213 -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r3680 r4617 107 107 END DO 108 108 109 110 #if defined key_obc111 !! CALL obc_trc( kt ) ! OBC open boundaries112 #endif113 109 #if defined key_bdy 114 110 !! CALL bdy_trc( kt ) ! BDY open boundaries -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r4306 r4617 11 11 !! 'key_top' TOP models 12 12 !!---------------------------------------------------------------------- 13 14 ! * Domain size *13 ! 14 ! !* Domain size * 15 15 USE par_oce , ONLY : jpi => jpi !: first dimension of grid --> i 16 16 USE par_oce , ONLY : jpj => jpj !: second dimension of grid --> j … … 24 24 USE par_oce , ONLY : jp_sal => jp_sal !: indice for salinity 25 25 26 !* IO manager * 27 USE in_out_manager 28 29 !* Memory Allocation * 30 USE wrk_nemo 31 32 !* Timing * 33 USE timing 34 35 !* MPP library 36 USE lib_mpp 26 USE in_out_manager !* IO manager * 27 USE wrk_nemo !* Memory Allocation * 28 USE timing !* Timing * 29 USE lib_mpp !* MPP library 30 USE lib_fortran !* Fortran utilities 31 USE lbclnk !* Lateral boundary conditions 32 USE phycst !* physical constants * 33 USE c1d !* 1D configuration 34 USE dom_oce !* model domain * 37 35 38 !* Fortran utilities 39 USE lib_fortran 40 41 !* Lateral boundary conditions 42 USE lbclnk 43 44 !* physical constants * 45 USE phycst 46 47 !* 1D configuration 48 USE c1d 49 50 !* model domain * 51 USE dom_oce 52 53 54 !* ocean fields: here now and after fields * 55 USE oce , ONLY : ua => ua !: i-horizontal velocity (m s-1) 56 USE oce , ONLY : va => va !: j-horizontal velocity (m s-1) 57 USE oce , ONLY : un => un !: i-horizontal velocity (m s-1) 58 USE oce , ONLY : vn => vn !: j-horizontal velocity (m s-1) 59 USE oce , ONLY : wn => wn !: vertical velocity (m s-1) 60 USE oce , ONLY : tsn => tsn !: 4D array contaning ( tn, sn ) 61 USE oce , ONLY : tsb => tsb !: 4D array contaning ( tb, sb ) 62 USE oce , ONLY : tsa => tsa !: 4D array contaning ( ta, sa ) 63 USE oce , ONLY : rhop => rhop !: potential volumic mass (kg m-3) 64 USE oce , ONLY : rhd => rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 65 USE oce , ONLY : hdivn => hdivn !: horizontal divergence (1/s) 66 USE oce , ONLY : rotn => rotn !: relative vorticity [s-1] 67 USE oce , ONLY : hdivb => hdivb !: horizontal divergence (1/s) 68 USE oce , ONLY : rotb => rotb !: relative vorticity [s-1] 69 USE oce , ONLY : sshn => sshn !: sea surface height at t-point [m] 70 USE oce , ONLY : sshb => sshb !: sea surface height at t-point [m] 71 USE oce , ONLY : ssha => ssha !: sea surface height at t-point [m] 72 USE oce , ONLY : l_traldf_rot => l_traldf_rot !: rotated laplacian operator for lateral diffusion 36 ! !* ocean fields: here now and after fields * 37 USE oce , ONLY : ua => ua !: i-horizontal velocity (m s-1) 38 USE oce , ONLY : va => va !: j-horizontal velocity (m s-1) 39 USE oce , ONLY : un => un !: i-horizontal velocity (m s-1) 40 USE oce , ONLY : vn => vn !: j-horizontal velocity (m s-1) 41 USE oce , ONLY : wn => wn !: vertical velocity (m s-1) 42 USE oce , ONLY : tsn => tsn !: 4D array contaning ( tn, sn ) 43 USE oce , ONLY : tsb => tsb !: 4D array contaning ( tb, sb ) 44 USE oce , ONLY : tsa => tsa !: 4D array contaning ( ta, sa ) 45 USE oce , ONLY : rhop => rhop !: potential volumic mass (kg m-3) 46 USE oce , ONLY : rhd => rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 47 USE oce , ONLY : hdivn => hdivn !: now horizontal divergence (1/s) 48 USE oce , ONLY : sshn => sshn !: sea surface height at t-point [m] 49 USE oce , ONLY : sshb => sshb !: sea surface height at t-point [m] 50 USE oce , ONLY : ssha => ssha !: sea surface height at t-point [m] 73 51 #if defined key_offline 74 USE oce , ONLY : gtsu => gtsu!: t-, s- and rd horizontal gradient at u- and75 USE oce , ONLY : gtsv => gtsv!:76 USE oce , ONLY : gru => gru!:77 USE oce , ONLY : grv => grv!:52 USE oce , ONLY : gtsu => gtsu !: t-, s- and rd horizontal gradient at u- and 53 USE oce , ONLY : gtsv => gtsv !: 54 USE oce , ONLY : gru => gru !: 55 USE oce , ONLY : grv => grv !: 78 56 #endif 79 57 80 ! * surface fluxes *58 ! !* surface fluxes * 81 59 USE sbc_oce , ONLY : utau => utau !: i-surface stress component 82 60 USE sbc_oce , ONLY : vtau => vtau !: j-surface stress component … … 97 75 USE sbcrnf , ONLY : h_rnf => h_rnf !: river runoff [Kg/m2/s] 98 76 99 USE trc_oce 77 USE trc_oce !* ??? * 100 78 101 ! * lateral diffusivity (tracers) *102 USE ldftra_oce , ONLY : rldf => rldf !: multiplicative coef. for lateral diffusivity 103 USE ldftra_oce , ONLY : rn_aht_0 => rn_aht_0!: horizontal eddy diffusivity for tracers (m2/s)104 USE ldftra_oce , ONLY : aht0 => aht0 !: horizontal eddy diffusivity for tracers(m2/s)105 USE ldftra_oce , ONLY : ahtb0 => ahtb0 !: background eddy diffusivity for isopycnal diff. (m2/s) 106 USE ldftra_oce , ONLY : ahtu => ahtu !: lateral diffusivity coef. at u-points107 USE ldftra _oce , ONLY : ahtv => ahtv !: lateral diffusivity coef. at v-points108 USE ldftra _oce , ONLY : ahtw => ahtw !: lateral diffusivity coef. at w-points109 USE ldftra _oce , ONLY : ahtt => ahtt !: lateral diffusivity coef. at t-points110 USE ldftra _oce , ONLY : aeiv0 => aeiv0 !: eddy induced velocity coefficient (m2/s)111 USE ldftra _oce , ONLY : aeiu => aeiu !: eddy induced velocity coef. at u-points (m2/s)112 USE ldftra _oce , ONLY : aeiv => aeiv !: eddy induced velocity coef. at v-points (m2/s)113 USE ldftra _oce , ONLY : aeiw => aeiw !: eddy induced velocity coef. at w-points (m2/s)114 USE ldftra _oce , ONLY : lk_traldf_eiv => lk_traldf_eiv !: eddy induced velocity flag79 ! !* lateral diffusivity (tracers) * 80 ! USE ldftra , ONLY : rn_aht_0 => rn_aht_0 !: horizontal eddy diffusivity for tracers (m2/s) 81 ! USE ldftra , ONLY : aht0 => aht0 !: horizontal eddy diffusivity for tracers (m2/s) 82 ! USE ldftra , ONLY : ahtb0 => ahtb0 !: background eddy diffusivity for isopycnal diff. (m2/s) 83 ! USE ldftra , ONLY : aeiv0 => aeiv0 !: eddy induced velocity coefficient (m2/s) 84 ! 85 USE ldftra , ONLY : ln_ldfeiv => ln_ldfeiv !: eddy induced velocity flag 86 USE ldftra , ONLY : ln_traldf_lap => ln_traldf_lap !: laplacian flag 87 USE ldftra , ONLY : ln_traldf_blp => ln_traldf_blp !: bilaplacian flag 88 USE ldftra , ONLY : rldf => rldf !: multiplicative coef. for lateral diffusivity 89 USE ldftra , ONLY : ahtu => ahtu !: lateral diffusivity coef. at u-points 90 USE ldftra , ONLY : ahtv => ahtv !: lateral diffusivity coef. at v-points 91 USE ldftra , ONLY : aeiu => aeiu !: eddy induced velocity coef. at u-points 92 USE ldftra , ONLY : aeiv => aeiv !: eddy induced velocity coef. at v-points 115 93 116 ! * vertical diffusion *94 ! !* vertical diffusion * 117 95 USE zdf_oce , ONLY : avt => avt !: vert. diffusivity coef. at w-point for temp 118 96 # if defined key_zdfddm … … 120 98 # endif 121 99 122 ! * mixing & mixed layer depth *100 ! !* mixing & mixed layer depth * 123 101 USE zdfmxl , ONLY : nmln => nmln !: number of level in the mixed layer 124 102 USE zdfmxl , ONLY : hmld => hmld !: mixing layer depth (turbocline) … … 126 104 USE zdfmxl , ONLY : hmlpt => hmlpt !: mixed layer depth at t-points (m) 127 105 128 !* direction of lateral diffusion * 129 USE ldfslp , ONLY : lk_ldfslp => lk_ldfslp !: slopes flag 130 # if defined key_ldfslp 106 ! !* direction of lateral diffusion * 107 USE ldfslp , ONLY : l_ldfslp => l_ldfslp !: slopes flag 131 108 USE ldfslp , ONLY : uslp => uslp !: i-direction slope at u-, w-points 132 109 USE ldfslp , ONLY : vslp => vslp !: j-direction slope at v-, w-points 133 110 USE ldfslp , ONLY : wslpi => wslpi !: i-direction slope at u-, w-points 134 111 USE ldfslp , ONLY : wslpj => wslpj !: j-direction slope at v-, w-points 135 # endif136 112 137 113 #else -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/top_substitute.h90
r2528 r4617 6 6 !! History : 1.0 ! 2004-03 (C. Ethe) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) new architecture 8 !! 3.7 ! 2014-03 (G. Madec) LDF simplification 8 9 !!---------------------------------------------------------------------- 9 10 # include "domzgr_substitute.h90" 10 # include "ldfeiv_substitute.h90"11 # include "ldftra_substitute.h90"12 11 # include "vectopt_loop_substitute.h90" 13 12 !!---------------------------------------------------------------------- 14 !! NEMO/TOP 3. 3 , NEMO Consortium (2010)13 !! NEMO/TOP 3.7 , NEMO Consortium (2014) 15 14 !! $Id$ 16 15 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/trc.F90
r4148 r4617 119 119 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_tm !: vertical double diffusivity coeff. at w-point [m/s] 120 120 # endif 121 #if defined key_ldfslp 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_tm !: i-direction slope at u-, w-points 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpj_tm !: j-direction slope at u-, w-points 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm !: j-direction slope at u-, w-points 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp_tm !: j-direction slope at u-, w-points 126 #endif 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_tm, wslpi_temp !: i-direction slope at w-points 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpj_tm, wslpj_temp !: j-direction slope at w-points 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uslp_tm , uslp_temp !: i-direction slope at u-points 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: vslp_tm , vslp_temp !: j-direction slope at v-points 127 125 #if defined key_trabbl 128 126 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_tm !: u-, w-points … … 148 146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm_tm !: 10m wind average [m] 149 147 ! 150 #if defined key_traldf_c3d 151 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 3D coefficients ** at T-,U-,V-,W-points 152 #elif defined key_traldf_c2d 153 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 2D coefficients ** at T-,U-,V-,W-points 154 #elif defined key_traldf_c1d 155 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 1D coefficients ** at T-,U-,V-,W-points 156 #else 157 REAL(wp), PUBLIC :: ahtt_tm, ahtu_tm, ahtv_tm, ahtw_tm !: ** 0D coefficients ** at T-,U-,V-,W-points 158 #endif 159 ! 160 #if defined key_traldf_eiv 161 # if defined key_traldf_c3d 162 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 3D coefficients ** 163 # elif defined key_traldf_c2d 164 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 2D coefficients ** 165 # elif defined key_traldf_c1d 166 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_tm , aeiv_tm, aeiw_tm !: ** 1D coefficients ** 167 # else 168 REAL(wp), PUBLIC :: aeiu_tm , aeiv_tm , aeiw_tm !: ** 0D coefficients ** 169 # endif 170 #endif 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtu_tm, ahtv_tm !: ** 3D coefficients ** at T-,U-,V-,W-points 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_tm, aeiv_tm !: ** 3D coefficients ** 171 150 172 151 ! Temporary physical arrays for sub_stepping … … 188 167 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_temp, ahv_bbl_temp, utr_bbl_temp, vtr_bbl_temp !: hold current values 189 168 #endif 190 !191 #if defined key_ldfslp192 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wslpi_temp, wslpj_temp, uslp_temp, vslp_temp !: hold current values193 #endif194 169 ! 195 170 # if defined key_zdfddm 196 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_temp !: salinity vertical diffusivity coeff. at w-point [m/s]171 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avs_temp !: salinity vertical diffusivity coeff. at w-point [m/s] 197 172 # endif 198 173 ! 199 #if defined key_traldf_c3d 200 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 201 #elif defined key_traldf_c2d 202 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 203 #elif defined key_traldf_c1d 204 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 205 #else 206 REAL(wp), PUBLIC :: ahtt_temp, ahtu_temp, ahtv_temp, ahtw_temp 207 #endif 208 ! 209 #if defined key_traldf_eiv 210 # if defined key_traldf_c3d 211 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 3D coefficients ** 212 # elif defined key_traldf_c2d 213 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 2D coefficients ** 214 # elif defined key_traldf_c1d 215 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: aeiu_temp , aeiv_temp, aeiw_temp !: ** 1D coefficients ** 216 # else 217 REAL(wp), PUBLIC :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 0D coefficients ** 218 # endif 219 # endif 174 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ahtu_temp, ahtv_temp 175 ! 176 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aeiu_temp , aeiv_temp , aeiw_temp !: ** 3D coefficients ** 220 177 221 178 !!---------------------------------------------------------------------- -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
r3680 r4617 52 52 IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14 53 53 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 54 54 ! 55 55 IF(ln_ctl) THEN ! print mean trends (used for debugging) 56 56 WRITE(charout, FMT="('sms ')") -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r4306 r4617 10 10 !! trc_stp : passive tracer system time-stepping 11 11 !!---------------------------------------------------------------------- 12 USE trc 12 13 USE oce_trc ! ocean dynamics and active tracers variables 13 14 USE sbc_oce 14 USE trc15 15 USE trctrp ! passive tracers transport 16 16 USE trcsms ! passive tracers sources and sinks 17 USE trcsub 17 18 USE prtctl_trc ! Print control for debbuging 18 19 USE trcdia … … 21 22 USE trdmod_trc_oce 22 23 USE trdmld_trc 24 ! 23 25 USE iom 24 26 USE in_out_manager 25 USE trcsub26 27 27 28 IMPLICIT NONE … … 50 51 !!------------------------------------------------------------------- 51 52 INTEGER, INTENT( in ) :: kt ! ocean time-step index 53 ! 52 54 INTEGER :: jk, jn ! dummy loop indices 53 55 REAL(wp) :: ztrai 54 56 CHARACTER (len=25) :: charout 55 56 57 REAL(wp), DIMENSION(:,:), POINTER :: zqsr_tmp ! save qsr during TOP time-step 57 58 !!------------------------------------------------------------------- … … 79 80 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 80 81 ! 82 81 83 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 82 84 ! -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r4306 r4617 25 25 USE zdf_oce 26 26 USE domvvl 27 USE div cur ! hor. divergence and curl (div & cur routines)27 USE divhor ! hor. divergence 28 28 USE sbcrnf, ONLY: h_rnf, nk_rnf ! River runoff 29 29 USE bdy_oce 30 #if defined key_obc31 USE obc_oce, ONLY: obctmsk32 #endif33 30 #if defined key_agrif 34 31 USE agrif_opa_update … … 43 40 PUBLIC trc_sub_ssh ! called by trc_stp to reset physics variables 44 41 45 !!* Module variables46 42 REAL(wp) :: r1_ndttrc ! 1 / nn_dttrc 47 43 REAL(wp) :: r1_ndttrcp1 ! 1 / (nn_dttrc+1) … … 50 46 # include "top_substitute.h90" 51 47 !!---------------------------------------------------------------------- 52 !! NEMO/TOP 3. 3 , NEMO Consortium (2010)48 !! NEMO/TOP 3.7 , NEMO Consortium (2014) 53 49 !! $Id: trcstp.F90 2528 2010-12-27 17:33:53Z rblod $ 54 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 94 90 tsn_tm (:,:,:,jp_sal) = tsn_tm (:,:,:,jp_sal) + tsn (:,:,:,jp_sal) * fse3t(:,:,:) 95 91 rhop_tm (:,:,:) = rhop_tm (:,:,:) + rhop (:,:,:) * fse3t(:,:,:) 96 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) * fse3w(:,:,:)92 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) 97 93 # if defined key_zdfddm 98 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) * fse3w(:,:,:)94 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) 99 95 # endif 100 96 #if defined key_ldfslp 101 wslpi_tm(:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) * fse3w(:,:,:)102 wslpj_tm(:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) * fse3w(:,:,:)103 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) * fse3u(:,:,:)104 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) * fse3v(:,:,:)97 wslpi_tm(:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) 98 wslpj_tm(:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) 99 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) 100 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) 105 101 #endif 106 102 # if defined key_trabbl … … 127 123 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) 128 124 ! 129 #if defined key_traldf_c3d 130 ahtt_tm (:,:,:) = ahtt_tm (:,:,:) + ahtt(:,:,:) * fse3t(:,:,:) 131 ahtu_tm (:,:,:) = ahtu_tm (:,:,:) + ahtu(:,:,:) * fse3u(:,:,:) 132 ahtv_tm (:,:,:) = ahtv_tm (:,:,:) + ahtv(:,:,:) * fse3v(:,:,:) 133 ahtw_tm (:,:,:) = ahtw_tm (:,:,:) + ahtw(:,:,:) * fse3w(:,:,:) 134 #elif defined key_traldf_c2d 135 ahtt_tm (:,:) = ahtt_tm (:,:) + ahtt(:,:) 136 ahtu_tm (:,:) = ahtu_tm (:,:) + ahtu(:,:) 137 ahtv_tm (:,:) = ahtv_tm (:,:) + ahtv(:,:) 138 ahtw_tm (:,:) = ahtw_tm (:,:) + ahtw(:,:) 139 #elif defined key_traldf_c1d 140 ahtt_tm (:) = ahtt_tm (:,:) + ahtt(:) 141 ahtu_tm (:) = ahtu_tm (:,:) + ahtu(:) 142 ahtv_tm (:) = ahtv_tm (:,:) + ahtv(:) 143 ahtw_tm (:) = ahtw_tm (:,:) + ahtw(:) 144 #else 145 ahtt_tm = ahtt_tm + ahtt 146 ahtu_tm = ahtu_tm + ahtu 147 ahtv_tm = ahtv_tm + ahtv 148 ahtw_tm = ahtw_tm + ahtw 149 #endif 150 #if defined key_traldf_eiv 151 # if defined key_traldf_c3d 152 aeiu_tm (:,:,:) = aeiu_tm (:,:,:) + aeiu(:,:,:) * fse3u(:,:,:) 153 aeiv_tm (:,:,:) = aeiv_tm (:,:,:) + aeiv(:,:,:) * fse3v(:,:,:) 154 aeiw_tm (:,:,:) = aeiw_tm (:,:,:) + aeiw(:,:,:) * fse3w(:,:,:) 155 # elif defined key_traldf_c2d 156 aeiu_tm (:,:) = aeiu_tm (:,:) + aeiu(:,:) 157 aeiv_tm (:,:) = aeiv_tm (:,:) + aeiv(:,:) 158 aeiw_tm (:,:) = aeiw_tm (:,:) + aeiw(:,:) 159 # elif defined key_traldf_c1d 160 aeiu_tm (:) = aeiu_tm (:,:) + aeiu(:) 161 aeiv_tm (:) = aeiv_tm (:,:) + aeiv(:) 162 aeiw_tm (:) = aeiw_tm (:,:) + aeiw(:) 163 # else 164 aeiu_tm = aeiu_tm + aeiu 165 aeiv_tm = aeiv_tm + aeiv 166 aeiw_tm = aeiw_tm + aeiw 167 # endif 168 #endif 125 ahtu_tm (:,:,:) = ahtu_tm (:,:,:) + ahtu(:,:,:) 126 ahtv_tm (:,:,:) = ahtv_tm (:,:,:) + ahtv(:,:,:) 127 IF( ln_ldfeiv ) THEN 128 aeiu_tm (:,:,:) = aeiu_tm (:,:,:) + aeiu(:,:,:) 129 aeiv_tm (:,:,:) = aeiv_tm (:,:,:) + aeiv(:,:,:) 130 ENDIF 169 131 170 132 ELSE ! It is time to substep … … 179 141 avs_temp (:,:,:) = avs (:,:,:) 180 142 # endif 181 #if defined key_ldfslp 182 wslpi_temp (:,:,:) = wslpi(:,:,:)183 wslpj_temp (:,:,:) = wslpj(:,:,:)184 uslp_temp (:,:,:) = uslp(:,:,:)185 vslp_temp (:,:,:) = vslp(:,:,:)186 #endif 143 IF( l_ldfslp ) THEN 144 uslp_temp (:,:,:) = uslp (:,:,:) 145 vslp_temp (:,:,:) = vslp (:,:,:) 146 wslpi_temp (:,:,:) = wslpi (:,:,:) 147 wslpj_temp (:,:,:) = wslpj (:,:,:) 148 ENDIF 187 149 # if defined key_trabbl 188 150 IF( nn_bbl_ldf == 1 ) THEN … … 214 176 qsr_temp (:,:) = qsr (:,:) 215 177 wndm_temp (:,:) = wndm (:,:) 216 #if defined key_traldf_c3d 178 ! 217 179 ahtu_temp (:,:,:) = ahtu (:,:,:) 218 180 ahtv_temp (:,:,:) = ahtv (:,:,:) 219 ahtw_temp (:,:,:) = ahtw (:,:,:) 220 ahtt_temp (:,:,:) = ahtt (:,:,:) 221 #elif defined key_traldf_c2d 222 ahtu_temp (:,:) = ahtu (:,:) 223 ahtv_temp (:,:) = ahtv (:,:) 224 ahtw_temp (:,:) = ahtw (:,:) 225 ahtt_temp (:,:) = ahtt (:,:) 226 #elif defined key_traldf_c1d 227 ahtu_temp (:) = ahtu (:) 228 ahtv_temp (:) = ahtv (:) 229 ahtw_temp (:) = ahtw (:) 230 ahtt_temp (:) = ahtt (:) 231 #else 232 ahtu_temp = ahtu 233 ahtv_temp = ahtv 234 ahtw_temp = ahtw 235 ahtt_temp = ahtt 236 #endif 237 238 #if defined key_traldf_eiv 239 # if defined key_traldf_c3d 240 aeiu_temp (:,:,:) = aeiu(:,:,:) 241 aeiv_temp (:,:,:) = aeiv(:,:,:) 242 aeiw_temp (:,:,:) = aeiw(:,:,:) 243 # elif defined key_traldf_c2d 244 aeiu_temp (:,:) = aeiu(:,:) 245 aeiv_temp (:,:) = aeiv(:,:) 246 aeiw_temp (:,:) = aeiw(:,:) 247 # elif defined key_traldf_c1d 248 aeiu_temp (:) = aeiu(:) 249 aeiv_temp (:) = aeiv(:) 250 aeiw_temp (:) = aeiw(:) 251 # else 252 aeiu_temp = aeiu 253 aeiv_temp = aeiv 254 aeiw_temp = aeiw 255 # endif 256 #endif 181 IF( ln_ldfeiv ) THEN 182 aeiu_temp (:,:,:) = aeiu(:,:,:) 183 aeiv_temp (:,:,:) = aeiv(:,:,:) 184 ENDIF 257 185 ! ! Variables reset in trc_sub_ssh 258 rotn_temp (:,:,:) = rotn (:,:,:)259 186 hdivn_temp (:,:,:) = hdivn (:,:,:) 260 rotb_temp (:,:,:) = rotb (:,:,:)261 hdivb_temp (:,:,:) = hdivb (:,:,:)262 187 hu_temp (:,:) = hu (:,:) 263 188 hv_temp (:,:) = hv (:,:) … … 287 212 tsn_tm (:,:,:,jp_sal) = tsn_tm (:,:,:,jp_sal) + tsn (:,:,:,jp_sal) * e3t_temp(:,:,:) 288 213 rhop_tm (:,:,:) = rhop_tm (:,:,:) + rhop (:,:,:) * e3t_temp(:,:,:) 289 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) * e3w_temp(:,:,:)214 avt_tm (:,:,:) = avt_tm (:,:,:) + avt (:,:,:) 290 215 # if defined key_zdfddm 291 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) * e3w_temp(:,:,:)292 # endif 293 #if defined key_ldfslp 294 wslpi_tm (:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) * e3w_temp(:,:,:)295 wslpj_tm (:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) * e3w_temp(:,:,:)296 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) * e3u_temp(:,:,:)297 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) * e3v_temp(:,:,:)298 #endif 216 avs_tm (:,:,:) = avs_tm (:,:,:) + avs (:,:,:) 217 # endif 218 IF( l_ldfslp ) THEN 219 wslpi_tm (:,:,:) = wslpi_tm(:,:,:) + wslpi(:,:,:) 220 wslpj_tm (:,:,:) = wslpj_tm(:,:,:) + wslpj(:,:,:) 221 uslp_tm (:,:,:) = uslp_tm (:,:,:) + uslp (:,:,:) 222 vslp_tm (:,:,:) = vslp_tm (:,:,:) + vslp (:,:,:) 223 ENDIF 299 224 # if defined key_trabbl 300 225 IF( nn_bbl_ldf == 1 ) THEN … … 377 302 tsn (ji,jj,jk,jp_sal) = tsn_tm (ji,jj,jk,jp_sal) * z1_ne3t 378 303 rhop (ji,jj,jk) = rhop_tm (ji,jj,jk) * z1_ne3t 379 avt (ji,jj,jk) = avt_tm (ji,jj,jk) * z1_ne3w304 avt (ji,jj,jk) = avt_tm (ji,jj,jk) * r1_ndttrcp1 380 305 # if defined key_zdfddm 381 avs (ji,jj,jk) = avs_tm (ji,jj,jk) * z1_ne3w 382 # endif 383 #if defined key_ldfslp 384 wslpi(ji,jj,jk) = wslpi_tm(ji,jj,jk) * z1_ne3w 385 wslpj(ji,jj,jk) = wslpj_tm(ji,jj,jk) * z1_ne3w 386 uslp (ji,jj,jk) = uslp_tm (ji,jj,jk) * z1_ne3u 387 vslp (ji,jj,jk) = vslp_tm (ji,jj,jk) * z1_ne3v 388 #endif 389 ENDDO 390 ENDDO 391 ENDDO 392 393 #if defined key_traldf_c3d 394 ahtt_tm (:,:,:) = ahtt_tm (:,:,:) + ahtt(:,:,:) * e3t_temp(:,:,:) 395 ahtu_tm (:,:,:) = ahtu_tm (:,:,:) + ahtu(:,:,:) * e3u_temp(:,:,:) 396 ahtv_tm (:,:,:) = ahtv_tm (:,:,:) + ahtv(:,:,:) * e3v_temp(:,:,:) 397 ahtw_tm (:,:,:) = ahtw_tm (:,:,:) + ahtw(:,:,:) * e3w_temp(:,:,:) 398 ! 399 ahtt (:,:,:) = ahtt_tm (:,:,:) * r1_ndttrcp1 / fse3t(:,:,:) 400 ahtu (:,:,:) = ahtu_tm (:,:,:) * r1_ndttrcp1 / fse3u(:,:,:) 401 ahtv (:,:,:) = ahtv_tm (:,:,:) * r1_ndttrcp1 / fse3v(:,:,:) 402 ahtw (:,:,:) = ahtw_tm (:,:,:) * r1_ndttrcp1 / fse3w(:,:,:) 403 #elif defined key_traldf_c2d 404 ahtt_tm (:,:) = ahtt_tm (:,:) + ahtt(:,:) 405 ahtu_tm (:,:) = ahtu_tm (:,:) + ahtu(:,:) 406 ahtv_tm (:,:) = ahtv_tm (:,:) + ahtv(:,:) 407 ahtw_tm (:,:) = ahtw_tm (:,:) + ahtw(:,:) 408 ! 409 ahtt (:,:) = ahtt_tm (:,:) * r1_ndttrcp1 410 ahtu (:,:) = ahtu_tm (:,:) * r1_ndttrcp1 411 ahtv (:,:) = ahtv_tm (:,:) * r1_ndttrcp1 412 ahtw (:,:) = ahtw_tm (:,:) * r1_ndttrcp1 413 #elif defined key_traldf_c1d 414 ahtt_tm (:) = ahtt_tm (:,:) + ahtt(:) 415 ahtu_tm (:) = ahtu_tm (:,:) + ahtu(:) 416 ahtv_tm (:) = ahtv_tm (:,:) + ahtv(:) 417 ahtw_tm (:) = ahtw_tm (:,:) + ahtw(:) 418 ! 419 ahtt (:) = ahtt_tm (:) * r1_ndttrcp1 420 ahtu (:) = ahtu_tm (:) * r1_ndttrcp1 421 ahtv (:) = ahtv_tm (:) * r1_ndttrcp1 422 ahtw (:) = ahtw_tm (:) * r1_ndttrcp1 423 #else 424 ahtt_tm = ahtt_tm + ahtt 425 ahtu_tm = ahtu_tm + ahtu 426 ahtv_tm = ahtv_tm + ahtv 427 ahtw_tm = ahtw_tm + ahtw 428 ! 429 ahtt = ahtt_tm * r1_ndttrcp1 430 ahtu = ahtu_tm * r1_ndttrcp1 431 ahtv = ahtv_tm * r1_ndttrcp1 432 ahtw = ahtw_tm * r1_ndttrcp1 433 #endif 434 435 #if defined key_traldf_eiv 436 # if defined key_traldf_c3d 437 aeiu_tm (:,:,:) = aeiu_tm (:,:,:) + aeiu(:,:,:) * e3u_temp(:,:,:) 438 aeiv_tm (:,:,:) = aeiv_tm (:,:,:) + aeiv(:,:,:) * e3v_temp(:,:,:) 439 aeiw_tm (:,:,:) = aeiw_tm (:,:,:) + aeiw(:,:,:) * e3w_temp(:,:,:) 440 ! 441 aeiu (:,:,:) = aeiu_tm (:,:,:) * r1_ndttrcp1 / fse3u(:,:,:) 442 aeiv (:,:,:) = aeiv_tm (:,:,:) * r1_ndttrcp1 / fse3v(:,:,:) 443 aeiw (:,:,:) = aeiw_tm (:,:,:) * r1_ndttrcp1 / fse3w(:,:,:) 444 # elif defined key_traldf_c2d 445 aeiu_tm (:,:) = aeiu_tm (:,:) + aeiu(:,:) 446 aeiv_tm (:,:) = aeiv_tm (:,:) + aeiv(:,:) 447 aeiw_tm (:,:) = aeiw_tm (:,:) + aeiw(:,:) 448 ! 449 aeiu (:,:) = aeiu_tm (:,:) * r1_ndttrcp1 450 aeiv (:,:) = aeiv_tm (:,:) * r1_ndttrcp1 451 aeiw (:,:) = aeiw_tm (:,:) * r1_ndttrcp1 452 # elif defined key_traldf_c1d 453 aeiu_tm (:) = aeiu_tm (:,:) + aeiu(:) 454 aeiv_tm (:) = aeiv_tm (:,:) + aeiv(:) 455 aeiw_tm (:) = aeiw_tm (:,:) + aeiw(:) 456 ! 457 aeiu (:) = aeiu_tm (:) * r1_ndttrcp1 458 aeiv (:) = aeiv_tm (:) * r1_ndttrcp1 459 aeiw (:) = aeiw_tm (:) * r1_ndttrcp1 460 # else 461 aeiu_tm = aeiu_tm + aeiu 462 aeiv_tm = aeiv_tm + aeiv 463 aeiw_tm = aeiw_tm + aeiw 464 ! 465 aeiu = aeiu_tm * r1_ndttrcp1 466 aeiv = aeiv_tm * r1_ndttrcp1 467 aeiw = aeiw_tm * r1_ndttrcp1 468 # endif 469 #endif 470 306 avs (ji,jj,jk) = avs_tm (ji,jj,jk) * r1_ndttrcp1 307 # endif 308 END DO 309 END DO 310 END DO 311 IF( l_ldfslp ) THEN 312 wslpi(:,:,:) = wslpi_tm(:,:,:) * r1_ndttrcp1 313 wslpj(:,:,:) = wslpj_tm(:,:,:) * r1_ndttrcp1 314 uslp (:,:,:) = uslp_tm (:,:,:) * r1_ndttrcp1 315 vslp (:,:,:) = vslp_tm (:,:,:) * r1_ndttrcp1 316 ENDIF 317 ! 318 ahtu_tm(:,:,:) = ahtu_tm(:,:,:) + ahtu(:,:,:) 319 ahtv_tm(:,:,:) = ahtv_tm(:,:,:) + ahtv(:,:,:) 320 ! 321 ahtu (:,:,:) = ahtu_tm(:,:,:) * r1_ndttrcp1 322 ahtv (:,:,:) = ahtv_tm(:,:,:) * r1_ndttrcp1 323 IF( ln_ldfeiv ) THEN 324 aeiu_tm(:,:,:) = aeiu_tm(:,:,:) + aeiu(:,:,:) 325 aeiv_tm(:,:,:) = aeiv_tm(:,:,:) + aeiv(:,:,:) 326 ! 327 aeiu (:,:,:) = aeiu_tm(:,:,:) * r1_ndttrcp1 328 aeiv (:,:,:) = aeiv_tm(:,:,:) * r1_ndttrcp1 329 ENDIF 330 331 !!gm All those lbc_lnk are useless since the averaging is done over full arrays ! 471 332 CALL lbc_lnk( un (:,:,:) , 'U',-1. ) 472 333 CALL lbc_lnk( vn (:,:,:) , 'V',-1. ) … … 478 339 CALL lbc_lnk( avs (:,:,:) , 'W', 1. ) 479 340 # endif 480 #if defined key_ldfslp 481 CALL lbc_lnk( uslp (:,:,:) , 'U',-1. )482 CALL lbc_lnk( vslp (:,:,:) , 'V',-1. )483 CALL lbc_lnk( wslpi (:,:,:) , 'W',-1. )484 CALL lbc_lnk( wslpj (:,:,:) , 'W',-1. )485 #endif 341 IF( l_ldfslp ) THEN 342 CALL lbc_lnk( uslp (:,:,:) , 'U',-1. ) 343 CALL lbc_lnk( vslp (:,:,:) , 'V',-1. ) 344 CALL lbc_lnk( wslpi (:,:,:) , 'W',-1. ) 345 CALL lbc_lnk( wslpj (:,:,:) , 'W',-1. ) 346 ENDIF 486 347 CALL lbc_lnk( sshn (:,:) , 'T', 1. ) 487 348 !!Z~ CALL lbc_lnk( sshu_n(:,:) , 'U', 1. ) … … 513 374 ENDIF 514 375 # endif 515 #if defined key_traldf_c3d516 CALL lbc_lnk( ahtt (:,:,:) , 'T', 1. )517 376 CALL lbc_lnk( ahtu (:,:,:) , 'U', 1. ) 518 377 CALL lbc_lnk( ahtv (:,:,:) , 'V', 1. ) 519 CALL lbc_lnk( ahtw (:,:,:) , 'W', 1. ) 520 #elif defined key_traldf_c2d 521 CALL lbc_lnk( ahtt (:,:) , 'T', 1. ) 522 CALL lbc_lnk( ahtu (:,:) , 'U', 1. ) 523 CALL lbc_lnk( ahtv (:,:) , 'V', 1. ) 524 CALL lbc_lnk( ahtw (:,:) , 'W', 1. ) 525 #endif 526 #if defined key_traldf_eiv 527 #if defined key_traldf_c3d 528 CALL lbc_lnk( aeiu (:,:,:) , 'U', 1. ) 529 CALL lbc_lnk( aeiv (:,:,:) , 'V', 1. ) 530 CALL lbc_lnk( aeiw (:,:,:) , 'W', 1. ) 531 #elif defined key_traldf_c2d 532 CALL lbc_lnk( aeiu (:,:) , 'U', 1. ) 533 CALL lbc_lnk( aeiv (:,:) , 'V', 1. ) 534 CALL lbc_lnk( aeiw (:,:) , 'W', 1. ) 535 #endif 536 #endif 378 IF( ln_ldfeiv ) THEN 379 CALL lbc_lnk( aeiu (:,:,:) , 'U', 1. ) 380 CALL lbc_lnk( aeiv (:,:,:) , 'V', 1. ) 381 ENDIF 537 382 ! 538 383 CALL trc_sub_ssh( kt ) ! after ssh & vertical velocity 539 384 ! 540 385 CALL lbc_lnk( wn (:,:,:) , 'W',-1. ) 541 CALL lbc_lnk( rotn (:,:,:) , 'F', 1. )542 386 CALL lbc_lnk( hdivn (:,:,:) , 'T', 1. ) 543 CALL lbc_lnk( rotb (:,:,:) , 'F', 1. )544 CALL lbc_lnk( hdivb (:,:,:) , 'T', 1. )545 387 CALL lbc_lnk( hu (:,:) , 'U', 1. ) 546 388 CALL lbc_lnk( hv (:,:) , 'V', 1. ) … … 553 395 END SUBROUTINE trc_sub_stp 554 396 397 555 398 SUBROUTINE trc_sub_ini 556 399 !!------------------------------------------------------------------- 557 400 !! *** ROUTINE trc_sub_ini *** 558 401 !! 559 !! ** Purpose : Initialize variables needed for sub-stepping passive tracers402 !! ** Purpose : Initialize variables needed for sub-stepping passive tracers 560 403 !! 561 !! ** Method : 562 !! Compute the averages for sub-stepping 404 !! ** Method : Compute the averages for sub-stepping 563 405 !!------------------------------------------------------------------- 564 406 INTEGER :: ierr … … 580 422 tsn_tm (:,:,:,jp_sal) = tsn (:,:,:,jp_sal) * fse3t(:,:,:) 581 423 rhop_tm (:,:,:) = rhop (:,:,:) * fse3t(:,:,:) 582 avt_tm (:,:,:) = avt (:,:,:) * fse3w(:,:,:)424 avt_tm (:,:,:) = avt (:,:,:) 583 425 # if defined key_zdfddm 584 avs_tm (:,:,:) = avs (:,:,:) * fse3w(:,:,:)585 # endif 586 #if defined key_ldfslp 587 wslpi_tm(:,:,:) = wslpi(:,:,:) * fse3w(:,:,:)588 wslpj_tm(:,:,:) = wslpj(:,:,:) * fse3w(:,:,:)589 uslp_tm (:,:,:) = uslp (:,:,:) * fse3u(:,:,:)590 vslp_tm (:,:,:) = vslp (:,:,:) * fse3v(:,:,:)591 #endif 426 avs_tm (:,:,:) = avs (:,:,:) 427 # endif 428 IF( l_ldfslp ) THEN 429 wslpi_tm(:,:,:) = wslpi(:,:,:) 430 wslpj_tm(:,:,:) = wslpj(:,:,:) 431 uslp_tm (:,:,:) = uslp (:,:,:) 432 vslp_tm (:,:,:) = vslp (:,:,:) 433 ENDIF 592 434 sshn_tm (:,:) = sshn (:,:) 593 435 !!Z~ sshu_n_tm(:,:) = sshu_n(:,:) … … 614 456 # endif 615 457 ! 616 #if defined key_traldf_c3d 617 ahtt_tm(:,:,:) = ahtt(:,:,:) * fse3t(:,:,:) 618 ahtu_tm(:,:,:) = ahtu(:,:,:) * fse3u(:,:,:) 619 ahtv_tm(:,:,:) = ahtv(:,:,:) * fse3v(:,:,:) 620 ahtw_tm(:,:,:) = ahtw(:,:,:) * fse3w(:,:,:) 621 #elif defined key_traldf_c2d 622 ahtt_tm(:,:) = ahtt(:,:) 623 ahtu_tm(:,:) = ahtu(:,:) 624 ahtv_tm(:,:) = ahtv(:,:) 625 ahtw_tm(:,:) = ahtw(:,:) 626 #elif defined key_traldf_c1d 627 ahtt_tm(:) = ahtt(:) 628 ahtu_tm(:) = ahtu(:) 629 ahtv_tm(:) = ahtv(:) 630 ahtw_tm(:) = ahtw(:) 631 #else 632 ahtt_tm = ahtt 633 ahtu_tm = ahtu 634 ahtv_tm = ahtv 635 ahtw_tm = ahtw 636 #endif 637 ! 638 #if defined key_traldf_eiv 639 # if defined key_traldf_c3d 640 aeiu_tm(:,:,:) = aeiu(:,:,:) * fse3u(:,:,:) 641 aeiv_tm(:,:,:) = aeiv(:,:,:) * fse3v(:,:,:) 642 aeiw_tm(:,:,:) = aeiw(:,:,:) * fse3w(:,:,:) 643 # elif defined key_traldf_c2d 644 aeiu_tm(:,:) = aeiu(:,:) 645 aeiv_tm(:,:) = aeiv(:,:) 646 aeiw_tm(:,:) = aeiw(:,:) 647 # elif defined key_traldf_c1d 648 aeiu_tm(:) = aeiu(:) 649 aeiv_tm(:) = aeiv(:) 650 aeiw_tm(:) = aeiw(:) 651 # else 652 aeiu_tm = aeiu 653 aeiv_tm = aeiv 654 aeiw_tm = aeiw 655 # endif 656 #endif 458 ahtu_tm(:,:,:) = ahtu(:,:,:) 459 ahtv_tm(:,:,:) = ahtv(:,:,:) 460 ! 461 IF( ln_ldfeiv ) THEN 462 aeiu_tm(:,:,:) = aeiu(:,:,:) 463 aeiv_tm(:,:,:) = aeiv(:,:,:) 464 ENDIF 657 465 ! 658 466 IF( nn_timing == 1 ) CALL timing_stop('trc_sub_ini') 659 467 ! 660 468 END SUBROUTINE trc_sub_ini 469 661 470 662 471 SUBROUTINE trc_sub_reset( kt ) … … 685 494 avs (:,:,:) = avs_temp (:,:,:) 686 495 # endif 687 #if defined key_ldfslp 688 wslpi (:,:,:) = wslpi_temp (:,:,:)689 wslpj (:,:,:) = wslpj_temp (:,:,:)690 uslp (:,:,:) = uslp_temp (:,:,:)691 vslp (:,:,:) = vslp_temp (:,:,:)692 #endif 496 IF( l_ldfslp ) THEN 497 wslpi (:,:,:) = wslpi_temp (:,:,:) 498 wslpj (:,:,:) = wslpj_temp (:,:,:) 499 uslp (:,:,:) = uslp_temp (:,:,:) 500 vslp (:,:,:) = vslp_temp (:,:,:) 501 ENDIF 693 502 sshn (:,:) = sshn_temp (:,:) 694 503 sshb (:,:) = sshb_temp (:,:) … … 722 531 # endif 723 532 ! 724 #if defined key_traldf_c3d725 533 ahtu (:,:,:) = ahtu_temp (:,:,:) 726 534 ahtv (:,:,:) = ahtv_temp (:,:,:) 727 ahtw (:,:,:) = ahtw_temp (:,:,:) 728 ahtt (:,:,:) = ahtt_temp (:,:,:) 729 #elif defined key_traldf_c2d 730 ahtu (:,:) = ahtu_temp (:,:) 731 ahtv (:,:) = ahtv_temp (:,:) 732 ahtw (:,:) = ahtw_temp (:,:) 733 ahtt (:,:) = ahtt_temp (:,:) 734 #elif defined key_traldf_c1d 735 ahtu (:) = ahtu_temp (:) 736 ahtv (:) = ahtv_temp (:) 737 ahtw (:) = ahtw_temp (:) 738 ahtt (:) = ahtt_temp (:) 739 #else 740 ahtu = ahtu_temp 741 ahtv = ahtv_temp 742 ahtw = ahtw_temp 743 ahtt = ahtt_temp 744 #endif 745 ! 746 #if defined key_traldf_eiv 747 #if defined key_traldf_c3d 748 aeiu (:,:,:) = aeiu_temp(:,:,:) 749 aeiv (:,:,:) = aeiv_temp(:,:,:) 750 aeiw (:,:,:) = aeiw_temp(:,:,:) 751 #elif defined key_traldf_c2d 752 aeiu (:,:) = aeiu_temp(:,:) 753 aeiv (:,:) = aeiv_temp(:,:) 754 aeiw (:,:) = aeiw_temp(:,:) 755 #elif defined key_traldf_c1d 756 aeiu (:) = aeiu_temp(:) 757 aeiv (:) = aeiv_temp(:) 758 aeiw (:) = aeiw_temp(:) 759 #else 760 aeiu = aeiu_temp 761 aeiv = aeiv_temp 762 aeiw = aeiw_temp 763 #endif 764 #endif 535 ! 536 IF( ln_ldfeiv ) THEN 537 aeiu (:,:,:) = aeiu_temp(:,:,:) 538 aeiv (:,:,:) = aeiv_temp(:,:,:) 539 ENDIF 765 540 hdivn (:,:,:) = hdivn_temp (:,:,:) 766 rotn (:,:,:) = rotn_temp (:,:,:)767 hdivb (:,:,:) = hdivb_temp (:,:,:)768 rotb (:,:,:) = rotb_temp (:,:,:)769 541 hu (:,:) = hu_temp (:,:) 770 542 hv (:,:) = hv_temp (:,:) … … 773 545 ! 774 546 DO jk = 1, jpk 775 fse3t(:,:,jk) = e3t_temp(:,:,jk)776 fse3u(:,:,jk) = e3u_temp(:,:,jk)777 fse3v(:,:,jk) = e3v_temp(:,:,jk)778 fse3w(:,:,jk) = e3w_temp(:,:,jk)547 fse3t(:,:,jk) = e3t_temp(:,:,jk) 548 fse3u(:,:,jk) = e3u_temp(:,:,jk) 549 fse3v(:,:,jk) = e3v_temp(:,:,jk) 550 fse3w(:,:,jk) = e3w_temp(:,:,jk) 779 551 END DO 780 552 ! !------------------------------! 781 553 IF( lk_vvl ) THEN ! Update Now Vertical coord. ! (only in vvl case) 782 ! 554 ! !------------------------------! 783 555 DO jk = 1, jpkm1 784 556 fsdept(:,:,jk) = fsdept_n(:,:,jk) ! now local depths stored in fsdep. arrays … … 803 575 tsn_tm (:,:,:,jp_sal) = tsn (:,:,:,jp_sal) * fse3t(:,:,:) 804 576 rhop_tm (:,:,:) = rhop (:,:,:) * fse3t(:,:,:) 805 avt_tm (:,:,:) = avt (:,:,:) * fse3w(:,:,:)577 avt_tm (:,:,:) = avt (:,:,:) 806 578 # if defined key_zdfddm 807 avs_tm (:,:,:) = avs (:,:,:) * fse3w(:,:,:)808 # endif 809 #if defined key_ldfslp 810 wslpi_tm(:,:,:) = wslpi(:,:,:) * fse3w(:,:,:)811 wslpj_tm(:,:,:) = wslpj(:,:,:) * fse3w(:,:,:)812 uslp_tm (:,:,:) = uslp (:,:,:) * fse3u(:,:,:)813 vslp_tm (:,:,:) = vslp (:,:,:) * fse3v(:,:,:)814 #endif 579 avs_tm (:,:,:) = avs (:,:,:) 580 # endif 581 IF( l_ldfslp ) THEN 582 wslpi_tm(:,:,:) = wslpi(:,:,:) 583 wslpj_tm(:,:,:) = wslpj(:,:,:) 584 uslp_tm (:,:,:) = uslp (:,:,:) 585 vslp_tm (:,:,:) = vslp (:,:,:) 586 ENDIF 815 587 ! 816 588 sshb_hold (:,:) = sshn (:,:) … … 840 612 # endif 841 613 ! 842 #if defined key_traldf_c3d843 614 DO jk = 1, jpkm1 844 ahtt_tm(:,:,jk) = ahtt(:,:,jk) * fse3t(:,:,jk) 845 ahtu_tm(:,:,jk) = ahtu(:,:,jk) * fse3u(:,:,jk) 846 ahtv_tm(:,:,jk) = ahtv(:,:,jk) * fse3v(:,:,jk) 847 ahtw_tm(:,:,jk) = ahtw(:,:,jk) * fse3w(:,:,jk) 615 ahtu_tm(:,:,jk) = ahtu(:,:,jk) 616 ahtv_tm(:,:,jk) = ahtv(:,:,jk) 617 IF( ln_ldfeiv ) THEN 618 aeiu_tm(:,:,jk) = aeiu(:,:,jk) * fse3u(:,:,jk) 619 aeiv_tm(:,:,jk) = aeiv(:,:,jk) * fse3v(:,:,jk) 620 ENDIF 848 621 END DO 849 #elif defined key_traldf_c2d850 ahtt_tm(:,:) = ahtt(:,:)851 ahtu_tm(:,:) = ahtu(:,:)852 ahtv_tm(:,:) = ahtv(:,:)853 ahtw_tm(:,:) = ahtw(:,:)854 #elif defined key_traldf_c1d855 ahtt_tm(:) = ahtt(:)856 ahtu_tm(:) = ahtu(:)857 ahtv_tm(:) = ahtv(:)858 ahtw_tm(:) = ahtw(:)859 #else860 ahtt_tm = ahtt861 ahtu_tm = ahtu862 ahtv_tm = ahtv863 ahtw_tm = ahtw864 #endif865 !866 #if defined key_traldf_eiv867 # if defined key_traldf_c3d868 DO jk = 1, jpk869 aeiu_tm(:,:,jk) = aeiu(:,:,jk) * fse3u(:,:,jk)870 aeiv_tm(:,:,jk) = aeiv(:,:,jk) * fse3v(:,:,jk)871 aeiw_tm(:,:,jk) = aeiw(:,:,jk) * fse3w(:,:,jk)872 END DO873 # elif defined key_traldf_c2d874 aeiu_tm(:,:) = aeiu(:,:)875 aeiv_tm(:,:) = aeiv(:,:)876 aeiw_tm(:,:) = aeiw(:,:)877 # elif defined key_traldf_c1d878 aeiu_tm(:) = aeiu(:)879 aeiv_tm(:) = aeiv(:)880 aeiw_tm(:) = aeiw(:)881 # else882 aeiu_tm = aeiu883 aeiv_tm = aeiv884 aeiw_tm = aeiw885 # endif886 #endif887 622 ! 888 623 IF( nn_timing == 1 ) CALL timing_stop('trc_sub_reset') … … 958 693 ENDIF 959 694 ! 960 CALL div_cur( kt ) ! Horizontal divergence & Relative vorticity 695 !!gm BUG here the recomputed divergence will includes the wrong river runoff..... 696 CALL div_hor( kt ) ! Horizontal divergence 961 697 ! 962 698 z2dt = 2._wp * rdt ! set time step size (Euler/Leapfrog) … … 979 715 CALL agrif_ssh( kt ) 980 716 #endif 981 #if defined key_obc982 IF( Agrif_Root() ) THEN983 ssha(:,:) = ssha(:,:) * obctmsk(:,:)984 CALL lbc_lnk( ssha, 'T', 1. ) ! absolutly compulsory !! (jmm)985 ENDIF986 #endif987 717 #if defined key_bdy 988 718 ssha(:,:) = ssha(:,:) * bdytmask(:,:) 989 719 CALL lbc_lnk( ssha, 'T', 1. ) 990 720 #endif 991 721 ! 992 722 ! ! Sea Surface Height at u-,v- and f-points (vvl case only) 993 723 !!Z~ IF( lk_vvl ) THEN ! (required only in key_vvl case) 994 724 !!Z~ DO jj = 1, jpjm1 995 725 !!Z~ DO ji = 1, jpim1 ! NO Vector Opt. 996 !!Z~ sshu_a(ji,jj) = 0.5 * umask(ji,jj,1) / ( e1u(ji ,jj) * e2u(ji ,jj) ) & 997 !!Z~ & * ( e1t(ji ,jj) * e2t(ji ,jj) * ssha(ji ,jj) & 998 !!Z~ & + e1t(ji+1,jj) * e2t(ji+1,jj) * ssha(ji+1,jj) ) 999 !!Z~ sshv_a(ji,jj) = 0.5 * vmask(ji,jj,1) / ( e1v(ji,jj ) * e2v(ji,jj ) ) & 1000 !!Z~ & * ( e1t(ji,jj ) * e2t(ji,jj ) * ssha(ji,jj ) & 1001 !!Z~ & + e1t(ji,jj+1) * e2t(ji,jj+1) * ssha(ji,jj+1) ) 726 !!Z~ sshu_a(ji,jj) = 0.5 * umask(ji,jj,1) * r1_e1e2u(ji ,jj) * ( e1e2t(ji ,jj) * ssha(ji ,jj) & 727 !!Z~ & + e1e2t(ji+1,jj) * ssha(ji+1,jj) ) 728 !!Z~ sshv_a(ji,jj) = 0.5 * vmask(ji,jj,1) * r1_e1e2v(ji,jj ) * ( e1e2t(ji,jj ) * ssha(ji,jj ) & 729 !!Z~ & + e1e2t(ji,jj+1) * ssha(ji,jj+1) ) 1002 730 !!Z~ END DO 1003 731 !!Z~ END DO 1004 732 !!Z~ CALL lbc_lnk( sshu_a, 'U', 1. ) ; CALL lbc_lnk( sshv_a, 'V', 1. ) ! Boundaries conditions 1005 733 !!Z~ ENDIF 1006 1007 734 ! 1008 735 ! !------------------------------! 1009 736 ! ! Now Vertical Velocity ! … … 1019 746 #endif 1020 747 END DO 1021 1022 748 ! 1023 749 CALL wrk_dealloc( jpi, jpj, zhdiv ) … … 1045 771 & e3t_temp(jpi,jpj,jpk) , e3u_temp(jpi,jpj,jpk), & 1046 772 & e3v_temp(jpi,jpj,jpk) , e3w_temp(jpi,jpj,jpk), & 1047 #if defined key_ldfslp 773 !!gm here define these arrays only if l_ldfslp = True 1048 774 & wslpi_temp(jpi,jpj,jpk) , wslpj_temp(jpi,jpj,jpk), & 1049 775 & uslp_temp(jpi,jpj,jpk) , vslp_temp(jpi,jpj,jpk), & 1050 #endif 776 & wslpi_tm(jpi,jpj,jpk) , wslpj_tm(jpi,jpj,jpk), & 777 & uslp_tm(jpi,jpj,jpk) , vslp_tm(jpi,jpj,jpk), & 778 !!gm 1051 779 #if defined key_trabbl 1052 780 & ahu_bbl_temp(jpi,jpj) , ahv_bbl_temp(jpi,jpj), & 1053 781 & utr_bbl_temp(jpi,jpj) , vtr_bbl_temp(jpi,jpj), & 782 & ahu_bbl_tm(jpi,jpj) , ahv_bbl_tm(jpi,jpj), & 783 & utr_bbl_tm(jpi,jpj) , vtr_bbl_tm(jpi,jpj), & 1054 784 #endif 1055 785 & rnf_temp(jpi,jpj) , h_rnf_temp(jpi,jpj) , & … … 1062 792 & avs_tm(jpi,jpj,jpk) , avs_temp(jpi,jpj,jpk) , & 1063 793 # endif 1064 #if defined key_traldf_c3d 1065 & ahtt_tm(jpi,jpj,jpk) , ahtt_temp(jpi,jpj,jpk), & 794 !!gm here define these arrays only if l_ldftra_time = True 1066 795 & ahtu_tm(jpi,jpj,jpk) , ahtu_temp(jpi,jpj,jpk), & 1067 796 & ahtv_tm(jpi,jpj,jpk) , ahtv_temp(jpi,jpj,jpk), & 1068 & ahtw_tm(jpi,jpj,jpk) , ahtw_temp(jpi,jpj,jpk), & 1069 #elif defined key_traldf_c2d 1070 & ahtt_tm(jpi,jpj) , ahtt_temp(jpi,jpj), & 1071 & ahtu_tm(jpi,jpj) , ahtu_temp(jpi,jpj), & 1072 & ahtv_tm(jpi,jpj) , ahtv_temp(jpi,jpj), & 1073 & ahtw_tm(jpi,jpj) , ahtw_temp(jpi,jpj), & 1074 #elif defined key_traldf_c1d 1075 & ahtt_tm(jpk) , ahtt_temp(jpk), & 1076 & ahtu_tm(jpk) , ahtu_temp(jpk), & 1077 & ahtv_tm(jpk) , ahtv_temp(jpk), & 1078 & ahtw_tm(jpk) , ahtw_temp(jpk), & 1079 #endif 1080 #if defined key_traldf_eiv 1081 # if defined key_traldf_c3d 797 !!gm here define these arrays only if l_ldfeiv_time = True 1082 798 & aeiu_tm(jpi,jpj,jpk) , aeiu_temp(jpi,jpj,jpk), & 1083 799 & aeiv_tm(jpi,jpj,jpk) , aeiv_temp(jpi,jpj,jpk), & 1084 & aeiw_tm(jpi,jpj,jpk) , aeiw_temp(jpi,jpj,jpk), & 1085 # elif defined key_traldf_c2d 1086 & aeiu_tm(jpi,jpj) , aeiu_temp(jpi,jpj), & 1087 & aeiv_tm(jpi,jpj) , aeiv_temp(jpi,jpj), & 1088 & aeiw_tm(jpi,jpj) , aeiw_temp(jpi,jpj), & 1089 # elif defined key_traldf_c1d 1090 & aeiu_tm(jpk) , aeiu_temp(jpk), & 1091 & aeiv_tm(jpk) , aeiv_temp(jpk), & 1092 & aeiw_tm(jpk) , aeiw_temp(jpk), & 1093 # endif 1094 # endif 1095 & hdivn_temp(jpi,jpj,jpk) , hdivb_temp(jpi,jpj,jpk), & 1096 & rotn_temp(jpi,jpj,jpk) , rotb_temp(jpi,jpj,jpk), & 800 !!gm end 801 & hdivn_temp(jpi,jpj,jpk) , & 1097 802 & hu_temp(jpi,jpj) , hv_temp(jpi,jpj), & 1098 803 & hur_temp(jpi,jpj) , hvr_temp(jpi,jpj), & … … 1106 811 & emp_b_hold(jpi,jpj) , & 1107 812 & hmld_tm(jpi,jpj) , qsr_tm(jpi,jpj) , & 1108 #if defined key_ldfslp1109 & wslpi_tm(jpi,jpj,jpk) , wslpj_tm(jpi,jpj,jpk), &1110 & uslp_tm(jpi,jpj,jpk) , vslp_tm(jpi,jpj,jpk), &1111 #endif1112 #if defined key_trabbl1113 & ahu_bbl_tm(jpi,jpj) , ahv_bbl_tm(jpi,jpj), &1114 & utr_bbl_tm(jpi,jpj) , vtr_bbl_tm(jpi,jpj), &1115 #endif1116 813 & rnf_tm(jpi,jpj) , h_rnf_tm(jpi,jpj) , & 1117 814 & STAT=trc_sub_alloc ) -
branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r3750 r4617 10 10 !! 'key_top' TOP models 11 11 !!---------------------------------------------------------------------- 12 !! trc_wri _trc: outputs of concentration fields12 !! trc_wri : outputs of concentration fields 13 13 !!---------------------------------------------------------------------- 14 14 USE dom_oce ! ocean space and time domain variables … … 29 29 !! * Substitutions 30 30 # include "top_substitute.h90" 31 31 !!---------------------------------------------------------------------- 32 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 33 !! $Id$ 34 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 35 !!---------------------------------------------------------------------- 32 36 CONTAINS 33 37 … … 76 80 #endif 77 81 78 !!----------------------------------------------------------------------79 !! NEMO/TOP 3.3 , NEMO Consortium (2010)80 !! $Id$81 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)82 82 !!====================================================================== 83 83 END MODULE trcwri
Note: See TracChangeset
for help on using the changeset viewer.