/[lmdze]/trunk/libf/phylmd/moy_undefSTD.f
ViewVC logotype

Contents of /trunk/libf/phylmd/moy_undefSTD.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7 - (show annotations)
Mon Mar 31 12:24:17 2008 UTC (16 years, 1 month ago) by guez
File size: 2258 byte(s)
This revision is not in working order. Pending some moving of files.

Important changes. In the program "etat0_lim": ozone coefficients from
Mobidic are regridded in time instead of pressure ; consequences in
"etat0". In the program "gcm", ozone coefficients from Mobidic are
read once per day only for the current day and regridded in pressure ;
consequences in "o3_chem_m", "regr_pr_coefoz", "phytrac" and
"regr_pr_comb_coefoz_m".

NetCDF95 is a library and does not export NetCDF.

New variables "nag_gl_options", "nag_fcalls_options" and
"nag_cross_options" in "nag_tools.mk".

"check_coefoz.jnl" rewritten entirely for new version of
"coefoz_LMDZ.nc".

Target "obj_etat0_lim" moved from "GNUmakefile" to "nag_rules.mk".

Added some "intent" attributes in "calfis", "clmain", "clqh",
"cltrac", "cltracrn", "cvltr", "ini_undefSTD", "moy_undefSTD",
"nflxtr", "phystokenc", "phytrac", "readsulfate", "readsulfate_preind"
and "undefSTD".

In "dynetat0", "dynredem0" and "gcm", "phis" has rank 2 instead of
1. "phis" has assumed shape in "dynredem0".

Added module containing "dynredem0". Changed some calls with NetCDF
Fortran 77 interface to calls with NetCDF95 interface.

Replaced calls to "ssum" by calls to "sum" in "inigeom".

In "make.sh", new option "-c" to change compiler.

In "aaam_bud", argument "rjour" deleted.

In "physiq": renamed some variables; deleted variable "xjour".

In "phytrac": renamed some variables; new argument "lmt_pas".

1 SUBROUTINE moy_undefSTD(nlevSTD,itap,
2 $ ecrit_day,ecrit_mth,ecrit_hf2mth,
3 $ tnondef,tsumSTD)
4 use dimens_m
5 use dimphy
6 IMPLICIT none
7 c moyenne d'1 var a 1 niveau de pression
8 c====================================================================
9 c
10 c I. Musat : 09.2004
11 c
12 c Moyenne - a des frequences differentes - des valeurs bien definies
13 c (.NE.1.E+20) des variables interpolees a un niveau de
14 c pression.
15 c 1) les variables de type "day" (nout=1) ou "mth" (nout=2) sont sommees
16 c tous les pas de temps de la physique
17 c
18 c 2) les variables de type "NMC" (nout=3) sont calculees a partir
19 c des valeurs instantannees toutes les 6 heures
20 c
21 c
22 c NB: mettre "inst(X)" dans le write_histXXX.h !
23 c====================================================================
24 integer jjmp1
25 parameter (jjmp1=jjm+1-1/jjm)
26 c
27 c variables Input
28 INTEGER nlevSTD, klevSTD
29 integer, intent(in):: itap
30 PARAMETER(klevSTD=17)
31 INTEGER ecrit_day, ecrit_mth, ecrit_hf2mth
32 c
33 c variables locales
34 INTEGER i, k, nout
35 PARAMETER(nout=3) !nout=1 day/nout=2 mth/nout=3 NMC
36 c
37 c variables Output
38 REAL tnondef(klon,klevSTD,nout)
39 REAL tsumSTD(klon,klevSTD,nout)
40 c
41 c calcul 1 fois par jour
42 c
43 IF(MOD(itap,ecrit_day).EQ.0) THEN
44 DO k=1, nlevSTD
45 DO i=1, klon
46 IF(tnondef(i,k,1).NE.FLOAT(ecrit_day)) THEN
47 tsumSTD(i,k,1)=tsumSTD(i,k,1)/
48 $ (FLOAT(ecrit_day)-tnondef(i,k,1))
49 ELSE
50 tsumSTD(i,k,1)=1.E+20
51 ENDIF !tnondef
52 ENDDO !i
53 ENDDO !k
54 ENDIF !MOD(itap,ecrit_day).EQ.0
55 c
56 c calcul 1 fois par mois
57 c
58 IF(MOD(itap,ecrit_mth).EQ.0) THEN
59 DO k=1, nlevSTD
60 DO i=1, klon
61 IF(tnondef(i,k,2).NE.FLOAT(ecrit_mth)) THEN
62 tsumSTD(i,k,2)=tsumSTD(i,k,2)/
63 $ (FLOAT(ecrit_mth)-tnondef(i,k,2))
64 ELSE
65 tsumSTD(i,k,2)=1.E+20
66 ENDIF !tnondef
67 c
68 IF(tnondef(i,k,3).NE.FLOAT(ecrit_hf2mth)) THEN
69 tsumSTD(i,k,3)=tsumSTD(i,k,3)/
70 $ (FLOAT(ecrit_hf2mth)-tnondef(i,k,3))
71 ELSE
72 tsumSTD(i,k,3)=1.E+20
73 ENDIF !tnondef
74 c
75 ENDDO !i
76 ENDDO !k
77 ENDIF !MOD
78 c
79 RETURN
80 END

  ViewVC Help
Powered by ViewVC 1.1.21