New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 559 for trunk/NEMO/OPA_SRC – NEMO

Changeset 559 for trunk/NEMO/OPA_SRC


Ignore:
Timestamp:
2006-11-08T08:58:27+01:00 (17 years ago)
Author:
opalod
Message:

nemo_v1_bugfix_071: SM: write nav_lon, nav_lat, nav_lev and time_counetr in iom_rstput with NetCDF files

Location:
trunk/NEMO/OPA_SRC/IOM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/IOM/iom_ioipsl.F90

    r556 r559  
    330330               &                  long_name="Time axis", units='seconds since 0001-01-01 00:00:00' ) 
    331331         ! update informations structure related the dimension variable we just added... 
    332          iom_file(kiomid)%nvars         = 4 
    333          iom_file(kiomid)%luld(1:4)     = (/ .FALSE., .FALSE., .FALSE., .TRUE. /) 
    334          iom_file(kiomid)%cn_var(1:3)   = (/ 'nav_lon', 'nav_lat', 'nav_lev' /) 
    335          iom_file(kiomid)%cn_var(4)     = 'time_counter' 
    336          iom_file(kiomid)%ndims(1:4)    = (/ 2, 2, 1, 1 /)   
    337          CALL flioinqf( ioipslid, ln_dim = idimsz ) 
    338          iom_file(kiomid)%dimsz(1:2, 1) = idimsz(1:2) 
    339          iom_file(kiomid)%dimsz(1:2, 2) = idimsz(1:2) 
    340          iom_file(kiomid)%dimsz(1, 3:4) = (/idimsz(3), 1/) 
     332         iom_file(kiomid)%nvars       = 4 
     333         iom_file(kiomid)%luld(1:4)   = (/ .FALSE., .FALSE., .FALSE., .TRUE. /) 
     334         iom_file(kiomid)%cn_var(1:3) = (/ 'nav_lon', 'nav_lat', 'nav_lev' /) 
     335         iom_file(kiomid)%cn_var(4)   = 'time_counter' 
     336         iom_file(kiomid)%ndims(1:4)  = (/ 2, 2, 1, 1 /) 
     337         ! trick: defined to 0 to say that dimension variables are defined but not yet written 
     338         iom_file(kiomid)%dimsz(1, 1) = 0    
    341339         IF(lwp) WRITE(numout,*) TRIM(clinfo)//' define dimension variables done' 
    342340      ENDIF 
     
    403401            ! write dimension variables if it is not already done 
    404402            ! ============= 
     403            ! trick: is defined to 0 => dimension variable are defined but not yet written 
    405404            IF( iom_file(kiomid)%dimsz(1, 1) == 0 ) THEN 
    406405               CALL flioputv( ioipslid, 'nav_lon'     , glamt(ix1:ix2, iy1:iy2) ) 
     
    408407               CALL flioputv( ioipslid, 'nav_lev'     , gdept_0 ) 
    409408               ! +++ WRONG VALUE: to be improved but not really useful... 
    410                CALL flioputv( ioipslid, 'time_counter', kt )    
     409               CALL flioputv( ioipslid, 'time_counter', kt ) 
     410               ! update the values of the variables dimensions size 
     411               CALL flioinqf( ioipslid, ln_dim = idimsz ) 
     412               iom_file(kiomid)%dimsz(1:2, 1) = idimsz(1:2) 
     413               iom_file(kiomid)%dimsz(1:2, 2) = idimsz(1:2) 
     414               iom_file(kiomid)%dimsz(1, 3:4) = (/idimsz(3), 1/) 
    411415               IF(lwp) WRITE(numout,*) TRIM(clinfo)//' write dimension variables done' 
    412416            ENDIF 
  • trunk/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r556 r559  
    355355         iom_file(kiomid)%cn_var(1:4) = cltmp 
    356356         iom_file(kiomid)%ndims(1:4)  = (/ 2, 2, 1, 1 /)   
    357          CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 1, len = iom_file(kiomid)%dimsz(1,1) ), clinfo) 
    358          CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 2, len = iom_file(kiomid)%dimsz(2,1) ), clinfo) 
    359          iom_file(kiomid)%dimsz(1:2, 2) = iom_file(kiomid)%dimsz(1:2, 1) 
    360          CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 3, len = iom_file(kiomid)%dimsz(1,3) ), clinfo) 
    361          iom_file(kiomid)%dimsz(1  , 4) = 1   ! unlimited dimension 
     357         ! trick: defined to 0 to say that dimension variables are defined but not yet written 
     358         iom_file(kiomid)%dimsz(1, 1)  = 0    
    362359         IF(lwp) WRITE(numout,*) TRIM(clinfo)//' define dimension variables done' 
    363360      ENDIF 
     
    433430            ! write dimension variables if it is not already done 
    434431            ! ============= 
     432            ! trick: is defined to 0 => dimension variable are defined but not yet written 
    435433            IF( iom_file(kiomid)%dimsz(1, 1) == 0 ) THEN 
    436434               CALL iom_nf90_check(NF90_INQ_VARID( if90id, 'nav_lon'     , idmy ), clinfo) 
     
    443441               CALL iom_nf90_check(NF90_INQ_VARID( if90id, 'time_counter', idmy ), clinfo) 
    444442               CALL iom_nf90_check(NF90_PUT_VAR( if90id, idmy, kt                      ), clinfo)    
     443               ! update the values of the variables dimensions size 
     444               CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 1, len = iom_file(kiomid)%dimsz(1,1) ), clinfo) 
     445               CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 2, len = iom_file(kiomid)%dimsz(2,1) ), clinfo) 
     446               iom_file(kiomid)%dimsz(1:2, 2) = iom_file(kiomid)%dimsz(1:2, 1) 
     447               CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 3, len = iom_file(kiomid)%dimsz(1,3) ), clinfo) 
     448               iom_file(kiomid)%dimsz(1  , 4) = 1   ! unlimited dimension 
    445449               IF(lwp) WRITE(numout,*) TRIM(clinfo)//' write dimension variables done' 
    446450            ENDIF 
Note: See TracChangeset for help on using the changeset viewer.