Ignore:
Timestamp:
Mar 5, 2014, 2:19:12 PM (11 years ago)
Author:
lguez
Message:

Converted to free source form files in libf/phylmd which were still in
fixed source form. The conversion was done using the polish mode of
the NAG Fortran Compiler.

In addition to converting to free source form, the processing of the
files also:

-- indented the code (including comments);

-- set Fortran keywords to uppercase, and set all other identifiers
to lower case;

-- added qualifiers to end statements (for example "end subroutine
conflx", instead of "end");

-- changed the terminating statements of all DO loops so that each
loop ends with an ENDDO statement (instead of a labeled continue).

-- replaced #include by include.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/inistats.F90

    r1988 r1992  
    1       subroutine inistats(ierr)
     1SUBROUTINE inistats(ierr)
    22
    3       implicit none
     3  IMPLICIT NONE
    44
    5 #include "dimensions.h"
    6 #include "paramet.h"
    7 #include "comgeom.h"
    8 #include "comvert.h"
    9 #include "comconst.h"
    10 #include "statto.h"
    11 #include "netcdf.inc"
     5  include "dimensions.h"
     6  include "paramet.h"
     7  include "comgeom.h"
     8  include "comvert.h"
     9  include "comconst.h"
     10  include "statto.h"
     11  include "netcdf.inc"
    1212
    13       integer,intent(out) :: ierr
    14       integer :: nid
    15       integer :: l,nsteppd
    16       real, dimension(llm) :: sig_s
    17       integer :: idim_lat,idim_lon,idim_llm,idim_llmp1,idim_time
    18       real, dimension(istime) :: lt
    19       integer :: nvarid
     13  INTEGER, INTENT (OUT) :: ierr
     14  INTEGER :: nid
     15  INTEGER :: l, nsteppd
     16  REAL, DIMENSION (llm) :: sig_s
     17  INTEGER :: idim_lat, idim_lon, idim_llm, idim_llmp1, idim_time
     18  REAL, DIMENSION (istime) :: lt
     19  INTEGER :: nvarid
    2020
    21       write (*,*)
    22       write (*,*) '                        || STATS ||'
    23       write (*,*)
    24       write (*,*) 'daysec',daysec
    25       write (*,*) 'dtphys',dtphys
    26       nsteppd=nint(daysec/dtphys)
    27       write (*,*) 'nsteppd=',nsteppd
    28       if (abs(float(nsteppd)-daysec/dtphys).gt.1.e-8*daysec)
    29      &   stop'Dans Instat:  1jour .ne. n pas physiques'
     21  WRITE (*, *)
     22  WRITE (*, *) '                        || STATS ||'
     23  WRITE (*, *)
     24  WRITE (*, *) 'daysec', daysec
     25  WRITE (*, *) 'dtphys', dtphys
     26  nsteppd = nint(daysec/dtphys)
     27  WRITE (*, *) 'nsteppd=', nsteppd
     28  IF (abs(float(nsteppd)-daysec/dtphys)>1.E-8*daysec) &
     29    STOP 'Dans Instat:  1jour .ne. n pas physiques'
    3030
    31       if(mod(nsteppd,istime).ne.0)
    32      &   stop'Dans Instat:  1jour .ne. n*istime pas physiques'
     31  IF (mod(nsteppd,istime)/=0) STOP &
     32    'Dans Instat:  1jour .ne. n*istime pas physiques'
    3333
    34       istats=nsteppd/istime
    35       write (*,*) 'istats=',istats
    36       write (*,*) 'Storing ',istime,'times per day'
    37       write (*,*) 'thus every ',istats,'physical timestep '
    38       write (*,*)
     34  istats = nsteppd/istime
     35  WRITE (*, *) 'istats=', istats
     36  WRITE (*, *) 'Storing ', istime, 'times per day'
     37  WRITE (*, *) 'thus every ', istats, 'physical timestep '
     38  WRITE (*, *)
    3939
    40       do l= 1, llm
    41          sig_s(l)=((ap(l)+ap(l+1))/preff+bp(l)+bp(l+1))/2.
    42          pseudoalt(l)=log(preff/presnivs(l))*8. 
    43       enddo
     40  DO l = 1, llm
     41    sig_s(l) = ((ap(l)+ap(l+1))/preff+bp(l)+bp(l+1))/2.
     42    pseudoalt(l) = log(preff/presnivs(l))*8.
     43  END DO
    4444
    45       ierr = NF_CREATE("stats.nc",NF_CLOBBER,nid)
    46       if (ierr.ne.NF_NOERR) then
    47          write (*,*) NF_STRERROR(ierr)
    48          stop ""
    49       endif
     45  ierr = nf_create('stats.nc', nf_clobber, nid)
     46  IF (ierr/=nf_noerr) THEN
     47    WRITE (*, *) nf_strerror(ierr)
     48    STOP ''
     49  END IF
    5050
    51       ierr = NF_DEF_DIM (nid, "latitude", jjp1, idim_lat)
    52       ierr = NF_DEF_DIM (nid, "longitude", iip1, idim_lon)
    53       ierr = NF_DEF_DIM (nid, "altitude", llm, idim_llm)
    54       ierr = NF_DEF_DIM (nid, "llmp1", llm+1, idim_llmp1)
    55       ierr = NF_DEF_DIM (nid, "Time", NF_UNLIMITED, idim_time)
     51  ierr = nf_def_dim(nid, 'latitude', jjp1, idim_lat)
     52  ierr = nf_def_dim(nid, 'longitude', iip1, idim_lon)
     53  ierr = nf_def_dim(nid, 'altitude', llm, idim_llm)
     54  ierr = nf_def_dim(nid, 'llmp1', llm+1, idim_llmp1)
     55  ierr = nf_def_dim(nid, 'Time', nf_unlimited, idim_time)
    5656
    57       ierr = NF_ENDDEF(nid)
    58       call def_var_stats(nid,"Time","Time",
    59      &            "hours since 0000-00-0 00:00:00",1,
    60      &            idim_time,nvarid,ierr)
    61 ! Time is initialised later by mkstats subroutine
     57  ierr = nf_enddef(nid)
     58  CALL def_var_stats(nid, 'Time', 'Time', 'hours since 0000-00-0 00:00:00', &
     59    1, idim_time, nvarid, ierr)
     60  ! Time is initialised later by mkstats subroutine
    6261
    63       call def_var_stats(nid,"latitude","latitude",
    64      &            "degrees_north",1,idim_lat,nvarid,ierr)
     62  CALL def_var_stats(nid, 'latitude', 'latitude', 'degrees_north', 1, &
     63    idim_lat, nvarid, ierr)
    6564#ifdef NC_DOUBLE
    66       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlatu/pi*180)
     65  ierr = nf_put_var_double(nid, nvarid, rlatu/pi*180)
    6766#else
    68       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlatu/pi*180)
     67  ierr = nf_put_var_real(nid, nvarid, rlatu/pi*180)
    6968#endif
    70       call def_var_stats(nid,"longitude","East longitude",
    71      &            "degrees_east",1,idim_lon,nvarid,ierr)
     69  CALL def_var_stats(nid, 'longitude', 'East longitude', 'degrees_east', 1, &
     70    idim_lon, nvarid, ierr)
    7271#ifdef NC_DOUBLE
    73       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlonv/pi*180)
     72  ierr = nf_put_var_double(nid, nvarid, rlonv/pi*180)
    7473#else
    75       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlonv/pi*180)
     74  ierr = nf_put_var_real(nid, nvarid, rlonv/pi*180)
    7675#endif
    7776
    78 ! Niveaux verticaux, aps et bps
    79       ierr = NF_REDEF (nid)
    80 ! presnivs
     77  ! Niveaux verticaux, aps et bps
     78  ierr = nf_redef(nid)
     79  ! presnivs
    8180#ifdef NC_DOUBLE
    82       ierr = NF_DEF_VAR (nid,"presnivs", NF_DOUBLE, 1,idim_llm,nvarid)
     81  ierr = nf_def_var(nid, 'presnivs', nf_double, 1, idim_llm, nvarid)
    8382#else
    84       ierr = NF_DEF_VAR (nid,"presnivs", NF_FLOAT, 1,idim_llm,nvarid)
     83  ierr = nf_def_var(nid, 'presnivs', nf_float, 1, idim_llm, nvarid)
    8584#endif
    86       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"long_name",15,
    87      &                        "Vertical levels")
    88       ierr = NF_PUT_ATT_TEXT (nid,nvarid,'units',2,"Pa")
    89       ierr = NF_PUT_ATT_TEXT (nid,nvarid,'positive',4,"down")
    90       ierr = NF_ENDDEF(nid)
     85  ierr = nf_put_att_text(nid, nvarid, 'long_name', 15, 'Vertical levels')
     86  ierr = nf_put_att_text(nid, nvarid, 'units', 2, 'Pa')
     87  ierr = nf_put_att_text(nid, nvarid, 'positive', 4, 'down')
     88  ierr = nf_enddef(nid)
    9189#ifdef NC_DOUBLE
    92       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,
    93      &                          presnivs(1:llm))
     90  ierr = nf_put_var_double(nid, nvarid, presnivs(1:llm))
    9491#else
    95       ierr = NF_PUT_VAR_REAL (nid,nvarid,
    96      &                        presnivs(1:llm))
    97 #endif
    98 ! Pseudo alts
     92  ierr = nf_put_var_real(nid, nvarid, presnivs(1:llm))
     93#endif
     94  ! Pseudo alts
    9995#ifdef NC_DOUBLE
    100       ierr = NF_DEF_VAR (nid,"altitude", NF_DOUBLE, 1,idim_llm,nvarid)
     96  ierr = nf_def_var(nid, 'altitude', nf_double, 1, idim_llm, nvarid)
    10197#else
    102       ierr = NF_DEF_VAR (nid,"altitude", NF_FLOAT, 1,idim_llm,nvarid)
     98  ierr = nf_def_var(nid, 'altitude', nf_float, 1, idim_llm, nvarid)
    10399#endif
    104       ierr = NF_PUT_ATT_TEXT (nid,nvarid,"long_name",8,"altitude")
    105       ierr = NF_PUT_ATT_TEXT (nid,nvarid,'units',2,"km")
    106       ierr = NF_PUT_ATT_TEXT (nid,nvarid,'positive',2,"up")
    107       ierr = NF_ENDDEF(nid)
     100  ierr = nf_put_att_text(nid, nvarid, 'long_name', 8, 'altitude')
     101  ierr = nf_put_att_text(nid, nvarid, 'units', 2, 'km')
     102  ierr = nf_put_att_text(nid, nvarid, 'positive', 2, 'up')
     103  ierr = nf_enddef(nid)
    108104#ifdef NC_DOUBLE
    109       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pseudoalt)
     105  ierr = nf_put_var_double(nid, nvarid, pseudoalt)
    110106#else
    111       ierr = NF_PUT_VAR_REAL (nid,nvarid,pseudoalt)
    112 #endif 
    113 !      call def_var_stats(nid,"aps","hybrid pressure at midlayers"," ",
    114 !    &            1,idim_llm,nvarid,ierr)
    115 !#ifdef NC_DOUBLE
    116 !      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,aps)
    117 !#else
    118 !      ierr = NF_PUT_VAR_REAL (nid,nvarid,aps)
    119 !#endif
     107  ierr = nf_put_var_real(nid, nvarid, pseudoalt)
     108#endif
     109  ! call def_var_stats(nid,"aps","hybrid pressure at midlayers"," ",
     110  ! &            1,idim_llm,nvarid,ierr)
     111  ! #ifdef NC_DOUBLE
     112  ! ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,aps)
     113  ! #else
     114  ! ierr = NF_PUT_VAR_REAL (nid,nvarid,aps)
     115  ! #endif
    120116
    121 !      call def_var_stats(nid,"bps","hybrid sigma at midlayers"," ",
    122 !    &            1,idim_llm,nvarid,ierr)
    123 !#ifdef NC_DOUBLE
    124 !      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,bps)
    125 !#else
    126 !      ierr = NF_PUT_VAR_REAL (nid,nvarid,bps)
    127 !#endif
     117  ! call def_var_stats(nid,"bps","hybrid sigma at midlayers"," ",
     118  ! &            1,idim_llm,nvarid,ierr)
     119  ! #ifdef NC_DOUBLE
     120  ! ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,bps)
     121  ! #else
     122  ! ierr = NF_PUT_VAR_REAL (nid,nvarid,bps)
     123  ! #endif
    128124
    129       ierr=NF_CLOSE(nid)
     125  ierr = nf_close(nid)
    130126
    131       end subroutine inistats
     127END SUBROUTINE inistats
    132128
Note: See TracChangeset for help on using the changeset viewer.