New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12406 for NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC – NEMO

Ignore:
Timestamp:
2020-02-19T10:22:15+01:00 (4 years ago)
Author:
davestorkey
Message:
  1. Rename the namelist timestep parameter: rn_rdt -> rn_Dt
  2. Use the namelist parameter instead of the non-DOCTOR parameter: rdt -> rn_Dt

This version has same SETTE results as the last version. Passes all tests but some
tests don't bit compare with the trunk.

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  
    172172      ! Note that all varibles starting by nsec_* are shifted time by +1/2 time step to be centrered 
    173173      IF( PRESENT(kit) ) THEN   ! ignore kn_fsbc in this case 
    174          isecsbc = nsec_year + nsec1jan000 + NINT( (     REAL(      kit,wp) + zt_offset ) * rdt / REAL(nn_baro,wp) ) 
     174         isecsbc = nsec_year + nsec1jan000 + NINT( (     REAL(      kit,wp) + zt_offset ) * rn_Dt / REAL(nn_baro,wp) ) 
    175175      ELSE                      ! middle of sbc time step 
    176176         ! 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 ) * rdt ) 
     177         isecsbc = nsec_year + nsec1jan000 + NINT( ( 0.5*REAL(kn_fsbc-1,wp) + zt_offset ) * rn_Dt ) 
    178178      ENDIF 
    179179      imf = SIZE( sd ) 
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcblk.F90

    r12377 r12406  
    275275            ENDIF 
    276276            ! 
    277             IF( slf_i(jfpr)%freqh > 0. .AND. MOD( NINT(3600. * slf_i(jfpr)%freqh), nn_fsbc * NINT(rdt) ) /= 0 )   & 
    278                &  CALL ctl_warn( 'sbc_blk_init: sbcmod timestep rdt*nn_fsbc is NOT a submultiple of atmospheric forcing frequency.',   & 
    279                &                 '               This is not ideal. You should consider changing either rdt 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...' ) 
    280280         ENDIF 
    281281      END DO 
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcblk_skin_coare.F90

    r12377 r12406  
    199199         ! Okay test on updated absorbed flux: 
    200200         !#LB: remove??? has a strong influence !!! 
    201          IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*rdt <= 0._wp) ) THEN 
     201         IF( (.NOT. l_exit).AND.(Qnt_ac(ji,jj) + zQabs*rn_Dt <= 0._wp) ) THEN 
    202202            l_exit       = .TRUE. 
    203203            l_destroy_wl = .TRUE. 
     
    211211            ! 2/ Regardless of WL formed (dT==0 or dT>0), we are in the process to initiate one or warm further it ! 
    212212 
    213             ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rdt      ! updated momentum integral 
     213            ztac = Tau_ac(ji,jj) + MAX(.002_wp , pTau(ji,jj))*rn_Dt      ! updated momentum integral 
    214214            !PRINT *, '#LBD: updated value for Tac=',  REAL(ztac,4) 
    215215 
     
    218218            DO jl = 1, 5 
    219219               zQabs = frac_solar_abs(zHwl)*pQsw(ji,jj) + pQnsol(ji,jj) 
    220                zqac  = Qnt_ac(ji,jj) + zQabs*rdt ! updated heat absorbed 
     220               zqac  = Qnt_ac(ji,jj) + zQabs*rn_Dt ! updated heat absorbed 
    221221               IF( zqac <= 0._wp ) EXIT 
    222222               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  
    214214         zcst2 = zcst1 / ( 5._wp*zHwl*zusw2 )  !OR: zcst2 = zcst1*rNuwl0 / ( 5._wp*zHwl*zusw2 ) ??? 
    215215 
    216          zcst0 = rdt * (rNuwl0 + 1._wp) / zHwl 
     216         zcst0 = rn_Dt * (rNuwl0 + 1._wp) / zHwl 
    217217 
    218218         ZA = zcst0 * zQabs / ( rNuwl0 * zRhoCp_w ) 
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbccpl.F90

    r12377 r12406  
    11231123      !                                                      ! Receive all the atmos. fields (including ice information) 
    11241124      !                                                      ! ======================================================= ! 
    1125       isec = ( kt - nit000 ) * NINT( rdt )                      ! date of exchanges 
     1125      isec = ( kt - nit000 ) * NINT( rn_Dt )                      ! date of exchanges 
    11261126      DO jn = 1, jprcv                                          ! received fields sent by the atmosphere 
    11271127         IF( srcv(jn)%laction )   CALL cpl_rcv( jn, isec, frcv(jn)%z3, xcplmask(:,:,1:nn_cplmodel), nrcvinfo(jn) ) 
     
    21002100      !!---------------------------------------------------------------------- 
    21012101      ! 
    2102       isec = ( kt - nit000 ) * NINT( rdt )        ! date of exchanges 
     2102      isec = ( kt - nit000 ) * NINT( rn_Dt )        ! date of exchanges 
    21032103 
    21042104      zfr_l(:,:) = 1.- fr_i(:,:) 
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcdcy.F90

    r12377 r12406  
    8686      ! -------------- 
    8787      ! When are we during the day (from 0 to 1) 
    88       zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdt ) / rday 
    89       zup = zlo + ( REAL(nn_fsbc, wp)     * rdt ) / rday 
     88      zlo = ( REAL(nsec_day, wp) - 0.5_wp * rn_Dt ) / rday 
     89      zup = zlo + ( REAL(nn_fsbc, wp)     * rn_Dt ) / rday 
    9090      ! 
    9191      IF( nday_qsr == -1 ) THEN       ! first time step only 
     
    251251         END_2D 
    252252         ! 
    253          ztmp = rday / ( rdt * REAL(nn_fsbc, wp) ) 
     253         ztmp = rday / ( rn_Dt * REAL(nn_fsbc, wp) ) 
    254254         rscal(:,:) = rscal(:,:) * ztmp 
    255255         ! 
  • NEMO/branches/2020/KERNEL-03_Storkey_Coward_RK3_stage2/src/OCE/SBC/sbcfwb.F90

    r12377 r12406  
    126126         ENDIF    
    127127         !                                         ! Update fwfold if new year start 
    128          ikty = 365 * 86400 / rdt                  !!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 !!!!!!! 
    129129         IF( MOD( kt, ikty ) == 0 ) THEN 
    130130            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  
    187187      ! 
    188188      IF( .NOT.ln_usr ) THEN     ! the model calendar needs some specificities (except in user defined case) 
    189          IF( MOD( rday , rdt ) /= 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' ) 
    190190         IF( MOD( rday , 2.  ) /= 0. )   CALL ctl_stop( 'the number of second of in a day must be an even number'    ) 
    191          IF( MOD( rdt  , 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'           ) 
    192192      ENDIF 
    193193      !                       !**  check option consistency 
     
    309309      !     SAS time-step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 
    310310      IF( nn_components /= jp_iam_nemo ) THEN 
    311          IF( nn_components == jp_iam_opa )   nn_fsbc = cpl_freq('O_SFLX') / NINT(rdt) 
    312          IF( nn_components == jp_iam_sas )   nn_fsbc = cpl_freq('I_SFLX') / NINT(rdt) 
     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) 
    313313         ! 
    314314         IF(lwp)THEN 
     
    331331      ENDIF 
    332332      ! 
    333       IF( MOD( rday, REAL(nn_fsbc, wp) * rdt ) /= 0 )   & 
     333      IF( MOD( rday, REAL(nn_fsbc, wp) * rn_Dt ) /= 0 )   & 
    334334         &  CALL ctl_warn( 'sbc_init : nn_fsbc is NOT a multiple of the number of time steps in a day' ) 
    335335      ! 
    336       IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(rdt) ) < 8  )   & 
     336      IF( ln_dm2dc .AND. NINT(rday) / ( nn_fsbc * NINT(rn_Dt) ) < 8  )   & 
    337337         &   CALL ctl_warn( 'sbc_init : diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 
    338338      ! 
Note: See TracChangeset for help on using the changeset viewer.