diff --git a/extern/flexout b/extern/flexout index 274133ea..f129ad21 160000 --- a/extern/flexout +++ b/extern/flexout @@ -1 +1 @@ -Subproject commit 274133ea7c52a8e4a67fbe4f0791b6ad98cc4a79 +Subproject commit f129ad2181576624ae929331388d0a69bc574f7f diff --git a/extern/stim b/extern/stim index 990f67d2..a8d2346f 160000 --- a/extern/stim +++ b/extern/stim @@ -1 +1 @@ -Subproject commit 990f67d244af98094d6a76ad8956df8bc5cfbd90 +Subproject commit a8d2346f08b61012d4ba015eb5a9d3d1a86305df diff --git a/src/airsea/airsea.F90 b/src/airsea/airsea.F90 index 1468b148..34b0e832 100644 --- a/src/airsea/airsea.F90 +++ b/src/airsea/airsea.F90 @@ -49,6 +49,7 @@ module airsea_driver public :: set_sst public :: set_ssuv public :: surface_fluxes + public :: surface_fluxes_uvic !jpnote added public :: integrated_fluxes #ifdef _PRINTSTATE_ public :: print_state_airsea @@ -735,6 +736,41 @@ subroutine post_init_airsea(lat,lon) end subroutine post_init_airsea !EOC +!----------------------------------------------------------------------- +!BOP + !jpnote added + subroutine surface_fluxes_uvic(surface_temp,sensible,latent,longwave_radiation_value) + ! + ! !USES: + IMPLICIT NONE + ! + ! !INPUT PARAMETERS: + REALTYPE, intent(in) :: surface_temp + ! !OUTPUT PARAMETERS: + REALTYPE, intent(out) :: sensible,latent,longwave_radiation_value + ! + ! LOCAL VARIABLES: + REALTYPE :: tw,tw_k,ta_k + !EOP + !----------------------------------------------------------------------- + !BOC + + tw = surface_temp-KELVIN + tw_k= surface_temp + ta_k = airt%value + KELVIN + + ! call humidity(hum_method,rh,airp,TTss-kelvin,airt) + call humidity(hum_method,hum%value,airp%value,tw,airt%value) + ! call longwave_radiation(longwave_radiation_method, & + ! lat,TTss,airt+kelvin,cloud,qb) + call longwave_radiation(ql%method, & + dlat,tw_k,ta_k,cloud%value,longwave_radiation_value) + !call airsea_fluxes(fluxes_method, & + !TTss-kelvin,airt,u10,v10,precip,evap,tx,ty,qe,qh) + call airsea_fluxes(fluxes_method, & + tw,airt%value,u10%value,v10%value,precip%value,evap,tx_%value,ty_%value,latent,sensible) + + end subroutine surface_fluxes_uvic !----------------------------------------------------------------------- !BOP subroutine surface_fluxes(surface_temp,sensible,latent,longwave_radiation) diff --git a/src/gotm/gotm.F90 b/src/gotm/gotm.F90 index 9ae42abc..d3542a7e 100644 --- a/src/gotm/gotm.F90 +++ b/src/gotm/gotm.F90 @@ -49,7 +49,7 @@ module gotm use time use airsea_driver, only: init_airsea,post_init_airsea,do_airsea,clean_airsea - use airsea_driver, only: surface_fluxes + use airsea_driver, only: surface_fluxes, surface_fluxes_uvic !jpnote use airsea_driver, only: set_sst,set_ssuv,integrated_fluxes use airsea_driver, only: fluxes_method use airsea_driver, only: wind=>w,tx,ty,hum,I_0,cloud,heat,precip,evap,airp,albedo @@ -776,12 +776,15 @@ subroutine integrate_gotm() #ifdef _ICE_ Qsw = I_0%value - + !jpnote call do_ice(h(nlev),dt,T(nlev),S(nlev),ta,precip%value,Qsw, & - surface_fluxes,julianday,secondsofday,longitude, & - latitude,I_0%value,airt%value,airp%value,hum%value, & - u10%value,v10%value,cloud%value,rho(nlev),rho_0,ql%method, & - hum_method,fluxes_method,albedo,heat%value) + surface_fluxes,surface_fluxes_uvic,julianday,secondsofday, & + I_0%value,airt%value,rho(nlev),rho_0,albedo,heat%value) + ! call do_ice(h(nlev),dt,T(nlev),S(nlev),ta,precip%value,Qsw, & + ! surface_fluxes,surface_fluxes_uvic,julianday,secondsofday,longitude, & + ! latitude,I_0%value,airt%value,airp%value,hum%value, & + ! u10%value,v10%value,cloud%value,rho(nlev),rho_0,ql%method, & + ! hum_method,fluxes_method,albedo,heat%value) #endif