- Timestamp:
- 2020-02-18T11:58:37+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traadv.F90
r12377 r12397 92 92 IF( ln_timing ) CALL timing_start('tra_adv') 93 93 ! 94 ! ! set time step95 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler)96 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp * rdt ! at nit000 or nit000+1 (Leapfrog)97 ENDIF98 !99 94 ! !== effective transport ==! 100 95 zuu(:,:,jpk) = 0._wp -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traatf.F90
r12377 r12397 113 113 IF( ln_bdy ) CALL bdy_tra( kt, Kbb, pts, Kaa ) ! BDY open boundaries 114 114 115 ! set time step size (Euler/Leapfrog)116 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000 (Euler)117 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2._wp* rdt ! at nit000 or nit000+1 (Leapfrog)118 ENDIF119 120 115 ! trends computation initialisation 121 116 IF( l_trdtra ) THEN … … 144 139 ENDIF 145 140 146 IF( neuler == 0 .AND. kt == nit000) THEN ! Euler time-stepping141 IF( l_1st_euler ) THEN ! Euler time-stepping 147 142 ! 148 143 IF (l_trdtra .AND. .NOT. ln_linssh ) THEN ! Zero Asselin filter contribution must be explicitly written out since for vvl -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traldf_iso.F90
r12377 r12397 109 109 REAL(wp) :: zmsku, zahu_w, zabe1, zcof1, zcoef3 ! local scalars 110 110 REAL(wp) :: zmskv, zahv_w, zabe2, zcof2, zcoef4 ! - - 111 REAL(wp) :: zcoef0, ze3w_2, zsign , z2dt, z1_2dt! - -111 REAL(wp) :: zcoef0, ze3w_2, zsign ! - - 112 112 REAL(wp), DIMENSION(jpi,jpj) :: zdkt, zdk1t, z2d 113 113 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, zftu, zftv, ztfw … … 129 129 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. 130 130 ! 131 ! ! set time step size (Euler/Leapfrog)132 IF( neuler == 0 .AND. kt == nit000 ) THEN ; z2dt = rdt ! at nit000 (Euler)133 ELSE ; z2dt = 2.* rdt ! (Leapfrog)134 ENDIF135 z1_2dt = 1._wp / z2dt136 131 ! 137 132 IF( kpass == 1 ) THEN ; zsign = 1._wp ! bilaplacian operator require a minus sign (eddy diffusivity >0) … … 178 173 DO_3D_10_10( 2, jpkm1 ) 179 174 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 180 zcoef0 = z2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 )181 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt175 zcoef0 = r2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) 176 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_2dt 182 177 END_3D 183 178 ENDIF -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traldf_triad.F90
r12377 r12397 86 86 INTEGER :: ip,jp,kp ! dummy loop indices 87 87 INTEGER :: ierr ! local integer 88 REAL(wp) :: zmsku, zabe1, zcof1, zcoef3 89 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 90 REAL(wp) :: zcoef0, ze3w_2, zsign , z2dt, z1_2dt! - -88 REAL(wp) :: zmsku, zabe1, zcof1, zcoef3 ! local scalars 89 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 ! - - 90 REAL(wp) :: zcoef0, ze3w_2, zsign ! - - 91 91 ! 92 92 REAL(wp) :: zslope_skew, zslope_iso, zslope2, zbu, zbv … … 111 111 l_hst = .FALSE. 112 112 l_ptr = .FALSE. 113 IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) ) l_ptr = .TRUE. 114 IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 115 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) ) l_hst = .TRUE. 116 ! 117 ! ! set time step size (Euler/Leapfrog) 118 IF( neuler == 0 .AND. kt == kit000 ) THEN ; z2dt = rdt ! at nit000 (Euler) 119 ELSE ; z2dt = 2.* rdt ! (Leapfrog) 113 IF( cdtype == 'TRA' ) THEN 114 IF( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf') ) l_ptr = .TRUE. 115 IF( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 116 & iom_use("uadv_salttr") .OR. iom_use("vadv_salttr") ) l_hst = .TRUE. 120 117 ENDIF 121 z1_2dt = 1._wp / z2dt122 118 ! 123 119 IF( kpass == 1 ) THEN ; zsign = 1._wp ! bilaplacian operator require a minus sign (eddy diffusivity >0) … … 189 185 DO_3D_10_10( 2, jpkm1 ) 190 186 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 191 zcoef0 = z2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 )192 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt187 zcoef0 = r2dt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) 188 akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * r1_2dt 193 189 END_3D 194 190 ENDIF -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/traqsr.F90
r12377 r12397 135 135 ! !-----------------------------------! 136 136 IF( kt == nit000 ) THEN !== 1st time step ==! 137 !!gm case neuler not taken into account.... 138 IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN ! read in restart 137 IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 .AND. .NOT.l_1st_euler ) THEN ! read in restart 139 138 IF(lwp) WRITE(numout,*) ' nit000-1 qsr tracer content forcing field read in the restart file' 140 139 z1_2 = 0.5_wp -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/TRA/trazdf.F90
r12377 r12397 64 64 IF(lwp)WRITE(numout,*) 'tra_zdf : implicit vertical mixing on T & S' 65 65 IF(lwp)WRITE(numout,*) '~~~~~~~ ' 66 ENDIF67 !68 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! at nit000, = rdt (restarting with Euler time stepping)69 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2. * rdt ! otherwise, = 2 rdt (leapfrog)70 66 ENDIF 71 67 !
Note: See TracChangeset
for help on using the changeset viewer.