source: LMDZ6/trunk/libf/dynphy_lonlat/phydev/iniphysiq_mod.f90 @ 5281

Last change on this file since 5281 was 5268, checked in by abarral, 7 weeks ago

.f90 <-> .F90 depending on cpp key use

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 3.1 KB
Line 
1!
2! $Id: iniphysiq.F 1403 2010-07-01 09:02:53Z fairhead $
3!
4MODULE iniphysiq_mod
5
6CONTAINS
7
8SUBROUTINE iniphysiq(iim,jjm,nlayer, &
9                     nbp, communicator, &
10                     punjours, pdayref,ptimestep, &
11                     rlatu,rlatv,rlonu,rlonv,aire,cu,cv, &
12                     prad,pg,pr,pcpp,iflag_phys)
13  USE dimphy, ONLY: init_dimphy
14  USE inigeomphy_mod, ONLY: inigeomphy
15  USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
16  USE infotrac, ONLY: nqtot, type_trac
17  USE infotrac_phy, ONLY: init_infotrac_phy
18  USE inifis_mod, ONLY: inifis
19  USE phyaqua_mod, ONLY: iniaqua
20  USE nrtype, ONLY: pi
21  IMPLICIT NONE
22  !
23  !=======================================================================
24  !   Initialisation of the physical constants and some positional and
25  !   geometrical arrays for the physics
26  !=======================================================================
27 
28 
29  include "iniprint.h"
30
31  REAL,INTENT(IN) :: prad ! radius of the planet (m)
32  REAL,INTENT(IN) :: pg ! gravitational acceleration (m/s2)
33  REAL,INTENT(IN) :: pr ! ! reduced gas constant R/mu
34  REAL,INTENT(IN) :: pcpp ! specific heat Cp
35  REAL,INTENT(IN) :: punjours ! length (in s) of a standard day
36  INTEGER, INTENT (IN) :: nlayer ! number of atmospheric layers
37  INTEGER, INTENT (IN) :: iim ! number of atmospheric coulumns along longitudes
38  INTEGER, INTENT (IN) :: jjm  ! number of atompsheric columns along latitudes
39  INTEGER, INTENT(IN) :: nbp ! number of physics columns for this MPI process
40  INTEGER, INTENT(IN) :: communicator ! MPI communicator
41  REAL, INTENT (IN) :: rlatu(jjm+1) ! latitudes of the physics grid
42  REAL, INTENT (IN) :: rlatv(jjm) ! latitude boundaries of the physics grid
43  REAL, INTENT (IN) :: rlonv(iim+1) ! longitudes of the physics grid
44  REAL, INTENT (IN) :: rlonu(iim+1) ! longitude boundaries of the physics grid
45  REAL, INTENT (IN) :: aire(iim+1,jjm+1) ! area of the dynamics grid (m2)
46  REAL, INTENT (IN) :: cu((iim+1)*(jjm+1)) ! cu coeff. (u_covariant = cu * u)
47  REAL, INTENT (IN) :: cv((iim+1)*jjm) ! cv coeff. (v_covariant = cv * v)
48  INTEGER, INTENT (IN) :: pdayref ! reference day of for the simulation
49  REAL,INTENT(IN) :: ptimestep !physics time step (s)
50  INTEGER,INTENT(IN) :: iflag_phys ! type of physics to be called
51
52  INTEGER :: ibegin,iend,offset
53  INTEGER :: i,j,k
54  CHARACTER (LEN=20) :: modname='iniphysiq'
55  CHARACTER (LEN=80) :: abort_message
56
57
58  ! --> initialize physics distribution, global fields and geometry
59  ! (i.e. things in phy_common or dynphy_lonlat)
60  CALL inigeomphy(iim,jjm,nlayer, &
61               nbp, communicator, &
62               rlatu,rlatv, &
63               rlonu,rlonv, &
64               aire,cu,cv)
65
66  ! --> now initialize things specific to the phydev physics package
67
68!$OMP PARALLEL
69
70  ! Initialize physical constants in physics:
71  CALL inifis(prad,pg,pr,pcpp)
72 
73  ! Initialize tracer names, numbers, etc. for physics
74  CALL init_infotrac_phy(nqtot,type_trac)
75
76  ! Additional initializations for aquaplanets
77  IF (iflag_phys>=100) THEN
78    CALL iniaqua(klon_omp,iflag_phys)
79  ENDIF
80!$OMP END PARALLEL
81
82END SUBROUTINE iniphysiq
83
84END MODULE iniphysiq_mod
Note: See TracBrowser for help on using the repository browser.