/[lmdze]/trunk/filtrez/test_inifilr.f
ViewVC logotype

Annotation of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 313 - (hide annotations)
Mon Dec 10 15:54:30 2018 UTC (5 years, 5 months ago) by guez
File size: 2622 byte(s)
Remove module temps. Move variable itau_dyn from module temps to
module dynetat0_m, where it is defined.

Split module dynetat0_m into dynetat0_m and dynetat0_chosen_m. The
motivation is to create smaller modules. Procedures principal_cshift
and invert_zoomx had to stay in dynetat0_m because of circular
dependency. Now we will be able to move them away. Module variables
which are chosen by the user, not computed, in program ce0l go to
dynetat0_chosen_m: day_ref, annee_ref, clon, clat, grossismx,
grossismy, dzoomx, dzoomy, taux, tauy.

Move variable "pa" from module disvert_m to module
dynetat0_chosen_m. Define "pa" in dynetat0_chosen rather than etat0.

Define day_ref and annee_ref in procedure read_serre rather than
etat0.

1 guez 167 program test_inifilr
2    
3 guez 265 use dimensions, only: iim, jjm
4 guez 313 use dynetat0_m, only: rlatu, rlatv, fyhyp, fxhyp
5     use dynetat0_chosen_m, only: read_serre
6 guez 167 use inifilr_m, only: inifilr, jfiltnu, jfiltnv, jfiltsu, jfiltsv, &
7     matriceun, matrinvn, matricevn, matriceus, matrinvs, matricevs
8     use netcdf, only: NF90_CLOBBER, NF90_FLOAT
9     use netcdf95, only: nf95_create, NF95_DEF_DIM, NF95_DEF_VAR, NF95_ENDDEF, &
10     NF95_PUT_VAR, NF95_CLOSE, nf95_put_att
11     use nr_util, only: pi
12 guez 276 use unit_nml_m, only: unit_nml, set_unit_nml
13 guez 167
14     IMPLICIT NONE
15    
16     integer ncid, dimid_longitude
17 guez 168 integer dimid_rlatu, dimid_rlatv
18     integer varid_matriceu, varid_matrinv, varid_matricev
19     integer varid_rlatu, varid_rlatv
20 guez 167
21     !-----------------------------------------------------------------------
22    
23 guez 276 call set_unit_nml
24 guez 167 open(unit_nml, file="used_namelists.txt", status="replace", action="write")
25     call read_serre
26 guez 277 CALL fyhyp
27     CALL fxhyp
28 guez 167 CALL inifilr
29     close(unit_nml)
30    
31     call nf95_create("test_inifilr_out.nc", NF90_CLOBBER, ncid)
32    
33     call NF95_DEF_DIM(ncid, "longitude", iim, dimid_longitude)
34 guez 168 call NF95_DEF_DIM(ncid, "rlatu", jfiltnu + jjm - jfiltsu, dimid_rlatu)
35     call NF95_DEF_DIM(ncid, "rlatv", jfiltnv + jjm - jfiltsv + 1, dimid_rlatv)
36 guez 167
37 guez 168 call NF95_DEF_VAR(ncid, "rlatu", NF90_FLOAT, dimid_rlatu, varid_rlatu)
38     call nf95_put_att(ncid, varid_rlatu, "units", "degrees_north")
39 guez 167
40 guez 168 call NF95_DEF_VAR(ncid, "rlatv", NF90_FLOAT, dimid_rlatv, varid_rlatv)
41     call nf95_put_att(ncid, varid_rlatv, "units", "degrees_north")
42 guez 167
43 guez 168 call NF95_DEF_VAR(ncid, "matriceu", NF90_FLOAT, &
44     (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matriceu)
45     call NF95_DEF_VAR(ncid, "matrinv", NF90_FLOAT, &
46     (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matrinv)
47     call NF95_DEF_VAR(ncid, "matricev", NF90_FLOAT, &
48     (/dimid_longitude, dimid_longitude, dimid_rlatv/), varid_matricev)
49 guez 167
50     call NF95_ENDDEF(ncid)
51    
52 guez 168 call NF95_PUT_VAR(ncid, varid_rlatu, &
53     (/rlatu(2:jfiltnu), rlatu(jfiltsu:jjm)/) / pi * 180.)
54     call NF95_PUT_VAR(ncid, varid_rlatv, &
55     (/rlatv(:jfiltnv), rlatv(jfiltsv:)/) / pi * 180.)
56 guez 167
57 guez 168 call NF95_PUT_VAR(ncid, varid_matriceu, matriceun)
58     call NF95_PUT_VAR(ncid, varid_matrinv, matrinvn)
59     call NF95_PUT_VAR(ncid, varid_matricev, matricevn)
60     call NF95_PUT_VAR(ncid, varid_matriceu, matriceus, start = (/1, 1, jfiltnu/))
61     call NF95_PUT_VAR(ncid, varid_matrinv, matrinvs, start = (/1, 1, jfiltnu/))
62     call NF95_PUT_VAR(ncid, varid_matricev, matricevs, &
63     start = (/1, 1, jfiltnv + 1/))
64 guez 167
65     call NF95_CLOSE(ncid)
66 guez 169 print *, 'Created file "test_inifilr_out.nc".'
67 guez 167
68     end program test_inifilr

  ViewVC Help
Powered by ViewVC 1.1.21