Ignore:
Timestamp:
Jul 12, 2012, 1:37:16 PM (12 years ago)
Author:
lguez
Message:

In "dynetat0" and "dynredem_*", replaced calls to "nf_get_var*" and
"nf_put_var*" (old NetCDF 77 interface, embedded in a test of
NC_DOUBLE) by calls to "nf90_get_var" and "nf95_put_var". This
required a change of the rank of some variables in those procedures.

Updated the NetCDF95 library, included in "bibio".

Revision tested in sequential and parallel with MPI. Identical
results.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/bibio/nf95_put_var_m.F90

    r1279 r1635  
    99          nf95_put_var_2D_FourByteReal, nf95_put_var_3D_FourByteReal, &
    1010          nf95_put_var_4D_FourByteReal
    11 !!$     module procedure nf95_put_var_1D_FourByteReal, &
    12 !!$          nf95_put_var_2D_FourByteReal, nf95_put_var_3D_FourByteReal, &
    13 !!$          nf95_put_var_4D_FourByteReal, nf90_put_var_1D_EightByteReal, &
    14 !!$          nf90_put_var_3D_EightByteReal
    1511  end interface
    1612
     
    2521    use handle_err_m, only: handle_err
    2622
    27     integer, intent( in) :: ncid, varid
    28     real, intent( in) :: values
    29     integer, dimension(:), optional, intent( in) :: start
     23    integer, intent(in) :: ncid, varid
     24    real, intent(in) :: values
     25    integer, dimension(:), optional, intent(in) :: start
    3026    integer, intent(out), optional:: ncerr
    3127
     
    5248    use handle_err_m, only: handle_err
    5349
    54     integer, intent( in) :: ncid, varid
    55     integer, intent( in) :: values
    56     integer, dimension(:), optional, intent( in) :: start
     50    integer, intent(in) :: ncid, varid
     51    integer, intent(in) :: values
     52    integer, dimension(:), optional, intent(in) :: start
    5753    integer, intent(out), optional:: ncerr
    5854
     
    7470  !***********************
    7571
    76   subroutine nf95_put_var_1D_FourByteReal(ncid, varid, values, start, count, &
    77        stride, map, ncerr)
     72  subroutine nf95_put_var_1D_FourByteReal(ncid, varid, values, start, &
     73       count_nc, stride, map, ncerr)
    7874
    7975    use netcdf, only: nf90_put_var
     
    8278    integer,                         intent(in) :: ncid, varid
    8379    real, intent(in) :: values(:)
    84     integer, dimension(:), optional, intent(in) :: start, count, stride, map
    85     integer, intent(out), optional:: ncerr
    86 
    87     ! Variable local to the procedure:
    88     integer ncerr_not_opt
    89 
    90     !-------------------
    91 
    92     ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    93          map)
     80    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     81    integer, intent(out), optional:: ncerr
     82
     83    ! Variable local to the procedure:
     84    integer ncerr_not_opt
     85
     86    !-------------------
     87
     88    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     89         stride, map)
    9490    if (present(ncerr)) then
    9591       ncerr = ncerr_not_opt
     
    10399  !***********************
    104100
    105   subroutine nf95_put_var_1D_FourByteInt(ncid, varid, values, start, count, &
    106        stride, map, ncerr)
     101  subroutine nf95_put_var_1D_FourByteInt(ncid, varid, values, start, &
     102       count_nc, stride, map, ncerr)
    107103
    108104    use netcdf, only: nf90_put_var
     
    111107    integer,                         intent(in) :: ncid, varid
    112108    integer, intent(in) :: values(:)
    113     integer, dimension(:), optional, intent(in) :: start, count, stride, map
    114     integer, intent(out), optional:: ncerr
    115 
    116     ! Variable local to the procedure:
    117     integer ncerr_not_opt
    118 
    119     !-------------------
    120 
    121     ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    122          map)
     109    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     110    integer, intent(out), optional:: ncerr
     111
     112    ! Variable local to the procedure:
     113    integer ncerr_not_opt
     114
     115    !-------------------
     116
     117    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     118         stride, map)
    123119    if (present(ncerr)) then
    124120       ncerr = ncerr_not_opt
     
    132128  !***********************
    133129
    134   subroutine nf95_put_var_2D_FourByteReal(ncid, varid, values, start, count, &
    135        stride, map, ncerr)
    136 
    137     use netcdf, only: nf90_put_var
    138     use handle_err_m, only: handle_err
    139 
    140     integer,                         intent( in) :: ncid, varid
    141     real, intent( in) :: values(:, :)
    142     integer, dimension(:), optional, intent( in) :: start, count, stride, map
    143     integer, intent(out), optional:: ncerr
    144 
    145     ! Variable local to the procedure:
    146     integer ncerr_not_opt
    147 
    148     !-------------------
    149 
    150     ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    151          map)
     130  subroutine nf95_put_var_1D_EightByteReal(ncid, varid, values, start, &
     131       count_nc, stride, map, ncerr)
     132
     133    use typesizes, only: eightByteReal
     134    use netcdf, only: nf90_put_var
     135    use handle_err_m, only: handle_err
     136
     137    integer,                         intent(in) :: ncid, varid
     138    real (kind = EightByteReal),     intent(in) :: values(:)
     139    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
     140    integer, intent(out), optional:: ncerr
     141
     142    ! Variable local to the procedure:
     143    integer ncerr_not_opt
     144
     145    !-------------------
     146
     147    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     148         stride, map)
     149    if (present(ncerr)) then
     150       ncerr = ncerr_not_opt
     151    else
     152       call handle_err("nf95_put_var_1D_eightByteReal", ncerr_not_opt, ncid, &
     153            varid)
     154    end if
     155
     156  end subroutine nf95_put_var_1D_EightByteReal
     157
     158  !***********************
     159
     160  subroutine nf95_put_var_2D_FourByteReal(ncid, varid, values, start, &
     161       count_nc, stride, map, ncerr)
     162
     163    use netcdf, only: nf90_put_var
     164    use handle_err_m, only: handle_err
     165
     166    integer,                         intent(in) :: ncid, varid
     167    real, intent(in) :: values(:, :)
     168    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     169    integer, intent(out), optional:: ncerr
     170
     171    ! Variable local to the procedure:
     172    integer ncerr_not_opt
     173
     174    !-------------------
     175
     176    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     177         stride, map)
    152178    if (present(ncerr)) then
    153179       ncerr = ncerr_not_opt
     
    161187  !***********************
    162188
    163   subroutine nf95_put_var_3D_FourByteReal(ncid, varid, values, start, count, &
    164        stride, map, ncerr)
    165 
    166     use netcdf, only: nf90_put_var
    167     use handle_err_m, only: handle_err
    168 
    169     integer,                         intent( in) :: ncid, varid
    170     real, intent( in) :: values(:, :, :)
    171     integer, dimension(:), optional, intent( in) :: start, count, stride, map
    172     integer, intent(out), optional:: ncerr
    173 
    174     ! Variable local to the procedure:
    175     integer ncerr_not_opt
    176 
    177     !-------------------
    178 
    179     ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    180          map)
     189  subroutine nf95_put_var_2D_EightByteReal(ncid, varid, values, start, &
     190       count_nc, stride, map, ncerr)
     191
     192    use typesizes, only: EightByteReal
     193    use netcdf, only: nf90_put_var
     194    use handle_err_m, only: handle_err
     195
     196    integer,                         intent(in) :: ncid, varid
     197    real (kind = EightByteReal), intent(in) :: values(:, :)
     198    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     199    integer, intent(out), optional:: ncerr
     200
     201    ! Variable local to the procedure:
     202    integer ncerr_not_opt
     203
     204    !-------------------
     205
     206    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     207         stride, map)
     208    if (present(ncerr)) then
     209       ncerr = ncerr_not_opt
     210    else
     211       call handle_err("nf95_put_var_2D_EightByteReal", ncerr_not_opt, ncid, &
     212            varid)
     213    end if
     214
     215  end subroutine nf95_put_var_2D_EightByteReal
     216
     217  !***********************
     218
     219  subroutine nf95_put_var_3D_FourByteReal(ncid, varid, values, start, &
     220       count_nc, stride, map, ncerr)
     221
     222    use netcdf, only: nf90_put_var
     223    use handle_err_m, only: handle_err
     224
     225    integer,                         intent(in) :: ncid, varid
     226    real, intent(in) :: values(:, :, :)
     227    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     228    integer, intent(out), optional:: ncerr
     229
     230    ! Variable local to the procedure:
     231    integer ncerr_not_opt
     232
     233    !-------------------
     234
     235    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     236         stride, map)
    181237    if (present(ncerr)) then
    182238       ncerr = ncerr_not_opt
     
    190246  !***********************
    191247
    192   subroutine nf95_put_var_4D_FourByteReal(ncid, varid, values, start, count, &
    193        stride, map, ncerr)
    194 
    195     use netcdf, only: nf90_put_var
    196     use handle_err_m, only: handle_err
    197 
    198     integer,                         intent( in) :: ncid, varid
    199     real, intent( in) :: values(:, :, :, :)
    200     integer, dimension(:), optional, intent( in) :: start, count, stride, map
    201     integer, intent(out), optional:: ncerr
    202 
    203     ! Variable local to the procedure:
    204     integer ncerr_not_opt
    205 
    206     !-------------------
    207 
    208     ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    209          map)
     248  subroutine nf95_put_var_3D_EightByteReal(ncid, varid, values, start, &
     249       count_nc, stride, map, ncerr)
     250
     251    use typesizes, only: eightByteReal
     252    use netcdf, only: nf90_put_var
     253    use handle_err_m, only: handle_err
     254
     255    integer,                         intent(in) :: ncid, varid
     256    real (kind = EightByteReal),     intent(in) :: values(:, :, :)
     257    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     258    integer, intent(out), optional:: ncerr
     259
     260    ! Variable local to the procedure:
     261    integer ncerr_not_opt
     262
     263    !-------------------
     264
     265    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     266         stride, map)
     267    if (present(ncerr)) then
     268       ncerr = ncerr_not_opt
     269    else
     270       call handle_err("nf95_put_var_3D_eightByteReal", ncerr_not_opt, ncid, &
     271            varid)
     272    end if
     273
     274  end subroutine nf95_put_var_3D_EightByteReal
     275
     276  !***********************
     277
     278  subroutine nf95_put_var_4D_FourByteReal(ncid, varid, values, start, &
     279       count_nc, stride, map, ncerr)
     280
     281    use netcdf, only: nf90_put_var
     282    use handle_err_m, only: handle_err
     283
     284    integer,                         intent(in) :: ncid, varid
     285    real, intent(in) :: values(:, :, :, :)
     286    integer, dimension(:), optional, intent(in) :: start, count_nc, stride, map
     287    integer, intent(out), optional:: ncerr
     288
     289    ! Variable local to the procedure:
     290    integer ncerr_not_opt
     291
     292    !-------------------
     293
     294    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     295         stride, map)
    210296    if (present(ncerr)) then
    211297       ncerr = ncerr_not_opt
     
    219305  !***********************
    220306
    221 !!$  subroutine nf90_put_var_1D_EightByteReal(ncid, varid, values, start, count, &
    222 !!$       stride, map, ncerr)
    223 !!$
    224 !!$    use typesizes, only: eightByteReal
    225 !!$    use netcdf, only: nf90_put_var
    226 !!$    use handle_err_m, only: handle_err
    227 !!$
    228 !!$    integer,                         intent( in) :: ncid, varid
    229 !!$    real (kind = EightByteReal),     intent( in) :: values(:)
    230 !!$    integer, dimension(:), optional, intent( in) :: start, count, stride, map
    231 !!$    integer, intent(out), optional:: ncerr
    232 !!$
    233 !!$    ! Variable local to the procedure:
    234 !!$    integer ncerr_not_opt
    235 !!$
    236 !!$    !-------------------
    237 !!$
    238 !!$    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    239 !!$         map)
    240 !!$    if (present(ncerr)) then
    241 !!$       ncerr = ncerr_not_opt
    242 !!$    else
    243 !!$       call handle_err("nf95_put_var_1D_eightByteReal", ncerr_not_opt, ncid, &
    244 !!$            varid)
    245 !!$    end if
    246 !!$
    247 !!$  end subroutine nf90_put_var_1D_EightByteReal
    248 !!$
    249 !!$  !***********************
    250 !!$
    251 !!$  subroutine nf90_put_var_3D_EightByteReal(ncid, varid, values, start, count, &
    252 !!$       stride, map, ncerr)
    253 !!$
    254 !!$    use typesizes, only: eightByteReal
    255 !!$    use netcdf, only: nf90_put_var
    256 !!$    use handle_err_m, only: handle_err
    257 !!$
    258 !!$    integer,                         intent( in) :: ncid, varid
    259 !!$    real (kind = EightByteReal),     intent( in) :: values(:, :, :)
    260 !!$    integer, dimension(:), optional, intent( in) :: start, count, stride, map
    261 !!$    integer, intent(out), optional:: ncerr
    262 !!$
    263 !!$    ! Variable local to the procedure:
    264 !!$    integer ncerr_not_opt
    265 !!$
    266 !!$    !-------------------
    267 !!$
    268 !!$    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count, stride, &
    269 !!$         map)
    270 !!$    if (present(ncerr)) then
    271 !!$       ncerr = ncerr_not_opt
    272 !!$    else
    273 !!$       call handle_err("nf95_put_var_3D_eightByteReal", ncerr_not_opt, ncid, &
    274 !!$            varid)
    275 !!$    end if
    276 !!$
    277 !!$  end subroutine nf90_put_var_3D_EightByteReal
     307  subroutine nf95_put_var_4D_EightByteReal(ncid, varid, values, start, &
     308       count_nc, stride, map, ncerr)
     309
     310    use typesizes, only: EightByteReal
     311    use netcdf, only: nf90_put_var
     312    use handle_err_m, only: handle_err
     313
     314    integer, intent(in):: ncid, varid
     315    real(kind = EightByteReal), intent(in):: values(:, :, :, :)
     316    integer, dimension(:), optional, intent(in):: start, count_nc, stride, map
     317    integer, intent(out), optional:: ncerr
     318
     319    ! Variable local to the procedure:
     320    integer ncerr_not_opt
     321
     322    !-------------------
     323
     324    ncerr_not_opt = nf90_put_var(ncid, varid, values, start, count_nc, &
     325         stride, map)
     326    if (present(ncerr)) then
     327       ncerr = ncerr_not_opt
     328    else
     329       call handle_err("nf95_put_var_4D_EightByteReal", ncerr_not_opt, ncid, &
     330            varid)
     331    end if
     332
     333  end subroutine nf95_put_var_4D_EightByteReal
    278334
    279335end module nf95_put_var_m
Note: See TracChangeset for help on using the changeset viewer.