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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.21