- Timestamp:
- Apr 11, 2018, 10:27:28 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/limit_read_mod.F90
r2788 r3312 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 MODULE limit_read_mod … … 31 31 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 32 32 33 34 SUBROUTINE init_limit_read(first_day) 35 USE mod_grid_phy_lmdz 36 USE surface_data 37 USE mod_phys_lmdz_para 38 #ifdef CPP_XIOS 39 USE XIOS 40 #endif 41 IMPLICIT NONE 42 INTEGER, INTENT(IN) :: first_day 43 44 45 IF ( type_ocean /= 'couple') THEN 46 IF (grid_type==unstructured) THEN 47 #ifdef CPP_XIOS 48 IF (is_omp_master) CALL xios_set_file_attr("limit_read",enabled=.TRUE.,record_offset=first_day) 49 #endif 50 ENDIF 51 ENDIF 52 53 END SUBROUTINE init_limit_read 54 33 55 SUBROUTINE limit_read_frac(itime, dtime, jour, pctsrf_new, is_modified) 34 56 ! … … 150 172 USE phys_cal_mod, ONLY : calend, year_len 151 173 USE print_control_mod, ONLY: lunout, prt_level 152 174 #ifdef CPP_XIOS 175 USE XIOS, ONLY: xios_recv_field 176 #endif 177 153 178 IMPLICIT NONE 154 179 … … 179 204 REAL, DIMENSION(klon_glo) :: rug_glo ! rugosity at global grid 180 205 REAL, DIMENSION(klon_glo) :: alb_glo ! albedo at global grid 206 207 REAL, DIMENSION(klon_mpi,nbsrf) :: pct_mpi ! fraction at global grid 208 REAL, DIMENSION(klon_mpi) :: sst_mpi ! sea-surface temperature at global grid 209 REAL, DIMENSION(klon_mpi) :: rug_mpi ! rugosity at global grid 210 REAL, DIMENSION(klon_mpi) :: alb_mpi ! albedo at global grid 211 181 212 CHARACTER(len=20) :: modname='limit_read_mod' 182 213 CHARACTER(LEN=99) :: abort_message, calendar, str … … 220 251 END IF 221 252 222 !--- ERROR IF FILE RECORDS NUMBER IS NOT EQUAL TO EXPECTED NUMBER OF DAYS 223 ierr=NF90_INQUIRE(nid, UnlimitedDimID=ndimid) 253 !--- ERROR IF FILE RECORDS NUMBER IS NOT EQUAL TO EXPECTED NUMBER OF DAYS 254 IF (grid_type==unstructured) THEN 255 ierr=NF90_INQ_DIMID(nid,"time_year",ndimid) 256 ELSE 257 ierr=NF90_INQUIRE(nid, UnlimitedDimID=ndimid) 258 ENDIF 224 259 ierr=NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn) 225 260 WRITE(abort_message,'(a,2(i3,a))')'limit.nc records number (',nn,') does no'//& … … 228 263 229 264 !--- ERROR IF FILES AND LMDZ HORIZONTAL RESOLUTIONS DO NOT MATCH 230 ierr=NF90_INQ_DIMID(nid, 'points_physiques', ndimid) 265 IF (grid_type==unstructured) THEN 266 ierr=NF90_INQ_DIMID(nid, 'cell', ndimid) 267 ELSE 268 ierr=NF90_INQ_DIMID(nid, 'points_physiques', ndimid) 269 ENDIF 231 270 ierr=NF90_INQUIRE_DIMENSION(nid, ndimid, len=nn) 232 271 WRITE(abort_message,'(a,2(i0,a))')'limit.nc horizontal number of cells (',nn, & … … 252 291 jour_lu = jour 253 292 is_modified = .TRUE. 293 294 IF (grid_type==unstructured) THEN 295 296 #ifdef CPP_XIOS 297 IF ( type_ocean /= 'couple') THEN 298 299 IF (is_omp_master) CALL xios_recv_field("foce_limin",pct_mpi(:,is_oce)) 300 IF (is_omp_master) CALL xios_recv_field("fsic_limin",pct_mpi(:,is_sic)) 301 ! IF (read_continents .OR. itime == 1) THEN 302 IF (is_omp_master) CALL xios_recv_field("fter_limin",pct_mpi(:,is_ter)) 303 IF (is_omp_master) CALL xios_recv_field("flic_limin",pct_mpi(:,is_lic)) 304 ! ENDIF 305 ENDIF! type_ocean /= couple 306 307 IF ( type_ocean /= 'couple') THEN 308 IF (is_omp_master) CALL xios_recv_field("sst_limin",sst_mpi) 309 ENDIF 310 311 IF (.NOT. ok_veget) THEN 312 IF (is_omp_master) CALL xios_recv_field("alb_limin",alb_mpi) 313 IF (is_omp_master) CALL xios_recv_field("rug_limin",rug_mpi) 314 ENDIF 315 316 IF ( type_ocean /= 'couple') THEN 317 CALL Scatter_omp(sst_mpi,sst) 318 CALL Scatter_omp(pct_mpi(:,is_oce),pctsrf(:,is_oce)) 319 CALL Scatter_omp(pct_mpi(:,is_sic),pctsrf(:,is_sic)) 320 ! IF (read_continents .OR. itime == 1) THEN 321 CALL Scatter_omp(pct_mpi(:,is_ter),pctsrf(:,is_ter)) 322 CALL Scatter_omp(pct_mpi(:,is_lic),pctsrf(:,is_lic)) 323 ! END IF 324 END IF 325 326 IF (.NOT. ok_veget) THEN 327 CALL Scatter_omp(alb_mpi, albedo) 328 CALL Scatter_omp(rug_mpi, rugos) 329 END IF 330 #endif 331 332 333 ELSE ! grid_type==regular 334 254 335 !$OMP MASTER ! Only master thread 255 336 IF (is_mpi_root) THEN ! Only master processus … … 371 452 END IF 372 453 454 ENDIF ! Grid type 455 373 456 ENDIF ! time to read 374 457
Note: See TracChangeset
for help on using the changeset viewer.