- Timestamp:
- Jul 10, 2015, 2:24:29 PM (9 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 1 added
- 10 deleted
- 6 edited
- 10 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/bld.cfg
r2242 r2326 32 32 src::misc %SRC_PATH/misc 33 33 src::dyn3d_common %DYN_COMMON 34 src::phy_common %PHY_COMMON 34 35 src::cosp %COSP 35 36 src::ext_src %EXT_SRC -
LMDZ5/trunk/create_make_gcm
r2239 r2326 54 54 echo "PHYS = " 55 55 echo 'LIBPHY = $(LIBO)/libphy$(PHYS).a' 56 echo 'LIBPHY_COMMON= $(LIBO)/libphy_common.a' 56 57 echo 'LIBDYN_PHY = $(LIBO)/libdynlmdz_phy$(PHYS).a' 57 58 echo 'DIRMAIN=dyn$(DIM)d$(FLAG_PARA)' … … 64 65 echo 'L_FILTRE = -l$(FILTRE)' 65 66 echo 'L_DYN_PHY = -ldynlmdz_phy$(PHYS) ' 66 echo 'L_PHY = -lphy$(PHYS) '67 echo 'L_PHY = -lphy$(PHYS) -lphy_common' 67 68 echo 'L_MISC = -lmisc' 68 69 echo 'L_ADJNT =' … … 92 93 echo 93 94 #echo 'main : chimie $(DYN) misc phys $(OPTION_DEP) ' 94 echo 'main : $(DYN) misc phys dyn_phy $(OPTION_DEP) '95 echo 'main : $(DYN) misc phys phy_common dyn_phy $(OPTION_DEP) ' 95 96 echo ' cd $(LIBO) ; $(RANLIB) lib*.a ; cd $(GCM) ;\' 96 97 echo ' cd $(LOCAL_DIR); \' … … 99 100 echo 100 101 echo 'phys : $(LIBPHY)' 102 echo 'phy_common : $(LIBPHY_COMMON)' 101 103 echo 'dyn3d : $(LIBO)/libdyn$(DIM)d$(FLAG_PARA).a $(LIBO)/lib$(FILTRE).a $(LIBO)/libdyn3d_common.a' 102 104 echo 'dyn2d : $(LIBO)/libdyn2d.a' -
LMDZ5/trunk/libf/phydev/iophy.F90
r2311 r2326 46 46 is_sequential, is_south_pole 47 47 USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo 48 USE print_control_mod, ONLY: lunout, prt_level 49 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat 48 50 #ifdef CPP_IOIPSL 49 51 USE ioipsl, only: flio_dom_set … … 53 55 #endif 54 56 implicit none 55 include 'dimensions.h'56 include 'iniprint.h'57 57 real,dimension(klon),intent(in) :: rlon 58 58 real,dimension(klon),intent(in) :: rlat … … 77 77 78 78 !$OMP MASTER 79 ALLOCATE(io_lat( jjm+1-1/(iim*jjm)))79 ALLOCATE(io_lat(nbp_lat)) 80 80 io_lat(1)=rlat_glo(1) 81 io_lat( jjm+1-1/(iim*jjm))=rlat_glo(klon_glo)82 IF (( iim*jjm) > 1) then83 DO i=2, jjm84 io_lat(i)=rlat_glo(2+(i-2)* iim)81 io_lat(nbp_lat)=rlat_glo(klon_glo) 82 IF ((nbp_lon*nbp_lat) > 1) then 83 DO i=2,nbp_lat-1 84 io_lat(i)=rlat_glo(2+(i-2)*nbp_lon) 85 85 ENDDO 86 86 ENDIF 87 87 88 ALLOCATE(io_lon(iim)) 89 io_lon(:)=rlon_glo(2-1/(iim*jjm):iim+1-1/(iim*jjm)) 88 ALLOCATE(io_lon(nbp_lon)) 89 IF ((nbp_lon*nbp_lat) > 1) THEN 90 io_lon(:)=rlon_glo(2:nbp_lon+1) 91 ELSE 92 io_lon(1)=rlon_glo(1) 93 ENDIF 90 94 !! (I) dtnb : total number of domains 91 95 !! (I) dnb : domain number … … 103 107 !! These names are case insensitive. 104 108 ddid=(/ 1,2 /) 105 dsg=(/ iim, jjm+1-1/(iim*jjm)/)106 dsl=(/ iim, jj_nb /)109 dsg=(/ nbp_lon, nbp_lat /) 110 dsl=(/ nbp_lon, jj_nb /) 107 111 dpf=(/ 1,jj_begin /) 108 dpl=(/ iim, jj_end /)112 dpl=(/ nbp_lon, jj_end /) 109 113 dhs=(/ ii_begin-1,0 /) 110 114 if (mpi_rank==mpi_size-1) then 111 115 dhe=(/0,0/) 112 116 else 113 dhe=(/ iim-ii_end,0 /)117 dhe=(/ nbp_lon-ii_end,0 /) 114 118 endif 115 119 … … 155 159 USE mod_phys_lmdz_para, only: is_sequential, jj_begin, jj_end, jj_nb 156 160 use ioipsl, only: histbeg 161 USE print_control_mod, ONLY: prt_level, lunout 162 USE mod_grid_phy_lmdz, ONLY: nbp_lon 157 163 implicit none 158 include 'dimensions.h'159 164 160 165 character*(*), intent(IN) :: name … … 167 172 !$OMP MASTER 168 173 if (is_sequential) then 169 call histbeg(name, iim,io_lon, jj_nb,io_lat(jj_begin:jj_end), &170 1, iim,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day)174 call histbeg(name,nbp_lon,io_lon, jj_nb,io_lat(jj_begin:jj_end), & 175 1,nbp_lon,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day) 171 176 else 172 call histbeg(name, iim,io_lon, jj_nb,io_lat(jj_begin:jj_end), &173 1, iim,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id)177 call histbeg(name,nbp_lon,io_lon, jj_nb,io_lat(jj_begin:jj_end), & 178 1,nbp_lon,1,jj_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id) 174 179 endif 175 180 !$OMP END MASTER … … 186 191 use wxios, only: wxios_add_file 187 192 IMPLICIT NONE 188 include 'dimensions.h'189 193 190 194 character*(*), INTENT(IN) :: name … … 219 223 jj_nb, klon_mpi 220 224 USE ioipsl, only: histwrite 225 USE mod_grid_phy_lmdz, ONLY: nbp_lon 221 226 implicit none 222 include 'dimensions.h'223 227 224 228 integer,intent(in) :: nid … … 229 233 REAL,dimension(klon_mpi) :: buffer_omp 230 234 INTEGER, allocatable, dimension(:) :: index2d 231 REAL :: Field2d( iim,jj_nb)235 REAL :: Field2d(nbp_lon,jj_nb) 232 236 233 237 integer :: ip … … 240 244 CALL grid1Dto2D_mpi(buffer_omp,Field2d) 241 245 if(.NOT.lpoint) THEN 242 ALLOCATE(index2d( iim*jj_nb))243 ALLOCATE(fieldok( iim*jj_nb))244 CALL histwrite(nid,name,itau,Field2d, iim*jj_nb,index2d)246 ALLOCATE(index2d(nbp_lon*jj_nb)) 247 ALLOCATE(fieldok(nbp_lon*jj_nb)) 248 CALL histwrite(nid,name,itau,Field2d,nbp_lon*jj_nb,index2d) 245 249 else 246 250 ALLOCATE(fieldok(npstn)) … … 278 282 jj_nb, klon_mpi 279 283 USE ioipsl, only: histwrite 284 USE mod_grid_phy_lmdz, ONLY: nbp_lon 280 285 implicit none 281 include 'dimensions.h'282 286 283 287 integer,intent(in) :: nid … … 287 291 real,dimension(:,:),intent(in) :: field ! --> field(klon,:) 288 292 REAL,dimension(klon_mpi,size(field,2)) :: buffer_omp 289 REAL :: Field3d( iim,jj_nb,size(field,2))293 REAL :: Field3d(nbp_lon,jj_nb,size(field,2)) 290 294 INTEGER :: ip, n, nlev 291 295 INTEGER, ALLOCATABLE, dimension(:) :: index3d … … 299 303 CALL grid1Dto2D_mpi(buffer_omp,field3d) 300 304 if(.NOT.lpoint) THEN 301 ALLOCATE(index3d( iim*jj_nb*nlev))302 ALLOCATE(fieldok( iim*jj_nb,nlev))303 CALL histwrite(nid,name,itau,Field3d, iim*jj_nb*nlev,index3d)305 ALLOCATE(index3d(nbp_lon*jj_nb*nlev)) 306 ALLOCATE(fieldok(nbp_lon*jj_nb,nlev)) 307 CALL histwrite(nid,name,itau,Field3d,nbp_lon*jj_nb*nlev,index3d) 304 308 else 305 309 nlev=size(field,2) … … 341 345 jj_nb, klon_mpi 342 346 USE xios, only: xios_send_field 343 344 347 USE print_control_mod, ONLY: prt_level, lunout 348 USE mod_grid_phy_lmdz, ONLY: nbp_lon 345 349 IMPLICIT NONE 346 INCLUDE 'dimensions.h'347 INCLUDE 'iniprint.h'348 350 349 351 CHARACTER(LEN=*), INTENT(IN) :: field_name … … 351 353 352 354 REAL,DIMENSION(klon_mpi) :: buffer_omp 353 REAL :: Field2d( iim,jj_nb)355 REAL :: Field2d(nbp_lon,jj_nb) 354 356 355 357 IF (prt_level >= 10) WRITE(lunout,*)'Begin histrwrite2d_xios ',trim(field_name) … … 377 379 jj_nb, klon_mpi 378 380 USE xios, only: xios_send_field 379 381 USE print_control_mod, ONLY: prt_level,lunout 382 USE mod_grid_phy_lmdz, ONLY: nbp_lon 380 383 381 384 IMPLICIT NONE 382 INCLUDE 'dimensions.h'383 INCLUDE 'iniprint.h'384 385 385 386 CHARACTER(LEN=*), INTENT(IN) :: field_name … … 387 388 388 389 REAL,DIMENSION(klon_mpi,SIZE(field,2)) :: buffer_omp 389 REAL :: Field3d( iim,jj_nb,SIZE(field,2))390 REAL :: Field3d(nbp_lon,jj_nb,SIZE(field,2)) 390 391 INTEGER :: ip, n, nlev 391 392 -
LMDZ5/trunk/libf/phydev/physiq.F90
r2320 r2326 18 18 USE mod_phys_lmdz_para, only : jj_nb 19 19 USE phys_state_var_mod, only : phys_state_var_init 20 USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat 20 21 21 22 #ifdef CPP_XIOS … … 26 27 27 28 IMPLICIT none 28 #include "dimensions.h"29 30 integer,parameter :: jjmp1=jjm+1-1/jjm31 integer,parameter :: iip1=iim+132 29 ! 33 30 ! Routine argument: … … 55 52 real,intent(out) :: d_qx(klon,klev,nqtot) ! physics tendency on tracers 56 53 real,intent(out) :: d_ps(klon) ! physics tendency on surface pressure 57 real,intent(in) :: dudyn( iim+1,jjmp1,klev) ! Not used54 real,intent(in) :: dudyn(nbp_lon+1,nbp_lat,klev) ! Not used 58 55 59 56 integer,save :: itau=0 ! counter to count number of calls to physics … … 114 111 ! define variables which will be written in "histins.nc" file 115 112 call histdef(nid_hist,'temperature','Atmospheric temperature','K', & 116 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &113 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 117 114 'inst(X)',t_ops,t_wrt) 118 115 call histdef(nid_hist,'u','Eastward Zonal Wind','m/s', & 119 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &116 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 120 117 'inst(X)',t_ops,t_wrt) 121 118 call histdef(nid_hist,'v','Northward Meridional Wind','m/s', & 122 iim,jj_nb,nhori,klev,1,klev,zvertid,32, &119 nbp_lon,jj_nb,nhori,klev,1,klev,zvertid,32, & 123 120 'inst(X)',t_ops,t_wrt) 124 121 call histdef(nid_hist,'ps','Surface Pressure','Pa', & 125 iim,jj_nb,nhori,1,1,1,zvertid,32, &122 nbp_lon,jj_nb,nhori,1,1,1,zvertid,32, & 126 123 'inst(X)',t_ops,t_wrt) 127 124 ! end definition sequence -
LMDZ5/trunk/makelmdz
r2269 r2326 296 296 then 297 297 #We'll use some physics 298 src_dirs="$src_dirs phy $physique"298 src_dirs="$src_dirs phy_common phy$physique" 299 299 LIBPHY='$(LIBO)/libphy'"$physique"'.a' 300 lib_phy='-lphy'"$physique" 300 LIBPHY_COMMON='$(LIBO)/libphy_common.a' 301 lib_phy='-lphy'"$physique"' -lphy_common' 301 302 CPP_KEY="$CPP_KEY CPP_PHYS" 302 303 if [[ $phys_root == "lmd" ]] … … 690 691 "PHYS=$physique" \ 691 692 LIBPHY=${LIBPHY} \ 693 LIBPHY_COMMON=${LIBPHY_COMMON} \ 692 694 LIBDYN_PHYS=${LIBDYN_PHYS} \ 693 695 DIM=$dimc \ … … 721 723 "PHYS=$physique" \ 722 724 LIBPHY=${LIBPHY} \ 725 LIBPHY_COMMON=${LIBPHY_COMMON} \ 723 726 LIBDYN_PHYS=${LIBDYN_PHYS} \ 724 727 DIM=$dimc \ -
LMDZ5/trunk/makelmdz_fcm
r2266 r2326 43 43 DYN_PHYS_PATH=$LMDGCM/.void_dir 44 44 DYN_PHYS_SUB_PATH=$LMDGCM/.void_dir 45 PHY_COMMON_PATH=$LMDGCM/.void_dir 45 46 RRTM_PATH=$LMDGCM/.void_dir 46 47 SISVAT_PATH=$LMDGCM/.void_dir … … 252 253 CPP_KEY="$CPP_KEY CPP_EARTH" 253 254 fi 255 # set physics common utilities path 256 PHY_COMMON_PATH="${LIBFGCM}/phy_common" 254 257 # set the dyn/phys interface path 255 258 DYN_PHYS_PATH="${LIBFGCM}/dynlonlat_phylonlat" … … 557 560 echo "%DYN $DYN" >> $config_fcm 558 561 echo "%DYN_COMMON $DYN_COMMON_PATH" >> $config_fcm 562 echo "%PHY_COMMON $PHY_COMMON_PATH" >> $config_fcm 559 563 echo "%FILTRE $FILTRE_PATH" >> $config_fcm 560 564 echo "%PHYS phy${physique}" >> $config_fcm
Note: See TracChangeset
for help on using the changeset viewer.