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 12489 for NEMO/trunk/src/OCE/ISF – NEMO

Ignore:
Timestamp:
2020-02-28T16:55:11+01:00 (4 years ago)
Author:
davestorkey
Message:

Preparation for new timestepping scheme #2390.
Main changes:

  1. Initial euler timestep now handled in stp and not in TRA/DYN routines.
  2. Renaming of all timestep parameters. In summary, the namelist parameter is now rn_Dt and the current timestep is rDt (and rDt_ice, rDt_trc etc).
  3. Renaming of a few miscellaneous parameters, eg. atfp -> rn_atfp (namelist parameter used everywhere) and rau0 -> rho0.

This version gives bit-comparable results to the previous version of the trunk.

Location:
NEMO/trunk/src/OCE/ISF
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ISF/isfcav.F90

    r12343 r12489  
    2424   USE oce      , ONLY: ts                              ! ocean tracers 
    2525   USE par_oce  , ONLY: jpi,jpj                         ! ocean space and time domain 
    26    USE phycst   , ONLY: grav,rau0,rau0_rcp,r1_rau0_rcp  ! physical constants 
     26   USE phycst   , ONLY: grav,rho0,rho0_rcp,r1_rho0_rcp  ! physical constants 
    2727   USE eosbn2   , ONLY: ln_teos10                       ! use ln_teos10 or not 
    2828   ! 
     
    8585      ! 
    8686      ! initialisation 
    87       IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * rau0_rcp ! last time step total heat fluxes (to speed up convergence) 
     87      IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * rho0_rcp ! last time step total heat fluxes (to speed up convergence) 
    8888      ! 
    8989      ! compute ice shelf melting 
     
    142142      ! 
    143143      ! set temperature content 
    144       ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rau0_rcp 
     144      ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rho0_rcp 
    145145      ! 
    146146      ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) 
     
    215215            risf_lamb1 =-0.0564_wp 
    216216            risf_lamb2 = 0.0773_wp 
    217             risf_lamb3 =-7.8633e-8 * grav * rau0 
     217            risf_lamb3 =-7.8633e-8 * grav * rho0 
    218218         ELSE                  ! linearisation from table 4 (Asay-Davis et al., 2015) 
    219219            risf_lamb1 =-0.0573_wp 
    220220            risf_lamb2 = 0.0832_wp 
    221             risf_lamb3 =-7.5300e-8 * grav * rau0 
     221            risf_lamb3 =-7.5300e-8 * grav * rho0 
    222222         ENDIF 
    223223 
  • NEMO/trunk/src/OCE/ISF/isfcavmlt.F90

    r12340 r12489  
    1717 
    1818   USE dom_oce                            ! ocean space and time domain 
    19    USE phycst , ONLY: rcp, rau0, rau0_rcp ! physical constants 
     19   USE phycst , ONLY: rcp, rho0, rho0_rcp ! physical constants 
    2020   USE eosbn2 , ONLY: eos_fzp             ! equation of state 
    2121 
     
    161161      ! 
    162162      ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat 
    163       pqfwf(:,:) = - pgt(:,:) * rau0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out ) 
     163      pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out ) 
    164164      pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 out ) 
    165165      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 out ) 
     
    213213         ! 
    214214         ! compute coeficient to solve the 2nd order equation 
    215          zeps1 = rau0_rcp * pgt(ji,jj) 
    216          zeps2 = rLfusisf * rau0 * pgs(ji,jj) 
     215         zeps1 = rho0_rcp * pgt(ji,jj) 
     216         zeps2 = rLfusisf * rho0 * pgs(ji,jj) 
    217217         zeps3 = rhoisf * rcpisf * rkappa / MAX(risfdep(ji,jj),zeps) 
    218218         zeps4 = risf_lamb2 + risf_lamb3 * risfdep(ji,jj) 
     
    238238         ! 
    239239         ! compute the upward water and heat flux (eq. 24 and eq. 26) 
    240          pqfwf(ji,jj) = rau0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out) 
    241          pqoce(ji,jj) = rau0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out) 
     240         pqfwf(ji,jj) = rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out) 
     241         pqoce(ji,jj) = rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out) 
    242242         pqhc (ji,jj) = rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux (> 0 out) 
    243243         ! 
  • NEMO/trunk/src/OCE/ISF/isfcpl.F90

    r12353 r12489  
    6868      ! 
    6969      ! start on an euler time step 
    70       neuler = 0 
     70      l_1st_euler = .TRUE. 
    7171      !  
    7272      ! allocation and initialisation to 0 
     
    502502      ! compute run length 
    503503      nstp_iscpl  = nitend - nit000 + 1 
    504       rdt_iscpl   = nstp_iscpl * rn_rdt 
     504      rdt_iscpl   = nstp_iscpl * rn_Dt 
    505505      z1_rdtiscpl = 1._wp / rdt_iscpl  
    506506 
  • NEMO/trunk/src/OCE/ISF/isfdynatf.F90

    r12372 r12489  
    1313   USE isf_oce 
    1414 
    15    USE phycst , ONLY: r1_rau0         ! physical constant 
     15   USE phycst , ONLY: r1_rho0         ! physical constant 
    1616   USE dom_oce, ONLY: tmask, ssmask, ht, e3t, r1_e1e2t   ! time and space domain 
    1717 
     
    3939      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pe3t_f   ! time filtered scale factor to be corrected 
    4040      ! 
    41       REAL(wp)                        , INTENT(in   ) :: pcoef    ! atfp * rdt * r1_rau0 
     41      REAL(wp)                        , INTENT(in   ) :: pcoef    ! rn_atfp * rn_Dt * r1_rho0 
    4242      !!-------------------------------------------------------------------- 
    4343      INTEGER :: jk  ! loop index 
     
    7070      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in   ) :: pfrac, phtbl    ! fraction of bottom cell included in tbl, tbl thickness 
    7171      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in   ) :: pfwf , pfwf_b   ! now/before fwf 
    72       REAL(wp),                         INTENT(in   ) :: pcoef           ! atfp * rdt * r1_rau0 
     72      REAL(wp),                         INTENT(in   ) :: pcoef           ! rn_atfp * rn_Dt * r1_rho0 
    7373      !!---------------------------------------------------------------------- 
    7474      INTEGER :: ji,jj,jk 
     
    7777      ! 
    7878      ! compute fwf conservation correction 
    79       zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_rau0 
     79      zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_rho0 
    8080      ! 
    8181      ! add the increment 
  • NEMO/trunk/src/OCE/ISF/isfhdiv.F90

    r12340 r12489  
    1616 
    1717   USE dom_oce                ! time and space domain 
    18    USE phycst , ONLY: r1_rau0 ! physical constant 
     18   USE phycst , ONLY: r1_rho0 ! physical constant 
    1919   USE in_out_manager         ! 
    2020 
     
    9696      ! 
    9797      ! compute integrated divergence correction 
    98       zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_rau0 / phtbl(:,:) 
     98      zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_rho0 / phtbl(:,:) 
    9999      ! 
    100100      ! update divergence at each level affected by ice shelf top boundary layer 
  • NEMO/trunk/src/OCE/ISF/isfpar.F90

    r12077 r12489  
    2424   USE dom_oce  , ONLY: bathy          ! ocean space and time domain 
    2525   USE par_oce  , ONLY: jpi,jpj        ! ocean space and time domain 
    26    USE phycst   , ONLY: r1_rau0_rcp    ! physical constants 
     26   USE phycst   , ONLY: r1_rho0_rcp    ! physical constants 
    2727   ! 
    2828   USE in_out_manager ! I/O manager 
     
    8888      ! 
    8989      ! set temperature content 
    90       ptsc(:,:,jp_tem) = zqh(:,:) * r1_rau0_rcp 
     90      ptsc(:,:,jp_tem) = zqh(:,:) * r1_rho0_rcp 
    9191      ! 
    9292      ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) 
  • NEMO/trunk/src/OCE/ISF/isfparmlt.F90

    r12077 r12489  
    1313   USE dom_oce                  ! ocean space and time domain 
    1414   USE oce    , ONLY: ts        ! ocean dynamics and tracers 
    15    USE phycst , ONLY: rcp, rau0 ! physical constants 
     15   USE phycst , ONLY: rcp, rho0 ! physical constants 
    1616   USE eosbn2 , ONLY: eos_fzp   ! equation of state 
    1717 
     
    148148      ! 
    149149      ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 
    150       pqoce(:,:) =   rau0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) 
     150      pqoce(:,:) =   rho0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) 
    151151      pqfwf(:,:) = - pqoce(:,:) / rLfusisf             ! derived from the latent heat flux 
    152152      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  
Note: See TracChangeset for help on using the changeset viewer.