- Timestamp:
- 2020-02-19T10:22:15+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/fldread.F90
r12377 r12406 172 172 ! Note that all varibles starting by nsec_* are shifted time by +1/2 time step to be centrered 173 173 IF( PRESENT(kit) ) THEN ! ignore kn_fsbc in this case 174 isecsbc = nsec_year + nsec1jan000 + NINT( ( REAL( kit,wp) + zt_offset ) * r dt / REAL(nn_baro,wp) )174 isecsbc = nsec_year + nsec1jan000 + NINT( ( REAL( kit,wp) + zt_offset ) * rn_Dt / REAL(nn_baro,wp) ) 175 175 ELSE ! middle of sbc time step 176 176 ! note: we use kn_fsbc-1 because nsec_year is defined at the middle of the current time step 177 isecsbc = nsec_year + nsec1jan000 + NINT( ( 0.5*REAL(kn_fsbc-1,wp) + zt_offset ) * r dt )177 isecsbc = nsec_year + nsec1jan000 + NINT( ( 0.5*REAL(kn_fsbc-1,wp) + zt_offset ) * rn_Dt ) 178 178 ENDIF 179 179 imf = SIZE( sd ) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcblk.F90
r12377 r12406 275 275 ENDIF 276 276 ! 277 IF( slf_i(jfpr)%freqh > 0. .AND. MOD( NINT(3600. * slf_i(jfpr)%freqh), nn_fsbc * NINT(r dt) ) /= 0 ) &278 & CALL ctl_warn( 'sbc_blk_init: sbcmod timestep r dt*nn_fsbc is NOT a submultiple of atmospheric forcing frequency.', &279 & ' This is not ideal. You should consider changing either r dt or nn_fsbc value...' )277 IF( slf_i(jfpr)%freqh > 0. .AND. MOD( NINT(3600. * slf_i(jfpr)%freqh), nn_fsbc * NINT(rn_Dt) ) /= 0 ) & 278 & CALL ctl_warn( 'sbc_blk_init: sbcmod timestep rn_Dt*nn_fsbc is NOT a submultiple of atmospheric forcing frequency.', & 279 & ' This is not ideal. You should consider changing either rn_Dt or nn_fsbc value...' ) 280 280 ENDIF 281 281 END DO -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcblk_skin_coare.F90
r12377 r12406 199 199 ! Okay test on updated absorbed flux: 200 200 !#LB: remove??? has a strong influence !!! 201 IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*r dt <= 0._wp) ) THEN201 IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*rn_Dt <= 0._wp) ) THEN 202 202 l_exit = .TRUE. 203 203 l_destroy_wl = .TRUE. … … 211 211 ! 2/ Regardless of WL formed (dT==0 or dT>0), we are in the process to initiate one or warm further it ! 212 212 213 ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*r dt ! updated momentum integral213 ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rn_Dt ! updated momentum integral 214 214 !PRINT *, '#LBD: updated value for Tac=', REAL(ztac,4) 215 215 … … 218 218 DO jl = 1, 5 219 219 zQabs = frac_solar_abs(zHwl)*pQsw(ji,jj) + pQnsol(ji,jj) 220 zqac = Qnt_ac(ji,jj) + zQabs*r dt ! updated heat absorbed220 zqac = Qnt_ac(ji,jj) + zQabs*rn_Dt ! updated heat absorbed 221 221 IF( zqac <= 0._wp ) EXIT 222 222 zHwl = MAX( MIN( Hwl_max , zcd1*ztac/SQRT(zqac)) , 0.1_wp ) ! Warm-layer depth -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcblk_skin_ecmwf.F90
r12377 r12406 214 214 zcst2 = zcst1 / ( 5._wp*zHwl*zusw2 ) !OR: zcst2 = zcst1*rNuwl0 / ( 5._wp*zHwl*zusw2 ) ??? 215 215 216 zcst0 = r dt * (rNuwl0 + 1._wp) / zHwl216 zcst0 = rn_Dt * (rNuwl0 + 1._wp) / zHwl 217 217 218 218 ZA = zcst0 * zQabs / ( rNuwl0 * zRhoCp_w ) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbccpl.F90
r12377 r12406 1123 1123 ! ! Receive all the atmos. fields (including ice information) 1124 1124 ! ! ======================================================= ! 1125 isec = ( kt - nit000 ) * NINT( r dt ) ! date of exchanges1125 isec = ( kt - nit000 ) * NINT( rn_Dt ) ! date of exchanges 1126 1126 DO jn = 1, jprcv ! received fields sent by the atmosphere 1127 1127 IF( srcv(jn)%laction ) CALL cpl_rcv( jn, isec, frcv(jn)%z3, xcplmask(:,:,1:nn_cplmodel), nrcvinfo(jn) ) … … 2100 2100 !!---------------------------------------------------------------------- 2101 2101 ! 2102 isec = ( kt - nit000 ) * NINT( r dt ) ! date of exchanges2102 isec = ( kt - nit000 ) * NINT( rn_Dt ) ! date of exchanges 2103 2103 2104 2104 zfr_l(:,:) = 1.- fr_i(:,:) -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcdcy.F90
r12377 r12406 86 86 ! -------------- 87 87 ! When are we during the day (from 0 to 1) 88 zlo = ( REAL(nsec_day, wp) - 0.5_wp * r dt ) / rday89 zup = zlo + ( REAL(nn_fsbc, wp) * r dt ) / rday88 zlo = ( REAL(nsec_day, wp) - 0.5_wp * rn_Dt ) / rday 89 zup = zlo + ( REAL(nn_fsbc, wp) * rn_Dt ) / rday 90 90 ! 91 91 IF( nday_qsr == -1 ) THEN ! first time step only … … 251 251 END_2D 252 252 ! 253 ztmp = rday / ( r dt * REAL(nn_fsbc, wp) )253 ztmp = rday / ( rn_Dt * REAL(nn_fsbc, wp) ) 254 254 rscal(:,:) = rscal(:,:) * ztmp 255 255 ! -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcfwb.F90
r12377 r12406 126 126 ENDIF 127 127 ! ! Update fwfold if new year start 128 ikty = 365 * 86400 / r dt !!bug use of 365 days leap year or 360d year !!!!!!!128 ikty = 365 * 86400 / rn_Dt !!bug use of 365 days leap year or 360d year !!!!!!! 129 129 IF( MOD( kt, ikty ) == 0 ) THEN 130 130 a_fwb_b = a_fwb ! mean sea level taking into account the ice+snow -
NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcmod.F90
r12377 r12406 187 187 ! 188 188 IF( .NOT.ln_usr ) THEN ! the model calendar needs some specificities (except in user defined case) 189 IF( MOD( rday , r dt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' )189 IF( MOD( rday , rn_Dt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 190 190 IF( MOD( rday , 2. ) /= 0. ) CALL ctl_stop( 'the number of second of in a day must be an even number' ) 191 IF( MOD( r dt , 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' )191 IF( MOD( rn_Dt , 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' ) 192 192 ENDIF 193 193 ! !** check option consistency … … 309 309 ! SAS time-step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 310 310 IF( nn_components /= jp_iam_nemo ) THEN 311 IF( nn_components == jp_iam_opa ) nn_fsbc = cpl_freq('O_SFLX') / NINT(r dt)312 IF( nn_components == jp_iam_sas ) nn_fsbc = cpl_freq('I_SFLX') / NINT(r dt)311 IF( nn_components == jp_iam_opa ) nn_fsbc = cpl_freq('O_SFLX') / NINT(rn_Dt) 312 IF( nn_components == jp_iam_sas ) nn_fsbc = cpl_freq('I_SFLX') / NINT(rn_Dt) 313 313 ! 314 314 IF(lwp)THEN … … 331 331 ENDIF 332 332 ! 333 IF( MOD( rday, REAL(nn_fsbc, wp) * r dt ) /= 0 ) &333 IF( MOD( rday, REAL(nn_fsbc, wp) * rn_Dt ) /= 0 ) & 334 334 & CALL ctl_warn( 'sbc_init : nn_fsbc is NOT a multiple of the number of time steps in a day' ) 335 335 ! 336 IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(r dt) ) < 8 ) &336 IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(rn_Dt) ) < 8 ) & 337 337 & CALL ctl_warn( 'sbc_init : diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 338 338 !
Note: See TracChangeset
for help on using the changeset viewer.