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

Annotation of /trunk/filtrez/test_inifilr.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (hide annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 1 month ago) by guez
File size: 2925 byte(s)
Rename module dimens_m to dimensions.
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     yprimu1, yprimu2, rlonu, rlonv, xprimu, xprimv
6     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 jumble, only: new_unit
11     use netcdf, only: NF90_CLOBBER, NF90_FLOAT
12     use netcdf95, only: nf95_create, NF95_DEF_DIM, NF95_DEF_VAR, NF95_ENDDEF, &
13     NF95_PUT_VAR, NF95_CLOSE, nf95_put_att
14     use nr_util, only: pi
15     use unit_nml_m, only: unit_nml
16     use read_serre_m, only: read_serre
17    
18     IMPLICIT NONE
19    
20     integer ncid, dimid_longitude
21 guez 168 integer dimid_rlatu, dimid_rlatv
22     integer varid_matriceu, varid_matrinv, varid_matricev
23     integer varid_rlatu, varid_rlatv
24 guez 167
25     !-----------------------------------------------------------------------
26    
27     call new_unit(unit_nml)
28     open(unit_nml, file="used_namelists.txt", status="replace", action="write")
29     call read_serre
30    
31     CALL fyhyp(rlatu, rlatv, rlatu2, yprimu2, rlatu1, yprimu1)
32     CALL fxhyp(xprimm025, rlonv, xprimv, rlonu, xprimu, xprimp025)
33     rlatu(1) = pi / 2.
34     rlatu(jjm + 1) = -rlatu(1)
35    
36     CALL inifilr
37     close(unit_nml)
38    
39     call nf95_create("test_inifilr_out.nc", NF90_CLOBBER, ncid)
40    
41     call NF95_DEF_DIM(ncid, "longitude", iim, dimid_longitude)
42 guez 168 call NF95_DEF_DIM(ncid, "rlatu", jfiltnu + jjm - jfiltsu, dimid_rlatu)
43     call NF95_DEF_DIM(ncid, "rlatv", jfiltnv + jjm - jfiltsv + 1, dimid_rlatv)
44 guez 167
45 guez 168 call NF95_DEF_VAR(ncid, "rlatu", NF90_FLOAT, dimid_rlatu, varid_rlatu)
46     call nf95_put_att(ncid, varid_rlatu, "units", "degrees_north")
47 guez 167
48 guez 168 call NF95_DEF_VAR(ncid, "rlatv", NF90_FLOAT, dimid_rlatv, varid_rlatv)
49     call nf95_put_att(ncid, varid_rlatv, "units", "degrees_north")
50 guez 167
51 guez 168 call NF95_DEF_VAR(ncid, "matriceu", NF90_FLOAT, &
52     (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matriceu)
53     call NF95_DEF_VAR(ncid, "matrinv", NF90_FLOAT, &
54     (/dimid_longitude, dimid_longitude, dimid_rlatu/), varid_matrinv)
55     call NF95_DEF_VAR(ncid, "matricev", NF90_FLOAT, &
56     (/dimid_longitude, dimid_longitude, dimid_rlatv/), varid_matricev)
57 guez 167
58     call NF95_ENDDEF(ncid)
59    
60 guez 168 call NF95_PUT_VAR(ncid, varid_rlatu, &
61     (/rlatu(2:jfiltnu), rlatu(jfiltsu:jjm)/) / pi * 180.)
62     call NF95_PUT_VAR(ncid, varid_rlatv, &
63     (/rlatv(:jfiltnv), rlatv(jfiltsv:)/) / pi * 180.)
64 guez 167
65 guez 168 call NF95_PUT_VAR(ncid, varid_matriceu, matriceun)
66     call NF95_PUT_VAR(ncid, varid_matrinv, matrinvn)
67     call NF95_PUT_VAR(ncid, varid_matricev, matricevn)
68     call NF95_PUT_VAR(ncid, varid_matriceu, matriceus, start = (/1, 1, jfiltnu/))
69     call NF95_PUT_VAR(ncid, varid_matrinv, matrinvs, start = (/1, 1, jfiltnu/))
70     call NF95_PUT_VAR(ncid, varid_matricev, matricevs, &
71     start = (/1, 1, jfiltnv + 1/))
72 guez 167
73     call NF95_CLOSE(ncid)
74 guez 169 print *, 'Created file "test_inifilr_out.nc".'
75 guez 167
76     end program test_inifilr

  ViewVC Help
Powered by ViewVC 1.1.21