update_density Subroutine

private subroutine update_density()

calculate density in kg/m³ according to with . MUST match rho0 from UVic_ESCM.F90

Note

loadmw.F: l 154

imt=102, km=19, jsmw=2, jmw=jmt --- jemw=jmw-1

declared: rho(imt,km,jsmw:jmw) calculated rho(1:102,2:102) rho

Note

KB check depth dependent reference density

Arguments

None

Calls

proc~~update_density~~CallsGraph proc~update_density uvic_fabm::update_density kmt kmt proc~update_density->kmt rho rho proc~update_density->rho variable_needs_values variable_needs_values proc~update_density->variable_needs_values

Called by

proc~~update_density~~CalledByGraph proc~update_density uvic_fabm::update_density proc~update_data uvic_fabm::update_data proc~update_data->proc~update_density proc~fabm_update uvic_fabm::fabm_update proc~fabm_update->proc~update_data

Source Code

      subroutine update_density()
         !! calculate density in kg/m³ according to 
         !! $$\rho = 1000*(\rho_0 + \rho_{UVic})$$
         !! with \(\rho_0 = 1.035\). MUST match rho0 from UVic_ESCM.F90
     
         !! @note
         !! loadmw.F: l 154
         !!
         !! imt=102, km=19, jsmw=2, jmw=jmt --- jemw=jmw-1  
         !!
         !! declared: rho(imt,km,jsmw:jmw) calculated rho(1:102,2:102)
         !! rho
         !! @endnote
     
         !! @note
         !! KB check depth dependent reference density
         !! @endnote
     
         integer i,j,k
            ! local loop counters
         real(rke), parameter :: rho0=1.035
            ! reference density

         if (model%variable_needs_values(id_density)) then
c do j=1,jmt
            do j=jsmw,jmw ! must be 2:102
               do k=1,km
                  do i=2,imt-1
                     if (kmt(i,j) > 0) then
                        rho_fabm(i,k,j) = 1000._rke*(rho0+rho(i,k,j))
                     end if
                  end do
               end do
            end do
         end if
#if 0
         print*, rho_fabm(53,:,53)
         stop 'kurt'
#endif
      end subroutine update_density