Changeset 3898 for trunk/LMDZ.VENUS/libf/phyvenus/clmain_ideal.F
- Timestamp:
- Aug 19, 2025, 10:22:45 AM (9 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/clmain_ideal.F
r3884 r3898 1 ! 2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/clmain.F,v 1.3 2005/02/07 16:41:35 fairhead Exp $ 3 ! 1 MODULE clmain_ideal_mod 2 3 IMPLICIT NONE 4 5 CONTAINS 4 6 c 5 7 c … … 19 21 20 22 c--------------------------------------------------------------- 21 c POUR VENUS 22 c 23 c Routine pour une Couche Limite ultra-simple: 24 c - Rayleigh friction dans la couche la plus basse, tau=3Ed=2.6e5s 23 c VENUS 24 c Routine for a very simple idealized Planetary Boundary layer scheme: 25 c - Rayleigh friction in the lowest atmospheric layer, tau=3Ed=2.6e5s 25 26 c - Kedd=0.15 m^2/s 26 27 27 28 c S Lebonnois, 10/11/08 28 29 c--------------------------------------------------------------- 29 USE ioipsl 30 use dimphy 31 use mod_grid_phy_lmdz, only: nbp_lev 30 31 use dimphy, only: klon, klev 32 32 use soil_mod, only: nsoilmx 33 use clesphys_mod 34 use YOMCST_mod 33 35 34 IMPLICIT none 36 35 c====================================================================== 37 c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818 38 c Objet: interface de "couche limite" (diffusion verticale) 39 c Arguments: 40 c dtime----input-R- interval du temps (secondes) 41 c itap-----input-I- numero du pas de temps 42 c t--------input-R- temperature (K) 43 c u--------input-R- vitesse u 44 c v--------input-R- vitesse v 45 c ts-------input-R- temperature du sol (en Kelvin) 46 c paprs----input-R- pression a intercouche (Pa) 47 c pplay----input-R- pression au milieu de couche (Pa) 48 c radsol---input-R- flux radiatif net (positif vers le sol) en W/m**2 49 c rlat-----input-R- latitude en degree 50 c cufi-----input-R- resolution des mailles en x (m) 51 c cvfi-----input-R- resolution des mailles en y (m) 52 c 53 c d_t------output-R- le changement pour "t" 54 c d_u------output-R- le changement pour "u" 55 c d_v------output-R- le changement pour "v" 56 c d_ts-----output-R- le changement pour "ts" 57 c flux_t---output-R- flux de chaleur sensible (CpT) J/m**2/s (W/m**2) 58 c (orientation positive vers le bas) 59 c flux_u---output-R- tension du vent X: (kg m/s)/(m**2 s) ou Pascal 60 c flux_v---output-R- tension du vent Y: (kg m/s)/(m**2 s) ou Pascal 61 c dflux_t derive du flux sensible 62 cAA on rajoute en output yu1 et yv1 qui sont les vents dans 63 cAA la premiere couche 64 c====================================================================== 65 #include "iniprint.h" 66 #include "compbl.h" 67 c 68 REAL dtime 69 integer itap 70 REAL t(klon,klev) 71 REAL u(klon,klev), v(klon,klev) 72 REAL paprs(klon,klev+1), pplay(klon,klev), radsol(klon) 73 ! ADAPTATION GCM POUR CP(T) 74 real ppk(klon,klev) 75 REAL rlon(klon), rlat(klon), cufi(klon), cvfi(klon) 76 REAL d_t(klon, klev) 77 REAL d_u(klon, klev), d_v(klon, klev) 78 REAL flux_t(klon,klev) 79 REAL dflux_t(klon) 80 81 REAL flux_u(klon,klev), flux_v(klon,klev) 82 REAL cdragh(klon), cdragm(klon) 83 real rmu0(klon) ! cosinus de l'angle solaire zenithal 84 LOGICAL debut, lafin 85 c 86 REAL ts(klon) 87 REAL d_ts(klon) 88 REAL albe(klon) 36 c 37 REAL,INTENT(IN) :: dtime ! physics time step (s) 38 integer,intent(in) :: itap ! physics time step counter 39 REAL,INTENT(IN) :: t(klon,klev) ! atmospheric temperature (K) 40 REAL,INTENT(IN) :: u(klon,klev) ! zonal wind (m/s) 41 REAL,INTENT(IN) :: v(klon,klev) ! meridional wind (m/s) 42 REAL,INTENT(IN) :: paprs(klon,klev+1) ! pressure at layer boundaries (Pa) 43 REAL,INTENT(IN) :: pplay(klon,klev) ! pressure at mid-layer (Pa) 44 REAL,INTENT(IN) :: radsol(klon) ! Net radiative flux (positive downwards) in W/m2 45 ! ADAPTATION GCM FOR CP(T) 46 real,intent(in) :: ppk(klon,klev) 47 real,intent(in) :: rlon(klon) ! longitudes (deg) 48 real,intent(in) :: rlat(klon) ! latitudes (deg) 49 real,intent(in) :: cufi(klon) ! mesh resolution (m) 50 real,intent(in) :: cvfi(klon) ! mesh resolution (m) 51 REAL,INTENT(OUT) :: d_t(klon, klev) ! temperature increment (K) 52 REAL,INTENT(OUT) :: d_u(klon, klev) ! zonal wind increment (m/s) 53 REAL,INTENT(OUT) :: d_v(klon, klev) ! meridional wind increment (m/s) 54 REAL,INTENT(OUT) :: flux_t(klon,klev) ! latent heat flux (CpT) J/m**2/s (W/m**2) 55 ! (positive when downwards) 56 REAL,INTENT(OUT) :: dflux_t(klon) ! derivative of sensible heat flux 57 58 REAL,INTENT(OUT) :: flux_u(klon,klev) ! zonal wind stress (kg m/s)/(m**2 s) or Pa 59 REAL,INTENT(OUT) :: flux_v(klon,klev) ! meridional wind stress (kg m/s)/(m**2 s) or Pa 60 REAL,INTENT(OUT) :: cdragh(klon) 61 REAL,INTENt(OUT) :: cdragm(klon) 62 real,intent(in) :: rmu0(klon) ! cosine of solar zenithal angle 63 LOGICAL,INTENT(IN) :: debut ! .true. if first call to physics 64 LOGICAL,INTENT(IN) :: lafin ! .true. if last call to physics 65 c 66 REAL,INTENT(IN) :: ts(klon) ! surface temperature (K) 67 REAL,INTENT(OUT) :: d_ts(klon) ! surface temperature increment (K) 68 REAL,INTENT(INOUT) :: albe(klon) ! albedo of the surface 89 69 C 90 REAL fder(klon)91 REAL sollw(klon), solsw(klon), sollwdown(klon)70 REAL,INTENT(IN) :: fder(klon) 71 REAL,INTENT(IN) :: sollw(klon), solsw(klon), sollwdown(klon) 92 72 cAA 93 REAL zcoefh(klon,klev)94 REAL zu1(klon)95 REAL zv1(klon)73 REAL,INTENT(OUT) :: zcoefh(klon,klev) 74 REAL,INTENT(OUT) :: zu1(klon) ! zonal wind in 1st layer (m/s) 75 REAL,INTENT(OUT) :: zv1(klon) ! meridional wind in 1st layer (m/s) 96 76 cAA 97 77 c$$$ PB ajout pour soil 98 REAL ftsoil(klon,nsoilmx) 78 REAL,INTENT(INOUT) :: ftsoil(klon,nsoilmx) ! subsurface temperatures (K) 79 99 80 REAL ytsoil(klon,nsoilmx) 100 c======================================================================101 EXTERNAL clqh, clvent, coefkz102 81 c====================================================================== 103 82 REAL yts(klon) … … 127 106 real yustar(klon),y_cd_m(klon),y_cd_h(klon) 128 107 c 129 c#include "YOMCST.h"130 108 REAL u1lay(klon), v1lay(klon) 131 109 REAL delp(klon,klev) … … 134 112 135 113 c====================================================================== 136 REAL zx_alf1, zx_alf2 ! valeur ambiante par extrapola.114 REAL zx_alf1, zx_alf2 ! ambient values used for extrapolation 137 115 c====================================================================== 138 c139 LOGICAL zxli ! utiliser un jeu de fonctions simples140 PARAMETER (zxli=.FALSE.)141 116 c 142 117 REAL zt, zdelta, zcor … … 148 123 c========================================================= 149 124 150 DO k = 1, klev ! epaisseur de couche125 DO k = 1, klev ! thickness of atmospheric layers 151 126 DO i = 1, klon 152 127 delp(i,k) = paprs(i,k)-paprs(i,k+1) 153 128 ENDDO 154 129 ENDDO 155 DO i = 1, klon ! vent de la premiere couche130 DO i = 1, klon ! wind in the first layer 156 131 ccc zx_alf1 = (paprs(i,1)-pplay(i,2))/(pplay(i,1)-pplay(i,2)) 157 132 zx_alf1 = 1.0 … … 212 187 ENDDO 213 188 c 214 c chercher les indices:189 c identify indexes: 215 190 DO j = 1, klon 216 191 ni(j) = j … … 255 230 c 256 231 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 257 c RAYLEIGH FRICTION (implicit scheme) dans 1ere couche258 c Ref: th�se deC. Lee Oxford 2006232 c RAYLEIGH FRICTION (implicit scheme) in the first layer 233 c Ref: PhD of C. Lee Oxford 2006 259 234 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 260 235 … … 266 241 267 242 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 268 c Coefficient de diffusion verticale243 c Coefficient for vertical diffusion 269 244 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 270 245 … … 272 247 273 248 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 274 c c alculer la diffusion des vitesses "u" et"v"249 c compute diffusion for winds "u" and "v" 275 250 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 276 251 … … 280 255 s y_d_v,y_flux_v) 281 256 282 c pour le couplage257 c for the coupling 283 258 ytaux = y_flux_u(:,1) 284 259 ytauy = y_flux_v(:,1) 285 260 286 261 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 287 c pas de diffusion de "q" et de"h"262 c no diffusion for "q" and "h" 288 263 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 289 264 … … 291 266 292 267 c========================= 293 c FIN: tendances268 c END: compute tendencies 294 269 c========================= 295 270 … … 336 311 c print*,"y_d_t apres clqh=",y_d_t(klon/2,:) 337 312 338 RETURN339 END 340 313 END SUBROUTINE clmain_ideal 314 315 END MODULE clmain_ideal_mod
Note: See TracChangeset
for help on using the changeset viewer.