- Timestamp:
- 2017-11-30T09:30:44+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r8817 r8850 205 205 ! end file definition 206 206 dtime%second = rdt 207 CALL xios_set_timestep( dtime)207 CALL xios_set_timestep( dtime ) 208 208 CALL xios_close_context_definition() 209 210 CALL xios_update_calendar(0) 209 CALL xios_update_calendar( 0 ) 211 210 ! 212 211 DEALLOCATE( zt_bnds, zw_bnds ) … … 253 252 LOGICAL , INTENT(in ), OPTIONAL :: ldiof ! Interp On the Fly, needed for AGRIF (default = .FALSE.) 254 253 INTEGER , INTENT(in ), OPTIONAL :: kdlev ! number of vertical levels 255 254 ! 256 255 CHARACTER(LEN=256) :: clname ! the name of the file based on cdname [[+clcpu]+clcpu] 257 256 CHARACTER(LEN=256) :: cltmpn ! tempory name to store clname (in writting mode) … … 645 644 INTEGER , DIMENSION(:) , INTENT(in ), OPTIONAL :: kcount ! number of points to be read in each axis 646 645 LOGICAL , INTENT(in ), OPTIONAL :: lrowattr ! logical flag telling iom_get to 647 648 649 646 ! ! look for and use a file attribute 647 ! ! called open_ocean_jstart to set the start 648 ! ! value for the 2nd dimension (netcdf only) 650 649 ! 651 650 LOGICAL :: llnoov ! local definition to read overlap … … 780 779 IF( PRESENT(kstart) .AND. .NOT. ll_depth_spec ) THEN 781 780 istart(1:idmspc) = kstart(1:idmspc) 782 icnt (1:idmspc) = kcount(1:idmspc)781 icnt (1:idmspc) = kcount(1:idmspc) 783 782 ELSE 784 783 IF(idom == jpdom_unknown ) THEN … … 806 805 ENDIF 807 806 IF( PRESENT(pv_r3d) ) THEN 808 IF( idom == jpdom_data ) THEN ;icnt(3) = inlev809 ELSE IF( ll_depth_spec .AND. PRESENT(kstart) ) THEN ; istart(3) = kstart(3);icnt(3) = kcount(3)810 ELSE ;icnt(3) = inlev807 IF( idom == jpdom_data ) THEN ; icnt(3) = inlev 808 ELSEIF( ll_depth_spec .AND. PRESENT(kstart) ) THEN ; istart(3) = kstart(3) ; icnt(3) = kcount(3) 809 ELSE ; icnt(3) = inlev 811 810 ENDIF 812 811 ENDIF … … 1251 1250 1252 1251 #if defined key_iomput 1253 1254 1252 !!---------------------------------------------------------------------- 1255 1253 !! 'key_iomput' IOM interface … … 1413 1411 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: plat 1414 1412 ! 1415 INTEGER :: ni, nj1413 INTEGER :: ni, nj 1416 1414 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask 1417 1415 !!---------------------------------------------------------------------- 1418 1416 ! 1419 ni=nlei-nldi+1 ; nj=nlej-nldj+1 1417 ni = nlei-nldi+1 1418 nj = nlej-nldj+1 1420 1419 ! 1421 1420 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) … … 1468 1467 END SELECT 1469 1468 ! 1470 ni = nlei-nldi+1 ; nj = nlej-nldj+1 ! Dimensions of subdomain interior 1469 ni = nlei-nldi+1 ! Dimensions of subdomain interior 1470 nj = nlej-nldj+1 1471 1471 ! 1472 1472 z_fld(:,:) = 1._wp … … 1553 1553 REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: plat 1554 1554 ! 1555 INTEGER :: ni, nj, ix, iy 1555 1556 REAL(wp), DIMENSION(:), ALLOCATABLE :: zlon 1556 INTEGER :: ni,nj, ix, iy1557 ! !----------------------------------------------------------------------1558 !1559 n i=nlei-nldi+1 ; nj=nlej-nldj+1 ! define zonal mean domain (jpj*jpk)1560 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0. 1557 !!---------------------------------------------------------------------- 1558 ! 1559 ni=nlei-nldi+1 ! define zonal mean domain (jpj*jpk) 1560 nj=nlej-nldj+1 1561 ALLOCATE( zlon(ni*nj) ) ; zlon(:) = 0._wp 1561 1562 ! 1562 1563 CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) ! i-line that passes through Bering Strait: Reference latitude (used in plots) … … 1616 1617 ! 1617 1618 ! frequency of the call of iom_put (attribut: freq_op) 1618 f_op%timestep = 1 ; f_of%timestep = 0 ; CALL iom_set_field_attr('field_definition', freq_op=f_op, freq_offset=f_of) 1619 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC' , freq_op=f_op, freq_offset=f_of) 1620 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC_scalar' , freq_op=f_op, freq_offset=f_of) 1621 f_op%timestep = nn_dttrc ; f_of%timestep = 0 ; CALL iom_set_field_attr('ptrc_T' , freq_op=f_op, freq_offset=f_of) 1622 f_op%timestep = nn_dttrc ; f_of%timestep = 0 ; CALL iom_set_field_attr('diad_T' , freq_op=f_op, freq_offset=f_of) 1619 f_op%timestep = 1 ; f_of%timestep = 0 ; CALL iom_set_field_attr('field_definition', freq_op=f_op, freq_offset=f_of) 1620 f_op%timestep = 2 ; f_of%timestep = 0 ; CALL iom_set_field_attr('trendT_even' , freq_op=f_op, freq_offset=f_of) 1621 f_op%timestep = 2 ; f_of%timestep = -1 ; CALL iom_set_field_attr('trendT_odd' , freq_op=f_op, freq_offset=f_of) 1622 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC' , freq_op=f_op, freq_offset=f_of) 1623 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC_scalar' , freq_op=f_op, freq_offset=f_of) 1624 f_op%timestep = nn_dttrc ; f_of%timestep = 0 ; CALL iom_set_field_attr('ptrc_T' , freq_op=f_op, freq_offset=f_of) 1625 f_op%timestep = nn_dttrc ; f_of%timestep = 0 ; CALL iom_set_field_attr('diad_T' , freq_op=f_op, freq_offset=f_of) 1623 1626 1624 1627 ! output file names (attribut: name) … … 1753 1756 TYPE(xios_duration) :: output_freq 1754 1757 !!---------------------------------------------------------------------- 1755 1756 DO jn = 1, 21757 1758 ! 1759 DO jn = 1, 2 1760 ! 1758 1761 output_freq = xios_duration(0,0,0,0,0,0) 1759 1762 IF( jn == 1 ) CALL iom_get_file_attr( cdid, name = clname, output_freq = output_freq ) 1760 1763 IF( jn == 2 ) CALL iom_get_file_attr( cdid, name_suffix = clname ) 1761 1764 ! 1762 1765 IF ( TRIM(clname) /= '' ) THEN 1763 1766 ! 1764 1767 idx = INDEX(clname,'@expname@') + INDEX(clname,'@EXPNAME@') 1765 1768 DO WHILE ( idx /= 0 ) … … 1767 1770 idx = INDEX(clname,'@expname@') + INDEX(clname,'@EXPNAME@') 1768 1771 END DO 1769 1772 ! 1770 1773 idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 1771 1774 DO WHILE ( idx /= 0 ) … … 1798 1801 idx = INDEX(clname,'@freq@') + INDEX(clname,'@FREQ@') 1799 1802 END DO 1800 1803 ! 1801 1804 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 1802 1805 DO WHILE ( idx /= 0 ) … … 1805 1808 idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 1806 1809 END DO 1807 1810 ! 1808 1811 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 1809 1812 DO WHILE ( idx /= 0 ) … … 1812 1815 idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 1813 1816 END DO 1814 1817 ! 1815 1818 idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 1816 1819 DO WHILE ( idx /= 0 ) … … 1844 1847 !! ** Purpose : send back the date corresponding to the given julian day 1845 1848 !!---------------------------------------------------------------------- 1846 REAL(wp), INTENT(in ) :: pjday 1847 LOGICAL , INTENT(in ), OPTIONAL :: ld24 1848 LOGICAL , INTENT(in ), OPTIONAL :: ldfull 1849 REAL(wp), INTENT(in ) :: pjday ! julian day 1850 LOGICAL , INTENT(in ), OPTIONAL :: ld24 ! true to force 24:00 instead of 00:00 1851 LOGICAL , INTENT(in ), OPTIONAL :: ldfull ! true to get the compleate date: yyyymmdd_hh:mm:ss 1849 1852 ! 1850 1853 CHARACTER(LEN=20) :: iom_sdate … … 1892 1895 1893 1896 #else 1897 !!---------------------------------------------------------------------- 1898 !! NOT 'key_iomput' a few dummy routines 1899 !!---------------------------------------------------------------------- 1894 1900 1895 1901 SUBROUTINE iom_setkt( kt, cdname ) … … 1907 1913 1908 1914 LOGICAL FUNCTION iom_use( cdname ) 1915 !!---------------------------------------------------------------------- 1916 !!---------------------------------------------------------------------- 1909 1917 CHARACTER(LEN=*), INTENT(in) :: cdname 1918 !!---------------------------------------------------------------------- 1910 1919 #if defined key_iomput 1911 1920 iom_use = xios_field_is_active( cdname )
Note: See TracChangeset
for help on using the changeset viewer.