13 |
USE conf_gcm_m, ONLY : iapp_tracvl |
USE conf_gcm_m, ONLY : iapp_tracvl |
14 |
USE dimens_m, ONLY : iim, jjm, llm, nqmx |
USE dimens_m, ONLY : iim, jjm, llm, nqmx |
15 |
USE iniadvtrac_m, ONLY : iadv |
USE iniadvtrac_m, ONLY : iadv |
16 |
|
use interpre_m, only: interpre |
17 |
|
use massbar_m, only: massbar |
18 |
USE paramet_m, ONLY : iip1, iip2, ijmllm, ijp1llm, ip1jm, ip1jmp1, jjp1, & |
USE paramet_m, ONLY : iip1, iip2, ijmllm, ijp1llm, ip1jm, ip1jmp1, jjp1, & |
19 |
llmp1 |
llmp1 |
20 |
|
use vlspltqs_m, only: vlspltqs |
21 |
|
|
22 |
REAL, intent(in):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) |
REAL, intent(in):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) |
23 |
REAL, intent(in):: p(ip1jmp1, llmp1) |
REAL, intent(in):: p(ip1jmp1, llmp1) |
34 |
REAL, save:: massem(ip1jmp1, llm) |
REAL, save:: massem(ip1jmp1, llm) |
35 |
real zdp(ip1jmp1) |
real zdp(ip1jmp1) |
36 |
REAL pbarug(ip1jmp1, llm), pbarvg(ip1jm, llm), wg(ip1jmp1, llm) |
REAL pbarug(ip1jmp1, llm), pbarvg(ip1jm, llm), wg(ip1jmp1, llm) |
|
REAL cpuadv(nqmx) |
|
37 |
|
|
38 |
INTEGER:: iadvtr = 0 |
INTEGER:: iadvtr = 0 |
39 |
INTEGER ij, l, iq |
INTEGER ij, l, iq |
125 |
! Schema de Frederic Hourdin |
! Schema de Frederic Hourdin |
126 |
ELSE IF (iadv(iq)==12) THEN |
ELSE IF (iadv(iq)==12) THEN |
127 |
! Pas de temps adaptatif |
! Pas de temps adaptatif |
128 |
CALL adaptdt(iadv(iq), dtbon, n, pbarug, massem) |
CALL adaptdt(dtbon, n, pbarug, massem) |
129 |
IF (n>1) THEN |
IF (n>1) THEN |
130 |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
131 |
'n=', n |
'n=', n |
135 |
END DO |
END DO |
136 |
ELSE IF (iadv(iq)==13) THEN |
ELSE IF (iadv(iq)==13) THEN |
137 |
! Pas de temps adaptatif |
! Pas de temps adaptatif |
138 |
CALL adaptdt(iadv(iq), dtbon, n, pbarug, massem) |
CALL adaptdt(dtbon, n, pbarug, massem) |
139 |
IF (n>1) THEN |
IF (n>1) THEN |
140 |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
141 |
'n=', n |
'n=', n |
149 |
! Schema de Prather |
! Schema de Prather |
150 |
ELSE IF (iadv(iq)==30) THEN |
ELSE IF (iadv(iq)==30) THEN |
151 |
! Pas de temps adaptatif |
! Pas de temps adaptatif |
152 |
CALL adaptdt(iadv(iq), dtbon, n, pbarug, massem) |
CALL adaptdt(dtbon, n, pbarug, massem) |
153 |
IF (n>1) THEN |
IF (n>1) THEN |
154 |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
155 |
'n=', n |
'n=', n |
159 |
ELSE IF (iadv(iq)==11 .OR. (iadv(iq)>=16 .AND. iadv(iq)<=18)) THEN |
ELSE IF (iadv(iq)==11 .OR. (iadv(iq)>=16 .AND. iadv(iq)<=18)) THEN |
160 |
! Test sur le flux horizontal |
! Test sur le flux horizontal |
161 |
! Pas de temps adaptatif |
! Pas de temps adaptatif |
162 |
CALL adaptdt(iadv(iq), dtbon, n, pbarug, massem) |
CALL adaptdt(dtbon, n, pbarug, massem) |
163 |
IF (n>1) THEN |
IF (n>1) THEN |
164 |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
WRITE (*, *) 'WARNING horizontal dt=', dtbon, 'dtvr=', dtvr, & |
165 |
'n=', n |
'n=', n |