source: codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/iniphysiq.F90 @ 242

Last change on this file since 242 was 242, checked in by ymipsl, 10 years ago

calling iniphysics directly from dynamico

YM

File size: 2.7 KB
Line 
1subroutine iniphysiq(nlayer, punjours, pdayref,ptimestep,          &
2                     plat,plon,parea,                                    &
3                     prad,pg,pr,pcpp,                                    &
4                     preff,ap,bp)
5
6use dimphy, only : klev ! number of atmospheric levels
7use mod_grid_phy_lmdz, only : klon_glo ! number of atmospheric columns
8                                       ! (on full grid)
9use mod_phys_lmdz_para, only : klon_omp, & ! number of columns (on local omp grid)
10                               klon_omp_begin, & ! start index of local omp subgrid
11                               klon_omp_end, & ! end index of local omp subgrid
12                               klon_mpi_begin, & ! start indes of columns (on local mpi grid)
13                               klon_mpi
14use comgeomphy, only : airephy, & ! physics grid area (m2)
15                       rlond, & ! longitudes
16                       rlatd ! latitudes
17use infotrac, only : nqtot ! number of advected tracers
18use planete_mod, only: ini_planete_mod
19
20implicit none
21
22real,intent(in) :: prad ! radius of the planet (m)
23real,intent(in) :: pg ! gravitational acceleration (m/s2)
24real,intent(in) :: pr ! ! reduced gas constant R/mu
25real,intent(in) :: pcpp ! specific heat Cp
26real,intent(in) :: punjours ! length (in s) of a standard day
27integer,intent(in) :: nlayer ! number of atmospheric layers
28real,intent(in) :: plat(klon_mpi) ! latitudes of the physics grid
29real,intent(in) :: plon(klon_mpi) ! longitudes of the physics grid
30real,intent(in) :: parea(klon_mpi) ! area (m2)
31integer,intent(in) :: pdayref ! reference day of for the simulation
32real,intent(in) :: ptimestep ! physics time step (s)
33real,intent(in) :: preff      ! reference surface pressure (Pa)
34real,intent(in) :: ap(nlayer+1) ! hybrid coordinate at interfaces
35real,intent(in) :: bp(nlayer+1) ! hybrid coordinate at interfaces
36
37integer :: offset
38character(len=20) :: modname='iniphysiq'
39character(len=80) :: abort_message
40
41IF (nlayer.NE.klev) THEN
42  write(*,*) 'STOP in ',trim(modname)
43  write(*,*) 'Problem with dimensions :'
44  write(*,*) 'nlayer     = ',nlayer
45  write(*,*) 'klev   = ',klev
46  abort_message = ''
47  CALL abort_gcm (modname,abort_message,1)
48ENDIF
49
50
51!$OMP PARALLEL SHARED(parea,plon,plat)
52     
53offset=0
54airephy(1:klon_omp)=parea(offset+klon_omp_begin:offset+klon_omp_end)
55rlond(1:klon_omp)=plon(offset+klon_omp_begin:offset+klon_omp_end)
56rlatd(1:klon_omp)=plat(offset+klon_omp_begin:offset+klon_omp_end)
57
58! copy over preff , ap() and bp()
59call ini_planete_mod(nlayer,preff,ap,bp)
60
61! copy some fundamental parameters to physics
62! and do some initializations
63call inifis(klon_omp,nlayer,nqtot,pdayref,punjours,ptimestep, &
64            rlatd,rlond,airephy,prad,pg,pr,pcpp)
65
66!$OMP END PARALLEL
67
68
69end subroutine iniphysiq
Note: See TracBrowser for help on using the repository browser.