- Timestamp:
- 2013-11-19T12:19:21+01:00 (10 years ago)
- Location:
- branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r4205 r4245 479 479 !! INTERFACE iom_get 480 480 !!---------------------------------------------------------------------- 481 SUBROUTINE iom_g0d( kiomid, cdvar, pvar )481 SUBROUTINE iom_g0d( kiomid, cdvar, pvar, ktime ) 482 482 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 483 483 CHARACTER(len=*), INTENT(in ) :: cdvar ! Name of the variable 484 484 REAL(wp) , INTENT( out) :: pvar ! read field 485 ! 486 INTEGER :: idvar ! variable id 485 INTEGER , INTENT(in ), OPTIONAL :: ktime ! record number 486 ! 487 INTEGER :: idvar ! variable id 488 INTEGER :: idmspc ! number of spatial dimensions 489 INTEGER , DIMENSION(1) :: itime ! record number 490 CHARACTER(LEN=100) :: clinfo ! info character 491 CHARACTER(LEN=100) :: clname ! file name 492 CHARACTER(LEN=1) :: cldmspc ! 493 ! 494 itime = 1 495 IF( PRESENT(ktime) ) itime = ktime 496 ! 497 clname = iom_file(kiomid)%name 498 clinfo = ' iom_g0d, file: '//trim(clname)//', var: '//trim(cdvar) 487 499 ! 488 500 IF( kiomid > 0 ) THEN 489 501 idvar = iom_varid( kiomid, cdvar ) 490 502 IF( iom_file(kiomid)%nfid > 0 .AND. idvar > 0 ) THEN 503 idmspc = iom_file ( kiomid )%ndims( idvar ) 504 IF( iom_file(kiomid)%luld(idvar) ) idmspc = idmspc - 1 505 WRITE(cldmspc , fmt='(i1)') idmspc 506 IF( idmspc > 0 ) CALL ctl_stop( TRIM(clinfo), 'When reading to a 0D array, we do not accept data', & 507 & 'with 1 or more spatial dimensions: '//cldmspc//' were found.' , & 508 & 'Use ncwa -a to suppress the unnecessary dimensions' ) 491 509 SELECT CASE (iom_file(kiomid)%iolib) 492 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, pvar )493 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, pvar )510 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, pvar, itime ) 511 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, pvar, itime ) 494 512 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idvar, pvar ) 495 513 CASE DEFAULT … … 656 674 ELSE 657 675 CALL ctl_stop( TRIM(clinfo), 'To keep iom lisibility, when reading a '//clrankpv//'D array,' , & 658 & 'we do not accept data with more than '//cldmspc//' spatial dimension', &676 & 'we do not accept data with '//cldmspc//' spatial dimensions', & 659 677 & 'Use ncwa -a to suppress the unnecessary dimensions' ) 660 678 ENDIF … … 768 786 769 787 IF( istop == nstop ) THEN ! no additional errors until this point... 770 IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i 4,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name)788 IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name) 771 789 772 790 !--- overlap areas and extra hallows (mpp) -
branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_ioipsl.F90
r2715 r4245 170 170 iom_file(kiomid)%cn_var(kiv) = TRIM(cdvar) 171 171 iom_file(kiomid)%ndims(kiv) = i_nvd 172 iom_file(kiomid)%dimsz(:,kiv) = 0 ! reset dimsz in case previously used 172 173 CALL flioinqv( ioipslid, cdvar, ll_fnd, & 173 174 & len_dims = iom_file(kiomid)%dimsz(1:i_nvd,kiv), & ! dimensions size … … 210 211 211 212 212 SUBROUTINE iom_ioipsl_g0d( kiomid, kvid, pvar )213 SUBROUTINE iom_ioipsl_g0d( kiomid, kvid, pvar, kstart ) 213 214 !!----------------------------------------------------------------------- 214 215 !! *** ROUTINE iom_ioipsl_g0d *** … … 216 217 !! ** Purpose : read a scalar with IOIPSL (only fliocom module) 217 218 !!----------------------------------------------------------------------- 218 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 219 INTEGER , INTENT(in ) :: kvid ! variable id 220 REAL(wp), INTENT( out) :: pvar ! read field 221 ! 222 CALL fliogetv( iom_file(kiomid)%nfid, TRIM(iom_file(kiomid)%cn_var(kvid)), pvar ) 219 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 220 INTEGER , INTENT(in ) :: kvid ! variable id 221 REAL(wp), INTENT( out) :: pvar ! read field 222 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 223 ! 224 CALL fliogetv( iom_file(kiomid)%nfid, TRIM(iom_file(kiomid)%cn_var(kvid)), pvar, kstart ) 223 225 ! 224 226 END SUBROUTINE iom_ioipsl_g0d -
branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90
r4161 r4245 217 217 CALL iom_nf90_check(NF90_Inquire_Variable(if90id, ivarid, dimids = idimid(1:i_nvd)), clinfo) ! dimensions ids 218 218 iom_file(kiomid)%luld(kiv) = .FALSE. ! default value 219 iom_file(kiomid)%dimsz(:,kiv) = 0 ! reset dimsz in case previously used 219 220 DO ji = 1, i_nvd ! dimensions size 220 221 CALL iom_nf90_check(NF90_Inquire_Dimension(if90id, idimid(ji), len = iom_file(kiomid)%dimsz(ji,kiv)), clinfo) … … 251 252 252 253 253 SUBROUTINE iom_nf90_g0d( kiomid, kvid, pvar )254 SUBROUTINE iom_nf90_g0d( kiomid, kvid, pvar, kstart ) 254 255 !!----------------------------------------------------------------------- 255 256 !! *** ROUTINE iom_nf90_g0d *** … … 257 258 !! ** Purpose : read a scalar with NF90 258 259 !!----------------------------------------------------------------------- 259 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 260 INTEGER , INTENT(in ) :: kvid ! variable id 261 REAL(wp), INTENT( out) :: pvar ! read field 260 INTEGER , INTENT(in ) :: kiomid ! Identifier of the file 261 INTEGER , INTENT(in ) :: kvid ! variable id 262 REAL(wp), INTENT( out) :: pvar ! read field 263 INTEGER , DIMENSION(1), INTENT(in ), OPTIONAL :: kstart ! start position of the reading in each axis 262 264 ! 263 265 CHARACTER(LEN=100) :: clinfo ! info character 264 266 !--------------------------------------------------------------------- 265 267 clinfo = 'iom_nf90_g0d , file: '//TRIM(iom_file(kiomid)%name)//', var: '//TRIM(iom_file(kiomid)%cn_var(kvid)) 266 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar ), clinfo )268 CALL iom_nf90_check(NF90_GET_VAR(iom_file(kiomid)%nfid, iom_file(kiomid)%nvid(kvid), pvar, start = kstart), clinfo ) 267 269 ! 268 270 END SUBROUTINE iom_nf90_g0d
Note: See TracChangeset
for help on using the changeset viewer.