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 7646 for trunk/NEMOGCM/TOOLS/SIREN/src/iom_cdf.f90 – NEMO

Ignore:
Timestamp:
2017-02-06T10:25:03+01:00 (7 years ago)
Author:
timgraham
Message:

Merge of dev_merge_2016 into trunk. UPDATE TO ARCHFILES NEEDED for XIOS2.
LIM_SRC_s/limrhg.F90 to follow in next commit due to change of kind (I'm unable to do it in this commit).
Merged using the following steps:

1) svn merge --reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk .
2) Resolve minor conflicts in sette.sh and namelist_cfg for ORCA2LIM3 (due to a change in trunk after branch was created)
3) svn commit
4) svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
5) svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2016/dev_merge_2016 .
6) At this stage I checked out a clean copy of the branch to compare against what is about to be committed to the trunk.
6) svn commit #Commit code to the trunk

In this commit I have also reverted a change to Fcheck_archfile.sh which was causing problems on the Paris machine.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/TOOLS/SIREN/src/iom_cdf.f90

    r6393 r7646  
    316316   !> @author J.Paul 
    317317   !> @date November, 2013 - Initial Version 
     318   !> @date October, 2016 
     319   !> - define cdf4 as cdf. 
    318320   ! 
    319321   !> @param[inout] td_file   file structure 
     
    340342            td_file%c_type='cdf' 
    341343         CASE(nf90_format_netcdf4, nf90_format_netcdf4_classic) 
    342             td_file%c_type='cdf4' 
     344            !td_file%c_type='cdf4' 
     345            td_file%c_type='cdf' 
    343346      END SELECT 
    344347 
     
    351354   !> reorder dimension to ('x', 'y', 'z', 't'). 
    352355   !> The dimension structure inside file structure is then completed. 
    353    ! 
    354    !> @author J.Paul 
    355    !> @date November, 2013 - Initial Version 
    356    ! 
     356   !> 
     357   !> @author J.Paul 
     358   !> @date November, 2013 - Initial Version 
     359   !> @date October, 2016 
     360   !> - check unknown dimension 
     361   !> 
    357362   !> @param[inout] td_file   file structure 
    358363   !------------------------------------------------------------------- 
     
    375380 
    376381      IF( td_file%i_ndim > 0 )THEN 
     382 
    377383         ii=1 
    378384         DO ji = 1, td_file%i_ndim 
    379385            ! read dimension information 
    380386            tl_dim=iom_cdf_read_dim( td_file, ji) 
    381             IF( .NOT. dim_is_dummy(tl_dim) )THEN 
     387            ! sname == 'u' if dimension is unknown (not to be used) 
     388            IF( TRIM(tl_dim%c_sname) /= 'u' )THEN 
    382389               IF( ii > ip_maxdim )THEN 
    383390                  CALL logger_fatal("IOM CDF OPEN: too much dimension "//& 
    384                   & "to be read. you should remove dummy dimension using "//& 
     391                  & "to be read. you could choose dimension to be used. see "//& 
    385392                  & " configuration file") 
    386393               ENDIF 
     
    395402            &  " IOM CDF GET FILE DIM: there is no unlimited dimension in file "//& 
    396403            &  TRIM(td_file%c_name)) 
    397          ELSE 
    398             td_file%t_dim( td_file%i_uldid )%l_uld=.TRUE. 
     404         !ELSE 
     405         !   td_file%t_dim( td_file%i_uldid )%l_uld=.TRUE. 
    399406         ENDIF 
    400407 
     
    466473   !> The variable structure inside file structure is then completed. 
    467474   !> @note variable value are not read ! 
    468    ! 
     475   !> 
    469476   !> @author J.Paul 
    470477   !> @date November, 2013 - Initial Version 
     
    473480   !> @date January, 2016 
    474481   !> - increment n3d for 4D variable 
    475    ! 
     482   !> @date October, 2016 
     483   !> - check if variable to be used (variable's dimension allowed and variable 
     484   !> not "dummy") 
     485   !> 
    476486   !> @param[inout] td_file   file structure 
    477487   !------------------------------------------------------------------- 
     
    501511         il_nvar=td_file%i_nvar 
    502512         ALLOCATE(tl_var(il_nvar)) 
    503          ii=0 
    504513         DO ji = 1, il_nvar 
    505514           ! read variable information 
    506515           tl_var(ji)=iom_cdf__read_var_meta( td_file, ji)  
    507            IF( .NOT. var_is_dummy(tl_var(ji)) )THEN 
    508               ii=ii+1 
    509            ENDIF 
    510516         ENDDO 
    511517 
    512518         ! update number of variable used 
    513          td_file%i_nvar=ii 
     519         td_file%i_nvar=COUNT(tl_var(:)%l_use) 
    514520 
    515521         ALLOCATE(td_file%t_var(td_file%i_nvar)) 
     
    517523         ii=0 
    518524         DO ji = 1, il_nvar 
    519             IF( .NOT. var_is_dummy(tl_var(ji)) )THEN 
     525            IF( tl_var(ji)%l_use )THEN 
    520526               ii=ii+1 
    521527               td_file%t_var(ii)=var_copy(tl_var(ji)) 
     
    552558                     td_file%i_timeid=ji 
    553559                  ELSE 
     560                     IF( td_file%i_timeid /= ji )THEN 
     561                        CALL logger_warn("IOM CDF GET FILE VAR: find more "//& 
     562                        &                 "than one time variable in file "//& 
     563                        &                 TRIM(td_file%c_name)//". see "//& 
     564                        &                 "dummy.cfg configuration file to"//& 
     565                        &                 " not used dummy variables.") 
     566                     ENDIF 
    554567                     il_attid=0 
    555568                     IF( ASSOCIATED(td_file%t_var(ii)%t_att) )THEN 
     
    558571                     IF( il_attid /= 0 )THEN 
    559572                        td_file%i_timeid=ji 
    560                      !ELSE 
    561                      !   CALL logger_error("IOM CDF GET FILE VAR: find more "//& 
    562                      !   &                 "than one time variable in file "//& 
    563                      !   &                 TRIM(td_file%c_name) ) 
    564573                     ENDIF 
    565574                  ENDIF 
     
    652661         &  " IOM CDF READ DIM: no id associated to file "//TRIM(td_file%c_name)) 
    653662 
    654       ELSE       
     663      ELSE 
    655664 
    656665         CALL logger_trace( & 
     
    14131422         ENDDO 
    14141423 
     1424         !! check if variable is dummy 
     1425         IF( var_is_dummy(iom_cdf__read_var_meta) )THEN 
     1426            iom_cdf__read_var_meta%l_use=.FALSE. 
     1427         ENDIF 
     1428 
     1429         !! check if all dimensions are allowed 
     1430         DO ji=1,il_ndim 
     1431            IF( ALL(td_file%t_dim(:)%i_id /= il_dimid(ji)) )THEN 
     1432               iom_cdf__read_var_meta%l_use=.FALSE. 
     1433            ENDIF 
     1434         ENDDO 
     1435 
    14151436         ! clean 
    14161437         CALL dim_clean(tl_dim(:)) 
     
    14841505      ELSE IF( id_ndim > 0 )THEN 
    14851506 
    1486  
    14871507         ii=1 
    14881508         DO ji = 1, id_ndim 
    14891509 
    1490             !!! check no dummy dimension to be used 
     1510            ! check if dimension to be used, is allowed 
    14911511            IF( ANY(td_file%t_dim(:)%i_id == id_dimid(ji)) )THEN 
    14921512               IF( ii > ip_maxdim )THEN 
     
    15001520 
    15011521               il_xyzt2(ii)=td_file%t_dim(id_dimid(ji))%i_xyzt2 
    1502  
     1522                
    15031523               ! read dimension information 
    15041524               tl_dim(ii) = dim_init( td_file%t_dim(il_xyzt2(ii))%c_name, & 
    15051525               &                      td_file%t_dim(il_xyzt2(ii))%i_len ) 
    1506              
     1526 
    15071527               ii=ii+1 
    15081528            ELSE 
     
    20802100                  & 'gcost','gcosu','gcosv','gcosf', & 
    20812101                  & 'gsint','gsinu','gsinv','gsinf', & 
    2082                   & 'mbathy','misf','isf_draft',     & 
     2102                  & 'mbathy','misf','isf_draft','isfdraft',     & 
    20832103                  & 'hbatt','hbatu','hbatv','hbatf', & 
    20842104                  & 'gsigt','gsigu','gsigv','gsigf', & 
     
    21892209         CALL iom_cdf__check(il_status,"IOM CDF WRITE VAR DEF: ") 
    21902210      ENDIF 
     2211      CALL logger_debug("IOM CDF WRITE VAR DEF: type = "//TRIM(fct_str(tl_var%i_type))) 
    21912212 
    21922213      ! remove unuseful attribute 
Note: See TracChangeset for help on using the changeset viewer.