Changeset 78 for LMDZ.3.3/trunk
- Timestamp:
- Apr 17, 2000, 4:23:44 PM (25 years ago)
- Location:
- LMDZ.3.3/trunk/libf/dyn3d
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/trunk/libf/dyn3d/gcm.F
r57 r78 22 22 c 23 23 c======================================================================= 24 25 c ... Dans inigeom , nouveaux calculs pour les elongations cu , cv 26 c et possibilite d'appeler une fonction f(y) a derivee tangente 27 c hyperbolique a la place de la fonction a derivee sinusoidale. 28 29 c ... Possibilite de choisir le shema de Van-leer pour l'advection de 30 c q , en faisant iadv = 3 dans traceur (29/04/97) . 24 c 25 c ... Dans inigeom , nouveaux calculs pour les elongations cu , cv 26 c et possibilite d'appeler une fonction f(y) a derivee tangente 27 c hyperbolique a la place de la fonction a derivee sinusoidale. 28 29 c ... Possibilite de choisir le shema de Van-leer pour l'advection de 30 c q , en faisant iadv = 3 dans traceur (29/04/97) . 31 c 32 c Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99) 31 33 c 32 34 c----------------------------------------------------------------------- … … 159 161 c iadv = 2 shema amont 160 162 c iadv = 3 shema Van-leer 163 c iadv = 4 schema Van-leer + humidite specifique 164 c Modif F.Codron 161 165 c 162 166 c dans le tableau q(ij,l,iq) , iq = 1 pour l'eau vapeur … … 170 174 ENDDO 171 175 c 172 DO iq = 1, nqmx 176 IF( iadv(1).EQ.1 ) PRINT *,' Choix du shema humidite specifique' 177 * ,' pour la vapeur d''eau' 178 IF( iadv(1).EQ.2 ) PRINT *,' Choix du shema amont',' pour la' 179 * ,' vapeur d''eau ' 180 IF( iadv(1).EQ.3 ) PRINT *,' Choix du shema Van-Leer ',' pour' 181 * ,'la vapeur d''eau' 182 IF( iadv(1).EQ.4 ) PRINT *,' Choix du shema Van-Leer + humidite' 183 * ,' specifique pour la vapeur d''eau' 184 c 185 IF( iadv(1).LE.0.OR.iadv(1).GT.4 ) THEN 186 PRINT *,' Erreur dans le choix de iadv (1).Corriger et repasser 187 * , car iadv(1) = ', iadv(1) 188 CALL ABORT 189 ENDIF 190 191 DO iq = 2, nqmx 173 192 IF( iadv(iq).EQ.1 ) PRINT *,' Choix du shema humidite specifique' 174 193 * ,' pour le traceur no ', iq … … 177 196 IF( iadv(iq).EQ.3 ) PRINT *,' Choix du shema Van-Leer ',' pour' 178 197 * ,'le traceur no ', iq 179 IF( iadv(iq).LE.0.OR.iadv(iq).GT.3 ) THEN 198 199 IF( iadv(iq).EQ.4 ) THEN 200 PRINT *,' Le shema Van-Leer + humidite specifique ', 201 * ' est uniquement pour la vapeur d eau .' 202 PRINT *,' Corriger iadv( ',iq, ') et repasser ! ' 203 CALL ABORT 204 ENDIF 205 206 IF( iadv(iq).LE.0.OR.iadv(iq).GT.4 ) THEN 180 207 PRINT *,' Erreur dans le choix de iadv . Corriger et repasser 181 208 * . ' 182 STOP209 CALL ABORT 183 210 ENDIF 184 211 ENDDO … … 187 214 numvanle = nqmx + 1 188 215 DO iq = 1, nqmx 189 IF( iadv(iq).EQ.3.AND.first ) THEN216 IF((iadv(iq).EQ.3.OR.iadv(iq).EQ.4).AND.first ) THEN 190 217 numvanle = iq 191 218 first = .FALSE. … … 194 221 c 195 222 DO iq = 1, nqmx 196 IF( iadv(iq).NE.3.AND.iq.GT.numvanle )THEN223 IF( (iadv(iq).NE.3.AND.iadv(iq).NE.4).AND.iq.GT.numvanle ) THEN 197 224 PRINT *,' Il y a discontinuite dans le choix du shema de ', 198 225 * 'Van-leer pour les traceurs . Corriger et repasser . ' 199 STOP200 201 IF( iadv(iq).LT.1.OR.iadv(iq).GT. 3) THEN226 CALL ABORT 227 ENDIF 228 IF( iadv(iq).LT.1.OR.iadv(iq).GT.4 ) THEN 202 229 PRINT *,' Le choix de iadv est errone pour le traceur ', 203 230 * iq … … 377 404 c 378 405 CALL vanleer(numvanle,iapp_tracvl,nqmx,q,pbaru,pbarv, 379 * p, masse, dq ) 406 * p, masse, dq, iadv(1), teta, pk ) 407 c 408 c ... Modif F.Codron .... 380 409 c 381 410 ENDIF -
LMDZ.3.3/trunk/libf/dyn3d/tracvl.F
r2 r78 1 1 SUBROUTINE tracvl(numvanle,iapp_tracvl,nq,pbaru,pbarv , 2 * p, masse , q, iapptrac)2 * p, masse , q, iapptrac, iadv1, teta, pk ) 3 3 c 4 4 c Auteur : F. Hourdin … … 6 6 c 7 7 ccc .. Modif. P. Le Van ( 20/12/97 ) ... 8 c F. Codron (10/99) 9 8 10 c 9 11 IMPLICIT NONE … … 15 17 #include "comgeom.h" 16 18 17 INTEGER nq,iapp_tracvl 19 c .... Arguments .... 20 c 21 INTEGER numvanle, nq, iapp_tracvl, iapptrac, iadv1 18 22 19 23 REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm) 20 24 REAL q(ip1jmp1,llm,nq),masse(ip1jmp1,llm) 21 REAL p( ip1jmp1,llmp1 ) 25 REAL p( ip1jmp1,llmp1 ),teta(ip1jmp1,llm) 26 REAL pk(ip1jmp1,llm) 22 27 28 c .... var. locales ..... 29 c 23 30 REAL pbaruc(ip1jmp1,llm),pbarvc(ip1jm,llm) 24 31 REAL massem(ip1jmp1,llm),zdp(ip1jmp1) … … 26 33 REAL pbarug(ip1jmp1,llm),pbarvg(ip1jm,llm),wg(ip1jmp1,llm) 27 34 28 INTEGER iapptrac29 35 30 INTEGER iadvtr, numvan le36 INTEGER iadvtr, numvan 31 37 INTEGER ij,l,iq 32 38 REAL zdpmin, zdpmax 33 39 EXTERNAL minmax 34 35 SAVE iadvtr, massem,pbaruc,pbarvc 40 SAVE iadvtr, massem, pbaruc, pbarvc, numvan 36 41 DATA iadvtr/0/ 42 43 numvan = numvanle 37 44 38 45 IF(iadvtr.EQ.0) THEN … … 99 106 100 107 c Advection proprement dite. 101 DO iq = numvanle, nq 108 c 109 c test sur iadv1 pour le schema de vapeur d'eau 110 c 111 IF (numvanle.EQ.1.AND.iadv1.EQ.4) THEN 112 CALL vlspltqs( q(1,1,1), 2., massem, wg , 113 * pbarug,pbarvg,dtvr,p,pk,teta ) 114 numvan = 2 115 ENDIF 116 117 DO iq = numvan, nq 102 118 CALL vlsplt( q(1,1,iq), 2. ,massem,wg,pbarug,pbarvg,dtvr ) 103 119 ENDDO -
LMDZ.3.3/trunk/libf/dyn3d/vanleer.F
r2 r78 1 1 SUBROUTINE vanleer(numvanle,iapp_tracvl,nq,q,pbaru,pbarv , 2 * p ,masse, dq)2 * p ,masse, dq , iadv1, teta, pk ) 3 3 c 4 4 IMPLICIT NONE 5 5 c 6 c Auteurs: F.Hourdin , P.Le Van, F.Forget 6 c Auteurs: F.Hourdin , P.Le Van, F.Forget, F.Codron 7 c 8 c F.Codron (10/99) : ajout humidite specifique pour eau vapeur 7 9 c======================================================================= 8 10 c … … 18 20 c Arguments: 19 21 c ---------- 20 INTEGER nq, numvanle,iapp_tracvl22 INTEGER nq, numvanle, iapp_tracvl, iadv1 21 23 REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm) 22 24 REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nq),dq( ip1jmp1,llm,nq ) 23 25 REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm) 24 26 c .................................................................. 25 27 c … … 28 30 c numvanle est le numero du premier traceur qui appelle le 29 31 c shema de Van-Leer ( 1<= numvanle <= nqmx ) . 32 c si numvanle=1, iadv1=3 si Van-Leer seul, iadv1=4 si 33 c Van-Leer+humidite specifique. 30 34 c .................................................................. 31 35 c … … 61 65 62 66 CALL tracvl( numvanle,iapp_tracvl,nq,pbaru,pbarv,p , masse,q , 63 * iapptrac)67 * iapptrac, iadv1, teta ,pk ) 64 68 65 69 IF( numvanle.EQ.1 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.