/[lmdze]/trunk/dyn3d/dynredem1.f
ViewVC logotype

Contents of /trunk/dyn3d/dynredem1.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (show annotations)
Thu Mar 25 14:29:07 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/dynredem1.f90
File size: 2114 byte(s)
"dyn3d" and "filtrez" do not contain any included file so make rules
have been updated.

"comdissip.f90" was useless, removed it.

"dynredem0" wrote undefined value in "controle(31)", that was
overwritten by "dynredem1". Now "dynredem0" just writes 0 to
"controle(31)".

Removed arguments of "inidissip". "inidissip" now accesses the
variables by use association.

In program "etat0_lim", "itaufin" is not defined so "dynredem1" wrote
undefined value to "controle(31)". Added argument "itau" of
"dynredem1" to correct that.

"itaufin" does not need to be a module variable (of "temps"), made it
a local variable of "leapfrog".

Removed calls to "diagedyn" from "leapfrog".

1 module dynredem1_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE dynredem1(fichnom, vcov, ucov, teta, q, masse, ps, itau)
8
9 ! From dyn3d/dynredem.F, v 1.2 2004/06/22 11:45:30
10 ! Ecriture du fichier de redémarrage au format NetCDF
11
12 USE dimens_m, ONLY : iim, jjm, llm, nqmx
13 USE iniadvtrac_m, ONLY : tname
14 use netcdf, only: nf90_write
15 use netcdf95, only: nf95_close, nf95_inq_varid, nf95_open, nf95_put_var
16
17 CHARACTER(len=*), INTENT (IN) :: fichnom
18 REAL, INTENT (IN) :: vcov(iim + 1, jjm, llm), ucov(iim+1, jjm+1, llm)
19 REAL, INTENT (IN) :: teta(iim+1, jjm+1, llm)
20 REAL, INTENT (IN) :: q(iim+1, jjm+1, llm, nqmx)
21 REAL, INTENT (IN) :: ps(iim+1, jjm+1), masse(iim+1, jjm+1, llm)
22 INTEGER, INTENT (IN) :: itau
23
24 ! Variables local to the procedure:
25 INTEGER nid, nvarid
26 INTEGER iq
27 INTEGER:: nb = 0
28
29 !---------------------------------------------------------
30
31 PRINT *, 'Call sequence information: dynredem1'
32
33 call nf95_open(fichnom, nf90_write, nid)
34
35 ! Écriture/extension de la coordonnée temps
36 nb = nb + 1
37 call nf95_inq_varid(nid, 'temps', nvarid)
38 call nf95_put_var(nid, nvarid, values=0., start=(/nb/))
39 PRINT *, "Enregistrement pour nb = ", nb
40
41 ! Récriture du tableau de contrôle, "itaufin" n'est pas défini quand
42 ! on passe dans "dynredem0"
43 call nf95_inq_varid(nid, 'controle', nvarid)
44 call nf95_put_var(nid, nvarid, real(itau), start=(/31/))
45
46 ! Écriture des champs
47
48 call nf95_inq_varid(nid, 'ucov', nvarid)
49 call nf95_put_var(nid, nvarid, ucov)
50
51 call nf95_inq_varid(nid, 'vcov', nvarid)
52 call nf95_put_var(nid, nvarid, vcov)
53
54 call nf95_inq_varid(nid, 'teta', nvarid)
55 call nf95_put_var(nid, nvarid, teta)
56
57 DO iq = 1, nqmx
58 call nf95_inq_varid(nid, tname(iq), nvarid)
59 call nf95_put_var(nid, nvarid, q(:, :, :, iq))
60 END DO
61
62 call nf95_inq_varid(nid, 'masse', nvarid)
63 call nf95_put_var(nid, nvarid, masse)
64
65 call nf95_inq_varid(nid, 'ps', nvarid)
66 call nf95_put_var(nid, nvarid, ps)
67
68 call nf95_close(nid)
69
70 END SUBROUTINE dynredem1
71
72 end module dynredem1_m

  ViewVC Help
Powered by ViewVC 1.1.21