Changeset 12489 for NEMO/trunk/src/TOP
- Timestamp:
- 2020-02-28T16:55:11+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/TOP
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/C14/trcatm_c14.F90
r12377 r12489 223 223 IF(kc14typ >= 1) THEN ! Transient C14 & CO2 224 224 ! 225 tyrc14_now = tyrc14_now + ( r dt / ( rday * nyear_len(1)) ) ! current time step in yr relative to tyrc14_beg225 tyrc14_now = tyrc14_now + ( rn_Dt / ( rday * nyear_len(1)) ) ! current time step in yr relative to tyrc14_beg 226 226 ! 227 227 ! CO2 -------------------------------------------------------- -
NEMO/trunk/src/TOP/C14/trcsms_c14.F90
r12377 r12489 124 124 125 125 ! cumulation of air-to-sea flux at each time step 126 qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * r dttrc126 qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rn_Dt 127 127 ! 128 128 ! Add the surface flux to the trend of jp_c14 -
NEMO/trunk/src/TOP/CFC/trcsms_cfc.F90
r12377 r12489 166 166 167 167 ! cumulation of surface flux at each time step 168 qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * r dt168 qint_cfc(ji,jj,jl) = qint_cfc(ji,jj,jl) + qtr_cfc(ji,jj,jl) * rn_Dt 169 169 ! !----------------! 170 170 END_2D -
NEMO/trunk/src/TOP/PISCES/P2Z/p2zexp.F90
r12377 r12489 98 98 zwork = vsed * tr(ji,jj,ikt,jpdet,Kmm) 99 99 zsedpoca(ji,jj) = ( zwork + dminl(ji,jj) * xksi(ji,jj) & 100 & - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * r dt100 & - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rn_Dt 101 101 zgeolpoc = zgeolpoc + sedlostpoc * sedpocn(ji,jj) * e1e2t(ji,jj) 102 102 END_2D … … 114 114 ! Time filter and swap of arrays 115 115 ! ------------------------------ 116 IF( neuler == 0 .AND. kt == nittrc000) THEN ! Euler time-stepping at first time-step117 ! 116 IF( l_1st_euler ) THEN ! Euler time-stepping at first time-step 117 ! ! (only swap) 118 118 sedpocn(:,:) = zsedpoca(:,:) 119 119 ! … … 122 122 DO_2D_11_11 123 123 zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj) ! time laplacian on tracers 124 sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd ! sedpocb <-- filtered sedpocn124 sedpocb(ji,jj) = sedpocn(ji,jj) + rn_atfp * zsedpocd ! sedpocb <-- filtered sedpocn 125 125 sedpocn(ji,jj) = zsedpoca(ji,jj) ! sedpocn <-- sedpoca 126 126 END_2D -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90
r12377 r12489 90 90 IF( ln_pisdmp .AND. MOD( kt - 1, nn_pisdmp ) == 0 ) CALL p4z_dmp( kt, Kbb, Kmm ) ! Relaxation of some tracers 91 91 ! 92 rfact = r 2dttrc92 rfact = rDt_trc 93 93 ! 94 94 ! trends computation initialisation … … 106 106 xfact = 1.e+3 * rfact2r 107 107 IF(lwp) WRITE(numout,*) 108 IF(lwp) WRITE(numout,*) ' Passive Tracer time step rfact = ', rfact, ' r dt = ', rdt108 IF(lwp) WRITE(numout,*) ' Passive Tracer time step rfact = ', rfact, ' rn_Dt = ', rn_Dt 109 109 IF(lwp) write(numout,*) ' PISCES Biology time step rfact2 = ', rfact2 110 110 IF(lwp) WRITE(numout,*) 111 111 ENDIF 112 112 113 IF( ( neuler == 0 .AND. kt == nittrc000 ).OR. ln_top_euler ) THEN113 IF( l_1st_euler .OR. ln_top_euler ) THEN 114 114 DO jn = jp_pcs0, jp_pcs1 ! SMS on tracer without Asselin time-filter 115 115 tr(:,:,:,jn,Kbb) = tr(:,:,:,jn,Kmm) -
NEMO/trunk/src/TOP/PISCES/SED/oce_sed.F90
r12377 r12489 18 18 USE dom_oce , ONLY : mbkt => mbkt !: vertical index of the bottom last T- ocean level 19 19 USE dom_oce , ONLY : tmask => tmask !: land/ocean mask at t-points 20 USE dom_oce , ONLY : r dt => rdt!: time step for the dynamics20 USE dom_oce , ONLY : rn_Dt => rn_Dt !: time step for the dynamics 21 21 USE dom_oce , ONLY : nyear => nyear !: Current year 22 22 USE dom_oce , ONLY : ndastp => ndastp !: time step date in year/month/day aammjj … … 50 50 USE p4zche, ONLY : sio3eq => sio3eq !: Chemical constants 51 51 USE p4zbc, ONLY : dust => dust 52 USE trc , ONLY : r 2dttrc => r2dttrc52 USE trc , ONLY : rDt_trc => rDt_trc 53 53 54 54 END MODULE oce_sed -
NEMO/trunk/src/TOP/PISCES/SED/seddta.F90
r12377 r12489 75 75 IF( kt == nitsed000 ) THEN 76 76 IF (lwp) WRITE(numsed,*) ' sed_dta : Sediment fields' 77 dtsed = r 2dttrc77 dtsed = rDt_trc 78 78 rsecday = 60.* 60. * 24. 79 79 ! conv2 = 1.0e+3 / ( 1.0e+4 * rsecday * 30. ) … … 103 103 DO_2D_11_11 104 104 ikt = mbkt(ji,jj) 105 zdep = e3t(ji,jj,ikt,Kmm) / r 2dttrc105 zdep = e3t(ji,jj,ikt,Kmm) / rDt_trc 106 106 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) / rday ) 107 107 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) / rday ) -
NEMO/trunk/src/TOP/PISCES/SED/sedini.F90
r12377 r12489 488 488 489 489 jpksedm1 = jpksed - 1 490 dtsed = r 2dttrc490 dtsed = rDt_trc 491 491 492 492 READ ( numnamsed_ref, nam_trased, IOSTAT = ios, ERR = 905) -
NEMO/trunk/src/TOP/PISCES/SED/sedrst.F90
r12377 r12489 330 330 !! In both those options, the exact duration of the experiment 331 331 !! since the beginning (cumulated duration of all previous restart runs) 332 !! is not stored in the restart and is assumed to be (nittrc000-1)*r dt.332 !! is not stored in the restart and is assumed to be (nittrc000-1)*rn_Dt. 333 333 !! This is valid is the time step has remained constant. 334 334 !! … … 381 381 ELSE 382 382 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam 383 adatrj = ( REAL( nittrc000-1, wp ) * r dt ) / rday383 adatrj = ( REAL( nittrc000-1, wp ) * rn_Dt ) / rday 384 384 ! note this is wrong if time step has changed during run 385 385 ENDIF -
NEMO/trunk/src/TOP/PISCES/SED/sedstp.F90
r12377 r12489 55 55 IF(ln_sediment_offline) CALL trc_dmp_sed ( kt, Kbb, Kmm, Krhs ) 56 56 57 dtsed = r 2dttrc57 dtsed = rDt_trc 58 58 ! dtsed2 = dtsed 59 59 IF (kt /= nitsed000) THEN -
NEMO/trunk/src/TOP/PISCES/SED/sedwri.F90
r10222 r12489 94 94 DO ji = 1, jpoce 95 95 zflx(ji,jw) = ( pwcp(ji,1,jw) - pwcp_dta(ji,jw) ) & 96 & * 1.e3 / 1.e2 * dzkbot(ji) / r 2dttrc96 & * 1.e3 / 1.e2 * dzkbot(ji) / rDt_trc 97 97 ENDDO 98 98 ENDDO … … 100 100 ! Calculation of accumulation rate per dt 101 101 DO js = 1, jpsol 102 zrate = 1.0 / ( denssol * por1(jpksed) ) / r 2dttrc102 zrate = 1.0 / ( denssol * por1(jpksed) ) / rDt_trc 103 103 DO ji = 1, jpoce 104 104 zflx(ji,jpwatp1) = zflx(ji,jpwatp1) + ( tosed(ji,js) - fromsed(ji,js) ) * zrate -
NEMO/trunk/src/TOP/TRP/trcadv.F90
r12377 r12489 125 125 CALL tra_adv_cen( kt, nittrc000,'TRC', zuu, zvv, zww, Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 126 126 CASE ( np_FCT ) ! FCT : 2nd / 4th order 127 CALL tra_adv_fct( kt, nittrc000,'TRC', r 2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v )127 CALL tra_adv_fct( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 128 128 CASE ( np_MUS ) ! MUSCL 129 CALL tra_adv_mus( kt, nittrc000,'TRC', r 2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups )129 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 130 130 CASE ( np_UBS ) ! UBS 131 CALL tra_adv_ubs( kt, nittrc000,'TRC', r 2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v )131 CALL tra_adv_ubs( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v ) 132 132 CASE ( np_QCK ) ! QUICKEST 133 CALL tra_adv_qck( kt, nittrc000,'TRC', r 2dttrc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs )133 CALL tra_adv_qck( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs ) 134 134 ! 135 135 END SELECT -
NEMO/trunk/src/TOP/TRP/trcatf.F90
r12377 r12489 71 71 !! the divergence of two consecutive time-steps and tr arrays 72 72 !! to prepare the next time_step: 73 !! (tr(Kmm)) = (tr(Kmm)) + atfp [ (tr(Kbb)) + (tr(Kaa)) - 2 (tr(Kmm)) ]73 !! (tr(Kmm)) = (tr(Kmm)) + rn_atfp [ (tr(Kbb)) + (tr(Kaa)) - 2 (tr(Kmm)) ] 74 74 !! 75 75 !! … … 111 111 112 112 ! total trend for the non-time-filtered variables. 113 zfact = 1.0 / r dttrc113 zfact = 1.0 / rn_Dt 114 114 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from ts(Kmm) terms 115 115 IF( ln_linssh ) THEN ! linear sea surface height only … … 139 139 ENDIF 140 140 ! ! Leap-Frog + Asselin filter time stepping 141 IF( (neuler == 0 .AND. kt == nittrc000).OR. ln_top_euler ) THEN ! Euler time-stepping141 IF( l_1st_euler .OR. ln_top_euler ) THEN ! Euler time-stepping 142 142 ! 143 143 IF (l_trdtrc .AND. .NOT. ln_linssh ) THEN ! Zero Asselin filter contribution must be explicitly written out since for vvl … … 152 152 IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping 153 153 IF( ln_linssh ) THEN ; CALL tra_atf_fix( kt, Kbb, Kmm, Kaa, nittrc000, 'TRC', ptr, jptra ) ! linear ssh 154 ELSE ; CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, r dttrc, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh154 ELSE ; CALL tra_atf_vvl( kt, Kbb, Kmm, Kaa, nittrc000, rn_Dt, 'TRC', ptr, sbc_trc, sbc_trc_b, jptra ) ! non-linear ssh 155 155 ENDIF 156 156 ELSE … … 164 164 DO jn = 1, jptra 165 165 DO jk = 1, jpkm1 166 zfact = 1._wp / r 2dttrc166 zfact = 1._wp / rDt_trc 167 167 ztrdt(:,:,jk,jn) = ( ptr(:,:,jk,jn,Kbb) - ztrdt(:,:,jk,jn) ) * zfact 168 168 END DO … … 200 200 !! /( e3t(:,:,:,Kmm) + rbcp*[ e3t(:,:,:,Kbb) - 2 e3t(:,:,:,Kmm) + e3t(:,:,:,Kaa) ] ) 201 201 !! ztm = 0 otherwise 202 !! tb = ( e3t_n*tn + atfp*[ e3t_b*tb - 2 e3t_n*tn + e3t_a*ta ] )203 !! /( e3t(:,:,:,Kmm) + atfp*[ e3t(:,:,:,Kbb) - 2 e3t(:,:,:,Kmm) + e3t(:,:,:,Kaa) ] )202 !! 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) ] ) 204 204 !! tn = ta 205 205 !! ta = zt (NB: reset to 0 after eos_bn2 call) … … 222 222 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 223 223 IF( .NOT. ln_linssh ) THEN 224 rfact1 = atfp * rdttrc225 rfact2 = rfact1 / r au0224 rfact1 = rn_atfp * rn_Dt 225 rfact2 = rfact1 / rho0 226 226 ENDIF 227 227 ! … … 241 241 ztc_d = ztc_a - 2. * ztc_n + ztc_b 242 242 ! 243 ze3t_f = ze3t_n + atfp * ze3t_d244 ztc_f = ztc_n + atfp * ztc_d243 ze3t_f = ze3t_n + rn_atfp * ze3t_d 244 ztc_f = ztc_n + rn_atfp * ztc_d 245 245 ! 246 246 IF( .NOT. ln_linssh .AND. jk == mikt(ji,jj) ) THEN ! first level -
NEMO/trunk/src/TOP/TRP/trcrad.F90
r12377 r12489 147 147 ! 148 148 IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 149 zs2rdt = 1. / ( 2. * r dt )149 zs2rdt = 1. / ( 2. * rn_Dt ) 150 150 ! 151 151 DO jt = 1,2 ! Loop over time indices since exactly the same fix is applied to "now" and "after" fields -
NEMO/trunk/src/TOP/TRP/trcsbc.F90
r12377 r12489 121 121 DO jn = 1, jptra 122 122 DO_2D_01_00 123 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_r au0 * ptr(ji,jj,1,jn,Kmm)123 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 124 124 END_2D 125 125 END DO … … 129 129 DO jn = 1, jptra 130 130 DO_2D_01_00 131 sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_r au0 * ptr(ji,jj,1,jn,Kmm)131 sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 132 132 END_2D 133 133 END DO … … 145 145 ztfx = zftra ! net tracer flux 146 146 ! 147 zdtra = r1_r au0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) )147 zdtra = r1_rho0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * ptr(ji,jj,1,jn,Kmm) ) 148 148 IF ( zdtra < 0. ) THEN 149 zdtra = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / r 2dttrc ) ! avoid negative concentrations to arise149 zdtra = MAX(zdtra, -ptr(ji,jj,1,jn,Kmm) * e3t(ji,jj,1,Kmm) / rDt_trc ) ! avoid negative concentrations to arise 150 150 ENDIF 151 151 sbc_trc(ji,jj,jn) = zdtra -
NEMO/trunk/src/TOP/TRP/trczdf.F90
r12377 r12489 56 56 IF( l_trdtrc ) ztrtrd(:,:,:,:) = ptr(:,:,:,:,Krhs) 57 57 ! 58 CALL tra_zdf_imp( kt, nittrc000, 'TRC', r 2dttrc, Kbb, Kmm, Krhs, ptr, Kaa, jptra ) ! implicit scheme58 CALL tra_zdf_imp( kt, nittrc000, 'TRC', rDt_trc, Kbb, Kmm, Krhs, ptr, Kaa, jptra ) ! implicit scheme 59 59 ! 60 60 IF( l_trdtrc ) THEN ! save the vertical diffusive trends for further diagnostics 61 61 DO jn = 1, jptra 62 62 DO jk = 1, jpkm1 63 ztrtrd(:,:,jk,jn) = ( ( ptr(:,:,jk,jn,Kaa) - ptr(:,:,jk,jn,Kbb) ) / r 2dttrc ) - ztrtrd(:,:,jk,jn)63 ztrtrd(:,:,jk,jn) = ( ( ptr(:,:,jk,jn,Kaa) - ptr(:,:,jk,jn,Kbb) ) / rDt_trc ) - ztrtrd(:,:,jk,jn) 64 64 END DO 65 65 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_zdf, ztrtrd(:,:,:,jn) ) -
NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90
r12377 r12489 401 401 DO jn = 1, jptra 402 402 IF( ln_trdtrc(jn) ) THEN 403 !-- Compute total trends (use rdttrc instead of rdt ???)403 !-- Compute total trends 404 404 IF ( ln_trcadv_muscl .OR. ln_trcadv_muscl2 ) THEN ! EULER-FORWARD schemes 405 ztmltot(:,:,jn) = ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) )/r dt405 ztmltot(:,:,jn) = ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) )/rn_Dt 406 406 ELSE ! LEAP-FROG schemes 407 ztmltot(:,:,jn) = ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) + tmlb_trc(:,:,jn) - tmlbb_trc(:,:,jn))/(2.*r dt)407 ztmltot(:,:,jn) = ( tml_trc(:,:,jn) - tmlbn_trc(:,:,jn) + tmlb_trc(:,:,jn) - tmlbb_trc(:,:,jn))/(2.*rn_Dt) 408 408 ENDIF 409 409 … … 439 439 IF( ln_trdtrc(jn) ) THEN 440 440 tml_sum_trc(:,:,jn) = tmlbn_trc(:,:,jn) + 2 * ( tml_sum_trc(:,:,jn) - tml_trc(:,:,jn) ) + tml_trc(:,:,jn) 441 ztmltot2 (:,:,jn) = ( tml_sum_trc(:,:,jn) - tml_sumb_trc(:,:,jn) ) / ( 2.*r dt ) ! now tracer unit is /sec441 ztmltot2 (:,:,jn) = ( tml_sum_trc(:,:,jn) - tml_sumb_trc(:,:,jn) ) / ( 2.*rn_Dt ) ! now tracer unit is /sec 442 442 ENDIF 443 443 END DO … … 852 852 CALL ctl_stop( 'STOP', 'trd_mxl_trc : this was never checked. Comment this line to proceed...' ) 853 853 ENDIF 854 zsto = nn_trd_trc * r dt854 zsto = nn_trd_trc * rn_Dt 855 855 clop = "inst("//TRIM(clop)//")" 856 856 # else 857 857 IF( ln_trdmxl_trc_instant ) THEN 858 zsto = r dt ! inst. diags : we use IOIPSL time averaging858 zsto = rn_Dt ! inst. diags : we use IOIPSL time averaging 859 859 ELSE 860 zsto = nn_trd_trc * r dt ! mean diags : we DO NOT use any IOIPSL time averaging860 zsto = nn_trd_trc * rn_Dt ! mean diags : we DO NOT use any IOIPSL time averaging 861 861 ENDIF 862 862 clop = "ave("//TRIM(clop)//")" 863 863 # endif 864 zout = nn_trd_trc * r dt864 zout = nn_trd_trc * rn_Dt 865 865 iiter = nittrc000 - 1 866 866 … … 869 869 ! II.2 Compute julian date from starting date of the run 870 870 ! ------------------------------------------------------ 871 CALL ymds2ju( nyear, nmonth, nday, r dt, zjulian )871 CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 872 872 zjulian = zjulian - adatrj ! set calendar origin to the beginning of the experiment 873 873 IF(lwp) WRITE(numout,*)' ' … … 901 901 CALL dia_nam( clhstnam, nn_trd_trc, csuff ) 902 902 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 903 & 1, jpi, 1, jpj, iiter, zjulian, r dt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set )903 & 1, jpi, 1, jpj, iiter, zjulian, rn_Dt, nh_t(jn), nidtrd(jn), domain_id=nidom, snc4chunks=snc4set ) 904 904 905 905 !-- Define the ML depth variable … … 938 938 CALL histdef(nidtrd(jn), trim(clvar)//trim(ctrd_trc(jl,2)), clmxl//" "//clvar//ctrd_trc(jl,1), & 939 939 & cltrcu, jpi, jpj, nh_t(jn), 1 , 1, 1 , -99 , 32, clop, zsto, zout ) ! IOIPSL: time mean 940 END DO ! if zsto=r dt above940 END DO ! if zsto=rn_Dt above 941 941 942 942 CALL histdef(nidtrd(jn), trim(clvar)//trim(ctrd_trc(jpmxl_trc_radb,2)), clmxl//" "//clvar//ctrd_trc(jpmxl_trc_radb,1), & -
NEMO/trunk/src/TOP/oce_trc.F90
r12377 r12489 39 39 USE oce , ONLY : ts => ts !: 4D array contaning ( tn, sn ) 40 40 USE oce , ONLY : rhop => rhop !: potential volumic mass (kg m-3) 41 USE oce , ONLY : rhd => rhd !: in situ density anomalie rhd=(rho-r au0)/rau0 (no units)41 USE oce , ONLY : rhd => rhd !: in situ density anomalie rhd=(rho-rho0)/rho0 (no units) 42 42 USE oce , ONLY : hdiv => hdiv !: horizontal divergence (1/s) 43 43 USE oce , ONLY : ssh => ssh !: sea surface height at t-point [m] -
NEMO/trunk/src/TOP/trc.F90
r12377 r12489 61 61 CHARACTER(len = 80) , PUBLIC :: cn_trcrst_out !: suffix of pass. tracer restart name (output) 62 62 CHARACTER(len = 256), PUBLIC :: cn_trcrst_outdir !: restart output directory 63 REAL(wp) , PUBLIC :: rdttrc !: passive tracer time step 64 REAL(wp) , PUBLIC :: r2dttrc !: = 2*rdttrc except at nit000 (=rdttrc) if neuler=0 63 REAL(wp) , PUBLIC :: rDt_trc !: = 2*rn_Dt except at nit000 (=rn_Dt) if l_1st_euler=.true. 65 64 LOGICAL , PUBLIC :: ln_top_euler !: boolean term for euler integration 66 65 LOGICAL , PUBLIC :: ln_trcdta !: Read inputs data from files -
NEMO/trunk/src/TOP/trcbc.F90
r12377 r12489 416 416 DO_2D_01_00 417 417 DO jk = 1, nk_rnf(ji,jj) 418 zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_r au0 / h_rnf(ji,jj)418 zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rho0 / h_rnf(ji,jj) 419 419 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + (ptr(ji,jj,jk,jn,Kmm) * zrnf) 420 420 END DO -
NEMO/trunk/src/TOP/trcnam.F90
r12377 r12489 76 76 ENDIF 77 77 ! 78 rdttrc = rdt ! passive tracer time-step79 !80 78 IF(lwp) THEN ! control print 81 79 WRITE(numout,*) 82 WRITE(numout,*) ' ==>>> Passive Tracer time step rdttrc = rdt = ', rdttrc80 WRITE(numout,*) ' ==>>> Passive Tracer time step = rn_Dt = ', rn_Dt 83 81 ENDIF 84 82 ! -
NEMO/trunk/src/TOP/trcrst.F90
r12377 r12489 136 136 !!---------------------------------------------------------------------- 137 137 ! 138 CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', r dttrc ) ! passive tracer time step138 CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rn_Dt ) ! passive tracer time step (= ocean time step) 139 139 ! prognostic variables 140 140 ! -------------------- … … 183 183 !! In both those options, the exact duration of the experiment 184 184 !! since the beginning (cumulated duration of all previous restart runs) 185 !! is not stored in the restart and is assumed to be (nittrc000-1)*r dt.185 !! is not stored in the restart and is assumed to be (nittrc000-1)*rn_Dt. 186 186 !! This is valid is the time step has remained constant. 187 187 !! … … 263 263 nminute = ( nn_time0 - nhour * 100 ) 264 264 IF( nhour*3600+nminute*60-ndt05 .lt. 0 ) ndastp=ndastp-1 ! Start hour is specified in the namelist (default 0) 265 adatrj = ( REAL( nit000-1, wp ) * r dt ) / rday265 adatrj = ( REAL( nit000-1, wp ) * rn_Dt ) / rday 266 266 ! note this is wrong if time step has changed during run 267 267 ENDIF … … 276 276 ENDIF 277 277 ! 278 IF( ln_rsttr ) THEN ; neuler = 1279 ELSE ; neuler = 0278 IF( ln_rsttr ) THEN ; l_1st_euler = .false. 279 ELSE ; l_1st_euler = .true. 280 280 ENDIF 281 281 ! -
NEMO/trunk/src/TOP/trcstp.F90
r12377 r12489 64 64 IF( ln_timing ) CALL timing_start('trc_stp') 65 65 ! 66 IF( ( neuler == 0 .AND. kt == nittrc000 ).OR. ln_top_euler ) THEN ! at nittrc00067 r 2dttrc = rdttrc ! = rdttrc(use or restarting with Euler time stepping)66 IF( l_1st_euler .OR. ln_top_euler ) THEN ! at nittrc000 67 rDt_trc = rn_Dt ! = rn_Dt (use or restarting with Euler time stepping) 68 68 ELSEIF( kt <= nittrc000 + 1 ) THEN ! at nittrc000 or nittrc000+1 69 r 2dttrc = 2. * rdttrc ! = 2 rdttrc(leapfrog)69 rDt_trc = 2. * rn_Dt ! = 2 rn_Dt (leapfrog) 70 70 ENDIF 71 71 ! … … 177 177 nb_rec_per_day = ncpl_qsr_freq 178 178 ELSE 179 rdt_sampl = MAX( 3600., r dttrc)179 rdt_sampl = MAX( 3600., rn_Dt ) 180 180 nb_rec_per_day = INT( rday / rdt_sampl ) 181 181 ENDIF … … 196 196 197 197 CALL iom_get( numrtr, 'ktdcy', zkt ) 198 rsecfst = INT( zkt ) * r dttrc198 rsecfst = INT( zkt ) * rn_Dt 199 199 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 200 200 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean ) ! A mean of qsr … … 217 217 ELSE !* no restart: set from nit000 values 218 218 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean set to nit000 values' 219 rsecfst = kt * r dttrc219 rsecfst = kt * rn_Dt 220 220 ! 221 221 qsr_mean(:,:) = qsr(:,:) … … 227 227 ENDIF 228 228 ! 229 rseclast = kt * r dttrc229 rseclast = kt * rn_Dt 230 230 ! 231 231 llnew = ( rseclast - rsecfst ) .ge. rdt_sampl ! new shortwave to store
Note: See TracChangeset
for help on using the changeset viewer.