<p><b>laura@ucar.edu</b> 2011-04-05 12:11:36 -0600 (Tue, 05 Apr 2011)</p><p>updated drivers<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_physics/module_driver_cloudiness.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_cloudiness.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_cloudiness.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -77,7 +77,6 @@
!---------------------------------------------------------------------------------------------
-
!copy all MPAS arrays to rectangular grid:
call cloudiness_from_MPAS(diag_physics)
Modified: branches/atmos_physics/src/core_physics/module_driver_lsm.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_lsm.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_lsm.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -169,26 +169,33 @@
end subroutine deallocate_lsm
!=============================================================================================
- subroutine lsm_from_MPAS(diag_physics,sfc_physics,sfc_input)
+ subroutine lsm_from_MPAS(mesh,diag_physics,sfc_physics,sfc_input)
!=============================================================================================
!input arguments:
+ type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
type(sfc_physics_type) ,intent(inout):: sfc_physics
type(sfc_input_type) ,intent(inout):: sfc_input
+!local variables:
+ logical:: do_fill
+
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
do n = 1,num_soils
- dzs_p(n) = diag_physics % dzs % array(n,1)
+ dzs_p(n) = maxval(sfc_input%dzs%array(n,:))
enddo
do j = jts,jte
do n = 1,num_soils
do i = its,ite
- sh2o_p(i,n,j) = diag_physics % sh2o % array(n,i)
- smcrel_p(i,n,j) = diag_physics % smcrel % array(n,i)
- tslb_p(i,n,j) = diag_physics % tslb % array(n,i)
+ sh2o_p(i,n,j) = sfc_input % sh2o % array(n,i)
+ smcrel_p(i,n,j) = sfc_input % smcrel % array(n,i)
+ smois_p(i,n,j) = sfc_input % smois % array(n,i)
+ tslb_p(i,n,j) = sfc_input % tslb % array(n,i)
enddo
enddo
enddo
@@ -207,6 +214,7 @@
grdflx_p(i,j) = diag_physics % grdflx % array(i)
gsw_p(i,j) = diag_physics % gsw % array(i)
hfx_p(i,j) = diag_physics % hfx % array(i)
+ lai_p(i,j) = diag_physics % lai % array(i)
lh_p(i,j) = diag_physics % lh % array(i)
noahres_p(i,j) = diag_physics % noahres % array(i)
potevp_p(i,j) = diag_physics % potevp % array(i)
@@ -222,11 +230,8 @@
smstot_p(i,j) = diag_physics % smstot % array(i)
snotime_p(i,j) = diag_physics % snotime % array(i)
snopcx_p(i,j) = diag_physics % snopcx % array(i)
- snow_p(i,j) = diag_physics % snow % array(i)
snowh_p(i,j) = diag_physics % snowh % array(i)
sr_p(i,j) = diag_physics % sr % array(i)
- tmn_p(i,j) = diag_physics % tmn % array(i)
- tsk_p(i,j) = diag_physics % tsk % array(i)
udrunoff_p(i,j) = diag_physics % udrunoff % array(i)
z0_p(i,j) = diag_physics % z0 % array(i)
znt_p(i,j) = diag_physics % znt % array(i)
@@ -235,15 +240,17 @@
sfc_emibck_p(i,j) = sfc_physics % sfc_emibck % array(i)
xland_p(i,j) = sfc_physics % xland % array(i)
- lai_p(i,j) = sfc_input % lai % array(i)
- isltyp_p(i,j) = sfc_input % isltyp % array(i)
- ivgtyp_p(i,j) = sfc_input % ivgtyp % array(i)
- shdmin_p(i,j) = sfc_input % shdmin % array(i)
- shdmax_p(i,j) = sfc_input % shdmax % array(i)
- snoalb_p(i,j) = sfc_input % snoalb % array(i)
- snowc_p(i,j) = sfc_input % snowc % array(i)
- vegfra_p(i,j) = sfc_input % vegfra % array(i)
- xice_p(i,j) = sfc_input % xice % array(i)
+ isltyp_p(i,j) = sfc_input % isltyp % array(i)
+ ivgtyp_p(i,j) = sfc_input % ivgtyp % array(i)
+ shdmin_p(i,j) = sfc_input % shdmin % array(i)
+ shdmax_p(i,j) = sfc_input % shdmax % array(i)
+ snoalb_p(i,j) = sfc_input % snoalb % array(i)
+ snow_p(i,j) = sfc_input % snow % array(i)
+ snowc_p(i,j) = sfc_input % snowc % array(i)
+ tmn_p(i,j) = sfc_input % tmn % array(i)
+ tsk_p(i,j) = sfc_input % skintemp % array(i)
+ vegfra_p(i,j) = sfc_input % vegfra % array(i)
+ xice_p(i,j) = sfc_input % xice % array(i)
enddo
enddo
@@ -259,27 +266,30 @@
end subroutine lsm_from_MPAS
!=============================================================================================
- subroutine lsm_to_MPAS(diag_physics,sfc_physics,sfc_input)
+ subroutine lsm_to_MPAS(mesh,diag_physics,sfc_physics,sfc_input)
!=============================================================================================
!input arguments:
+ type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
type(sfc_physics_type) ,intent(inout):: sfc_physics
type(sfc_input_type) ,intent(inout):: sfc_input
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
do j = jts,jte
do n = 1,num_soils
do i = its,ite
- diag_physics % sh2o % array(n,i) = sh2o_p(i,n,j)
- diag_physics % smcrel % array(n,i) = smcrel_p(i,n,j)
- diag_physics % tslb % array(n,i) = tslb_p(i,n,j)
+ sfc_input % sh2o % array(n,i) = sh2o_p(i,n,j)
+ sfc_input % smcrel % array(n,i) = smcrel_p(i,n,j)
+ sfc_input % smois % array(n,i) = smois_p(i,n,j)
+ sfc_input % tslb % array(n,i) = tslb_p(i,n,j)
enddo
enddo
enddo
-
do j = jts,jte
do i = its,ite
diag_physics % acsnom % array(i) = acsnom_p(i,j)
@@ -294,6 +304,7 @@
diag_physics % grdflx % array(i) = grdflx_p(i,j)
diag_physics % gsw % array(i) = gsw_p(i,j)
diag_physics % hfx % array(i) = hfx_p(i,j)
+ diag_physics % lai % array(i) = lai_p(i,j)
diag_physics % lh % array(i) = lh_p(i,j)
diag_physics % noahres % array(i) = noahres_p(i,j)
diag_physics % potevp % array(i) = potevp_p(i,j)
@@ -309,11 +320,8 @@
diag_physics % smstot % array(i) = smstot_p(i,j)
diag_physics % snotime % array(i) = snotime_p(i,j)
diag_physics % snopcx % array(i) = snopcx_p(i,j)
- diag_physics % snow % array(i) = snow_p(i,j)
diag_physics % snowh % array(i) = snowh_p(i,j)
diag_physics % sr % array(i) = sr_p(i,j)
- diag_physics % tmn % array(i) = tmn_p(i,j)
- diag_physics % tsk % array(i) = tsk_p(i,j)
diag_physics % udrunoff % array(i) = udrunoff_p(i,j)
diag_physics % z0 % array(i) = z0_p(i,j)
diag_physics % znt % array(i) = znt_p(i,j)
@@ -323,13 +331,17 @@
sfc_physics % xland % array(i) = xland_p(i,j)
!not needed ?:
- sfc_input % lai % array(i) = lai_p(i,j)
- sfc_input % shdmin % array(i) = shdmin_p(i,j)
- sfc_input % shdmax % array(i) = shdmax_p(i,j)
- sfc_input % snoalb % array(i) = snoalb_p(i,j)
- sfc_input % snowc % array(i) = snowc_p(i,j)
- sfc_input % vegfra % array(i) = vegfra_p(i,j)
- sfc_input % xice % array(i) = xice_p(i,j)
+ sfc_input % isltyp % array(i) = isltyp_p(i,j)
+ sfc_input % ivgtyp % array(i) = ivgtyp_p(i,j)
+ sfc_input % shdmin % array(i) = shdmin_p(i,j)
+ sfc_input % shdmax % array(i) = shdmax_p(i,j)
+ sfc_input % snoalb % array(i) = snoalb_p(i,j)
+ sfc_input % snow % array(i) = snow_p(i,j)
+ sfc_input % snowc % array(i) = snowc_p(i,j)
+ sfc_input % skintemp % array(i) = tsk_p(i,j)
+ sfc_input % tmn % array(i) = tmn_p(i,j)
+ sfc_input % vegfra % array(i) = vegfra_p(i,j)
+ sfc_input % xice % array(i) = xice_p(i,j)
enddo
enddo
@@ -368,11 +380,12 @@
end subroutine init_lsm
!=============================================================================================
- subroutine driver_lsm(itimestep,diag_physics,sfc_physics,sfc_input)
+ subroutine driver_lsm(itimestep,mesh,diag_physics,sfc_physics,sfc_input)
!=============================================================================================
!input arguments:
integer,intent(in):: itimestep
+ type(mesh_type),intent(in):: mesh
!inout arguments:
type(diag_physics_type),intent(inout):: diag_physics
@@ -387,14 +400,12 @@
102 format(3i6,8(1x,e15.8))
!copy all MPAS arrays to rectangular grid:
- call lsm_from_MPAS(diag_physics,sfc_physics,sfc_input)
- write(0,*) '--- end subroutine lsm_from_MPAS:'
+ call lsm_from_MPAS(mesh,diag_physics,sfc_physics,sfc_input)
!call to land-surface scheme:
lsm_select: select case (trim(lsm_scheme))
case("noah")
- write(0,*) '--- enter subroutine lsm:'
call lsm( &
dz8w = dz_p , p8w3d = pres2_p , t3d = t_p , &
qv3d = qv_p , xland = xland_p , xice = xice_p , &
@@ -431,14 +442,13 @@
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
)
- write(0,*) '--- exit subroutine lsm'
case default
end select lsm_select
!copy all arrays back to MPAS geodesic grid:
- call lsm_to_MPAS(diag_physics,sfc_physics,sfc_input)
+ call lsm_to_MPAS(mesh,diag_physics,sfc_physics,sfc_input)
write(0,*) '--- end subroutine lsm_to_MPAS:'
end subroutine driver_lsm
Modified: branches/atmos_physics/src/core_physics/module_driver_microphysics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -15,17 +15,25 @@
implicit none
private
- public:: microphysics_allocate, &
- microphysics_deallocate, &
+ public:: allocate_microphysics, &
+ deallocate_microphysics, &
microphysics_driver , &
microphysics_init
contains
!=============================================================================================
- subroutine microphysics_allocate
+ subroutine allocate_microphysics
!=============================================================================================
+!sounding variables:
+ if(.not.allocated(rho_p) ) allocate(rho_p(ims:ime,kms:kme,jms:jme) )
+ if(.not.allocated(th_p) ) allocate(th_p(ims:ime,kms:kme,jms:jme) )
+ if(.not.allocated(pi_p) ) allocate(pi_p(ims:ime,kms:kme,jms:jme) )
+ if(.not.allocated(pres_p) ) allocate(pres_p(ims:ime,kms:kme,jms:jme) )
+ if(.not.allocated(z_p) ) allocate(z_p(ims:ime,kms:kme,jms:jme) )
+ if(.not.allocated(dz_p) ) allocate(dz_p(ims:ime,kms:kme,jms:jme) )
+
!mass mixing ratios:
if(.not.allocated(qv_p) ) allocate(qv_p(ims:ime,kms:kme,jms:jme) )
if(.not.allocated(qc_p) ) allocate(qc_p(ims:ime,kms:kme,jms:jme) )
@@ -59,12 +67,20 @@
end select microp_select
- end subroutine microphysics_allocate
+ end subroutine allocate_microphysics
!=============================================================================================
- subroutine microphysics_deallocate
+ subroutine deallocate_microphysics
!=============================================================================================
+!sounding variables:
+ if(allocated(rho_p) ) deallocate(rho_p )
+ if(allocated(th_p) ) deallocate(th_p )
+ if(allocated(pi_p) ) deallocate(pi_p )
+ if(allocated(pres_p) ) deallocate(pres_p )
+ if(allocated(z_p) ) deallocate(z_p )
+ if(allocated(dz_p) ) deallocate(dz_p )
+
!mass mixing ratios:
if(allocated(qv_p) ) deallocate(qv_p )
if(allocated(qc_p) ) deallocate(qc_p )
@@ -98,7 +114,7 @@
end select microp_select
- end subroutine microphysics_deallocate
+ end subroutine deallocate_microphysics
!=============================================================================================
subroutine microphysics_init
@@ -157,8 +173,10 @@
write(0,*) ' jts= ',jts,' jte=',jte
write(0,*) ' kts= ',kts,' kte=',kte
+!... allocation of microphysics arrays:
+ call allocate_microphysics
+
!... initialization of precipitation related arrays:
-
call precip_from_MPAS(diag_physics,mesh)
!... initialization of soundings for non-hydrostatic or hydrostatic dynamical cores.
@@ -227,6 +245,9 @@
call microphysics_to_MPAS(state,tend)
#endif
+!... deallocation of all microphysics arrays:
+ call deallocate_microphysics
+
!formats:
201 format(2i6,10(1x,e15.8))
203 format('microphysics begins:',3i6,2(1x,f6.1))
Modified: branches/atmos_physics/src/core_physics/module_driver_pbl.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_pbl.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_pbl.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -86,14 +86,17 @@
end subroutine deallocate_pbl
!=============================================================================================
- subroutine pbl_from_MPAS(diag_physics,sfc_physics,tend_physics)
+ subroutine pbl_from_MPAS(mesh,diag_physics,sfc_physics,tend_physics)
!=============================================================================================
!input arguments:
+ type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
type(sfc_physics_type) ,intent(inout):: sfc_physics
type(tend_physics_type),intent(inout):: tend_physics
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
do j = jts,jte
@@ -133,15 +136,18 @@
end subroutine pbl_from_MPAS
!=============================================================================================
- subroutine pbl_to_MPAS(diag_physics,tend_physics)
+ subroutine pbl_to_MPAS(mesh,diag_physics,tend_physics)
!=============================================================================================
!input arguments:
+ type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
type(tend_physics_type),intent(inout):: tend_physics
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
-
+
do j = jts,jte
do i = its,ite
@@ -158,7 +164,6 @@
diag_physics % v10 % array(i) = v10_p(i,j)
diag_physics % wspd % array(i) = wspd_p(i,j)
diag_physics % znt % array(i) = znt_p(i,j)
-
enddo
do k = kts,kte
@@ -178,27 +183,28 @@
end subroutine pbl_to_MPAS
!=============================================================================================
- subroutine pbl_driver(diag_physics,sfc_physics,tend_physics)
+ subroutine pbl_driver(mesh,diag_physics,sfc_physics,tend_physics)
!=============================================================================================
!input and output arguments:
!---------------------------
+ type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
type(sfc_physics_type) ,intent(inout):: sfc_physics
type(tend_physics_type),intent(inout):: tend_physics
!---------------------------------------------------------------------------------------------
write(0,*)
- write(0,*) '--- enter pbl driver:'
+ write(0,*) '--- enter pbl driver: dt_pbl=',dt_pbl
+ 101 format(i8,12(1x,e15.8))
!copy all MPAS arrays to rectanguler grid arrays:
- call pbl_from_MPAS(diag_physics,sfc_physics,tend_physics)
+ call pbl_from_MPAS(mesh,diag_physics,sfc_physics,tend_physics)
write(0,*) '--- end pbl_from_MPAS:'
pbl_select: select case (trim(pbl_scheme))
case("ysu")
- write(0,*) '--- begin subroutine ysu:'
call ysu ( &
u3d = u_p , v3d = v_p , th3d = th_p , &
t3d = t_p , qv3d = qv_p , qc3d = qc_p , &
@@ -219,14 +225,13 @@
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
)
- write(0,*) '--- begin subroutine ysu:'
case default
end select pbl_select
!copy all arrays back to the MPAS grid:
- call pbl_to_MPAS(diag_physics,tend_physics)
+ call pbl_to_MPAS(mesh,diag_physics,tend_physics)
write(0,*) '--- end pbl_to_MPAS:'
end subroutine pbl_driver
Modified: branches/atmos_physics/src/core_physics/module_driver_radiation_lw.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_radiation_lw.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_radiation_lw.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -217,9 +217,12 @@
end subroutine init_radiation_lw
!=============================================================================================
- subroutine driver_radiation_lw(diag_physics,sfc_physics,sfc_input,tend_physics)
+ subroutine driver_radiation_lw(itimestep,diag_physics,sfc_physics,sfc_input,tend_physics)
!=============================================================================================
+!input arguments:
+ integer,intent(in):: itimestep
+
!inout arguments:
type(diag_physics_type),intent(inout):: diag_physics
type(sfc_physics_type) ,intent(inout):: sfc_physics
@@ -227,11 +230,11 @@
type(tend_physics_type),intent(inout):: tend_physics
!---------------------------------------------------------------------------------------------
- write(0,*) '--- enter subroutine driver_radiation_lw:'
+ write(0,100) itimestep
!formats:
- 101 format(2i6,8(1x,e15.8))
- 102 format(3i6,8(1x,e15.8))
+ 100 format(/,'--- enter subroutine driver_radiation_lw: ',i6)
+ 101 format(i8,12(1x,e15.8))
!copy all MPAS arrays to rectangular grid:
call radiation_lw_from_MPAS(diag_physics,sfc_physics,sfc_input)
Modified: branches/atmos_physics/src/core_physics/module_driver_radiation_sw.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_radiation_sw.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_radiation_sw.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -231,10 +231,12 @@
end subroutine init_radiation_sw
!=============================================================================================
- subroutine driver_radiation_sw(mesh,state,diag_physics,sfc_physics,sfc_input,tend_physics)
+ subroutine driver_radiation_sw(itimestep,mesh,state,diag_physics,sfc_physics,sfc_input, &
+ tend_physics)
!=============================================================================================
!input arguments:
+ integer,intent(in):: itimestep
type(mesh_type),intent(in) :: mesh
type(state_type),intent(in):: state
@@ -250,10 +252,10 @@
real(kind=RKIND),pointer:: xtime
!---------------------------------------------------------------------------------------------
- write(0,*)
- write(0,*) '--- enter subroutine driver_radiation_sw:'
+ write(0,100) itimestep
!formats:
+ 100 format(/,'--- enter subroutine driver_radiation_sw: ',i6)
101 format(2i6,8(1x,e15.8))
102 format(3i6,8(1x,e15.8))
Modified: branches/atmos_physics/src/core_physics/module_driver_sfclayer.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_sfclayer.F        2011-04-05 18:05:26 UTC (rev 775)
+++ branches/atmos_physics/src/core_physics/module_driver_sfclayer.F        2011-04-05 18:11:36 UTC (rev 776)
@@ -117,13 +117,17 @@
end subroutine deallocate_sfclayer
!=============================================================================================
- subroutine sfclayer_from_MPAS(diag_physics,sfc_physics)
+ subroutine sfclayer_from_MPAS(mesh,diag_physics,sfc_input,sfc_physics)
!=============================================================================================
!input arguments:
+ type(mesh_type):: mesh
type(diag_physics_type),intent(inout):: diag_physics
+ type(sfc_input_type),intent(inout) :: sfc_input
type(sfc_physics_type) ,intent(inout):: sfc_physics
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
do j = jts,jte
@@ -155,7 +159,6 @@
regime_p(i,j) = diag_physics % regime % array(i)
rmol_p(i,j) = diag_physics % rmol % array(i)
t2m_p(i,j) = diag_physics % t2m % array(i)
- tsk_p(i,j) = diag_physics % tsk % array(i)
th2m_p(i,j) = diag_physics % th2m % array(i)
u10_p(i,j) = diag_physics % u10 % array(i)
ust_p(i,j) = diag_physics % ust % array(i)
@@ -165,19 +168,24 @@
zol_p(i,j) = diag_physics % zol % array(i)
znt_p(i,j) = diag_physics % znt % array(i)
- xland_p(i,j) = sfc_physics % xland % array(i)
+ tsk_p(i,j) = sfc_input % skintemp % array(i)
+ xland_p(i,j) = sfc_physics % xland % array(i)
enddo
enddo
end subroutine sfclayer_from_MPAS
!=============================================================================================
- subroutine sfclayer_to_MPAS(diag_physics)
+ subroutine sfclayer_to_MPAS(mesh,diag_physics,sfc_input)
!=============================================================================================
!input arguments:
+ type(mesh_type):: mesh
type(diag_physics_type),intent(inout):: diag_physics
+ type(sfc_input_type),intent(inout) :: sfc_input
+ integer:: ip,iEdg
+
!---------------------------------------------------------------------------------------------
do j = jts,jte
@@ -209,7 +217,6 @@
diag_physics % regime % array(i) = regime_p(i,j)
diag_physics % rmol % array(i) = rmol_p(i,j)
diag_physics % t2m % array(i) = t2m_p(i,j)
- diag_physics % tsk % array(i) = tsk_p(i,j)
diag_physics % th2m % array(i) = th2m_p(i,j)
diag_physics % u10 % array(i) = u10_p(i,j)
diag_physics % ust % array(i) = ust_p(i,j)
@@ -219,6 +226,8 @@
diag_physics % zol % array(i) = zol_p(i,j)
diag_physics % znt % array(i) = znt_p(i,j)
+ sfc_input % skintemp % array(i) = tsk_p(i,j)
+
enddo
enddo
@@ -254,7 +263,7 @@
end subroutine init_sfclayer
!=============================================================================================
- subroutine sfclayer_driver(itimestep,mesh,diag_physics,sfc_physics)
+ subroutine sfclayer_driver(itimestep,mesh,diag_physics,sfc_input,sfc_physics)
!=============================================================================================
!input and inout arguments:
@@ -262,6 +271,7 @@
integer,intent(in):: itimestep
type(mesh_type),intent(in):: mesh
type(diag_physics_type),intent(inout):: diag_physics
+ type(sfc_input_type),intent(inout) :: sfc_input
type(sfc_physics_type) ,intent(inout):: sfc_physics
!local variables:
@@ -273,7 +283,7 @@
write(0,*) '--- enter sfclayer_driver:'
!copy all MPAS arrays to rectanguler grid arrays:
- call sfclayer_from_MPAS(diag_physics,sfc_physics)
+ call sfclayer_from_MPAS(mesh,diag_physics,sfc_input,sfc_physics)
write(0,*) '--- end sfclayer_from_MPAS:'
sfclayer_select: select case (trim(sfclayer_scheme))
@@ -282,8 +292,6 @@
!initialization (this could be moved outside of the monin_obukhov surface scheme if an
!other scheme needing the same arrays was used):
dx = sqrt(maxval(mesh % areaCell % array))
-
- write(0,*) '--- begin subroutine sfclay:'
call sfclay( &
u3d = u_p , v3d = v_p , t3d = t_p , &
qv3d = qv_p , p3d = pres_p , dz8w = dz_p , &
@@ -310,14 +318,14 @@
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
)
- write(0,*) '--- end subroutine sfclay:'
-
+
case default
end select sfclayer_select
!copy all arrays back to the MPAS grid:
- call sfclayer_to_MPAS(diag_physics)
+ call sfclayer_to_MPAS(mesh,diag_physics,sfc_input)
+
write(0,*) '--- end sfclayer_to_MPAS:'
end subroutine sfclayer_driver
</font>
</pre>