Changeset 704 for LMDZ4/branches/V3_test/libf/phylmd/thermcell.F
- Timestamp:
- Aug 17, 2006, 5:41:51 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/V3_test/libf/phylmd/thermcell.F
r542 r704 6 6 c s ,pu_therm,pv_therm 7 7 s ,r_aspect,l_mix,w2di,tho) 8 8 USE dimphy 9 9 IMPLICIT NONE 10 10 … … 14 14 c de "thermiques" explicitement representes 15 15 c 16 c R éécriture à partir d'un listing papier àHabas, le 14/02/0017 c 18 c le thermique est suppos é homogène et dissipé par mélange avec19 c son environnement. la longueur l_mix contr ôle l'efficacitédu20 c m élange21 c 22 c Le calcul du transport des diff érentes espèces se fait en prenant16 c R�criture �partir d'un listing papier �Habas, le 14/02/00 17 c 18 c le thermique est suppos�homog�e et dissip�par m�ange avec 19 c son environnement. la longueur l_mix contr�e l'efficacit�du 20 c m�ange 21 c 22 c Le calcul du transport des diff�entes esp�es se fait en prenant 23 23 c en compte: 24 24 c 1. un flux de masse montant … … 33 33 c ------------- 34 34 35 #include "dimensions.h"36 #include "dimphy.h"35 cym#include "dimensions.h" 36 cym#include "dimphy.h" 37 37 #include "YOMCST.h" 38 38 … … 52 52 save idetr 53 53 data idetr/3/ 54 54 c$OMP THREADPRIVATE(idetr) 55 55 c local: 56 56 c ------ … … 85 85 real fracc(klon,klev+1) 86 86 real zf,zf2 87 real thetath2(klon,klev),wth2(klon,klev) 88 common/comtherm/thetath2,wth2 87 real,allocatable,save :: thetath2(:,:),wth2(:,:) 88 c$OMP THREADPRIVATE(thetath2,wth2) 89 cym common/comtherm/thetath2,wth2 89 90 90 91 real count_time … … 93 94 data isplit/0/ 94 95 save isplit 95 96 c$OMP THREADPRIVATE(isplit) 96 97 logical sorties 97 98 real rho(klon,klev),rhobarz(klon,klev+1),masse(klon,klev) … … 120 121 data first /.false./ 121 122 save first 123 c$OMP THREADPRIVATE(first) 122 124 cRC 123 125 … … 132 134 save ncorrec 133 135 data ncorrec/0/ 134 136 c$OMP THREADPRIVATE(ncorrec) 137 logical,save :: firstCall=.true. 138 c$OMP THREADPRIVATE(firstCall) 135 139 c 136 140 c----------------------------------------------------------------------- … … 138 142 c --------------- 139 143 c 144 if (firstcall) then 145 allocate(thetath2(klon,klev),wth2(klon,klev)) 146 thetath2(:,:)=0. 147 wth2(:,:)=0. 148 firstcall=.false. 149 endif 150 140 151 sorties=.true. 141 152 IF(ngrid.NE.klon) THEN … … 501 512 c calcul de la largeur de chaque ascendance dans le cas conservatif. 502 513 c dans ce cas simple, on suppose que la largeur de l'ascendance provenant 503 c d'une couche est égale àla hauteur de la couche alimentante.514 c d'une couche est �ale �la hauteur de la couche alimentante. 504 515 c La vitesse maximale dans l'ascendance est aussi prise comme estimation 505 516 c de la vitesse d'entrainement horizontal dans la couche alimentante. … … 540 551 c print*,'10 OK convect8' 541 552 c print*,'WA2 ',wa_moy 542 c calcul de la fraction de la maille concern éepar l'ascendance en tenant553 c calcul de la fraction de la maille concern� par l'ascendance en tenant 543 554 c compte de l'epluchage du thermique. 544 555 c … … 979 990 subroutine dqthermcell(ngrid,nlay,ptimestep,fm,entr,masse 980 991 . ,q,dq,qa) 992 use dimphy 981 993 implicit none 982 994 … … 989 1001 c======================================================================= 990 1002 991 #include "dimensions.h"992 #include "dimphy.h"1003 cym#include "dimensions.h" 1004 cym#include "dimphy.h" 993 1005 994 1006 integer ngrid,nlay … … 1053 1065 . ,fraca,larga 1054 1066 . ,u,v,du,dv,ua,va) 1067 use dimphy 1055 1068 implicit none 1056 1069 … … 1063 1076 c======================================================================= 1064 1077 1065 #include "dimensions.h"1066 #include "dimphy.h"1078 cym#include "dimensions.h" 1079 cym#include "dimphy.h" 1067 1080 1068 1081 integer ngrid,nlay … … 1106 1119 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1107 1120 s 1.e-5*masse(ig,k)) then 1108 c On it ère sur la valeur du coeff de freinage.1121 c On it�e sur la valeur du coeff de freinage. 1109 1122 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1110 1123 gamma0=masse(ig,k) … … 1112 1125 s *0.5/larga(ig) 1113 1126 c gamma0=0. 1114 c la premi ère fois on multiplie le coefficient de freinage1127 c la premi�e fois on multiplie le coefficient de freinage 1115 1128 c par le module du vent dans la couche en dessous. 1116 1129 dua=ua(ig,k-1)-u(ig,k-1) … … 1166 1179 subroutine dqthermcell2(ngrid,nlay,ptimestep,fm,entr,masse,frac 1167 1180 . ,q,dq,qa) 1181 use dimphy 1168 1182 implicit none 1169 1183 … … 1176 1190 c======================================================================= 1177 1191 1178 #include "dimensions.h"1179 #include "dimphy.h"1192 cym#include "dimensions.h" 1193 cym#include "dimphy.h" 1180 1194 1181 1195 integer ngrid,nlay … … 1246 1260 . ,fraca,larga 1247 1261 . ,u,v,du,dv,ua,va) 1262 use dimphy 1248 1263 implicit none 1249 1264 … … 1256 1271 c======================================================================= 1257 1272 1258 #include "dimensions.h"1259 #include "dimphy.h"1273 cym#include "dimensions.h" 1274 cym#include "dimphy.h" 1260 1275 1261 1276 integer ngrid,nlay … … 1302 1317 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1303 1318 s 1.e-5*masse(ig,k)) then 1304 c On it ère sur la valeur du coeff de freinage.1319 c On it�e sur la valeur du coeff de freinage. 1305 1320 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1306 1321 gamma0=masse(ig,k) … … 1313 1328 zf=0. 1314 1329 zf2=1./(1.-zf) 1315 c la premi ère fois on multiplie le coefficient de freinage1330 c la premi�e fois on multiplie le coefficient de freinage 1316 1331 c par le module du vent dans la couche en dessous. 1317 1332 dua=ua(ig,k-1)-u(ig,k-1)
Note: See TracChangeset
for help on using the changeset viewer.