Commit 55eeece3 authored by kbk's avatar kbk
Browse files

spin-up of internal pressure gradients

parent 56b1152a
!$Id: m3d.F90,v 1.34 2006-12-15 10:25:42 kbk Exp $ !$Id: m3d.F90,v 1.35 2007-02-23 12:37:58 kbk Exp $
#include "cppdefs.h" #include "cppdefs.h"
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
!BOP !BOP
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
logical :: bdy3d=.false. logical :: bdy3d=.false.
integer :: bdyfmt_3d,bdyramp_3d integer :: bdyfmt_3d,bdyramp_3d
character(len=PATH_MAX) :: bdyfile_3d character(len=PATH_MAX) :: bdyfile_3d
REALTYPE :: ip_fac=_ONE_
integer :: vel_check=0 integer :: vel_check=0
REALTYPE :: min_vel=-4.,max_vel=4. REALTYPE :: min_vel=-4.,max_vel=4.
! !
...@@ -68,6 +69,7 @@ ...@@ -68,6 +69,7 @@
#ifdef NO_BAROCLINIC #ifdef NO_BAROCLINIC
integer :: ip_method integer :: ip_method
#endif #endif
integer :: ip_ramp=-1
!EOP !EOP
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
...@@ -118,7 +120,7 @@ ...@@ -118,7 +120,7 @@
bdy3d,bdyfmt_3d,bdyramp_3d,bdyfile_3d, & bdy3d,bdyfmt_3d,bdyramp_3d,bdyfile_3d, &
vel_hor_adv,vel_ver_adv,vel_adv_split, & vel_hor_adv,vel_ver_adv,vel_adv_split, &
calc_temp,calc_salt, & calc_temp,calc_salt, &
avmback,avhback,ip_method, & avmback,avhback,ip_method,ip_ramp, &
vel_check,min_vel,max_vel vel_check,min_vel,max_vel
! !
!EOP !EOP
...@@ -214,6 +216,8 @@ ...@@ -214,6 +216,8 @@
case default case default
end select end select
LEVEL2 'ip_ramp=',ip_ramp
LEVEL2 'vel_check=',vel_check LEVEL2 'vel_check=',vel_check
if (vel_check .ne. 0) then if (vel_check .ne. 0) then
LEVEL3 'doing sanity checks on velocities' LEVEL3 'doing sanity checks on velocities'
...@@ -268,7 +272,7 @@ ...@@ -268,7 +272,7 @@
#ifdef GETM_BIO #ifdef GETM_BIO
!KBK if(bio_calc) call init_getm_bio() !KBK if(bio_calc) call init_getm_bio()
call init_getm_bio() call init_getm_bio('bio.nml')
#endif #endif
if (bdy3d) call init_bdy_3d() if (bdy3d) call init_bdy_3d()
...@@ -398,6 +402,8 @@ ...@@ -398,6 +402,8 @@
#endif #endif
huo=hun huo=hun
hvo=hvn hvo=hvn
ip_fac=_ONE_
if (ip_ramp .gt. 0) ip_fac=min( _ONE_ ,n/float(ip_ramp))
if (ufirst) then if (ufirst) then
call uu_momentum_3d(n,bdy3d) call uu_momentum_3d(n,bdy3d)
call vv_momentum_3d(n,bdy3d) call vv_momentum_3d(n,bdy3d)
......
!$Id: uu_momentum_3d.F90,v 1.13 2006-12-15 10:25:42 kbk Exp $ !$Id: uu_momentum_3d.F90,v 1.14 2007-02-23 12:37:58 kbk Exp $
#include "cppdefs.h" #include "cppdefs.h"
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
!BOP !BOP
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
#endif #endif
use halo_zones, only: update_3d_halo,wait_halo,U_TAG use halo_zones, only: update_3d_halo,wait_halo,U_TAG
use meteo, only: tausx,airp use meteo, only: tausx,airp
use m3d, only: ip_fac
use m3d, only: vel_check,min_vel,max_vel use m3d, only: vel_check,min_vel,max_vel
IMPLICIT NONE IMPLICIT NONE
! !
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
#ifdef NO_BAROCLINIC #ifdef NO_BAROCLINIC
ex(k)=dry_u(i,j)*(ex(k)-uuEx(i,j,k)) ex(k)=dry_u(i,j)*(ex(k)-uuEx(i,j,k))
#else #else
ex(k)=dry_u(i,j)*(ex(k)-uuEx(i,j,k)+idpdx(i,j,k)) ex(k)=dry_u(i,j)*(ex(k)-uuEx(i,j,k)+ip_fac*idpdx(i,j,k))
#endif #endif
end do end do
ex(kmax)=ex(kmax) & ex(kmax)=ex(kmax) &
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment