- Timestamp:
- 2015-12-15T10:46:14+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r5836 r6051 8 8 !! 3.0 ! 2007-07 (D. Storkey) Changes to iom_gettime 9 9 !! 3.4 ! 2012-12 (R. Bourdalle-Badie and G. Reffray) add C1D case 10 !! 3.6 ! 2014-15 DIMG format removed 10 11 !!-------------------------------------------------------------------- 11 12 … … 23 24 USE lbclnk ! lateal boundary condition / mpp exchanges 24 25 USE iom_def ! iom variables definitions 25 USE iom_ioipsl ! NetCDF format with IOIPSL library26 26 USE iom_nf90 ! NetCDF format with native NetCDF library 27 USE iom_rstdimg ! restarts access direct format "dimg" style...28 27 USE in_out_manager ! I/O manager 29 28 USE lib_mpp ! MPP library … … 246 245 CHARACTER(LEN=256) :: clname ! the name of the file based on cdname [[+clcpu]+clcpu] 247 246 CHARACTER(LEN=256) :: cltmpn ! tempory name to store clname (in writting mode) 248 CHARACTER(LEN=10) :: clsuffix ! ".nc" or ".dimg"247 CHARACTER(LEN=10) :: clsuffix ! ".nc" 249 248 CHARACTER(LEN=15) :: clcpu ! the cpu number (max jpmax_digits digits) 250 249 CHARACTER(LEN=256) :: clinfo ! info character … … 309 308 ! which suffix should we use? 310 309 SELECT CASE (iolib) 311 CASE (jpioipsl ) ; clsuffix = '.nc'312 310 CASE (jpnf90 ) ; clsuffix = '.nc' 313 CASE (jprstdimg) ; clsuffix = '.dimg'314 311 CASE DEFAULT ; clsuffix = '' 315 CALL ctl_stop( TRIM(clinfo), 'accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )312 CALL ctl_stop( TRIM(clinfo), 'accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 316 313 END SELECT 317 314 ! Add the suffix if needed … … 326 323 IF( .NOT.llok ) THEN 327 324 ! we try to add the cpu number to the name 328 IF( iolib == jprstdimg ) THEN ; WRITE(clcpu,*) narea 329 ELSE ; WRITE(clcpu,*) narea-1 330 ENDIF 325 WRITE(clcpu,*) narea-1 326 331 327 clcpu = TRIM(ADJUSTL(clcpu)) 332 328 iln = INDEX(clname,TRIM(clsuffix), back = .TRUE.) … … 375 371 END SELECT 376 372 ENDIF 377 ! Open the NetCDF or RSTDIMGfile373 ! Open the NetCDF file 378 374 ! ============= 379 375 ! do we have some free file identifier? … … 399 395 IF( istop == nstop ) THEN ! no error within this routine 400 396 SELECT CASE (iolib) 401 CASE (jpioipsl ) ; CALL iom_ioipsl_open( clname, kiomid, llwrt, llok, idompar )402 397 CASE (jpnf90 ) ; CALL iom_nf90_open( clname, kiomid, llwrt, llok, idompar ) 403 CASE (jprstdimg) ; CALL iom_rstdimg_open( clname, kiomid, llwrt, llok, idompar )404 398 CASE DEFAULT 405 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )399 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 406 400 END SELECT 407 401 ENDIF … … 438 432 IF( iom_file(jf)%nfid > 0 ) THEN 439 433 SELECT CASE (iom_file(jf)%iolib) 440 CASE (jpioipsl ) ; CALL iom_ioipsl_close( jf )441 434 CASE (jpnf90 ) ; CALL iom_nf90_close( jf ) 442 CASE (jprstdimg) ; CALL iom_rstdimg_close( jf )443 435 CASE DEFAULT 444 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )436 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 445 437 END SELECT 446 438 iom_file(jf)%nfid = 0 ! free the id … … 497 489 IF( iiv <= jpmax_vars ) THEN 498 490 SELECT CASE (iom_file(kiomid)%iolib) 499 CASE (jpioipsl ) ; iom_varid = iom_ioipsl_varid( kiomid, cdvar, iiv, kdimsz )500 491 CASE (jpnf90 ) ; iom_varid = iom_nf90_varid ( kiomid, cdvar, iiv, kdimsz, kndims ) 501 CASE (jprstdimg) ; iom_varid = -1 ! all variables are listed in iom_file 502 CASE DEFAULT 503 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 492 CASE DEFAULT 493 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 504 494 END SELECT 505 495 ELSE … … 559 549 & 'Use ncwa -a to suppress the unnecessary dimensions' ) 560 550 SELECT CASE (iom_file(kiomid)%iolib) 561 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, pvar, itime )562 551 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, pvar, itime ) 563 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idvar, pvar ) 564 CASE DEFAULT 565 CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 552 CASE DEFAULT 553 CALL ctl_stop( 'iom_g0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 566 554 END SELECT 567 555 ENDIF … … 694 682 IF( luse_jattr ) THEN 695 683 SELECT CASE (iom_file(kiomid)%iolib) 696 CASE (jpioipsl, jprstdimg )697 CALL ctl_warn(trim(clinfo), 'lrowattr present and true but this only works with netcdf (jpnf90)')698 luse_jattr = .false.699 684 CASE (jpnf90 ) 700 685 ! Ok 701 686 CASE DEFAULT 702 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' )687 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 703 688 END SELECT 704 689 ENDIF … … 866 851 867 852 SELECT CASE (iom_file(kiomid)%iolib) 868 CASE (jpioipsl ) ; CALL iom_ioipsl_get( kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2, &869 & pv_r1d, pv_r2d, pv_r3d )870 853 CASE (jpnf90 ) ; CALL iom_nf90_get( kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2, & 871 854 & pv_r1d, pv_r2d, pv_r3d ) 872 CASE (jprstdimg) ; CALL iom_rstdimg_get( kiomid, idom, idvar, ix1, ix2, iy1, iy2, & 873 & pv_r1d, pv_r2d, pv_r3d ) 874 CASE DEFAULT 875 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 855 CASE DEFAULT 856 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 876 857 END SELECT 877 858 … … 956 937 IF( iom_file(kiomid)%dimsz(1,idvar) <= size(ptime) ) THEN 957 938 SELECT CASE (iom_file(kiomid)%iolib) 958 CASE (jpioipsl ) ; CALL iom_ioipsl_gettime( kiomid, idvar, ptime, cdunits, cdcalendar )959 939 CASE (jpnf90 ) ; CALL iom_nf90_gettime( kiomid, idvar, ptime, cdunits, cdcalendar ) 960 CASE (jprstdimg) ; CALL ctl_stop( TRIM(clinfo)//' case IO library == jprstdimg not coded...' ) 961 CASE DEFAULT 962 CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 940 CASE DEFAULT 941 CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 963 942 END SELECT 964 943 ELSE … … 991 970 IF( iom_file(kiomid)%nfid > 0 ) THEN 992 971 SELECT CASE (iom_file(kiomid)%iolib) 993 CASE (jpioipsl ) ; CALL ctl_stop('iom_getatt: only nf90 available')994 972 CASE (jpnf90 ) ; CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 995 CASE (jprstdimg) ; CALL ctl_stop('iom_getatt: only nf90 available') 996 CASE DEFAULT 997 CALL ctl_stop( 'iom_g0d_att: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 973 CASE DEFAULT 974 CALL ctl_stop( 'iom_g0d_att: accepted IO library is only jpnf90' ) 998 975 END SELECT 999 976 ENDIF … … 1017 994 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 1018 995 SELECT CASE (iom_file(kiomid)%iolib) 1019 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar )1020 996 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 1021 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pvar ) 1022 CASE DEFAULT 1023 CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 997 CASE DEFAULT 998 CALL ctl_stop( 'iom_rp0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 1024 999 END SELECT 1025 1000 ENDIF … … 1039 1014 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 1040 1015 SELECT CASE (iom_file(kiomid)%iolib) 1041 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar )1042 1016 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 1043 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r1d = pvar ) 1044 CASE DEFAULT 1045 CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 1017 CASE DEFAULT 1018 CALL ctl_stop( 'iom_rp1d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 1046 1019 END SELECT 1047 1020 ENDIF … … 1061 1034 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 1062 1035 SELECT CASE (iom_file(kiomid)%iolib) 1063 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar )1064 1036 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 1065 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r2d = pvar ) 1066 CASE DEFAULT 1067 CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 1037 CASE DEFAULT 1038 CALL ctl_stop( 'iom_rp2d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 1068 1039 END SELECT 1069 1040 ENDIF … … 1083 1054 ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 1084 1055 SELECT CASE (iom_file(kiomid)%iolib) 1085 CASE (jpioipsl ) ; CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar )1086 1056 CASE (jpnf90 ) ; CALL iom_nf90_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 1087 CASE (jprstdimg) ; IF( kt == kwrite ) CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r3d = pvar ) 1088 CASE DEFAULT 1089 CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' ) 1057 CASE DEFAULT 1058 CALL ctl_stop( 'iom_rp3d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 1090 1059 END SELECT 1091 1060 ENDIF … … 1645 1614 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 1646 1615 DO WHILE ( idx /= 0 ) 1647 cldate = iom_sdate( fjulday - rdt tra(1)/ rday )1616 cldate = iom_sdate( fjulday - rdt / rday ) 1648 1617 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+11:LEN_TRIM(clname)) 1649 1618 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') … … 1652 1621 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 1653 1622 DO WHILE ( idx /= 0 ) 1654 cldate = iom_sdate( fjulday - rdt tra(1)/ rday, ldfull = .TRUE. )1623 cldate = iom_sdate( fjulday - rdt / rday, ldfull = .TRUE. ) 1655 1624 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+15:LEN_TRIM(clname)) 1656 1625 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') … … 1659 1628 idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 1660 1629 DO WHILE ( idx /= 0 ) 1661 cldate = iom_sdate( fjulday + rdt tra(1)/ rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. )1630 cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 1662 1631 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+9:LEN_TRIM(clname)) 1663 1632 idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') … … 1666 1635 idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 1667 1636 DO WHILE ( idx /= 0 ) 1668 cldate = iom_sdate( fjulday + rdt tra(1)/ rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. )1637 cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 1669 1638 clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+13:LEN_TRIM(clname)) 1670 1639 idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@')
Note: See TracChangeset
for help on using the changeset viewer.