Changeset 888 for LMDZ4/trunk/libf/phylmd/surf_land_mod.F90
- Timestamp:
- Feb 4, 2008, 5:24:28 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/surf_land_mod.F90
r793 r888 20 20 SUBROUTINE surf_land(itime, dtime, date0, jour, knon, knindex, & 21 21 rlon, rlat, & 22 debut, lafin, zlev, epot_air, ccanopy, sollwdown, swnet, swdown, &22 debut, lafin, zlev, ccanopy, swnet, lwnet, albedo, & 23 23 tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, spechum, & 24 24 petAcoef, peqAcoef, petBcoef, peqBcoef, & 25 ps, u1_lay, v1_lay, rugoro, pctsrf, & 26 radsol, snow, qsurf, qsol, agesno, & 27 tsoil, z0_new, alblw, evap, fluxsens, fluxlat, & 28 tsurf_new, alb_new, dflux_s, dflux_l, pctsrf_ter) 25 pref, u1_lay, v1_lay, rugoro, pctsrf, & 26 snow, qsol, agesno, tsoil, & 27 z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, & 28 qsurf, tsurf_new, dflux_s, dflux_l, pctsrf_ter, & 29 lwdown_m) 29 30 30 31 INCLUDE "indicesol.h" 31 32 INCLUDE "dimsoil.h" 33 INCLUDE "YOMCST.h" 32 34 33 35 ! Input variables … … 39 41 LOGICAL, INTENT(IN) :: debut, lafin 40 42 REAL, INTENT(IN) :: dtime 41 REAL, DIMENSION(klon), INTENT(IN) :: zlev, epot_air, ccanopy 42 REAL, DIMENSION(klon), INTENT(IN) :: sollwdown, swnet, swdown 43 REAL, DIMENSION(klon), INTENT(IN) :: zlev, ccanopy 44 REAL, DIMENSION(klon), INTENT(IN) :: swnet, lwnet 45 REAL, DIMENSION(klon), INTENT(IN) :: albedo ! albedo for whole short-wave interval 43 46 REAL, DIMENSION(klon), INTENT(IN) :: tsurf 44 47 REAL, DIMENSION(klon), INTENT(IN) :: p1lay … … 48 51 REAL, DIMENSION(klon), INTENT(IN) :: petAcoef, peqAcoef 49 52 REAL, DIMENSION(klon), INTENT(IN) :: petBcoef, peqBcoef 50 REAL, DIMENSION(klon), INTENT(IN) :: p s53 REAL, DIMENSION(klon), INTENT(IN) :: pref ! pressure reference 51 54 REAL, DIMENSION(klon), INTENT(IN) :: u1_lay, v1_lay 52 55 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 53 56 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 54 57 58 REAL, DIMENSION(klon), INTENT(IN) :: lwdown_m ! downwelling longwave radiation at mean surface 59 ! corresponds to previous sollwdown 60 55 61 ! In/Output variables 56 62 !**************************************************************************************** 57 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol58 63 REAL, DIMENSION(klon), INTENT(INOUT) :: snow, qsol 59 64 REAL, DIMENSION(klon), INTENT(INOUT) :: agesno … … 62 67 ! Output variables 63 68 !**************************************************************************************** 69 REAL, DIMENSION(klon), INTENT(OUT) :: z0_new 70 REAL, DIMENSION(klon), INTENT(OUT) :: alb1_new ! albdeo for shortwave interval 1(visible) 71 REAL, DIMENSION(klon), INTENT(OUT) :: alb2_new ! albedo for shortwave interval 2(near infrared) 72 REAL, DIMENSION(klon), INTENT(OUT) :: evap 73 REAL, DIMENSION(klon), INTENT(OUT) :: fluxsens, fluxlat 64 74 REAL, DIMENSION(klon), INTENT(OUT) :: qsurf 65 REAL, DIMENSION(klon), INTENT(OUT) :: z0_new 66 REAL, DIMENSION(klon), INTENT(OUT) :: alblw 67 REAL, DIMENSION(klon), INTENT(OUT) :: evap, fluxsens, fluxlat 68 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new, alb_new 75 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new 69 76 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 70 77 REAL, DIMENSION(klon), INTENT(OUT) :: pctsrf_ter … … 72 79 ! Local variables 73 80 !**************************************************************************************** 74 REAL, DIMENSION(klon) :: ps_tmp, p1lay_tmp 81 REAL, DIMENSION(klon) :: p1lay_tmp 82 REAL, DIMENSION(klon) :: pref_tmp 83 REAL, DIMENSION(klon) :: swdown ! downwelling shortwave radiation at land surface 84 REAL, DIMENSION(klon) :: lwdown ! downwelling longwave radiation at land surface 85 REAL, DIMENSION(klon) :: epot_air ! potential air temperature 75 86 REAL, DIMENSION(klon) :: tsol_rad, emis_new ! output from interfsol not used 76 87 INTEGER :: i … … 83 94 IF (ok_veget) THEN 84 95 !**************************************************************************************** 85 ! Call model sechiba 96 ! Call model sechiba in model ORCHIDEE 86 97 ! 87 98 !**************************************************************************************** 88 99 p1lay_tmp(:) = 0.0 89 p s_tmp(:)= 0.0100 pref_tmp(:) = 0.0 90 101 p1lay_tmp(1:knon) = p1lay(1:knon)/100. 91 ps_tmp(1:knon) = ps(1:knon)/100. 102 pref_tmp(1:knon) = pref(1:knon)/100. 103 ! 104 !* Calculate incoming flux for SW and LW interval: swdown, lwdown 105 ! 106 swdown(:) = 0.0 107 lwdown(:) = 0.0 108 DO i = 1, knon 109 swdown(i) = swnet(i)/(1-albedo(i)) 110 lwdown(i) = lwnet(i) + RSIGMA*tsurf(i)**4 111 END DO 112 ! 113 !* Calculate potential air temperature 114 ! 115 epot_air(:) = 0.0 116 DO i = 1, knon 117 epot_air(i) = RCPD*temp_air(i)*(pref(i)/p1lay(i))**RKAPPA 118 END DO 92 119 93 120 #ifdef CPP_VEGET 121 ! temporary for keeping same results using lwdown_m instead of lwdown 94 122 CALL surf_land_orchidee(itime, dtime, date0, knon, & 95 123 knindex, rlon, rlat, pctsrf, & … … 97 125 zlev, u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, & 98 126 tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, & 99 precip_rain, precip_snow, sollwdown, swnet, swdown, &100 p s_tmp, &127 precip_rain, precip_snow, lwdown_m, swnet, swdown, & 128 pref_tmp, & 101 129 evap, fluxsens, fluxlat, & 102 tsol_rad, tsurf_new, alb _new, alblw, &130 tsol_rad, tsurf_new, alb1_new, alb2_new, & 103 131 emis_new, z0_new, qsurf) 104 132 #endif 105 133 106 134 ! 107 !* A jout de la contribution du relief135 !* Add contribution of relief to surface roughness 108 136 ! 109 137 DO i=1,knon … … 118 146 CALL surf_land_bucket(itime, jour, knon, knindex, debut, dtime,& 119 147 tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, & 120 spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, p s, &121 u1_lay, v1_lay, rugoro, &122 radsol,snow, qsol, agesno, tsoil, &123 qsurf, z0_new, alb lw, evap, fluxsens, fluxlat, &124 tsurf_new, alb_new, dflux_s, dflux_l)148 spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, pref, & 149 u1_lay, v1_lay, rugoro, swnet, lwnet, & 150 snow, qsol, agesno, tsoil, & 151 qsurf, z0_new, alb1_new, alb2_new, evap, & 152 fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l) 125 153 126 154 ENDIF ! ok_veget
Note: See TracChangeset
for help on using the changeset viewer.