Changeset 12603 for NEMO/branches/2020/dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation/src/OCE/IOM/iom_nf90.F90
- Timestamp:
- 2020-03-25T16:20:25+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation/src/OCE/IOM/iom_nf90.F90
r12377 r12603 33 33 34 34 INTERFACE iom_nf90_get 35 MODULE PROCEDURE iom_nf90_g0d, iom_nf90_g123d 35 MODULE PROCEDURE iom_nf90_g0d_sp 36 MODULE PROCEDURE iom_nf90_g0d_dp, iom_nf90_g123d_dp 36 37 END INTERFACE 37 38 INTERFACE iom_nf90_rstput 38 MODULE PROCEDURE iom_nf90_rp0123d 39 MODULE PROCEDURE iom_nf90_rp0123d_dp 39 40 END INTERFACE 40 41 … … 273 274 !!---------------------------------------------------------------------- 274 275 275 SUBROUTINE iom_nf90_g0d ( kiomid, kvid, pvar, kstart )276 SUBROUTINE iom_nf90_g0d_sp( kiomid, kvid, pvar, kstart ) 276 277 !!----------------------------------------------------------------------- 277 278 !! *** ROUTINE iom_nf90_g0d *** … … 281 282 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 282 283 INTEGER , INTENT(in ) :: kvid ! variable id 283 REAL( wp), INTENT( out) :: pvar ! read field284 REAL(sp), INTENT( out) :: pvar ! read field 284 285 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 285 286 ! … … 288 289 clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid)) 289 290 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo ) 290 END SUBROUTINE iom_nf90_g0d 291 292 293 SUBROUTINE iom_nf90_g123d( kiomid, kvid, knbdim, kstart, kcount, kx1, kx2, ky1, ky2, & 291 END SUBROUTINE iom_nf90_g0d_sp 292 293 SUBROUTINE iom_nf90_g0d_dp( kiomid, kvid, pvar, kstart ) 294 !!----------------------------------------------------------------------- 295 !! *** ROUTINE iom_nf90_g0d *** 296 !! 297 !! ** Purpose : read a scalar with NF90 298 !!----------------------------------------------------------------------- 299 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 300 INTEGER , INTENT(in ) :: kvid ! variable id 301 REAL(dp), INTENT( out) :: pvar ! read field 302 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 303 ! 304 CHARACTER(LEN=100) :: clinfo ! info character 305 !--------------------------------------------------------------------- 306 clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid)) 307 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo ) 308 END SUBROUTINE iom_nf90_g0d_dp 309 310 SUBROUTINE iom_nf90_g123d_dp( kiomid, kvid, knbdim, kstart, kcount, kx1, kx2, ky1, ky2, & 294 311 & pv_r1d, pv_r2d, pv_r3d ) 295 312 !!----------------------------------------------------------------------- … … 306 323 INTEGER , DIMENSION(:) , INTENT(in ) :: kcount ! number of points to be read in each axis 307 324 INTEGER , INTENT(in ) :: kx1, kx2, ky1, ky2 ! subdomain indexes 308 REAL( wp), DIMENSION(:) , INTENT( out), OPTIONAL :: pv_r1d ! read field (1D case)309 REAL( wp), DIMENSION(:,:) , INTENT( out), OPTIONAL :: pv_r2d ! read field (2D case)310 REAL( wp), DIMENSION(:,:,:) , INTENT( out), OPTIONAL :: pv_r3d ! read field (3D case)325 REAL(dp), DIMENSION(:) , INTENT( out), OPTIONAL :: pv_r1d ! read field (1D case) 326 REAL(dp), DIMENSION(:,:) , INTENT( out), OPTIONAL :: pv_r2d ! read field (2D case) 327 REAL(dp), DIMENSION(:,:,:) , INTENT( out), OPTIONAL :: pv_r3d ! read field (3D case) 311 328 ! 312 329 CHARACTER(LEN=100) :: clinfo ! info character … … 329 346 ENDIF 330 347 ! 331 END SUBROUTINE iom_nf90_g123d 348 END SUBROUTINE iom_nf90_g123d_dp 349 332 350 333 351 … … 503 521 END SUBROUTINE iom_nf90_putatt 504 522 505 506 SUBROUTINE iom_nf90_rp0123d( kt, kwrite, kiomid, cdvar , kvid , ktype, & 523 SUBROUTINE iom_nf90_rp0123d_dp( kt, kwrite, kiomid, cdvar , kvid , ktype, & 507 524 & pv_r0d, pv_r1d, pv_r2d, pv_r3d ) 508 525 !!-------------------------------------------------------------------- … … 517 534 INTEGER , INTENT(in) :: kvid ! variable id 518 535 INTEGER , INTENT(in), OPTIONAL :: ktype ! variable type (default R8) 519 REAL( wp) , INTENT(in), OPTIONAL :: pv_r0d ! written Od field520 REAL( wp), DIMENSION( :), INTENT(in), OPTIONAL :: pv_r1d ! written 1d field521 REAL( wp), DIMENSION(:, : ), INTENT(in), OPTIONAL :: pv_r2d ! written 2d field522 REAL( wp), DIMENSION(:, :, :), INTENT(in), OPTIONAL :: pv_r3d ! written 3d field536 REAL(dp) , INTENT(in), OPTIONAL :: pv_r0d ! written Od field 537 REAL(dp), DIMENSION( :), INTENT(in), OPTIONAL :: pv_r1d ! written 1d field 538 REAL(dp), DIMENSION(:, : ), INTENT(in), OPTIONAL :: pv_r2d ! written 2d field 539 REAL(dp), DIMENSION(:, :, :), INTENT(in), OPTIONAL :: pv_r3d ! written 3d field 523 540 ! 524 541 INTEGER :: idims ! number of dimension … … 720 737 ENDIF 721 738 ! 722 END SUBROUTINE iom_nf90_rp0123d 739 END SUBROUTINE iom_nf90_rp0123d_dp 723 740 724 741
Note: See TracChangeset
for help on using the changeset viewer.