⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iounitmod.f90

📁 CCSM Research Tools: Community Atmosphere Model (CAM)
💻 F90
字号:
#include <misc.h>#include <preproc.h>module ioUnitMod  use precision  implicit none  logical :: lsmiou(99)  !I/O file unit numbers (1 to 99): true if active!=======================================================================contains!=======================================================================  integer function getavu()!----------------------------------------------------------------------- ! ! Purpose: ! get next available Fortran unit number!! Method: ! Get next available Fortran unit number itst. Set lsmiou(itst), in ! lsmio common block, true. If coupled to CAM, use CAM function navu! to get available unit number, in which case lsmiou is not needed.! ! Author: Gordon Bonan! !-----------------------------------------------------------------------! $Id: ioUnitMod.F90,v 1.7.2.1 2001/11/07 18:16:12 mvertens Exp $!-----------------------------------------------------------------------#if (defined COUP_CAM)    use units     !CAM units module#endif! ------------------------ local variables ------------------------    integer itst  !Fortran unit number! -----------------------------------------------------------------#if (defined COUP_CAM)    getavu = getunit()    RETURN#else    do itst = 1, 99       if (.not.lsmiou(itst)) then          getavu = itst          lsmiou(itst) = .true.          RETURN       end if    end do    write (6,*) 'GETAVU error: ran out of Fortran unit numbers'    call endrun#endif  end function getavu!=======================================================================  subroutine relavu (iunit)!----------------------------------------------------------------------- ! ! Purpose: ! close and release Fortran unit no longer in use!! Method: ! Close and release Fortran unit number iunit. Set lsmiou(iunit) to ! false. If coupled to cam, use cam function relunit to close/release ! unit number.! ! Author: Gordon Bonan! !-----------------------------------------------------------------------#if (defined COUP_CAM)    use units     !CAM units module#endif! ------------------------ arguments ------------------------------    integer, intent(in) :: iunit    !Fortran unit number! -----------------------------------------------------------------#if (defined COUP_CAM)    close(iunit)    call freeunit(iunit)#else    if (.not.lsmiou(iunit)) then       write (6,*) 'RELAVU eror: unit ',iunit,' is not flagged as in use'       call endrun    end if    if (iunit<1 .or. iunit>99) then       write (6,*) 'RELAVU error: attempt to return out of range unit'       call endrun    end if    close(iunit)    lsmiou(iunit) = .false.#endif    return  end subroutine relavu!=======================================================================end module ioUnitMod

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -