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 7635 for branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2017-02-03T14:24:58+01:00 (7 years ago)
Author:
timgraham
Message:

#1838 - Changes to remove XIOS1.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r7584 r7635  
    9999#if defined key_iomput 
    100100 
    101 #if defined key_xios2 
    102101      TYPE(xios_duration) :: dtime    = xios_duration(0, 0, 0, 0, 0, 0) 
    103102      TYPE(xios_date)     :: start_date 
    104 #else 
    105       TYPE(xios_time)     :: dtime    = xios_time(0, 0, 0, 0, 0, 0) 
    106       CHARACTER(len=19)   :: cldate  
    107 #endif 
    108103      CHARACTER(len=10) :: clname 
    109104      INTEGER           :: ji, jkmin 
     
    112107      !!---------------------------------------------------------------------- 
    113108 
    114 #if  defined key_xios2 
    115109      ALLOCATE( zt_bnds(2,jpk), zw_bnds(2,jpk) ) 
    116 #else 
    117       ALLOCATE( zt_bnds(jpk,2), zw_bnds(jpk,2) ) 
    118 #endif 
    119110 
    120111      clname = cdname 
     
    124115 
    125116 
    126 #if  defined key_xios2 
    127117      ! Calendar type is now defined in xml file  
    128118      SELECT CASE ( nleapy )        ! Choose calendar for IOIPSL 
     
    134124          &                                    start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 
    135125      END SELECT 
    136 #else 
    137       ! calendar parameters 
    138       SELECT CASE ( nleapy )        ! Choose calendar for IOIPSL 
    139       CASE ( 1)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "Gregorian") 
    140       CASE ( 0)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "NoLeap") 
    141       CASE (30)   ;   CALL xios_set_context_attr(TRIM(clname), calendar_type= "D360") 
    142       END SELECT 
    143       WRITE(cldate,"(i4.4,'-',i2.2,'-',i2.2,' ',i2.2,':',i2.2,':00')") nyear,nmonth,nday,nhour,nminute 
    144       CALL xios_set_context_attr(TRIM(clname), start_date=cldate ) 
    145  
    146 #endif 
     126 
    147127      ! horizontal grid definition 
    148128      CALL set_scalar 
     
    198178      ! Add vertical grid bounds 
    199179      jkmin = MIN(2,jpk)  ! in case jpk=1 (i.e. sas2D) 
    200 #if defined key_xios2 
    201180      zt_bnds(2,:        ) = gdept_1d(:) 
    202181      zt_bnds(1,jkmin:jpk) = gdept_1d(1:jpkm1) 
     
    205184      zw_bnds(2,1:jpkm1  ) = gdepw_1d(jkmin:jpk) 
    206185      zw_bnds(2,jpk:     ) = gdepw_1d(jpk) + e3t_1d(jpk) 
    207 #else 
    208       zt_bnds(:        ,2) = gdept_1d(:) 
    209       zt_bnds(jkmin:jpk,1) = gdept_1d(1:jpkm1) 
    210       zt_bnds(1        ,1) = gdept_1d(1) - e3w_1d(1) 
    211       zw_bnds(:        ,1) = gdepw_1d(:) 
    212       zw_bnds(1:jpkm1  ,2) = gdepw_1d(jkmin:jpk) 
    213       zw_bnds(jpk:     ,2) = gdepw_1d(jpk) + e3t_1d(jpk) 
    214 #endif 
    215186      CALL iom_set_axis_attr( "deptht", bounds=zt_bnds ) 
    216187      CALL iom_set_axis_attr( "depthu", bounds=zt_bnds ) 
     
    12811252      REAL(wp), DIMENSION(:)   , OPTIONAL, INTENT(in) ::   lonvalue, latvalue 
    12821253      REAL(wp), DIMENSION(:,:) , OPTIONAL, INTENT(in) ::   bounds_lon, bounds_lat, area 
    1283 #if defined key_xios2 
    12841254      LOGICAL, DIMENSION(:)   , OPTIONAL, INTENT(in) ::   mask 
    1285 #else 
    1286       LOGICAL, DIMENSION(:,:) , OPTIONAL, INTENT(in) ::   mask 
    1287 #endif 
    1288  
    1289  
    1290 #if defined key_xios2 
     1255 
     1256 
    12911257      IF ( xios_is_valid_domain     (cdid) ) THEN 
    12921258         CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   & 
     
    13011267            &    bounds_lat_1D=bounds_lat, area=area, type='curvilinear' ) 
    13021268      ENDIF 
    1303 #else 
    1304       IF ( xios_is_valid_domain     (cdid) ) THEN 
    1305          CALL xios_set_domain_attr     ( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   & 
    1306             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   & 
    1307             &    zoom_ibegin=zoom_ibegin, zoom_jbegin=zoom_jbegin, zoom_ni=zoom_ni, zoom_nj=zoom_nj,                       & 
    1308             &    lonvalue=lonvalue, latvalue=latvalue, mask=mask, nvertex=nvertex, bounds_lon=bounds_lon,                  & 
    1309             &    bounds_lat=bounds_lat, area=area ) 
    1310       ENDIF 
    1311  
    1312       IF ( xios_is_valid_domaingroup(cdid) ) THEN 
    1313          CALL xios_set_domaingroup_attr( cdid, ni_glo=ni_glo, nj_glo=nj_glo, ibegin=ibegin, jbegin=jbegin, ni=ni, nj=nj,   & 
    1314             &    data_dim=data_dim, data_ibegin=data_ibegin, data_ni=data_ni, data_jbegin=data_jbegin, data_nj=data_nj ,   & 
    1315             &    zoom_ibegin=zoom_ibegin, zoom_jbegin=zoom_jbegin, zoom_ni=zoom_ni, zoom_nj=zoom_nj,                       & 
    1316             &    lonvalue=lonvalue, latvalue=latvalue, mask=mask, nvertex=nvertex, bounds_lon=bounds_lon,                  & 
    1317             &    bounds_lat=bounds_lat, area=area ) 
    1318       ENDIF 
    1319 #endif 
     1269 
    13201270      CALL xios_solve_inheritance() 
    13211271 
    13221272   END SUBROUTINE iom_set_domain_attr 
    13231273 
    1324 #if defined key_xios2 
    1325   SUBROUTINE iom_set_zoom_domain_attr( cdid, ibegin, jbegin, ni, nj) 
    1326      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid 
    1327      INTEGER                  , OPTIONAL, INTENT(in) ::   ibegin, jbegin, ni, nj 
    1328  
    1329      IF ( xios_is_valid_zoom_domain     (cdid) ) THEN 
    1330          CALL xios_set_zoom_domain_attr     ( cdid, ibegin=ibegin, jbegin=jbegin, ni=ni,    & 
    1331            &   nj=nj) 
    1332     ENDIF 
    1333   END SUBROUTINE iom_set_zoom_domain_attr 
    1334 #endif 
     1274 
     1275   SUBROUTINE iom_set_zoom_domain_attr( cdid, ibegin, jbegin, ni, nj) 
     1276      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid 
     1277      INTEGER                  , OPTIONAL, INTENT(in) ::   ibegin, jbegin, ni, nj 
     1278 
     1279      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) 
     1282     ENDIF 
     1283   END SUBROUTINE iom_set_zoom_domain_attr 
    13351284 
    13361285 
     
    13401289      REAL(wp), DIMENSION(:,:), OPTIONAL, INTENT(in) ::   bounds 
    13411290 
    1342 #if defined key_xios2 
    13431291      IF ( PRESENT(paxis) ) THEN 
    13441292         IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, n_glo=SIZE(paxis), value=paxis ) 
    13451293         IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, n_glo=SIZE(paxis), value=paxis ) 
    13461294      ENDIF 
    1347 #else 
    1348       IF ( PRESENT(paxis) ) THEN 
    1349          IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, size=SIZE(paxis), value=paxis ) 
    1350          IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, size=SIZE(paxis), value=paxis ) 
    1351       ENDIF 
    1352 #endif 
    13531295      IF ( xios_is_valid_axis     (cdid) )   CALL xios_set_axis_attr     ( cdid, bounds=bounds ) 
    13541296      IF ( xios_is_valid_axisgroup(cdid) )   CALL xios_set_axisgroup_attr( cdid, bounds=bounds ) 
     
    13591301   SUBROUTINE iom_set_field_attr( cdid, freq_op, freq_offset ) 
    13601302      CHARACTER(LEN=*)          , INTENT(in) ::   cdid 
    1361 #if defined key_xios2 
    13621303      TYPE(xios_duration),OPTIONAL , INTENT(in) ::   freq_op 
    13631304      TYPE(xios_duration),OPTIONAL , INTENT(in) ::   freq_offset 
    1364 #else 
    1365       CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   freq_op 
    1366       CHARACTER(LEN=*),OPTIONAL , INTENT(in) ::   freq_offset 
    1367 #endif 
    13681305      IF ( xios_is_valid_field     (cdid) )   CALL xios_set_field_attr       & 
    13691306    &     ( cdid, freq_op=freq_op, freq_offset=freq_offset ) 
     
    13861323      CHARACTER(LEN=*)          , INTENT(in ) ::   cdid 
    13871324      CHARACTER(LEN=*),OPTIONAL , INTENT(out) ::   name, name_suffix 
    1388 #if defined key_xios2 
    13891325      TYPE(xios_duration), OPTIONAL , INTENT(out) :: output_freq 
    1390 #else 
    1391       CHARACTER(LEN=*)   , OPTIONAL , INTENT(out) :: output_freq 
    1392 #endif   
    13931326      LOGICAL                                 ::   llexist1,llexist2,llexist3 
    13941327      !--------------------------------------------------------------------- 
    13951328      IF( PRESENT( name        ) )   name = ''          ! default values 
    13961329      IF( PRESENT( name_suffix ) )   name_suffix = '' 
    1397 #if defined key_xios2 
    13981330      IF( PRESENT( output_freq ) )   output_freq = xios_duration(0,0,0,0,0,0) 
    1399 #else 
    1400       IF( PRESENT( output_freq ) )   output_freq = '' 
    1401 #endif 
    14021331      IF ( xios_is_valid_file     (cdid) ) THEN 
    14031332         CALL xios_solve_inheritance() 
     
    14201349      CHARACTER(LEN=*)                   , INTENT(in) ::   cdid 
    14211350      LOGICAL, DIMENSION(:,:,:), OPTIONAL, INTENT(in) ::   mask 
    1422 #if defined key_xios2 
    14231351      IF ( xios_is_valid_grid     (cdid) )   CALL xios_set_grid_attr     ( cdid, mask_3D=mask ) 
    14241352      IF ( xios_is_valid_gridgroup(cdid) )   CALL xios_set_gridgroup_attr( cdid, mask_3D=mask ) 
    1425 #else 
    1426       IF ( xios_is_valid_grid     (cdid) )   CALL xios_set_grid_attr     ( cdid, mask=mask ) 
    1427       IF ( xios_is_valid_gridgroup(cdid) )   CALL xios_set_gridgroup_attr( cdid, mask=mask ) 
    1428 #endif 
    14291353      CALL xios_solve_inheritance() 
    14301354   END SUBROUTINE iom_set_grid_attr 
     
    14681392      ni=nlei-nldi+1 ; nj=nlej-nldj+1 
    14691393 
    1470 #if defined key_xios2 
    14711394      CALL iom_set_domain_attr("grid_"//cdgrd, ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 
    1472 #else 
    1473       CALL iom_set_domain_attr("grid_"//cdgrd, ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-1, jbegin=njmpp+nldj-1, ni=ni, nj=nj) 
    1474 #endif      
    14751395      CALL iom_set_domain_attr("grid_"//cdgrd, data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
    14761396      CALL iom_set_domain_attr("grid_"//cdgrd, lonvalue = RESHAPE(plon(nldi:nlei, nldj:nlej),(/ ni*nj /)),   & 
     
    14861406         END SELECT 
    14871407         ! 
    1488 #if defined key_xios2 
    14891408         CALL iom_set_domain_attr( "grid_"//cdgrd       , mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,1),(/ni*nj    /)) /= 0. ) 
    1490 #else 
    1491          CALL iom_set_domain_attr( "grid_"//cdgrd       , mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,1),(/ni,nj    /)) /= 0. ) 
    1492 #endif  
    14931409         CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D", mask = RESHAPE(zmask(nldi:nlei,nldj:nlej,:),(/ni,nj,jpk/)) /= 0. ) 
    14941410      ENDIF 
     
    16251541 
    16261542      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  i-line that passes near the North Pole : Reference latitude (used in plots) 
    1627 #if  defined key_xios2 
    16281543      CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 
    16291544      CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
     
    16311546         &                             latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))   
    16321547      CALL iom_set_zoom_domain_attr ("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 
    1633 #else 
    1634       CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-1, jbegin=njmpp+nldj-1, ni=ni, nj=nj) 
    1635       CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
    1636       CALL iom_set_domain_attr("gznl", lonvalue = zlon,   & 
    1637          &                             latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))   
    1638       CALL iom_set_domain_attr ('ptr', zoom_ibegin=ix, zoom_nj=jpjglo) 
    1639 #endif 
    16401548      ! 
    16411549      CALL iom_update_file_name('ptr') 
     
    16531561      !!---------------------------------------------------------------------- 
    16541562 
    1655 #if defined key_xios2 
    16561563      CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea-1, jbegin=0, ni=1, nj=1) 
    1657 #else 
    1658       CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea, jbegin=1, ni=1, nj=1) 
    1659 #endif 
    16601564      CALL iom_set_domain_attr('scalarpoint', data_dim=2, data_ibegin = 1, data_ni = 1, data_jbegin = 1, data_nj = 1) 
    16611565       
     
    16861590      REAL(wp)        ,DIMENSION( 3) ::   zlonpira                 ! longitudes of pirata moorings 
    16871591      REAL(wp)        ,DIMENSION( 9) ::   zlatpira                 ! latitudes  of pirata moorings 
    1688 #if  defined key_xios2 
    16891592      TYPE(xios_duration)            ::   f_op, f_of 
    1690 #endif 
    16911593      !!---------------------------------------------------------------------- 
    16921594      !  
    16931595      ! frequency of the call of iom_put (attribut: freq_op) 
    1694 #if defined key_xios2 
    16951596      f_op%timestep = 1        ;  f_of%timestep = 0  ; CALL iom_set_field_attr('field_definition', freq_op=f_op, freq_offset=f_of) 
    16961597      f_op%timestep = nn_fsbc  ;  f_of%timestep = 0  ; CALL iom_set_field_attr('SBC'             , freq_op=f_op, freq_offset=f_of) 
     
    16981599      f_op%timestep = nn_dttrc ;  f_of%timestep = 0  ; CALL iom_set_field_attr('ptrc_T'          , freq_op=f_op, freq_offset=f_of) 
    16991600      f_op%timestep = nn_dttrc ;  f_of%timestep = 0  ; CALL iom_set_field_attr('diad_T'          , freq_op=f_op, freq_offset=f_of) 
    1700 #else 
    1701       WRITE(cl1,'(i1)')        1   ;   CALL iom_set_field_attr('field_definition', freq_op=cl1//'ts', freq_offset='0ts') 
    1702       WRITE(cl1,'(i1)')  nn_fsbc   ;   CALL iom_set_field_attr('SBC'             , freq_op=cl1//'ts', freq_offset='0ts') 
    1703       WRITE(cl1,'(i1)')  nn_fsbc   ;   CALL iom_set_field_attr('SBC_scalar'      , freq_op=cl1//'ts', freq_offset='0ts') 
    1704       WRITE(cl1,'(i1)') nn_dttrc   ;   CALL iom_set_field_attr('ptrc_T'          , freq_op=cl1//'ts', freq_offset='0ts') 
    1705       WRITE(cl1,'(i1)') nn_dttrc   ;   CALL iom_set_field_attr('diad_T'          , freq_op=cl1//'ts', freq_offset='0ts') 
    1706 #endif 
    17071601 
    17081602      ! output file names (attribut: name) 
     
    17261620         ! Equatorial section (attributs: jbegin, ni, name_suffix) 
    17271621         CALL dom_ngb( 0., 0., ix, iy, cl1 ) 
    1728 #if defined key_xios2 
    17291622         CALL iom_set_zoom_domain_attr ('Eq'//cl1, jbegin=iy-1, ni=jpiglo) 
    1730 #else 
    1731          CALL iom_set_domain_attr ('Eq'//cl1, zoom_jbegin=iy, zoom_ni=jpiglo) 
    1732 #endif 
    17331623         CALL iom_get_file_attr   ('Eq'//cl1, name_suffix = clsuff             ) 
    17341624         CALL iom_set_file_attr   ('Eq'//cl1, name_suffix = TRIM(clsuff)//'_Eq') 
     
    18101700               ENDIF 
    18111701               clname = TRIM(ADJUSTL(clat))//TRIM(ADJUSTL(clon)) 
    1812 #if defined key_xios2 
    18131702               CALL iom_set_zoom_domain_attr  (TRIM(clname)//cl1, ibegin= ix-1, jbegin= iy-1) 
    1814 #else 
    1815                CALL iom_set_domain_attr (TRIM(clname)//cl1, zoom_ibegin= ix, zoom_jbegin= iy) 
    1816 #endif 
    18171703 
    18181704               CALL iom_get_file_attr   (TRIM(clname)//cl1, name_suffix = clsuff                         ) 
     
    18441730      REAL(wp)           ::   zsec 
    18451731      LOGICAL            ::   llexist 
    1846 #if  defined key_xios2 
    18471732      TYPE(xios_duration)   ::   output_freq  
    1848 #endif  
    18491733      !!---------------------------------------------------------------------- 
    18501734 
    18511735      DO jn = 1,2 
    18521736 
    1853 #if defined key_xios2 
    18541737         output_freq = xios_duration(0,0,0,0,0,0) 
    18551738         IF( jn == 1 )   CALL iom_get_file_attr( cdid, name        = clname, output_freq = output_freq ) 
    1856 #else 
    1857          IF( jn == 1 )   CALL iom_get_file_attr( cdid, name        = clname, output_freq = clfreq ) 
    1858 #endif 
    18591739         IF( jn == 2 )   CALL iom_get_file_attr( cdid, name_suffix = clname ) 
    18601740 
     
    18671747            END DO 
    18681748 
    1869 #if defined key_xios2 
    18701749            idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 
    18711750            DO WHILE ( idx /= 0 )  
     
    18921771              idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 
    18931772            END DO 
    1894 #else 
    1895             idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 
    1896             DO WHILE ( idx /= 0 )  
    1897                IF ( TRIM(clfreq) /= '' ) THEN 
    1898                   itrlen = LEN_TRIM(clfreq) 
    1899                   IF ( clfreq(itrlen-1:itrlen) == 'mo' ) clfreq = clfreq(1:itrlen-1) 
    1900                   clname = clname(1:idx-1)//TRIM(clfreq)//clname(idx+6:LEN_TRIM(clname)) 
    1901                ELSE 
    1902                   CALL ctl_stop('error in the name of file id '//TRIM(cdid),   & 
    1903                      & ' attribute output_freq is undefined -> cannot replace @freq@ in '//TRIM(clname) ) 
    1904                ENDIF 
    1905                idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 
    1906             END DO 
    1907 #endif 
     1773 
    19081774            idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 
    19091775            DO WHILE ( idx /= 0 )  
Note: See TracChangeset for help on using the changeset viewer.