Changeset 13237 for NEMO/trunk/src/TOP
- Timestamp:
- 2020-07-03T11:12:53+02:00 (4 years ago)
- Location:
- NEMO/trunk/src/TOP
- Files:
-
- 35 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/C14/trcsms_c14.F90
r12489 r13237 28 28 !! * Substitutions 29 29 # include "do_loop_substitute.h90" 30 # include "domzgr_substitute.h90" 30 31 !!---------------------------------------------------------------------- 31 32 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/CFC/trcsms_cfc.F90
r12489 r13237 49 49 !! * Substitutions 50 50 # include "do_loop_substitute.h90" 51 # include "domzgr_substitute.h90" 51 52 !!---------------------------------------------------------------------- 52 53 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P2Z/p2zbio.F90
r13226 r13237 58 58 !! * Substitutions 59 59 # include "do_loop_substitute.h90" 60 # include "domzgr_substitute.h90" 60 61 !!---------------------------------------------------------------------- 61 62 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P2Z/p2zexp.F90
r13226 r13237 39 39 !! * Substitutions 40 40 # include "do_loop_substitute.h90" 41 # include "domzgr_substitute.h90" 41 42 !!---------------------------------------------------------------------- 42 43 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P2Z/p2zopt.F90
r12377 r13237 40 40 !! * Substitutions 41 41 # include "do_loop_substitute.h90" 42 # include "domzgr_substitute.h90" 42 43 !!---------------------------------------------------------------------- 43 44 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P2Z/p2zsed.F90
r12377 r13237 33 33 !! * Substitutions 34 34 # include "do_loop_substitute.h90" 35 # include "domzgr_substitute.h90" 35 36 !!---------------------------------------------------------------------- 36 37 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zbc.F90
r13226 r13237 48 48 !! * Substitutions 49 49 # include "do_loop_substitute.h90" 50 # include "domzgr_substitute.h90" 50 51 !!---------------------------------------------------------------------- 51 52 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zbio.F90
r12377 r13237 40 40 !! * Substitutions 41 41 # include "do_loop_substitute.h90" 42 # include "domzgr_substitute.h90" 42 43 !!---------------------------------------------------------------------- 43 44 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zche.F90
r12377 r13237 132 132 !! * Substitutions 133 133 # include "do_loop_substitute.h90" 134 # include "domzgr_substitute.h90" 134 135 !!---------------------------------------------------------------------- 135 136 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90
r12377 r13237 33 33 !! * Substitutions 34 34 # include "do_loop_substitute.h90" 35 # include "domzgr_substitute.h90" 35 36 !!---------------------------------------------------------------------- 36 37 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90
r12377 r13237 54 54 !! * Substitutions 55 55 # include "do_loop_substitute.h90" 56 # include "domzgr_substitute.h90" 56 57 !!---------------------------------------------------------------------- 57 58 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zopt.F90
r13226 r13237 44 44 !! * Substitutions 45 45 # include "do_loop_substitute.h90" 46 # include "domzgr_substitute.h90" 46 47 !!---------------------------------------------------------------------- 47 48 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zpoc.F90
r12377 r13237 39 39 !! * Substitutions 40 40 # include "do_loop_substitute.h90" 41 # include "domzgr_substitute.h90" 41 42 !!---------------------------------------------------------------------- 42 43 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zprod.F90
r12377 r13237 48 48 !! * Substitutions 49 49 # include "do_loop_substitute.h90" 50 # include "domzgr_substitute.h90" 50 51 !!---------------------------------------------------------------------- 51 52 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zrem.F90
r12377 r13237 44 44 !! * Substitutions 45 45 # include "do_loop_substitute.h90" 46 # include "domzgr_substitute.h90" 46 47 !!---------------------------------------------------------------------- 47 48 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90
r12377 r13237 39 39 !! * Substitutions 40 40 # include "do_loop_substitute.h90" 41 # include "domzgr_substitute.h90" 41 42 !!---------------------------------------------------------------------- 42 43 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsink.F90
r12377 r13237 40 40 !! * Substitutions 41 41 # include "do_loop_substitute.h90" 42 # include "domzgr_substitute.h90" 42 43 !!---------------------------------------------------------------------- 43 44 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90
r13030 r13237 41 41 !! * Substitutions 42 42 # include "do_loop_substitute.h90" 43 # include "domzgr_substitute.h90" 43 44 !!---------------------------------------------------------------------- 44 45 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zprod.F90
r12377 r13237 52 52 !! * Substitutions 53 53 # include "do_loop_substitute.h90" 54 # include "domzgr_substitute.h90" 54 55 !!---------------------------------------------------------------------- 55 56 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/PISCES/SED/oce_sed.F90
r12489 r13237 13 13 USE dom_oce , ONLY : glamt => glamt !: longitude of t-point (degre) 14 14 USE dom_oce , ONLY : gphit => gphit !: latitude of t-point (degre) 15 !!st 16 #if ! defined key_qco 15 17 USE dom_oce , ONLY : e3t => e3t !: latitude of t-point (degre) 18 #endif 16 19 USE dom_oce , ONLY : e3t_1d => e3t_1d !: reference depth of t-points (m) 17 20 USE dom_oce , ONLY : gdepw_0 => gdepw_0 !: reference depth of t-points (m) … … 53 56 54 57 END MODULE oce_sed 55 56 -
NEMO/trunk/src/TOP/PISCES/SED/seddta.F90
r12489 r13237 24 24 !! * Substitutions 25 25 # include "do_loop_substitute.h90" 26 # include "domzgr_substitute.h90" 26 27 !! $Id$ 27 28 CONTAINS … … 164 165 CALL pack_arr ( jpoce, rainrm_dta(1:jpoce,jscal), trc_data(1:jpi,1:jpj,14), iarroce(1:jpoce) ) 165 166 rainrm_dta(1:jpoce,jscal) = rainrm_dta(1:jpoce,jscal) * 1e-4 166 ! vector temperature [ °C] and salinity167 ! vector temperature [�C] and salinity 167 168 CALL pack_arr ( jpoce, temp(1:jpoce), trc_data(1:jpi,1:jpj,15), iarroce(1:jpoce) ) 168 169 CALL pack_arr ( jpoce, salt(1:jpoce), trc_data(1:jpi,1:jpj,16), iarroce(1:jpoce) ) -
NEMO/trunk/src/TOP/PISCES/trcwri_pisces.F90
r12377 r13237 21 21 !! * Substitutions 22 22 # include "do_loop_substitute.h90" 23 # include "domzgr_substitute.h90" 23 24 !!---------------------------------------------------------------------- 24 25 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/TRP/trcadv.F90
r12489 r13237 59 59 INTEGER, PARAMETER :: np_QCK = 5 ! QUICK scheme 60 60 61 # include "domzgr_substitute.h90" 61 62 !!---------------------------------------------------------------------- 62 63 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/TRP/trcatf.F90
r12489 r13237 31 31 USE trd_oce 32 32 USE trdtra 33 # if defined key_qco 34 USE traatfqco 35 # else 33 36 USE traatf 37 # endif 34 38 USE bdy_oce , ONLY: ln_bdy 35 39 USE trcbdy ! BDY open boundaries … … 50 54 !! * Substitutions 51 55 # include "do_loop_substitute.h90" 56 # include "domzgr_substitute.h90" 52 57 !!---------------------------------------------------------------------- 53 58 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 112 117 ! total trend for the non-time-filtered variables. 113 118 zfact = 1.0 / rn_Dt 114 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t *T)/e3tn; e3tn cancel from ts(Kmm) terms119 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3ta*Ta)/e3tn; e3tn cancel from ts(Kmm) terms 115 120 IF( ln_linssh ) THEN ! linear sea surface height only 116 121 DO jn = 1, jptra … … 151 156 ELSE 152 157 IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping 158 # if defined key_qco 159 IF( ln_linssh ) THEN ; CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nittrc000, 'TRC', ptr, jptra ) ! linear ssh 160 ELSE ; CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 161 # else 153 162 IF( ln_linssh ) THEN ; CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000, 'TRC', ptr, jptra ) ! linear ssh 154 163 ELSE ; CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 164 # endif 155 165 ENDIF 156 166 ELSE … … 182 192 END SUBROUTINE trc_atf 183 193 184 194 # if ! defined key_qco 185 195 SUBROUTINE trc_atf_off( kt, Kbb, Kmm, Kaa, ptr ) 186 196 !!---------------------------------------------------------------------- … … 198 208 !! This can be summurized for tempearture as: 199 209 !! ztm = ( e3t_n*tn + rbcp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) ln_dynhpg_imp = T 200 !! /( e3t(:,:, :,Kmm) + rbcp*[ e3t(:,:,:,Kbb) - 2 e3t(:,:,:,Kmm) + e3t(:,:,:,Kaa) ] )210 !! /( e3t(:,:,jk,Kmm) + rbcp*[ e3t(:,:,jk,Kbb) - 2 e3t(:,:,jk,Kmm) + e3t(:,:,jk,Kaa) ] ) 201 211 !! ztm = 0 otherwise 202 212 !! tb = ( e3t_n*tn + rn_atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 203 !! /( e3t(:,:, :,Kmm) + rn_atfp*[ e3t(:,:,:,Kbb) - 2 e3t(:,:,:,Kmm) + e3t(:,:,:,Kaa) ] )213 !! /( e3t(:,:,jk,Kmm) + rn_atfp*[ e3t(:,:,jk,Kbb) - 2 e3t(:,:,jk,Kmm) + e3t(:,:,jk,Kaa) ] ) 204 214 !! tn = ta 205 215 !! ta = zt (NB: reset to 0 after eos_bn2 call) … … 257 267 ! 258 268 END SUBROUTINE trc_atf_off 269 # else 270 SUBROUTINE trc_atf_off( kt, Kbb, Kmm, Kaa, ptr ) 271 !!---------------------------------------------------------------------- 272 !! *** ROUTINE tra_atf_off *** 273 !! 274 !! !!!!!!!!!!!!!!!!! REWRITE HEADER COMMENTS !!!!!!!!!!!!!! 275 !! 276 !! ** Purpose : Time varying volume: apply the Asselin time filter 277 !! 278 !! ** Method : - Apply a thickness weighted Asselin time filter on now fields. 279 !! - save in (ta,sa) a thickness weighted average over the three 280 !! time levels which will be used to compute rdn and thus the semi- 281 !! implicit hydrostatic pressure gradient (ln_dynhpg_imp = T) 282 !! - swap tracer fields to prepare the next time_step. 283 !! This can be summurized for tempearture as: 284 !! ztm = ( e3t_n*tn + rbcp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) ln_dynhpg_imp = T 285 !! /( e3t(:,:,jk,Kmm) + rbcp*[ e3t(:,:,jk,Kbb) - 2 e3t(:,:,jk,Kmm) + e3t(:,:,jk,Kaa) ] ) 286 !! ztm = 0 otherwise 287 !! tb = ( e3t_n*tn + rn_atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] ) 288 !! /( e3t(:,:,jk,Kmm) + rn_atfp*[ e3t(:,:,jk,Kbb) - 2 e3t(:,:,jk,Kmm) + e3t(:,:,jk,Kaa) ] ) 289 !! tn = ta 290 !! ta = zt (NB: reset to 0 after eos_bn2 call) 291 !! 292 !! ** Action : - (tb,sb) and (tn,sn) ready for the next time step 293 !! - (ta,sa) time averaged (t,s) (ln_dynhpg_imp = T) 294 !!---------------------------------------------------------------------- 295 INTEGER , INTENT(in ) :: kt ! ocean time-step index 296 INTEGER , INTENT(in ) :: Kbb, Kmm, Kaa ! time level indices 297 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers 298 !! 299 INTEGER :: ji, jj, jk, jn ! dummy loop indices 300 REAL(wp) :: ztc_a , ztc_n , ztc_b , ztc_f , ztc_d ! local scalar 301 REAL(wp) :: ze3t_b, ze3t_n, ze3t_a, ze3t_f ! - - 302 !!---------------------------------------------------------------------- 303 ! 304 IF( kt == nittrc000 ) THEN 305 IF(lwp) WRITE(numout,*) 306 IF(lwp) WRITE(numout,*) 'trc_atf_off : Asselin time filtering' 307 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 308 IF( .NOT. ln_linssh ) THEN 309 rfact1 = rn_atfp * rn_Dt 310 rfact2 = rfact1 / rho0 311 ENDIF 312 ! 313 ENDIF 314 ! 315 DO jn = 1, jptra 316 DO_3D_11_11( 1, jpkm1 ) 317 ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 318 ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 319 ze3t_a = 1._wp + r3t(ji,jj,Kaa) * tmask(ji,jj,jk) 320 ! ! tracer content at Before, now and after 321 ztc_b = ptr(ji,jj,jk,jn,Kbb) * ze3t_b 322 ztc_n = ptr(ji,jj,jk,jn,Kmm) * ze3t_n 323 ztc_a = ptr(ji,jj,jk,jn,Kaa) * ze3t_a 324 ! 325 ztc_d = ztc_a - 2. * ztc_n + ztc_b 326 ! 327 ze3t_f = 1._wp + r3t_f(ji,jj)*tmask(ji,jj,jk) 328 ztc_f = ztc_n + rn_atfp * ztc_d 329 ! 330 IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN ! first level 331 ztc_f = ztc_f - rfact1 * ( sbc_trc(ji,jj,jn) - sbc_trc_b(ji,jj,jn) ) 332 ENDIF 333 334 ze3t_f = 1.e0 / ze3t_f 335 ptr(ji,jj,jk,jn,Kmm) = ztc_f * ze3t_f ! time filtered "now" field 336 ! 337 END_3D 338 ! 339 END DO 340 ! 341 END SUBROUTINE trc_atf_off 342 # endif 259 343 260 344 #else -
NEMO/trunk/src/TOP/TRP/trcdmp.F90
r12377 r13237 45 45 !! * Substitutions 46 46 # include "do_loop_substitute.h90" 47 # include "domzgr_substitute.h90" 47 48 !!---------------------------------------------------------------------- 48 49 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/TRP/trcldf.F90
r12377 r13237 44 44 !! * Substitutions 45 45 # include "do_loop_substitute.h90" 46 # include "domzgr_substitute.h90" 46 47 !!---------------------------------------------------------------------- 47 48 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/TRP/trcsbc.F90
r13226 r13237 30 30 !! * Substitutions 31 31 # include "do_loop_substitute.h90" 32 # include "domzgr_substitute.h90" 32 33 !!---------------------------------------------------------------------- 33 34 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 49 50 !! The surface freshwater flux modify the ocean volume 50 51 !! and thus the concentration of a tracer as : 51 !! tr(Krhs) = tr(Krhs) + emp * tr(Kmm) / e3t for k=152 !! tr(Krhs) = tr(Krhs) + emp * tr(Kmm) / e3t_ for k=1 52 53 !! where emp, the surface freshwater budget (evaporation minus 53 54 !! precipitation ) given in kg/m2/s is divided -
NEMO/trunk/src/TOP/TRP/trcsink.F90
r13226 r13237 26 26 !! * Substitutions 27 27 # include "do_loop_substitute.h90" 28 # include "domzgr_substitute.h90" 28 29 !!---------------------------------------------------------------------- 29 30 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90
r12489 r13237 51 51 !! * Substitutions 52 52 # include "do_loop_substitute.h90" 53 # include "domzgr_substitute.h90" 53 54 !!---------------------------------------------------------------------- 54 55 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/trcbc.F90
r12852 r13237 48 48 !! * Substitutions 49 49 # include "do_loop_substitute.h90" 50 # include "domzgr_substitute.h90" 50 51 !!---------------------------------------------------------------------- 51 52 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/trcdta.F90
r12377 r13237 41 41 !! Substitutions 42 42 #include "do_loop_substitute.h90" 43 #include "domzgr_substitute.h90" 43 44 !!---------------------------------------------------------------------- 44 45 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 206 207 ztp(jk) = ptrcdta(ji,jj,jpkm1) 207 208 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 208 DO jkk = 1, jpkm1 ! when gdept (jkk) < zl < gdept(jkk+1)209 DO jkk = 1, jpkm1 ! when gdept_1d(jkk) < zl < gdept_1d(jkk+1) 209 210 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 210 211 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) -
NEMO/trunk/src/TOP/trcini.F90
r12377 r13237 31 31 PUBLIC trc_init ! called by opa 32 32 33 # include "domzgr_substitute.h90" 33 34 !!---------------------------------------------------------------------- 34 35 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/trcrst.F90
r12489 r13237 33 33 PUBLIC trc_rst_cal 34 34 35 # include "domzgr_substitute.h90" 35 36 !!---------------------------------------------------------------------- 36 37 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/trcstp.F90
r12620 r13237 37 37 REAL(wp), DIMENSION(:,:,:), SAVE, ALLOCATABLE :: qsr_arr ! save qsr during TOP time-step 38 38 39 # include "domzgr_substitute.h90" 39 40 !!---------------------------------------------------------------------- 40 41 !! NEMO/TOP 4.0 , NEMO Consortium (2018) -
NEMO/trunk/src/TOP/trcwri.F90
r12377 r13237 60 60 CALL iom_put( "e3v_0", e3v_0(:,:,:) ) 61 61 ! 62 #if ! defined key_qco 62 63 CALL iom_put( "e3t" , e3t(:,:,:,Kmm) ) 63 64 CALL iom_put( "e3u" , e3u(:,:,:,Kmm) ) 64 65 CALL iom_put( "e3v" , e3v(:,:,:,Kmm) ) 66 #endif 65 67 ! 66 68 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.