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

Annotation of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 276 - (hide annotations)
Thu Jul 12 14:49:20 2018 UTC (5 years, 10 months ago) by guez
File size: 2879 byte(s)
Move procedure read_serre from module read_serre_m to module
dynetat0_m, to avoid side effet on variables of module dynetat0_m.

Create procedure set_unit_nml to avoid side effect on variable of
module unit_nml_m.

Downgrade pctsrf from variable of module etat0_m to argument of etat0
and limit to avoid side effect on pctsrf.

Move variable zmasq from module dimphy to module phyetat0_m to avoid
side effect on zmasq.

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

  ViewVC Help
Powered by ViewVC 1.1.21