Changeset 2346 for LMDZ5/trunk/libf/dynlonlat_phylonlat
- Timestamp:
- Aug 21, 2015, 5:13:46 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/dynlonlat_phylonlat
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dynlonlat_phylonlat/phydev/iniphysiq.F90
r2320 r2346 2 2 ! $Id: iniphysiq.F 1403 2010-07-01 09:02:53Z fairhead $ 3 3 ! 4 SUBROUTINE iniphysiq(iim,jjm,nlayer,punjours, pdayref,ptimestep, 5 rlatu,rl onv,aire,cu,cv,&4 SUBROUTINE iniphysiq(iim,jjm,nlayer,punjours, pdayref,ptimestep, & 5 rlatu,rlatv,rlonu,rlonv,aire,cu,cv, & 6 6 prad,pg,pr,pcpp,iflag_phys) 7 7 USE dimphy, ONLY: klev ! number of atmospheric levels … … 26 26 USE inifis_mod, ONLY: inifis 27 27 USE phyaqua_mod, ONLY: iniaqua 28 USE regular_lonlat_mod, ONLY : init_regular_lonlat, & 29 east, west, north, south, & 30 north_east, north_west, & 31 south_west, south_east 32 USE nrtype, ONLY: pi 28 33 IMPLICIT NONE 29 34 ! … … 45 50 INTEGER, INTENT (IN) :: jjm ! number of atompsheric columns along latitudes 46 51 REAL, INTENT (IN) :: rlatu(jjm+1) ! latitudes of the physics grid 52 REAL, INTENT (IN) :: rlatv(jjm) ! latitude boundaries of the physics grid 47 53 REAL, INTENT (IN) :: rlonv(iim+1) ! longitudes of the physics grid 54 REAL, INTENT (IN) :: rlonu(iim+1) ! longitude boundaries of the physics grid 48 55 REAL, INTENT (IN) :: aire(iim+1,jjm+1) ! area of the dynamics grid (m2) 49 56 REAL, INTENT (IN) :: cu((iim+1)*(jjm+1)) ! cu coeff. (u_covariant = cu * u) … … 59 66 REAL :: total_area_phy, total_area_dyn 60 67 68 ! boundaries, on global grid 69 REAL,ALLOCATABLE :: boundslon_reg(:,:) 70 REAL,ALLOCATABLE :: boundslat_reg(:,:) 61 71 62 72 ! global array, on full physics grid: … … 78 88 !call init_phys_lmdz(iim,jjm+1,llm,1,(/(jjm-1)*iim+2/)) 79 89 90 ! init regular global longitude-latitude grid points and boundaries 91 ALLOCATE(boundslon_reg(iim,2)) 92 ALLOCATE(boundslat_reg(jjm+1,2)) 93 94 DO i=1,iim 95 boundslon_reg(i,east)=rlonu(i) 96 boundslon_reg(i,west)=rlonu(i+1) 97 ENDDO 98 99 boundslat_reg(1,north)= PI/2 100 boundslat_reg(1,south)= rlatv(1) 101 DO j=2,jjm 102 boundslat_reg(j,north)=rlatv(j-1) 103 boundslat_reg(j,south)=rlatv(j) 104 ENDDO 105 boundslat_reg(jjm+1,north)= rlatv(jjm) 106 boundslat_reg(jjm+1,south)= -PI/2 107 108 ! Write values in module regular_lonlat_mod 109 CALL init_regular_lonlat(iim,jjm+1, rlonv(1:iim), rlatu, & 110 boundslon_reg, boundslat_reg) 111 80 112 ! Generate global arrays on full physics grid 81 113 ALLOCATE(latfi(klon_glo),lonfi(klon_glo),cufi(klon_glo),cvfi(klon_glo)) -
LMDZ5/trunk/libf/dynlonlat_phylonlat/phylmd/iniphysiq.F90
r2343 r2346 3 3 4 4 5 SUBROUTINE iniphysiq(ii,jj,nlayer,punjours, pdayref,ptimestep, 6 rlatu,rl onv,aire,cu,cv,&5 SUBROUTINE iniphysiq(ii,jj,nlayer,punjours, pdayref,ptimestep, & 6 rlatu,rlatv,rlonu,rlonv,aire,cu,cv, & 7 7 prad,pg,pr,pcpp,iflag_phys) 8 8 USE dimphy, ONLY: klev ! number of atmospheric levels … … 35 35 USE phystokenc_mod, ONLY: init_phystokenc 36 36 USE phyaqua_mod, ONLY: iniaqua 37 USE regular_lonlat_mod, ONLY : init_regular_lonlat, & 38 east, west, north, south, & 39 north_east, north_west, & 40 south_west, south_east 37 41 IMPLICIT NONE 38 42 … … 44 48 include "dimensions.h" 45 49 include "comvert.h" 50 include "comconst.h" 46 51 include "iniprint.h" 47 52 include "temps.h" … … 57 62 INTEGER, INTENT (IN) :: jj ! number of atompsheric columns along latitudes 58 63 REAL, INTENT (IN) :: rlatu(jj+1) ! latitudes of the physics grid 64 REAL, INTENT (IN) :: rlatv(jj) ! latitude boundaries of the physics grid 59 65 REAL, INTENT (IN) :: rlonv(ii+1) ! longitudes of the physics grid 66 REAL, INTENT (IN) :: rlonu(ii+1) ! longitude boundaries of the physics grid 60 67 REAL, INTENT (IN) :: aire(ii+1,jj+1) ! area of the dynamics grid (m2) 61 68 REAL, INTENT (IN) :: cu((ii+1)*(jj+1)) ! cu coeff. (u_covariant = cu * u) … … 71 78 REAL :: total_area_phy, total_area_dyn 72 79 80 ! boundaries, on global grid 81 REAL,ALLOCATABLE :: boundslon_reg(:,:) 82 REAL,ALLOCATABLE :: boundslat_reg(:,:) 73 83 74 84 ! global array, on full physics grid: … … 87 97 !call init_phys_lmdz(ii,jj+1,llm,1,(/(jj-1)*ii+2/)) 88 98 99 ! init regular global longitude-latitude grid points and boundaries 100 ALLOCATE(boundslon_reg(ii,2)) 101 ALLOCATE(boundslat_reg(jj+1,2)) 102 103 DO i=1,ii 104 boundslon_reg(i,east)=rlonu(i) 105 boundslon_reg(i,west)=rlonu(i+1) 106 ENDDO 107 108 boundslat_reg(1,north)= PI/2 109 boundslat_reg(1,south)= rlatv(1) 110 DO j=2,jj 111 boundslat_reg(j,north)=rlatv(j-1) 112 boundslat_reg(j,south)=rlatv(j) 113 ENDDO 114 boundslat_reg(jj+1,north)= rlatv(jj) 115 boundslat_reg(jj+1,south)= -PI/2 116 117 ! Write values in module regular_lonlat_mod 118 CALL init_regular_lonlat(ii,jj+1, rlonv(1:ii), rlatu, & 119 boundslon_reg, boundslat_reg) 120 89 121 ! Generate global arrays on full physics grid 90 122 ALLOCATE(latfi(klon_glo),lonfi(klon_glo),cufi(klon_glo),cvfi(klon_glo)) -
LMDZ5/trunk/libf/dynlonlat_phylonlat/phymar/iniphysiq.F90
r2242 r2346 2 2 ! $Id: iniphysiq.F 1403 2010-07-01 09:02:53Z fairhead $ 3 3 ! 4 SUBROUTINE iniphysiq(iim,jjm,nlayer,punjours, pdayref,ptimestep, 5 rlatu,rl onv,aire,cu,cv,&4 SUBROUTINE iniphysiq(iim,jjm,nlayer,punjours, pdayref,ptimestep, & 5 rlatu,rlatv,rlonu,rlonv,aire,cu,cv, & 6 6 prad,pg,pr,pcpp,iflag_phys) 7 7 USE dimphy, ONLY: klev ! number of atmospheric levels … … 23 23 rcpp ! specific heat of the atmosphere 24 24 ! USE phyaqua_mod, ONLY: iniaqua 25 USE regular_lonlat_mod, ONLY : init_regular_lonlat, & 26 east, west, north, south, & 27 north_east, north_west, & 28 south_west, south_east 29 USE nrtype, ONLY: pi 25 30 IMPLICIT NONE 26 31 ! … … 42 47 INTEGER, INTENT (IN) :: jjm ! number of atompsheric columns along latitudes 43 48 REAL, INTENT (IN) :: rlatu(jjm+1) ! latitudes of the physics grid 49 REAL, INTENT (IN) :: rlatv(jjm) ! latitude boundaries of the physics grid 44 50 REAL, INTENT (IN) :: rlonv(iim+1) ! longitudes of the physics grid 51 REAL, INTENT (IN) :: rlonu(iim+1) ! longitude boundaries of the physics grid 45 52 REAL, INTENT (IN) :: aire(iim+1,jjm+1) ! area of the dynamics grid (m2) 46 53 REAL, INTENT (IN) :: cu((iim+1)*(jjm+1)) ! cu coeff. (u_covariant = cu * u) … … 56 63 REAL :: total_area_phy, total_area_dyn 57 64 65 ! boundaries, on global grid 66 REAL,ALLOCATABLE :: boundslon_reg(:,:) 67 REAL,ALLOCATABLE :: boundslat_reg(:,:) 58 68 59 69 ! global array, on full physics grid: … … 73 83 ENDIF 74 84 85 ! init regular global longitude-latitude grid points and boundaries 86 ALLOCATE(boundslon_reg(iim,2)) 87 ALLOCATE(boundslat_reg(jjm+1,2)) 88 89 DO i=1,iim 90 boundslon_reg(i,east)=rlonu(i) 91 boundslon_reg(i,west)=rlonu(i+1) 92 ENDDO 93 94 boundslat_reg(1,north)= PI/2 95 boundslat_reg(1,south)= rlatv(1) 96 DO j=2,jjm 97 boundslat_reg(j,north)=rlatv(j-1) 98 boundslat_reg(j,south)=rlatv(j) 99 ENDDO 100 boundslat_reg(jjm+1,north)= rlatv(jjm) 101 boundslat_reg(jjm+1,south)= -PI/2 102 103 ! Write values in module regular_lonlat_mod 104 CALL init_regular_lonlat(iim,jjm+1, rlonv(1:iim), rlatu, & 105 boundslon_reg, boundslat_reg) 75 106 76 107 ! Generate global arrays on full physics grid
Note: See TracChangeset
for help on using the changeset viewer.