1 |
|
|
|
2 |
|
|
! $Id: ini_undefSTD.F90 4593 2023-06-29 13:55:54Z ymeurdesoif $ |
3 |
|
|
|
4 |
|
|
|
5 |
|
288 |
SUBROUTINE ini_undefstd(itap, itapm1) |
6 |
|
|
USE dimphy |
7 |
|
|
USE phys_state_var_mod ! Variables sauvegardees de la physique |
8 |
|
|
USE phys_cal_mod, ONLY: mth_len |
9 |
|
|
IMPLICIT NONE |
10 |
|
|
include "clesphys.h" |
11 |
|
|
|
12 |
|
|
! ==================================================================== |
13 |
|
|
|
14 |
|
|
! I. Musat : 09.2004 |
15 |
|
|
|
16 |
|
|
! Initialisation - a des frequences differentes : |
17 |
|
|
|
18 |
|
|
! 1) des variables moyennees sur la journee "day" ou sur le mois "mth" |
19 |
|
|
! calculees a partir des valeurs "instantannees" de la physique |
20 |
|
|
|
21 |
|
|
! 2) des variables moyennes mensuelles "NMC" calculees a partir des val. |
22 |
|
|
! toutes les 6 heures |
23 |
|
|
|
24 |
|
|
! nout=1 !var. journaliere "day" moyenne sur tous les pas de temps |
25 |
|
|
! ! de la physique |
26 |
|
|
! nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps |
27 |
|
|
! ! de la physique |
28 |
|
|
! nout=3 !var. mensuelle "NMC" moyennee toutes les 6heures |
29 |
|
|
|
30 |
|
|
! NB: mettre "inst(X)" dans le write_hist*NMC.h ! |
31 |
|
|
! ==================================================================== |
32 |
|
|
|
33 |
|
|
! ym INCLUDE "dimphy.h" |
34 |
|
|
! variables Input/Output |
35 |
|
|
! INTEGER nlevSTD, klevSTD, itap |
36 |
|
|
INTEGER itap, itapm1 |
37 |
|
|
! PARAMETER(klevSTD=17) |
38 |
|
|
! REAL dtime |
39 |
|
|
|
40 |
|
|
! variables locales |
41 |
|
|
! INTEGER i, k, nout, n |
42 |
|
|
INTEGER i, k, n |
43 |
|
|
! PARAMETER(nout=3) !nout=1 day/nout=2 mth/nout=3 NMC |
44 |
|
|
! REAL freq_outNMC(nout) |
45 |
|
|
REAL un_jour |
46 |
|
|
PARAMETER (un_jour=86400.) |
47 |
|
|
|
48 |
|
|
! variables Output |
49 |
|
|
! REAL tnondef(klon,klevSTD,nout) |
50 |
|
|
! REAL tsumSTD(klon,klevSTD,nout) |
51 |
|
|
|
52 |
✓✓ |
1152 |
DO n = 1, nout |
53 |
|
|
|
54 |
|
|
! initialisation variables en debut du mois, de la journee ou des 6h |
55 |
|
|
|
56 |
✓✓✓✓ ✓✓✓✓
|
864 |
IF (n==1 .AND. itap-itapm1==1 .OR. n>1 .AND. mod(itap,nint( & |
57 |
|
288 |
freq_outnmc(n)/phys_tstep))==1) THEN |
58 |
|
|
! print*,'ini_undefSTD n itap',n,itap |
59 |
✓✓ |
504 |
DO k = 1, nlevstd |
60 |
✓✓ |
474484 |
DO i = 1, klon |
61 |
|
473144 |
tnondef(i, k, n) = 0. |
62 |
|
473144 |
tsumstd(i, k, n) = 0. |
63 |
|
473144 |
usumstd(i, k, n) = 0. |
64 |
|
473144 |
vsumstd(i, k, n) = 0. |
65 |
|
473144 |
wsumstd(i, k, n) = 0. |
66 |
|
473144 |
phisumstd(i, k, n) = 0. |
67 |
|
473144 |
qsumstd(i, k, n) = 0. |
68 |
|
473144 |
rhsumstd(i, k, n) = 0. |
69 |
|
473144 |
uvsumstd(i, k, n) = 0. |
70 |
|
473144 |
vqsumstd(i, k, n) = 0. |
71 |
|
473144 |
vtsumstd(i, k, n) = 0. |
72 |
|
473144 |
wqsumstd(i, k, n) = 0. |
73 |
|
473144 |
vphisumstd(i, k, n) = 0. |
74 |
|
473144 |
wtsumstd(i, k, n) = 0. |
75 |
|
473144 |
u2sumstd(i, k, n) = 0. |
76 |
|
473144 |
v2sumstd(i, k, n) = 0. |
77 |
|
473144 |
t2sumstd(i, k, n) = 0. |
78 |
|
473144 |
o3sumstd(i, k, n) = 0. |
79 |
|
473620 |
o3daysumstd(i, k, n) = 0. |
80 |
|
|
END DO !i |
81 |
|
|
END DO !k |
82 |
|
|
END IF ! |
83 |
|
|
END DO !n |
84 |
|
288 |
RETURN |
85 |
|
|
END SUBROUTINE ini_undefstd |