Changeset 3900
- Timestamp:
- Aug 20, 2025, 11:51:29 AM (2 days ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
r3899 r3900 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_mod 2 3 IMPLICIT NONE 4 5 integer,save :: iflag_pbl ! PBL scheme number 6 C$OMP THREADPRIVATE(iflag_pbl) 7 8 CONTAINS 4 9 c 5 10 c … … 20 25 cAA REM: 21 26 cAA----- 22 cAA Tout ce qui a trait au traceurs est dans phytrac maintenant 23 cAA pour l'instant le calcul de la couche limite pour les traceurs 24 cAA se fait avec cltrac et ne tient pas compte de la differentiation 25 cAA des sous-fraction de sol. 27 cAA Tracers are not handled here but in phytrac. 26 28 cAA REM bis : 27 29 cAA---------- 28 cAA Pour pouvoir extraire les coefficient d'echanges et le vent 29 cAA dans la premiere couche, 3 champs supplementaires ont ete crees 30 cAA zcoefh,zu1 et zv1. Pour l'instant nous avons moyenne les valeurs 31 cAA de ces trois champs sur les 4 subsurfaces du modele. Dans l'avenir 32 cAA si les informations des subsurfaces doivent etre prises en compte 33 cAA il faudra sortir ces memes champs en leur ajoutant une dimension, 34 cAA c'est a dire nbsrf (nbre de subsurface). 35 ! USE ioipsl 36 ! USE interface_surf 30 cAA To extract exchange coefficients and wind in the first layer 31 cAA 3 dedicated fields have been added: zcoefh,zu1 et zv1. 37 32 use dimphy, only: klon, klev 38 33 use mod_grid_phy_lmdz, only: nbp_lev … … 40 35 use turb_mod, only :yustar 41 36 use soil_mod, only: nsoilmx 42 use clesphys_mod 43 use YOMCST_mod 37 use clesphys_mod, only: soil_model, ok_kzmin 38 use YOMCST_mod, only: RD, RG 39 use print_control_mod, only: lunout, prt_level 44 40 45 41 #ifdef CPP_XIOS … … 49 45 IMPLICIT none 50 46 c====================================================================== 51 c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818 52 c Objet: interface de "couche limite" (diffusion verticale) 53 c Arguments: 54 c dtime----input-R- interval du temps (secondes) 55 c itap-----input-I- numero du pas de temps 56 c t--------input-R- temperature (K) 57 c u--------input-R- vitesse u 58 c v--------input-R- vitesse v 59 c ts-------input-R- temperature du sol (en Kelvin) 60 c paprs----input-R- pression a intercouche (Pa) 61 c pplay----input-R- pression au milieu de couche (Pa) 62 c radsol---input-R- flux radiatif net (positif vers le sol) en W/m**2 63 c rlat-----input-R- latitude en degree 64 c dx-----input-R- resolution des mailles en x (m) 65 c dy-----input-R- resolution des mailles en y (m) 66 c 67 c q2-----inoutput-R- $q^2$ TKE at inter-layers 68 c 69 c d_t------output-R- le changement pour "t" 70 c d_u------output-R- le changement pour "u" 71 c d_v------output-R- le changement pour "v" 72 c d_ts-----output-R- le changement pour "ts" 73 c flux_t---output-R- flux de chaleur sensible (CpT) J/m**2/s (W/m**2) 74 c (orientation positive vers le bas) 75 c flux_u---output-R- tension du vent X: (kg m/s)/(m**2 s) ou Pascal 76 c flux_v---output-R- tension du vent Y: (kg m/s)/(m**2 s) ou Pascal 77 c dflux_t derive du flux sensible 78 cAA on rajoute en output yu1 et yv1 qui sont les vents dans 79 cAA la premiere couche 80 c====================================================================== 81 include "iniprint.h" 82 include "compbl.h" 83 c 84 c Parametres d'entree 85 REAL, INTENT(IN) :: dtime 86 INTEGER, INTENT(IN) :: itap 87 REAL, INTENT(IN) :: t(klon,klev) 88 REAL, INTENT(IN) :: u(klon,klev), v(klon,klev) 89 REAL, INTENT(IN) :: paprs(klon,klev+1), pplay(klon,klev) 90 ! ADAPTATION GCM POUR CP(T) 47 c Interface for the "boundary layer" (vertical diffusion) 48 c====================================================================== 49 50 c 51 c Input arguments: 52 REAL, INTENT(IN) :: dtime ! physics time step (s) 53 INTEGER, INTENT(IN) :: itap ! physics time step counter 54 REAL, INTENT(IN) :: t(klon,klev) ! atmospheric temperature (K) 55 REAL, INTENT(IN) :: u(klon,klev) ! zonal wind (m/s) 56 REAL, INTENT(IN) :: v(klon,klev) ! meridional wind (m/s) 57 REAL, INTENT(IN) :: paprs(klon,klev+1) ! pressure at layer boundaries (Pa) 58 REAL, INTENT(IN) :: pplay(klon,klev) ! pressure at mid-layer (Pa) 59 ! ADAPTATION GCM FOR CP(T) 91 60 REAL, INTENT(IN) :: ppk(klon,klev) 92 REAL, INTENT(IN) :: rlon(klon), rlat(klon), dx(klon), dy(klon) 61 REAL, INTENT(IN) :: rlon(klon) ! longitudes (deg) 62 REAL, INTENT(IN) :: rlat(klon) ! latitudes (deg) 63 REAL, INTENT(IN) :: dx(klon) ! mesh size along x (m) 64 REAL, INTENT(IN) :: dy(klon) ! mesh size along y (m) 93 65 REAL, INTENT(IN) :: rmu0(klon) ! cosine of solar zenith angle 94 LOGICAL, INTENT(IN) :: debut, lafin 95 REAL, INTENT(IN) :: ts(klon) 66 LOGICAL, INTENT(IN) :: debut ! .true. if first call to physics 67 LOGICAL, INTENT(IN) :: lafin ! .true. if last call to physics 68 REAL, INTENT(IN) :: ts(klon) ! surface temperature (K) 96 69 REAL, INTENT(IN) :: sollw(klon), solsw(klon), sollwdown(klon) 97 70 98 c Param�tres IN/OUT71 c IN/OUT arguments: 99 72 REAL, INTENT(INOUT) :: fder(klon) 100 REAL, INTENT(INOUT) :: flux_u(klon,klev), flux_v(klon,klev) 101 REAL, INTENT(INOUT) :: radsol(klon) 102 REAL, INTENT(INOUT) :: q2(klon,klev+1) 103 104 c Parametres de sorties 105 REAL, INTENT(OUT) :: d_t(klon, klev) 106 REAL, INTENT(OUT) :: d_u(klon, klev), d_v(klon, klev) 107 REAL, INTENT(OUT) :: flux_t(klon,klev) 108 REAL, INTENT(OUT) :: dflux_t(klon) 109 REAL, INTENT(OUT) :: cdragh(klon), cdragm(klon) 110 REAL, INTENT(OUT) :: d_ts(klon) 111 REAL, INTENT(OUT) :: albe(klon) 73 REAL, INTENT(INOUT) :: flux_u(klon,klev) ! zonal wind stress (kg m/s)/(m**2 s) or Pa 74 REAL, INTENT(INOUT) :: flux_v(klon,klev) ! meridional wind stress (kg m/s)/(m**2 s) or Pa 75 REAL, INTENT(INOUT) :: radsol(klon) ! net radiative flux (positive towards ground) W/m**2 76 REAL, INTENT(INOUT) :: q2(klon,klev+1) ! $q^2$ TKE at inter-layers 77 78 c output arguments 79 REAL, INTENT(OUT) :: d_t(klon, klev) ! temperature increment (K) 80 REAL, INTENT(OUT) :: d_u(klon, klev) ! zonal wind increment (m/s) 81 REAL, INTENT(OUT) :: d_v(klon, klev) ! meridional wind increment (m/s) 82 REAL, INTENT(OUT) :: flux_t(klon,klev) ! latent heat flux (CpT) J/m**2/s (W/m**2) 83 ! (positive when downwards) 84 REAL, INTENT(OUT) :: dflux_t(klon) ! derivative of sensible heat flux 85 REAL, INTENT(OUT) :: cdragh(klon) 86 REAL, INTENT(OUT) :: cdragm(klon) 87 REAL, INTENT(OUT) :: d_ts(klon) ! surface temperature increment (K) 88 REAL, INTENT(INOUT) :: albe(klon) ! albedo of the surface 112 89 cAA 113 90 REAL, INTENT(OUT) :: zcoefh(klon,klev) 114 REAL, INTENT(OUT) :: zu1(klon) 115 REAL, INTENT(OUT) :: zv1(klon) 91 REAL, INTENT(OUT) :: zu1(klon) ! zonal wind in 1st layer (m/s) 92 REAL, INTENT(OUT) :: zv1(klon) ! meridional wind in 1st layer (m/s) 116 93 cAA 117 c$$$ PB ajout pour soil 118 REAL, INTENT(INOUT) :: ftsoil(klon,nsoilmx) 119 120 c====================================================================== 121 EXTERNAL clqh, clvent, coefkz 122 c====================================================================== 123 c Parametre locaux 94 REAL, INTENT(INOUT) :: ftsoil(klon,nsoilmx) ! subsurface temperatures (K) 95 96 c====================================================================== 97 c Local variables 124 98 REAL ytsoil(klon,nsoilmx) 125 99 REAL yts(klon) … … 149 123 real y_cd_m(klon),y_cd_h(klon) 150 124 c 151 c include "YOMCST.h"152 125 REAL u1lay(klon), v1lay(klon) 153 126 REAL delp(klon,klev) … … 155 128 INTEGER ni(klon), knon, j 156 129 c====================================================================== 157 REAL zx_alf1, zx_alf2 !valeur ambiante par extrapola. 158 c====================================================================== 159 c 160 LOGICAL zxli ! utiliser un jeu de fonctions simples 161 PARAMETER (zxli=.FALSE.) 130 REAL zx_alf1, zx_alf2 ! ambient values used for extrapolation 131 c====================================================================== 132 c 133 LOGICAL,PARAMETER :: zxli=.FALSE. ! use simple functions testcase 162 134 c 163 135 REAL zt, zdelta, zcor 164 136 C 165 137 character (len = 20) :: modname = 'clmain' 166 LOGICAL check 167 PARAMETER (check=.false.) 138 LOGICAL,PARAMETER :: check=.false. 168 139 C 169 140 if (check) THEN 170 write(*,*) modname,' klon=',klon 171 call flush(6) 141 write(*,*) trim(modname),' klon=',klon 172 142 endif 173 143 174 DO k = 1, klev ! epaisseur de couche144 DO k = 1, klev ! thickness of atmospheric layers 175 145 DO i = 1, klon 176 146 delp(i,k) = paprs(i,k)-paprs(i,k+1) 177 147 ENDDO 178 148 ENDDO 179 DO i = 1, klon ! vent de la premiere couche149 DO i = 1, klon ! wind in the first layer 180 150 ccc zx_alf1 = (paprs(i,1)-pplay(i,2))/(pplay(i,1)-pplay(i,2)) 181 151 zx_alf1 = 1.0 … … 233 203 ENDDO 234 204 c 235 c chercher les indices:205 c identify indexes: 236 206 DO j = 1, klon 237 207 ni(j) = j … … 255 225 END DO 256 226 C 257 c$$$ PB ajour poursoil227 c$$$ for the soil 258 228 DO k = 1, nsoilmx 259 229 DO j = 1, knon … … 276 246 c 277 247 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 278 c c alculer Cdrag et les coefficients d'echange248 c compute Cdrag and exchange coefficients 279 249 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 280 250 281 251 c------------------------------------------------- 282 c Calcul anciens du LMD.283 c dans lesroutines coefkz, coefkz2, coefkzmin252 c Old LMD computations. 253 c in routines coefkz, coefkz2, coefkzmin 284 254 c------------------------------------------------- 285 255 … … 300 270 cIM: 261103 301 271 if (ok_kzmin) THEN 302 ! ADAPTATION GCM POUR CP(T)303 print*," coefkzmin: ADAPTATION NON FAITE..."272 ! ADAPTATION GCM FOR CP(T) 273 print*," coefkzmin: NOT ADAPTATED..." 304 274 cIM cf FH: 201103 BEG 305 275 306 c C alcul d'une diffusion minimale pour les conditions tres stables.276 c Compute minimal diffusion for very stable conditions. 307 277 c call coefkzmin(knon,ypaprs,ypplay,yu,yv,yt,ycoefm 308 278 c . ,ycoefm0,ycoefh0) … … 327 297 IF (iflag_pbl.ge.3) then 328 298 c------------------------------------------------- 329 c MELLOR ET YAMADA adapte a Mars Richard Fournier etFrederic Hourdin299 c MELLOR ET YAMADA adapted to Mars Richard Fournier and Frederic Hourdin 330 300 c------------------------------------------------- 331 301 … … 339 309 enddo 340 310 341 ! ADAPTATION GCM POUR CP(T)311 ! ADAPTATION GCM FOR CP(T) 342 312 call t2tpot(knon*nbp_lev,yt,yteta,ppk) 343 313 … … 349 319 350 320 351 c Bug introduit volontairement pour converger avec les resultats352 c du papier sur les thermiques.353 if (1.eq.1) then354 321 y_cd_m(1:knon) = ycoefm(1:knon,1) 355 322 y_cd_h(1:knon) = ycoefh(1:knon,1) 356 else357 y_cd_h(1:knon) = ycoefm(1:knon,1)358 y_cd_m(1:knon) = ycoefh(1:knon,1)359 endif360 323 361 324 call ustarhb(knon,yu,yv,y_cd_m, yustar) … … 365 328 ENDIF 366 329 367 c iflag_pbl peut etre utilise comme longueur de melange330 c iflag_pbl can be used as mixing length 368 331 369 332 if (iflag_pbl.ge.11) then … … 391 354 392 355 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 393 c c alculer la diffusion des vitesses "u" et "v"356 c compute diffusion for winds "u" et "v" 394 357 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 395 358 … … 399 362 s y_d_v,y_flux_v) 400 363 401 c pour le couplage364 c for the coupling 402 365 ytaux = y_flux_u(:,1) 403 366 ytauy = y_flux_v(:,1) 404 367 405 c FH modif sur le cdrag temperature406 c$$$PB : d�place dans clcdrag407 c$$$ do i=1,knon408 c$$$ ycoefh(i,1)=ycoefm(i,1)*0.8409 c$$$ enddo410 368 411 369 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 412 c c alculer la diffusion de "q" et de"h"370 c compute diffusion for "q" and "h" 413 371 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 414 ! ADAPTATION GCM POUR CP(T)372 ! ADAPTATION GCM FOR CP(T) 415 373 CALL clqh(dtime, itap, debut,lafin, 416 374 e rlon, rlat, dx, dy, … … 430 388 d_ts(i) = y_d_ts(j) 431 389 c---------------------------------------- 432 c VENUS TEST: tendanc e sur Tsurf forcee= 0390 c VENUS TEST: tendancy on Tsurf forced = 0 433 391 c d_ts(i) = 0. 434 392 c---------------------------------------- … … 441 399 END DO 442 400 443 c $$$ PB ajout pour soil401 c for the subsurface 444 402 DO k = 1, nsoilmx 445 403 DO j = 1, knon … … 462 420 ENDDO 463 421 464 END 422 END SUBROUTINE clmain 465 423 466 424 C================================================================= … … 487 445 use mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, nbp_lev 488 446 use cpdet_phy_mod, only: t2tpot,tpot2t,cpdet 489 use YOMCST_mod 447 use YOMCST_mod, only: RD, RG, RKAPPA, RMD 490 448 491 449 IMPLICIT none 492 450 c====================================================================== 493 c Auteur(s): Z.X. Li (LMD/CNRS) date: 19930818 494 c Objet: diffusion verticale de "h" 495 c====================================================================== 496 c include "YOMCST.h" 497 include "iniprint.h" 451 c Compute vertical diffusion for "h" 452 c====================================================================== 498 453 499 454 c Arguments: … … 554 509 REAL zdelz 555 510 c====================================================================== 556 include "compbl.h"557 c======================================================================558 511 c Rajout pour l'interface 559 512 real zlev1(klon) … … 569 522 570 523 character (len = 20) :: modname = 'Debut clqh' 571 LOGICAL check572 PARAMETER (check=.false.) 524 LOGICAL,PARAMETER :: check=.false. 525 573 526 C 574 527 c---------------------- … … 790 743 c 791 744 792 END 745 END SUBROUTINE clqh 793 746 794 747 c====================================================================== … … 804 757 805 758 use dimphy, only: klon, klev 806 use YOMCST_mod 759 use YOMCST_mod, only: RD, RG 807 760 808 761 IMPLICIT none … … 828 781 c flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s) 829 782 c====================================================================== 830 c include "iniprint.h"831 783 832 784 c Parametres d'entree … … 925 877 ENDDO 926 878 c 927 END 879 END SUBROUTINE clvent 928 880 929 881 c====================================================================== … … 940 892 use dimphy, only: klon, klev 941 893 use cpdet_phy_mod, only: cpdet,t2tpot 942 use clesphys_mod 894 use clesphys_mod, only: ksta, lmixmin 943 895 #ifdef CPP_XIOS 944 896 use xios_output_mod, only: send_xios_field 945 897 #endif 946 use YOMCST_mod 898 use YOMCST_mod, only: R, RD, RG, RKAPPA 899 use print_control_mod, only: lunout, prt_level 947 900 IMPLICIT none 948 901 c====================================================================== … … 964 917 c pcfh-----output-R- coefficients a calculer (chaleur et humidite) 965 918 c====================================================================== 966 c include "YOMCST.h" 967 include "iniprint.h" 968 include "compbl.h" 969 c include "clesphys.h" 919 970 920 c 971 921 c Arguments: … … 1044 994 c 1045 995 LOGICAL, SAVE :: appel1er = .TRUE. 996 C$OMP THREADPRIVATE(appel1er) 1046 997 c 1047 998 c Fonctions thermodynamiques et fonctions d'instabilite … … 1259 1210 c#endif 1260 1211 1261 END 1212 END SUBROUTINE coefkz 1262 1213 1263 1214 C================================================================= … … 1272 1223 use mod_grid_phy_lmdz, only: nbp_lev 1273 1224 use cpdet_phy_mod, only: cpdet 1274 use YOMCST_mod 1225 use YOMCST_mod, only: RD 1275 1226 IMPLICIT none 1276 1227 c====================================================================== … … 1288 1239 c pcfh-----output-R- coefficients a calculer (chaleur et humidite) 1289 1240 c====================================================================== 1290 c include "YOMCST.h"1291 include "iniprint.h"1292 1241 c 1293 1242 c Arguments: … … 1336 1285 ENDDO 1337 1286 c 1338 END 1339 1287 END SUBROUTINE coefkz2 1288 1289 END MODULE clmain_mod -
trunk/LMDZ.VENUS/libf/phyvenus/clmain_ideal.F
r3898 r3900 31 31 use dimphy, only: klon, klev 32 32 use soil_mod, only: nsoilmx 33 use clmain_mod, only: clvent 33 34 34 35 IMPLICIT none -
trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90
r3884 r3900 13 13 use age_of_air_mod, only: ok_aoa, reinit_aoa, lev_aoa 14 14 use clesphys_mod 15 use clmain_mod, only: iflag_pbl 15 16 use YOMCST_mod 16 17 17 18 implicit none 18 19 !include "YOMCST.h"20 !include "clesphys.h"21 include "compbl.h"22 19 23 20 ! ok_journe: sorties journalieres -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r3898 r3900 87 87 use soil_mod, only: nsoilmx 88 88 use hgardfou_mod, only: hgardfou 89 use clmain_mod, only: clmain 89 90 use clmain_ideal_mod, only: clmain_ideal 90 91 use clesphys_mod
Note: See TracChangeset
for help on using the changeset viewer.