/[lmdze]/trunk/libf/dyn3d/dynredem1.f90
ViewVC logotype

Annotation of /trunk/libf/dyn3d/dynredem1.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20 - (hide annotations)
Wed Oct 15 16:19:57 2008 UTC (15 years, 7 months ago) by guez
File size: 2299 byte(s)
Deleted argument "presnivs" of "physiq", "ini_histhf", "ini_histhf3d",
"ini_histday", "ini_histins", "ini_histrac", "phytrac". Access it from
"comvert" instead.

Replaced calls to NetCDF Fortran 77 interface by calls to Fortran 90
interface or to NetCDF95.

Procedure "gr_phy_write_3d" now works with a variable of arbitrary
size in the second dimension.

Annotated use statements with "only" clause.

Replaced calls to NetCDF interface version 2 by calls to Fortran 90
interface in "guide.f90" and "read_reanalyse.f".

In "write_histrac", replaced calls to "gr_fi_ecrit" by calls to
"gr_phy_write_2d" and "gr_phy_write_3d".

1 guez 5 SUBROUTINE dynredem1(fichnom, time, vcov, ucov, teta, q, masse, ps)
2 guez 3
3 guez 5 ! From dyn3d/dynredem.F, v 1.2 2004/06/22 11:45:30
4 guez 3
5 guez 5 ! Ecriture du fichier de redémarrage au format NetCDF
6 guez 3
7 guez 20 USE dimens_m, ONLY : iim, jjm, llm, nqmx
8 guez 5 USE temps, ONLY : itaufin, itau_dyn
9 guez 18 USE iniadvtrac_m, ONLY : tname
10 guez 20 use netcdf, only: nf90_open, nf90_write, nf90_noerr, nf90_put_var, &
11     nf90_get_var, nf90_close
12     use netcdf95, only: nf95_inq_varid
13 guez 3
14     IMPLICIT NONE
15    
16 guez 20 REAL, INTENT (IN) :: vcov(iim + 1, jjm, llm), ucov(iim+1, jjm+1, llm)
17     REAL, INTENT (IN) :: teta(iim+1, jjm+1, llm)
18     REAL, INTENT (IN) :: ps(iim+1, jjm+1), masse(iim+1, jjm+1, llm)
19     REAL, INTENT (IN) :: q(iim+1, jjm+1, llm, nqmx)
20 guez 5 CHARACTER(len=*), INTENT (IN) :: fichnom
21 guez 3
22 guez 5 REAL :: time
23     INTEGER :: nid, nvarid
24     INTEGER :: ierr
25     INTEGER :: iq
26     INTEGER :: length
27     PARAMETER (length=100)
28     REAL :: tab_cntrl(length) ! tableau des parametres du run
29     INTEGER :: nb = 0
30 guez 3
31     !---------------------------------------------------------
32    
33 guez 5 PRINT *, 'Call sequence information: dynredem1'
34 guez 3
35 guez 18 ierr = nf90_open(fichnom, nf90_write, nid)
36     IF (ierr/=nf90_noerr) THEN
37 guez 5 PRINT *, 'Pb. d ouverture ' // fichnom
38     STOP 1
39     END IF
40 guez 3
41     ! Ecriture/extension de la coordonnee temps
42    
43     nb = nb + 1
44 guez 20 call nf95_inq_varid(nid, 'temps', nvarid)
45     ierr = nf90_put_var(nid, nvarid, time, (/nb/))
46 guez 5 PRINT *, 'Enregistrement pour ', nb, time
47 guez 3
48 guez 5
49 guez 3 ! Re-ecriture du tableau de controle, itaufin n'est plus defini quand
50     ! on passe dans dynredem0
51 guez 20 call nf95_inq_varid(nid, 'controle', nvarid)
52     ierr = nf90_get_var(nid, nvarid, tab_cntrl)
53 guez 5 tab_cntrl(31) = real(itau_dyn+itaufin)
54 guez 20 ierr = nf90_put_var(nid, nvarid, tab_cntrl)
55 guez 3
56     ! Ecriture des champs
57    
58 guez 20 call nf95_inq_varid(nid, 'ucov', nvarid)
59     ierr = nf90_put_var(nid, nvarid, ucov)
60 guez 3
61 guez 20 call nf95_inq_varid(nid, 'vcov', nvarid)
62     ierr = nf90_put_var(nid, nvarid, vcov)
63 guez 3
64 guez 20 call nf95_inq_varid(nid, 'teta', nvarid)
65     ierr = nf90_put_var(nid, nvarid, teta)
66 guez 3
67 guez 5 DO iq = 1, nqmx
68 guez 20 call nf95_inq_varid(nid, tname(iq), nvarid)
69     ierr = nf90_put_var(nid, nvarid, q(:, :, :, iq))
70 guez 5 END DO
71 guez 3
72 guez 20 call nf95_inq_varid(nid, 'masse', nvarid)
73     ierr = nf90_put_var(nid, nvarid, masse)
74 guez 5
75 guez 20 call nf95_inq_varid(nid, 'ps', nvarid)
76     ierr = nf90_put_var(nid, nvarid, ps)
77 guez 5
78 guez 20 ierr = nf90_close(nid)
79 guez 5
80 guez 3 END SUBROUTINE dynredem1

  ViewVC Help
Powered by ViewVC 1.1.21