Changeset 13226 for NEMO/trunk/src/OCE/IOM/iom_nf90.F90
- Timestamp:
- 2020-07-02T16:24:31+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/IOM/iom_nf90.F90
r13009 r13226 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 … … 276 277 !!---------------------------------------------------------------------- 277 278 278 SUBROUTINE iom_nf90_g0d ( kiomid, kvid, pvar, kstart )279 SUBROUTINE iom_nf90_g0d_sp( kiomid, kvid, pvar, kstart ) 279 280 !!----------------------------------------------------------------------- 280 281 !! *** ROUTINE iom_nf90_g0d *** … … 284 285 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 285 286 INTEGER , INTENT(in ) :: kvid ! variable id 286 REAL( wp), INTENT( out) :: pvar ! read field287 REAL(sp), INTENT( out) :: pvar ! read field 287 288 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 288 289 ! … … 291 292 clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid)) 292 293 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo ) 293 END SUBROUTINE iom_nf90_g0d 294 295 296 SUBROUTINE iom_nf90_g123d( kiomid, kvid, knbdim, kstart, kcount, kx1, kx2, ky1, ky2, & 294 END SUBROUTINE iom_nf90_g0d_sp 295 296 SUBROUTINE iom_nf90_g0d_dp( kiomid, kvid, pvar, kstart ) 297 !!----------------------------------------------------------------------- 298 !! *** ROUTINE iom_nf90_g0d *** 299 !! 300 !! ** Purpose : read a scalar with NF90 301 !!----------------------------------------------------------------------- 302 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 303 INTEGER , INTENT(in ) :: kvid ! variable id 304 REAL(dp), INTENT( out) :: pvar ! read field 305 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 306 ! 307 CHARACTER(LEN=100) :: clinfo ! info character 308 !--------------------------------------------------------------------- 309 clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid)) 310 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo ) 311 END SUBROUTINE iom_nf90_g0d_dp 312 313 SUBROUTINE iom_nf90_g123d_dp( kiomid, kvid, knbdim, kstart, kcount, kx1, kx2, ky1, ky2, & 297 314 & pv_r1d, pv_r2d, pv_r3d ) 298 315 !!----------------------------------------------------------------------- … … 309 326 INTEGER , DIMENSION(:) , INTENT(in ) :: kcount ! number of points to be read in each axis 310 327 INTEGER , INTENT(in ) :: kx1, kx2, ky1, ky2 ! subdomain indexes 311 REAL( wp), DIMENSION(:) , INTENT( out), OPTIONAL :: pv_r1d ! read field (1D case)312 REAL( wp), DIMENSION(:,:) , INTENT( out), OPTIONAL :: pv_r2d ! read field (2D case)313 REAL( wp), DIMENSION(:,:,:) , INTENT( out), OPTIONAL :: pv_r3d ! read field (3D case)328 REAL(dp), DIMENSION(:) , INTENT( out), OPTIONAL :: pv_r1d ! read field (1D case) 329 REAL(dp), DIMENSION(:,:) , INTENT( out), OPTIONAL :: pv_r2d ! read field (2D case) 330 REAL(dp), DIMENSION(:,:,:) , INTENT( out), OPTIONAL :: pv_r3d ! read field (3D case) 314 331 ! 315 332 CHARACTER(LEN=100) :: clinfo ! info character … … 332 349 ENDIF 333 350 ! 334 END SUBROUTINE iom_nf90_g123d 351 END SUBROUTINE iom_nf90_g123d_dp 352 335 353 336 354 … … 506 524 END SUBROUTINE iom_nf90_putatt 507 525 508 509 SUBROUTINE iom_nf90_rp0123d( kt, kwrite, kiomid, cdvar , kvid , ktype, & 526 SUBROUTINE iom_nf90_rp0123d_dp( kt, kwrite, kiomid, cdvar , kvid , ktype, & 510 527 & pv_r0d, pv_r1d, pv_r2d, pv_r3d ) 511 528 !!-------------------------------------------------------------------- … … 520 537 INTEGER , INTENT(in) :: kvid ! variable id 521 538 INTEGER , INTENT(in), OPTIONAL :: ktype ! variable type (default R8) 522 REAL( wp) , INTENT(in), OPTIONAL :: pv_r0d ! written Od field523 REAL( wp), DIMENSION( :), INTENT(in), OPTIONAL :: pv_r1d ! written 1d field524 REAL( wp), DIMENSION(:, : ), INTENT(in), OPTIONAL :: pv_r2d ! written 2d field525 REAL( wp), DIMENSION(:, :, :), INTENT(in), OPTIONAL :: pv_r3d ! written 3d field539 REAL(dp) , INTENT(in), OPTIONAL :: pv_r0d ! written Od field 540 REAL(dp), DIMENSION( :), INTENT(in), OPTIONAL :: pv_r1d ! written 1d field 541 REAL(dp), DIMENSION(:, : ), INTENT(in), OPTIONAL :: pv_r2d ! written 2d field 542 REAL(dp), DIMENSION(:, :, :), INTENT(in), OPTIONAL :: pv_r3d ! written 3d field 526 543 ! 527 544 INTEGER :: idims ! number of dimension … … 704 721 ENDIF 705 722 ! 706 END SUBROUTINE iom_nf90_rp0123d 723 END SUBROUTINE iom_nf90_rp0123d_dp 707 724 708 725
Note: See TracChangeset
for help on using the changeset viewer.