/[lmdze]/trunk/phylmd/test_ozonecm.f
ViewVC logotype

Diff of /trunk/phylmd/test_ozonecm.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 276 by guez, Thu Jul 12 14:49:20 2018 UTC revision 278 by guez, Thu Jul 12 17:53:18 2018 UTC
# Line 1  Line 1 
1  program test_ozonecm  program test_ozonecm
2    
3    ! This is a program in Fortran 95.    ! This is a program in Fortran 2003.
4    
5    ! This program computes values of ozone abundance from Royer, on a    ! This program computes values of ozone abundance from Royer, on a
6    ! latitude-pressure grid, and writes the values to a NetCDF file.    ! latitude-pressure grid, and writes the values to a NetCDF file.
7    ! The pressure grid is "presnivs" from "disvert".    ! The pressure grid is "presnivs" from "disvert".
8    
   use dimensions, only: jjm, llm  
   USE dimphy, ONLY : klon  
   use disvert_m, only: pa, disvert, ap, bp, preff, presnivs  
   use ozonecm_m, only: ozonecm  
   use phyetat0_m, only: rlat  
9    use nr_util, only: arth, assert    use nr_util, only: arth, assert
10    use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, nf95_put_att, &    use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, nf95_put_att, &
11         nf95_enddef, nf95_put_var, nf95_close         nf95_enddef, nf95_put_var, nf95_close
12    use netcdf, only: nf90_clobber, nf90_float, nf90_global    use netcdf, only: nf90_clobber, nf90_float, nf90_global
13    
14      use dimensions, only: jjm, llm
15      USE dimphy, ONLY : klon
16      USE dimsoil, ONLY : nsoilmx
17      use disvert_m, only: pa, disvert, ap, bp, preff, presnivs
18      USE indicesol, ONLY : nbsrf
19      use ozonecm_m, only: ozonecm
20      use phyetat0_m, only: rlat, phyetat0
21    use unit_nml_m, only: unit_nml, set_unit_nml    use unit_nml_m, only: unit_nml, set_unit_nml
22    
23    implicit none    implicit none
# Line 26  program test_ozonecm Line 29  program test_ozonecm
29    real, parameter:: RG = 9.80665 ! acceleration of gravity, in m s-2    real, parameter:: RG = 9.80665 ! acceleration of gravity, in m s-2
30    real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2    real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
31    
32      REAL pctsrf(klon, nbsrf)
33      REAL ftsol(klon, nbsrf)
34      REAL ftsoil(klon, nsoilmx, nbsrf)
35      REAL qsurf(klon, nbsrf)
36      REAL qsol(klon) ! column-density of water in soil, in kg m-2
37      REAL snow(klon, nbsrf)
38      REAL albe(klon, nbsrf)
39      REAL evap(klon, nbsrf)
40      REAL rain_fall(klon)
41      REAL snow_fall(klon)
42      real solsw(klon)
43      REAL sollw(klon)
44      real fder(klon)
45      REAL radsol(klon)
46      REAL frugs(klon, nbsrf)
47      REAL agesno(klon, nbsrf)
48      REAL zmea(klon)
49      REAL zstd(klon)
50      REAL zsig(klon)
51      REAL zgam(klon)
52      REAL zthe(klon)
53      REAL zpic(klon)
54      REAL zval(klon)
55      REAL t_ancien(klon, llm), q_ancien(klon, llm)
56      LOGICAL ancien_ok
57      real rnebcon(klon, llm), ratqs(klon, llm)
58      REAL clwcon(klon, llm), run_off_lic_0(klon)
59      real sig1(klon, llm) ! section adiabatic updraft
60    
61      real w01(klon, llm)
62      ! vertical velocity within adiabatic updraft
63    
64      integer ncid_startphy
65    
66    ! For NetCDF:    ! For NetCDF:
67    integer ncid, dimid_time, dimid_plev, dimid_latitude    integer ncid, dimid_time, dimid_plev, dimid_latitude
68    integer varid_time, varid_plev, varid_latitude, varid_tro3    integer varid_time, varid_plev, varid_latitude, varid_tro3
# Line 40  program test_ozonecm Line 77  program test_ozonecm
77    pa = 5e4    pa = 5e4
78    call disvert    call disvert
79    p = ap + bp * preff    p = ap + bp * preff
80    rlat = arth(-90., 180. / jjm, jjm + 1)    call phyetat0(pctsrf, ftsol, ftsoil, qsurf, qsol, snow, albe, evap, &
81           rain_fall, snow_fall, solsw, sollw, fder, radsol, frugs, agesno, zmea, &
82           zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien, ancien_ok, &
83           rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01, ncid_startphy)
84    
85    do julien = 1, 360    do julien = 1, 360
86       wo(:, :, julien) = ozonecm(REAL(julien), spread(p, dim=1, ncopies=jjm+1))       wo(:, :, julien) = ozonecm(REAL(julien), spread(p, dim=1, ncopies=jjm+1))

Legend:
Removed from v.276  
changed lines
  Added in v.278

  ViewVC Help
Powered by ViewVC 1.1.21