/[lmdze]/trunk/Sources/dyn3d/etat0.f
ViewVC logotype

Diff of /trunk/Sources/dyn3d/etat0.f

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

revision 156 by guez, Thu Jul 16 17:39:10 2015 UTC revision 157 by guez, Mon Jul 20 16:01:49 2015 UTC
# Line 20  contains Line 20  contains
20      use caldyn0_m, only: caldyn0      use caldyn0_m, only: caldyn0
21      use comconst, only: cpp, kappa, iniconst      use comconst, only: cpp, kappa, iniconst
22      use comgeom, only: aire_2d, apoln, apols, cu_2d, cv_2d, inigeom      use comgeom, only: aire_2d, apoln, apols, cu_2d, cv_2d, inigeom
23        use conf_gcm_m, only: nday, day_step, iphysiq
24      use dimens_m, only: iim, jjm, llm, nqmx      use dimens_m, only: iim, jjm, llm, nqmx
25      use dimphy, only: zmasq      use dimphy, only: zmasq
26      use dimsoil, only: nsoilmx      use dimsoil, only: nsoilmx
# Line 39  contains Line 40  contains
40      use inifilr_m, only: inifilr      use inifilr_m, only: inifilr
41      use massdair_m, only: massdair      use massdair_m, only: massdair
42      use netcdf, only: nf90_nowrite      use netcdf, only: nf90_nowrite
43      use netcdf95, only: nf95_close, nf95_get_var, nf95_gw_var, &      use netcdf95, only: nf95_close, nf95_get_var, nf95_gw_var, nf95_put_var, &
44           nf95_inq_varid, nf95_open           nf95_inq_varid, nf95_open
45      use nr_util, only: pi, assert      use nr_util, only: pi, assert
46      use paramet_m, only: ip1jm, ip1jmp1      use paramet_m, only: ip1jm, ip1jmp1
47      use phyetat0_m, only: rlat, rlon      use phyetat0_m, only: rlat, rlon
48        use phyredem0_m, only: phyredem0, ncid_restartphy
49      use phyredem_m, only: phyredem      use phyredem_m, only: phyredem
50      use q_sat_m, only: q_sat      use q_sat_m, only: q_sat
51      use regr_lat_time_coefoz_m, only: regr_lat_time_coefoz      use regr_lat_time_coefoz_m, only: regr_lat_time_coefoz
# Line 70  contains Line 72  contains
72      ! and pressure level "pls(i, j, l)".)      ! and pressure level "pls(i, j, l)".)
73    
74      real qsat(iim + 1, jjm + 1, llm) ! mass fraction of saturating water vapor      real qsat(iim + 1, jjm + 1, llm) ! mass fraction of saturating water vapor
     REAL sn(klon)  
75      REAL qsolsrf(klon, nbsrf), snsrf(klon, nbsrf)      REAL qsolsrf(klon, nbsrf), snsrf(klon, nbsrf)
76      REAL albe(klon, nbsrf), evap(klon, nbsrf)      REAL albe(klon, nbsrf), evap(klon, nbsrf)
77      REAL tsoil(klon, nsoilmx, nbsrf)      REAL tsoil(klon, nsoilmx, nbsrf)
78      REAL radsol(klon), rain_fall(klon), snow_fall(klon)      REAL null_array(klon)
79      REAL solsw(klon), sollw(klon), fder(klon)      REAL solsw(klon), sollw(klon)
80      !IM "slab" ocean      !IM "slab" ocean
     real seaice(klon) ! kg m-2  
81      REAL frugs(klon, nbsrf), agesno(klon, nbsrf)      REAL frugs(klon, nbsrf), agesno(klon, nbsrf)
82      REAL rugmer(klon)      REAL rugmer(klon)
83      real, dimension(iim + 1, jjm + 1):: zmea_2d, zstd_2d, zsig_2d, zgam_2d      real, dimension(iim + 1, jjm + 1):: zmea_2d, zstd_2d, zsig_2d, zgam_2d
# Line 88  contains Line 88  contains
88      REAL zthe(klon)      REAL zthe(klon)
89      REAL zpic(klon), zval(klon)      REAL zpic(klon), zval(klon)
90      REAL t_ancien(klon, llm), q_ancien(klon, llm)      REAL t_ancien(klon, llm), q_ancien(klon, llm)
     REAL run_off_lic_0(klon)  
91      real clwcon(klon, llm), rnebcon(klon, llm), ratqs(klon, llm)      real clwcon(klon, llm), rnebcon(klon, llm), ratqs(klon, llm)
92    
93      ! D\'eclarations pour lecture glace de mer :      ! D\'eclarations pour lecture glace de mer :
# Line 221  contains Line 220  contains
220         q(:, :, :, 5) = q(:, :, :, 5) * 48. / 29.         q(:, :, :, 5) = q(:, :, :, 5) * 48. / 29.
221      end if      end if
222    
223      sn = 0. ! snow      null_array = 0.
     radsol = 0.  
     seaice = 0.  
224      rugmer = 0.001      rugmer = 0.001
225      zmea = pack(zmea_2d, dyn_phy)      zmea = pack(zmea_2d, dyn_phy)
226      zstd = pack(zstd_2d, dyn_phy)      zstd = pack(zstd_2d, dyn_phy)
# Line 312  contains Line 309  contains
309              SUM(aire_2d(:iim, jjm + 1) * masse(:iim, jjm + 1, l)) / apols              SUM(aire_2d(:iim, jjm + 1) * masse(:iim, jjm + 1, l)) / apols
310      END forall      END forall
311    
     ! Initialisation pour traceurs:  
312      call iniadvtrac      call iniadvtrac
     itau_phy = 0  
   
313      CALL geopot(teta, pk , pks, phis, phi)      CALL geopot(teta, pk , pks, phis, phi)
314      CALL caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, pbaru, &      CALL caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, pbaru, pbarv)
315           pbarv)      CALL dynredem0(day_ref, phis)
316      CALL dynredem0("start.nc", day_ref, phis)      CALL dynredem1(vcov, ucov, teta, q, masse, ps, itau = 0)
     CALL dynredem1("start.nc", vcov, ucov, teta, q, masse, ps, itau=0)  
317    
318      ! Initialisations :      ! Initialisations :
319      snsrf(:, is_ter) = sn      snsrf = 0.
     snsrf(:, is_lic) = sn  
     snsrf(:, is_oce) = sn  
     snsrf(:, is_sic) = sn  
320      albe(:, is_ter) = 0.08      albe(:, is_ter) = 0.08
321      albe(:, is_lic) = 0.6      albe(:, is_lic) = 0.6
322      albe(:, is_oce) = 0.5      albe(:, is_oce) = 0.5
# Line 334  contains Line 324  contains
324      evap = 0.      evap = 0.
325      qsolsrf = 150.      qsolsrf = 150.
326      tsoil = spread(spread(pack(tsol_2d, dyn_phy), 2, nsoilmx), 3, nbsrf)      tsoil = spread(spread(pack(tsol_2d, dyn_phy), 2, nsoilmx), 3, nbsrf)
     rain_fall = 0.  
     snow_fall = 0.  
327      solsw = 165.      solsw = 165.
328      sollw = -53.      sollw = -53.
329      t_ancien = 273.15      t_ancien = 273.15
330      q_ancien = 0.      q_ancien = 0.
331      agesno = 0.      agesno = 0.
     seaice = 0.  
332    
333      frugs(:, is_oce) = rugmer      frugs(:, is_oce) = rugmer
334      frugs(:, is_ter) = MAX(1e-5, zstd * zsig / 2)      frugs(:, is_ter) = MAX(1e-5, zstd * zsig / 2)
335      frugs(:, is_lic) = MAX(1e-5, zstd * zsig / 2)      frugs(:, is_lic) = MAX(1e-5, zstd * zsig / 2)
336      frugs(:, is_sic) = 0.001      frugs(:, is_sic) = 0.001
     fder = 0.  
337      clwcon = 0.      clwcon = 0.
338      rnebcon = 0.      rnebcon = 0.
339      ratqs = 0.      ratqs = 0.
     run_off_lic_0 = 0.  
340      sig1 = 0.      sig1 = 0.
341      w01 = 0.      w01 = 0.
342    
343      call phyredem("startphy.nc", pctsrf, tsoil(:, 1, :), tsoil, &      itau_phy = 0
344           tsoil(:, 1, is_oce), seaice, qsolsrf, pack(qsol_2d, dyn_phy), snsrf, &      nday = 0
345           albe, evap, rain_fall, snow_fall, solsw, sollw, fder, radsol, frugs, &      call phyredem0(lmt_pas = day_step / iphysiq)
346    
347        call nf95_inq_varid(ncid_restartphy, "trs", varid)
348        call nf95_put_var(ncid_restartphy, varid, null_array)
349    
350        call phyredem(pctsrf, tsoil(:, 1, :), tsoil, tsoil(:, 1, is_oce), &
351             null_array, qsolsrf, pack(qsol_2d, dyn_phy), snsrf, albe, evap, &
352             null_array, null_array, solsw, sollw, null_array, null_array, frugs, &
353           agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, &           agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, &
354           q_ancien, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01)           q_ancien, rnebcon, ratqs, clwcon, null_array, sig1, w01)
355    
356    END SUBROUTINE etat0    END SUBROUTINE etat0
357    

Legend:
Removed from v.156  
changed lines
  Added in v.157

  ViewVC Help
Powered by ViewVC 1.1.21