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

Annotation of /trunk/dyn3d/dynredem1.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 178 - (hide annotations)
Fri Mar 11 18:47:26 2016 UTC (8 years, 3 months ago) by guez
Original Path: trunk/Sources/dyn3d/dynredem1.f
File size: 2517 byte(s)
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos,
buffer, regular from module histcom_var to modules where they are
defined.

Removed procedure ioipslmpp, useless for a sequential program.

Added argument datasz_max to histwrite_real (to avoid circular
dependency with histwrite).

Removed useless variables and computations everywhere.

Changed real litteral constants from default kind to double precision
in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu.

Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of
sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of
transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of
orosetup.

Added output of relative humidity.

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 157 SUBROUTINE dynredem1(vcov, ucov, teta, q, masse, ps, itau)
8 guez 3
9 guez 130 ! From dyn3d/dynredem.F, version 1.2, 2004/06/22 11:45:30
10 guez 157 ! Ecriture du fichier de red\'emarrage au format NetCDF
11 guez 3
12 guez 67 USE dimens_m, ONLY: iim, jjm, llm, nqmx
13 guez 157 use dynredem0_m, only: ncid
14 guez 67 USE iniadvtrac_m, ONLY: tname
15 guez 178 use netcdf95, only: nf95_close, nf95_inq_varid, nf95_put_var
16 guez 67 use nr_util, only: assert
17 guez 3
18 guez 73 REAL, INTENT(IN):: vcov(:, :, :) ! (iim + 1, jjm, llm)
19     REAL, INTENT(IN):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm)
20     REAL, INTENT(IN):: teta(:, :, :) ! (iim + 1, jjm + 1, llm)
21     REAL, INTENT(IN):: q(:, :, :, :) ! (iim + 1, jjm + 1, llm, nqmx)
22     REAL, INTENT(IN):: masse(:, :, :) ! (iim + 1, jjm + 1, llm)
23     REAL, INTENT(IN):: ps(:, :) ! (iim + 1, jjm + 1)
24     INTEGER, INTENT(IN):: itau
25 guez 3
26 guez 157 ! Local:
27     INTEGER varid, iq
28 guez 3
29 guez 27 !---------------------------------------------------------
30 guez 3
31 guez 27 PRINT *, 'Call sequence information: dynredem1'
32 guez 3
33 guez 67 call assert((/size(vcov, 1), size(ucov, 1), size(teta, 1), size(q, 1), &
34     size(masse, 1), size(ps, 1)/) == iim + 1, "dynredem1 iim")
35     call assert((/size(vcov, 2) + 1, size(ucov, 2), size(teta, 2), size(q, 2), &
36     size(masse, 2), size(ps, 2)/) == jjm + 1, "dynredem1 jjm")
37     call assert((/size(vcov, 3), size(ucov, 3), size(teta, 3), size(q, 3), &
38     size(masse, 3)/) == llm, "dynredem1 llm")
39     call assert(size(q, 4) == nqmx, "dynredem1 nqmx")
40    
41 guez 157 ! \'Ecriture/extension de la coordonn\'ee temps
42 guez 62 call nf95_inq_varid(ncid, 'temps', varid)
43 guez 104 call nf95_put_var(ncid, varid, values = 0.)
44 guez 3
45 guez 157 ! R\'ecriture du tableau de contr\^ole, "itaufin" n'est pas d\'efini quand
46 guez 27 ! on passe dans "dynredem0"
47 guez 62 call nf95_inq_varid(ncid, 'controle', varid)
48     call nf95_put_var(ncid, varid, real(itau), start=(/31/))
49 guez 3
50 guez 157 ! \'Ecriture des champs
51 guez 3
52 guez 62 call nf95_inq_varid(ncid, 'ucov', varid)
53     call nf95_put_var(ncid, varid, ucov)
54 guez 3
55 guez 62 call nf95_inq_varid(ncid, 'vcov', varid)
56     call nf95_put_var(ncid, varid, vcov)
57 guez 3
58 guez 62 call nf95_inq_varid(ncid, 'teta', varid)
59     call nf95_put_var(ncid, varid, teta)
60 guez 5
61 guez 27 DO iq = 1, nqmx
62 guez 62 call nf95_inq_varid(ncid, tname(iq), varid)
63     call nf95_put_var(ncid, varid, q(:, :, :, iq))
64 guez 27 END DO
65 guez 5
66 guez 62 call nf95_inq_varid(ncid, 'masse', varid)
67     call nf95_put_var(ncid, varid, masse)
68 guez 5
69 guez 62 call nf95_inq_varid(ncid, 'ps', varid)
70     call nf95_put_var(ncid, varid, ps)
71 guez 27
72 guez 62 call nf95_close(ncid)
73 guez 27
74     END SUBROUTINE dynredem1
75    
76     end module dynredem1_m

  ViewVC Help
Powered by ViewVC 1.1.21