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 7867 – NEMO

Changeset 7867


Ignore:
Timestamp:
2017-04-03T17:11:05+02:00 (7 years ago)
Author:
andmirek
Message:

#1840 : add if PRESENT before each OPTIONAL variable in iom.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7864_XIOS_defs/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r7768 r7867  
    170170      ENDIF 
    171171 
    172       ! vertical grid definition 
    173       CALL iom_set_axis_attr( "deptht", gdept_1d ) 
    174       CALL iom_set_axis_attr( "depthu", gdept_1d ) 
    175       CALL iom_set_axis_attr( "depthv", gdept_1d ) 
    176       CALL iom_set_axis_attr( "depthw", gdepw_1d ) 
    177  
    178172      ! Add vertical grid bounds 
    179173      jkmin = MIN(2,jpk)  ! in case jpk=1 (i.e. sas2D) 
     
    184178      zw_bnds(2,1:jpkm1  ) = gdepw_1d(jkmin:jpk) 
    185179      zw_bnds(2,jpk:     ) = gdepw_1d(jpk) + e3t_1d(jpk) 
    186       CALL iom_set_axis_attr( "deptht", bounds=zt_bnds ) 
    187       CALL iom_set_axis_attr( "depthu", bounds=zt_bnds ) 
    188       CALL iom_set_axis_attr( "depthv", bounds=zt_bnds ) 
    189       CALL iom_set_axis_attr( "depthw", bounds=zw_bnds ) 
     180      CALL iom_set_axis_attr( "deptht", paxis=gdept_1d, bounds=zt_bnds ) 
     181      CALL iom_set_axis_attr( "depthu", paxis=gdept_1d, bounds=zt_bnds ) 
     182      CALL iom_set_axis_attr( "depthv", paxis=gdept_1d, bounds=zt_bnds ) 
     183      CALL iom_set_axis_attr( "depthw", paxis=gdepw_1d, bounds=zw_bnds ) 
    190184 
    191185 
     
    12561250 
    12571251      IF ( xios_is_valid_domain     (cdid) ) THEN 
    1258          CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   & 
    1259             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   & 
    1260             &    lonvalue_1D=lonvalue, latvalue_1D=latvalue, mask_1D=mask, nvertex=nvertex, bounds_lon_1D=bounds_lon,      & 
    1261             &    bounds_lat_1D=bounds_lat, area=area, type='curvilinear') 
     1252         CALL xios_set_domain_attr     ( cdid, type='curvilinear') 
     1253         IF(PRESENT (ni_glo))        CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo) 
     1254         IF(PRESENT (nj_glo))        CALL xios_set_domain_attr     ( cdid, nj_glo=nj_glo) 
     1255         IF(PRESENT (ibegin))        CALL xios_set_domain_attr     ( cdid, ibegin=ibegin) 
     1256         IF(PRESENT (jbegin))        CALL xios_set_domain_attr     ( cdid, jbegin=jbegin) 
     1257         IF(PRESENT (ni))            CALL xios_set_domain_attr     ( cdid, ni=ni) 
     1258         IF(PRESENT (nj))            CALL xios_set_domain_attr     ( cdid, nj=nj) 
     1259         IF(PRESENT (data_dim))      CALL xios_set_domain_attr     ( cdid, data_dim=data_dim) 
     1260         IF(PRESENT (data_ibegin))   CALL xios_set_domain_attr     ( cdid, data_ibegin=data_ibegin) 
     1261         IF(PRESENT (data_ni))       CALL xios_set_domain_attr     ( cdid, data_ni=data_ni) 
     1262         IF(PRESENT (data_jbegin))   CALL xios_set_domain_attr     ( cdid, data_jbegin=data_jbegin) 
     1263         IF(PRESENT (data_nj))       CALL xios_set_domain_attr     ( cdid, data_nj=data_nj) 
     1264         IF(PRESENT (lonvalue))   CALL xios_set_domain_attr     ( cdid, lonvalue_1D=lonvalue) 
     1265         IF(PRESENT (latvalue))   CALL xios_set_domain_attr     ( cdid, latvalue_1D=latvalue) 
     1266         IF(PRESENT (mask))       CALL xios_set_domain_attr     ( cdid, mask_1D=mask) 
     1267         IF(PRESENT (nvertex))       CALL xios_set_domain_attr     ( cdid, nvertex=nvertex) 
     1268         IF(PRESENT (bounds_lon)) CALL xios_set_domain_attr     ( cdid, bounds_lon_1D=bounds_lon ) 
     1269         IF(PRESENT (bounds_lat)) CALL xios_set_domain_attr     ( cdid, bounds_lat_1D=bounds_lat) 
     1270         IF(PRESENT (area))          CALL xios_set_domain_attr     ( cdid, area=area) 
    12621271     ENDIF 
    12631272      IF ( xios_is_valid_domaingroup(cdid) ) THEN 
    1264          CALL xios_set_domaingroup_attr( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   & 
    1265             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   & 
    1266             &    lonvalue_1D=lonvalue, latvalue_1D=latvalue, mask_1D=mask, nvertex=nvertex, bounds_lon_1D=bounds_lon,      & 
    1267             &    bounds_lat_1D=bounds_lat, area=area, type='curvilinear' ) 
     1273         CALL xios_set_domaingroup_attr     ( cdid, type='curvilinear') 
     1274         IF(PRESENT (ni_glo))        CALL xios_set_domaingroup_attr     ( cdid, ni_glo=ni_glo ) 
     1275         IF(PRESENT (nj_glo))        CALL xios_set_domaingroup_attr     ( cdid, nj_glo=nj_glo ) 
     1276         IF(PRESENT (ibegin))        CALL xios_set_domaingroup_attr     ( cdid, ibegin=ibegin ) 
     1277         IF(PRESENT (jbegin))        CALL xios_set_domaingroup_attr     ( cdid, jbegin=jbegin ) 
     1278         IF(PRESENT (ni))            CALL xios_set_domaingroup_attr     ( cdid, ni=ni ) 
     1279         IF(PRESENT (nj))            CALL xios_set_domaingroup_attr     ( cdid, nj=nj ) 
     1280         IF(PRESENT (data_dim))      CALL xios_set_domaingroup_attr     ( cdid, data_dim=data_dim ) 
     1281         IF(PRESENT (data_ibegin))   CALL xios_set_domaingroup_attr     ( cdid, data_ibegin=data_ibegin ) 
     1282         IF(PRESENT (data_ni))       CALL xios_set_domaingroup_attr     ( cdid, data_ni=data_ni ) 
     1283         IF(PRESENT (data_jbegin))   CALL xios_set_domaingroup_attr     ( cdid, data_jbegin=data_jbegin ) 
     1284         IF(PRESENT (data_nj))       CALL xios_set_domaingroup_attr     ( cdid, data_nj=data_nj ) 
     1285         IF(PRESENT (lonvalue))   CALL xios_set_domaingroup_attr     ( cdid, lonvalue_1D=lonvalue ) 
     1286         IF(PRESENT (latvalue))   CALL xios_set_domaingroup_attr     ( cdid, latvalue_1D=latvalue ) 
     1287         IF(PRESENT (mask))       CALL xios_set_domaingroup_attr     ( cdid, mask_1D=mask ) 
     1288         IF(PRESENT (nvertex))       CALL xios_set_domaingroup_attr     ( cdid, nvertex=nvertex ) 
     1289         IF(PRESENT (bounds_lon)) CALL xios_set_domaingroup_attr     ( cdid, bounds_lon_1D=bounds_lon ) 
     1290         IF(PRESENT (bounds_lat)) CALL xios_set_domaingroup_attr     ( cdid, bounds_lat_1D=bounds_lat ) 
     1291         IF(PRESENT (area))          CALL xios_set_domaingroup_attr     ( cdid, area=area ) 
    12681292      ENDIF 
    12691293 
     
    12781302 
    12791303      IF ( xios_is_valid_zoom_domain     (cdid) ) THEN 
    1280           CALL xios_set_zoom_domain_attr     ( cdid, ibegin=ibegin, jbegin=jbegin, ni=ni,    & 
    1281             &   nj=nj) 
     1304          IF(PRESENT(ibegin)) CALL xios_set_zoom_domain_attr     ( cdid, ibegin=ibegin) 
     1305          IF(PRESENT(jbegin)) CALL xios_set_zoom_domain_attr     ( cdid, jbegin=jbegin) 
     1306          IF(PRESENT(nj)) CALL xios_set_zoom_domain_attr     ( cdid, ni=ni) 
     1307          IF(PRESENT(ni)) CALL xios_set_zoom_domain_attr     ( cdid, nj=nj) 
    12821308     ENDIF 
    12831309   END SUBROUTINE iom_set_zoom_domain_attr 
     
    12931319         IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, n_glo=SIZE(paxis), value=paxis ) 
    12941320      ENDIF 
    1295       IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, bounds=bounds ) 
    1296       IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, bounds=bounds ) 
     1321      IF ( PRESENT(bounds) ) THEN 
     1322         IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, bounds=bounds ) 
     1323         IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, bounds=bounds ) 
     1324      ENDIF 
    12971325      CALL xios_solve_inheritance() 
    12981326   END SUBROUTINE iom_set_axis_attr 
     
    13031331      TYPE(xios_duration),OPTIONAL , INTENT(in) ::   freq_op 
    13041332      TYPE(xios_duration),OPTIONAL , INTENT(in) ::   freq_offset 
    1305       IF ( xios_is_valid_field     (cdid) )   CALL xios_set_field_attr       & 
    1306     &     ( cdid, freq_op=freq_op, freq_offset=freq_offset ) 
    1307       IF ( xios_is_valid_fieldgroup(cdid) )   CALL xios_set_fieldgroup_attr  & 
    1308     &                    ( cdid, freq_op=freq_op, freq_offset=freq_offset ) 
     1333      IF ( PRESENT(freq_op) ) THEN 
     1334         IF ( xios_is_valid_field     (cdid) )   CALL xios_set_field_attr( cdid, freq_op=freq_op ) 
     1335         IF ( xios_is_valid_fieldgroup(cdid) )   CALL xios_set_fieldgroup_attr( cdid, freq_op=freq_op ) 
     1336      ENDIF 
     1337      IF ( PRESENT(freq_offset) ) THEN 
     1338         IF ( xios_is_valid_field     (cdid) )   CALL xios_set_field_attr( cdid, freq_offset=freq_offset ) 
     1339         IF ( xios_is_valid_fieldgroup(cdid) )   CALL xios_set_fieldgroup_attr( cdid, freq_offset=freq_offset ) 
     1340      ENDIF 
    13091341      CALL xios_solve_inheritance() 
    13101342   END SUBROUTINE iom_set_field_attr 
     
    13141346      CHARACTER(LEN=*)          , INTENT(in) ::   cdid 
    13151347      CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   name, name_suffix 
    1316       IF ( xios_is_valid_file     (cdid) )   CALL xios_set_file_attr     ( cdid, name=name, name_suffix=name_suffix ) 
    1317       IF ( xios_is_valid_filegroup(cdid) )   CALL xios_set_filegroup_attr( cdid, name=name, name_suffix=name_suffix ) 
     1348      IF ( PRESENT(name) ) THEN 
     1349         IF ( xios_is_valid_file     (cdid) )   CALL xios_set_file_attr     ( cdid, name=name ) 
     1350         IF ( xios_is_valid_filegroup(cdid) )   CALL xios_set_filegroup_attr( cdid, name=name ) 
     1351      ENDIF 
     1352      IF ( PRESENT(name_suffix) ) THEN 
     1353         IF ( xios_is_valid_file     (cdid) )   CALL xios_set_file_attr     ( cdid, name_suffix=name_suffix ) 
     1354         IF ( xios_is_valid_filegroup(cdid) )   CALL xios_set_filegroup_attr( cdid, name_suffix=name_suffix ) 
     1355      ENDIF 
    13181356      CALL xios_solve_inheritance() 
    13191357   END SUBROUTINE iom_set_file_attr 
     
    13491387      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid 
    13501388      LOGICAL, DIMENSION(:,:,:), OPTIONAL, INTENT(in) ::   mask 
    1351       IF ( xios_is_valid_grid     (cdid) )   CALL xios_set_grid_attr     ( cdid, mask_3D=mask ) 
    1352       IF ( xios_is_valid_gridgroup(cdid) )   CALL xios_set_gridgroup_attr( cdid, mask_3D=mask ) 
     1389      IF( PRESENT(mask)) THEN 
     1390         IF ( xios_is_valid_grid     (cdid) )   CALL xios_set_grid_attr     ( cdid, mask_3D=mask ) 
     1391         IF ( xios_is_valid_gridgroup(cdid) )   CALL xios_set_gridgroup_attr( cdid, mask_3D=mask ) 
     1392      ENDIF 
    13531393      CALL xios_solve_inheritance() 
    13541394   END SUBROUTINE iom_set_grid_attr 
Note: See TracChangeset for help on using the changeset viewer.