Changeset 2315 for LMDZ5/trunk
- Timestamp:
- Jun 25, 2015, 5:25:50 PM (9 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dynlonlat_phylonlat/phylmd/iniphysiq.F90
r2311 r2315 3 3 4 4 5 SUBROUTINE iniphysiq(ii m,jjm,nlayer,punjours, pdayref,ptimestep,&5 SUBROUTINE iniphysiq(ii,jj,nlayer,punjours, pdayref,ptimestep, & 6 6 rlatu,rlonv,aire,cu,cv, & 7 7 prad,pg,pr,pcpp,iflag_phys) … … 13 13 klon_omp_end, & ! end index of local omp subgrid 14 14 klon_mpi_begin ! start indes of columns (on local mpi grid) 15 USE vertical_layers_mod, ONLY : init_vertical_layers 15 16 USE comgeomphy, ONLY: initcomgeomphy, & 16 17 airephy, & ! physics grid area (m2) … … 28 29 ! ======================================================================= 29 30 31 include "dimensions.h" 32 include "comvert.h" 30 33 include "iniprint.h" 31 34 … … 36 39 REAL, INTENT (IN) :: punjours ! length (in s) of a standard day 37 40 INTEGER, INTENT (IN) :: nlayer ! number of atmospheric layers 38 INTEGER, INTENT (IN) :: ii m! number of atmospheric columns along longitudes39 INTEGER, INTENT (IN) :: jj m! number of atompsheric columns along latitudes40 REAL, INTENT (IN) :: rlatu(jj m+1) ! latitudes of the physics grid41 REAL, INTENT (IN) :: rlonv(ii m+1) ! longitudes of the physics grid42 REAL, INTENT (IN) :: aire(ii m+1,jjm+1) ! area of the dynamics grid (m2)43 REAL, INTENT (IN) :: cu((ii m+1)*(jjm+1)) ! cu coeff. (u_covariant = cu * u)44 REAL, INTENT (IN) :: cv((ii m+1)*jjm) ! cv coeff. (v_covariant = cv * v)41 INTEGER, INTENT (IN) :: ii ! number of atmospheric columns along longitudes 42 INTEGER, INTENT (IN) :: jj ! number of atompsheric columns along latitudes 43 REAL, INTENT (IN) :: rlatu(jj+1) ! latitudes of the physics grid 44 REAL, INTENT (IN) :: rlonv(ii+1) ! longitudes of the physics grid 45 REAL, INTENT (IN) :: aire(ii+1,jj+1) ! area of the dynamics grid (m2) 46 REAL, INTENT (IN) :: cu((ii+1)*(jj+1)) ! cu coeff. (u_covariant = cu * u) 47 REAL, INTENT (IN) :: cv((ii+1)*jj) ! cv coeff. (v_covariant = cv * v) 45 48 INTEGER, INTENT (IN) :: pdayref ! reference day of for the simulation 46 49 REAL, INTENT (IN) :: ptimestep !physics time step (s) … … 70 73 END IF 71 74 72 !call init_phys_lmdz(ii m,jjm+1,llm,1,(/(jjm-1)*iim+2/))75 !call init_phys_lmdz(ii,jj+1,llm,1,(/(jj-1)*ii+2/)) 73 76 74 77 ! Generate global arrays on full physics grid … … 82 85 cufi(1) = cu(1) 83 86 cvfi(1) = cv(1) 84 DO j=2,jj m85 DO i=1,ii m86 latfi((j-2)*ii m+1+i)= rlatu(j)87 lonfi((j-2)*ii m+1+i)= rlonv(i)88 cufi((j-2)*ii m+1+i) = cu((j-1)*(iim+1)+i)89 cvfi((j-2)*ii m+1+i) = cv((j-1)*(iim+1)+i)87 DO j=2,jj 88 DO i=1,ii 89 latfi((j-2)*ii+1+i)= rlatu(j) 90 lonfi((j-2)*ii+1+i)= rlonv(i) 91 cufi((j-2)*ii+1+i) = cu((j-1)*(ii+1)+i) 92 cvfi((j-2)*ii+1+i) = cv((j-1)*(ii+1)+i) 90 93 ENDDO 91 94 ENDDO 92 95 ! South pole 93 latfi(klon_glo)= rlatu(jj m+1)96 latfi(klon_glo)= rlatu(jj+1) 94 97 lonfi(klon_glo)= 0. 95 cufi(klon_glo) = cu((ii m+1)*jjm+1)96 cvfi(klon_glo) = cv((ii m+1)*jjm-iim)98 cufi(klon_glo) = cu((ii+1)*jj+1) 99 cvfi(klon_glo) = cv((ii+1)*jj-ii) 97 100 98 101 ! build airefi(), mesh area on physics grid 99 CALL gr_dyn_fi(1,ii m+1,jjm+1,klon_glo,aire,airefi)102 CALL gr_dyn_fi(1,ii+1,jj+1,klon_glo,aire,airefi) 100 103 ! Poles are single points on physics grid 101 airefi(1)=sum(aire(1:ii m,1))102 airefi(klon_glo)=sum(aire(1:ii m,jjm+1))104 airefi(1)=sum(aire(1:ii,1)) 105 airefi(klon_glo)=sum(aire(1:ii,jj+1)) 103 106 104 107 ! Sanity check: do total planet area match between physics and dynamics? 105 total_area_dyn=sum(aire(1:ii m,1:jjm+1))108 total_area_dyn=sum(aire(1:ii,1:jj+1)) 106 109 total_area_phy=sum(airefi(1:klon_glo)) 107 110 IF (total_area_dyn/=total_area_phy) THEN … … 128 131 CALL inifis(punjours,prad,pg,pr,pcpp) 129 132 133 ! copy over preff , ap(), bp(), etc 134 CALL init_vertical_layers(nlayer,preff,scaleheight, & 135 ap,bp,presnivs,pseudoalt) 136 130 137 ! Now generate local lon/lat/cu/cv/area arrays 131 138 CALL initcomgeomphy -
LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90
r2311 r2315 23 23 USE mod_1D_amma_read 24 24 USE print_control_mod, ONLY: prt_level 25 USE vertical_layers_mod, ONLY: init_vertical_layers 25 26 26 27 implicit none … … 540 541 ! Dans ce cas, on lit ap,bp dans le fichier hybrid.txt 541 542 ENDIF 543 ! initialize ap,bp, etc. in vertical_layers_mod 544 call init_vertical_layers(llm,preff,scaleheight, & 545 ap,bp,presnivs,pseudoalt) 546 542 547 sig_s=presnivs/preff 543 548 plev =ap+bp*psurf -
LMDZ5/trunk/libf/phylmd/ecribin.F90
r1992 r2315 10 10 include "paramet.h" 11 11 include "comgeom.h" 12 include "comvert.h"13 12 14 13 ! arguments: … … 52 51 include "paramet.h" 53 52 include "comgeom.h" 54 include "comvert.h"55 53 56 54 ! arguments: -
LMDZ5/trunk/libf/phylmd/ecrireg.F90
r1992 r2315 10 10 include "paramet.h" 11 11 include "comgeom.h" 12 include "comvert.h"13 12 include "regdim.h" 14 13 … … 66 65 include "paramet.h" 67 66 include "comgeom.h" 68 include "comvert.h"69 67 include "regdim.h" 70 68 -
LMDZ5/trunk/libf/phylmd/inistats.F90
r1992 r2315 1 1 SUBROUTINE inistats(ierr) 2 3 USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs,pseudoalt 2 4 3 5 IMPLICIT NONE … … 6 8 include "paramet.h" 7 9 include "comgeom.h" 8 include "comvert.h"9 10 include "comconst.h" 10 11 include "statto.h" … … 40 41 DO l = 1, llm 41 42 sig_s(l) = ((ap(l)+ap(l+1))/preff+bp(l)+bp(l+1))/2. 42 pseudoalt(l) = log(preff/presnivs(l))*8.43 43 END DO 44 44 -
LMDZ5/trunk/libf/phylmd/limit_netcdf.F90
r2311 r2315 42 42 ! Local variables: 43 43 include "logic.h" 44 include "comvert.h"45 44 include "comgeom2.h" 46 45 include "comconst.h" -
LMDZ5/trunk/libf/phylmd/phys_output_mod.F90
r2311 r2315 46 46 USE mod_grid_phy_lmdz, only: klon_glo 47 47 USE print_control_mod, ONLY: prt_level,lunout 48 USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs 48 49 49 50 #ifdef CPP_XIOS … … 57 58 include "clesphys.h" 58 59 include "thermcell.h" 59 include "comvert.h"60 60 61 61 ! ug Nouveaux arguments n\'ecessaires au histwrite_mod: -
LMDZ5/trunk/libf/phylmd/readaerosol_interp.F90
r2311 r2315 30 30 INCLUDE "clesphys.h" 31 31 INCLUDE "dimensions.h" 32 INCLUDE "comvert.h"33 32 ! 34 33 ! Input: -
LMDZ5/trunk/libf/phylmd/rrtm/suphec.F90
r2043 r2315 87 87 USE YOM_PHYS_GRID ,ONLY : PHYS_GRID 88 88 USE YOMCT0 , ONLY : LSCMEC ,LROUGH ,REXTZ0M ,REXTZ0H 89 USE vertical_layers_mod, ONLY: ap,bp 89 90 90 91 IMPLICIT NONE … … 115 116 #include "suwcou.intfb.h" 116 117 #include "dimensions.h" 117 #include "comvert.h"118 118 119 119 ! ------------------------------------------------------------------ … … 168 168 !ALLOCATE(VBH (0:MAX(JPMXLE,NFLEVG))) from suallo.F90 169 169 !! 170 !! ATTENTION, il faut que ~dyn3d/comvert.h soit conforme au Fortran 90 !!171 !!172 170 ALLOCATE(VAH (0:NFLEVG)) ! Ajout ALLOCATE MPL 200509 173 171 ALLOCATE(VBH (0:NFLEVG)) … … 177 175 VP00=101325. !!!!! A REVOIR (MPL) 178 176 ZPRES(NFLEVG)=VP00 179 ! on recupere ap et bp de dyn3d ( comvert.h) MPL 19.05.09177 ! on recupere ap et bp de dyn3d (vertical_layers_mod) MPL 19.05.09 180 178 ! Attention, VAH et VBH sont inverses, comme les niveaux 181 179 ! plev(l)=PAPRS(klon,nlayer+1-l) de 1 a nlayer (apllmd.F) -
LMDZ5/trunk/libf/phylmd/test_disvert_m.F90
r2311 r2315 14 14 15 15 use exner_hyb_m, only: exner_hyb 16 use vertical_layers_mod, only: ap,bp,preff 16 17 17 18 ! For llm: 18 19 include "dimensions.h" 19 20 ! For ap, bp, preff:21 include "comvert.h"22 20 23 21 ! For kappa, cpp:
Note: See TracChangeset
for help on using the changeset viewer.