Changeset d7935de in flexpart.git for src/readageclasses.f90


Ignore:
Timestamp:
Sep 11, 2018, 6:06:31 PM (6 years ago)
Author:
pesei <petra seibert at univie ac at>
Branches:
univie
Children:
93786a1
Parents:
34f1452
Message:

modify most input read subroutines

changed some variable names (mostly for I-N reasons)
includes two names appearing also in timemanager, com_mod
corrected a few mistakes
simplified some parts of code
changed options/RELEASES which is in nml fmt correspondingly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/readageclasses.f90

    r5f9d14a rd7935de  
    2929  !     Author: A. Stohl                                                       *
    3030  !     20 March 2000                                                          *
     31  !
    3132  !     HSO, 1 July 2014                                                       *
    3233  !     Added optional namelist input                                          *
     34  !                                                                            *
     35  !     PS, 6/2015-9/2018 some variable names changed as in readreleases.f90   *
     36  !       catch nageclass>maxage properly                                      *
    3337  !                                                                            *
    3438  !*****************************************************************************
     
    4751  integer :: i
    4852
    49   ! namelist help variables
    50   integer :: readerror
     53  ! namelist aux variables
     54  integer :: ios
    5155
    5256  ! namelist declaration
    53   namelist /ageclass/ &
     57  namelist /nml_ageclass/ &
    5458    nageclass, &
    5559    lage
     
    7175  !************************************************
    7276
    73   open(unitageclasses,file=path(1)(1:length(1))//'AGECLASSES',form='formatted',status='old',err=999)
     77  open(unitageclasses,file=path(1)(1:length(1))//'AGECLASSES', &
     78    form='formatted',status='old',err=999)
    7479
    7580  ! try to read in as a namelist
    76   read(unitageclasses,ageclass,iostat=readerror)
     81  read(unitageclasses, nml_ageclass, iostat=ios)
    7782  close(unitageclasses)
    7883
    79   if ((nageclass.lt.0).or.(readerror.ne.0)) then
    80     open(unitageclasses,file=path(1)(1:length(1))//'AGECLASSES',status='old',err=999)
    81     do i=1,13
    82       read(unitageclasses,*)
    83     end do
    84     read(unitageclasses,*) nageclass
    85     read(unitageclasses,*) lage(1)
    86     do i=2,nageclass
    87       read(unitageclasses,*) lage(i)
     84  if (ios .ne. 0) then ! failed to read nml, assume simple text
     85    open(unitageclasses,file=path(1)(1:length(1))// &
     86      'AGECLASSES',status='old',err=999)
     87    call skplin(13,unitageclasses)
     88    read(unitageclasses,*) nageclass ! number of classes
     89    if (nageclass.gt.maxageclass) goto 1001
     90    do i=1,nageclass
     91      read(unitageclasses,*) lage(i) ! max age per classes
    8892    end do
    8993    close(unitageclasses)
    9094  endif
    9195
     96  if (nageclass.lt.1) goto 1002
     97
    9298  ! write ageclasses file in namelist format to output directory if requested
    9399  if (nmlout.and.lroot) then
    94     open(unitageclasses,file=path(2)(1:length(2))//'AGECLASSES.namelist',err=1000)
    95     write(unitageclasses,nml=ageclass)
     100    open(unitageclasses,file=path(2)(1:length(2))//'AGECLASSES.namelist', &
     101      err=1000)
     102    write(unitageclasses,nml=nml_ageclass)
    96103    close(unitageclasses)
    97   endif
    98 
    99   if (nageclass.gt.maxageclass) then
    100     write(*,*) ' #### FLEXPART MODEL ERROR! NUMBER OF AGE     #### '
    101     write(*,*) ' #### CLASSES GREATER THAN MAXIMUM ALLOWED.   #### '
    102     write(*,*) ' #### CHANGE SETTINGS IN FILE AGECLASSES OR   #### '
    103     write(*,*) ' #### RECOMPILE WITH LARGER MAXAGECLASS IN    #### '
    104     write(*,*) ' #### FILE PAR_MOD.                        #### '
    105     stop
    106104  endif
    107105
     
    126124999   write(*,*) ' #### FLEXPART MODEL ERROR! FILE "AGECLASSES" #### '
    127125  write(*,*) ' #### CANNOT BE OPENED IN THE DIRECTORY       #### '
    128   write(*,'(a)') path(1)(1:length(1))
     126  write(*,'(a)') trim(path(1))
    129127  stop
    130128
     
    134132  stop
    135133
     1341001 continue
     135    write(*,*) ' #### FLEXPART MODEL ERROR! NUMBER OF AGE     #### '
     136    write(*,*) ' #### CLASSES GREATER THAN MAXIMUM ALLOWED.   #### '
     137    write(*,*) ' #### CHANGE SETTINGS IN FILE AGECLASSES OR   #### '
     138    write(*,*) ' #### RECOMPILE WITH LARGER MAXAGECLASS IN    #### '
     139    write(*,*) ' #### FILE PAR_MOD.                           #### '
     140    stop
     141
     1421002 continue
     143    write(*,*) ' #### FLEXPART MODEL ERROR! NUMBER OF AGE     #### '
     144    write(*,*) ' #### CLASSES < 1                             #### '
     145    write(*,*) ' #### CHANGE SETTINGS IN FILE AGECLASSES      #### '
     146    stop
    136147
    137148end subroutine readageclasses
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG