New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3359 for branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icbtrj.F90 – NEMO

Ignore:
Timestamp:
2012-04-18T12:42:56+02:00 (12 years ago)
Author:
sga
Message:

NEMO branch dev_r3337_NOCS10_ICB: make code conform to NEMO coding conventions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icbtrj.F90

    r3339 r3359  
    2626   PRIVATE 
    2727 
    28    INTEGER, PRIVATE   ::   kount_traj 
    29    INTEGER, PRIVATE   ::   n_dim, k_dim 
    30    INTEGER, PRIVATE   ::   trajid 
    31    INTEGER, PRIVATE   ::   numberid, stepid, scaling_id 
    32    INTEGER, PRIVATE   ::   lonid, latid, xid, yid, uvelid, vvelid, massid 
    33    INTEGER, PRIVATE   ::   uoid, void, uaid, vaid, uiid, viid 
    34    INTEGER, PRIVATE   ::   sshxid, sshyid, sstid, cntid, thkid 
    35    INTEGER, PRIVATE   ::   thicknessid, widthid, lengthid 
    36    INTEGER, PRIVATE   ::   yearid, dayid 
    37    INTEGER, PRIVATE   ::   mass_of_bits_id, heat_density_id 
    38  
    39    PUBLIC   traj_init           ! routine called in xxx.F90 module 
    40    PUBLIC   traj_write          ! routine called in xxx.F90 module 
    41    PUBLIC   traj_sync           ! routine called in xxx.F90 module 
    42    PUBLIC   traj_end            ! routine called in xxx.F90 module 
     28   INTEGER, PRIVATE   ::   num_traj 
     29   INTEGER, PRIVATE   ::   n_dim, m_dim 
     30   INTEGER, PRIVATE   ::   ntrajid 
     31   INTEGER, PRIVATE   ::   numberid, nstepid, nscaling_id 
     32   INTEGER, PRIVATE   ::   nlonid, nlatid, nxid, nyid, nuvelid, nvvelid, nmassid 
     33   INTEGER, PRIVATE   ::   nuoid, nvoid, nuaid, nvaid, nuiid, nviid 
     34   INTEGER, PRIVATE   ::   nsshxid, nsshyid, nsstid, ncntid, nthkid 
     35   INTEGER, PRIVATE   ::   nthicknessid, nwidthid, nlengthid 
     36   INTEGER, PRIVATE   ::   nyearid, ndayid 
     37   INTEGER, PRIVATE   ::   nmass_of_bits_id, nheat_density_id 
     38 
     39   PUBLIC   traj_init           ! routine called in icbini.F90 module 
     40   PUBLIC   traj_write          ! routine called in icbrun.F90 module 
     41   PUBLIC   traj_sync           ! routine called in icbrun.F90 module 
     42   PUBLIC   traj_end            ! routine called in icbrun.F90 module 
    4343 
    4444CONTAINS 
     
    4646   !!------------------------------------------------------------------------- 
    4747 
    48    SUBROUTINE traj_init( nitend ) 
     48   SUBROUTINE traj_init( ktend ) 
    4949 
    5050      ! local variables 
    51       INTEGER, INTENT( in )                 :: nitend 
    52       ! Local variables 
    53       INTEGER                               :: iret, k 
    54       CHARACTER(len=80)                     :: filename 
     51      INTEGER, INTENT( in )                 :: ktend 
     52      ! Local variables 
     53      INTEGER                               :: iret 
     54      CHARACTER(len=80)                     :: cl_filename 
    5555      TYPE(iceberg), POINTER                :: this 
    5656      TYPE(point)  , POINTER                :: pt 
    5757 
    5858      IF( lk_mpp ) THEN 
    59          WRITE(filename,'("trajectory_icebergs_",I6.6,"_",I4.4,".nc")') nitend, narea-1 
     59         WRITE(cl_filename,'("trajectory_icebergs_",I6.6,"_",I4.4,".nc")') ktend, narea-1 
    6060      ELSE 
    61          WRITE(filename,'("trajectory_icebergs_",I6.6,".nc")') nitend 
     61         WRITE(cl_filename,'("trajectory_icebergs_",I6.6,".nc")') ktend 
    6262      ENDIF 
    63       IF ( lwp .AND. nn_verbose_level >= 0) WRITE(numout,'(2a)') 'icebergs, traj_init: creating ',TRIM(filename) 
    64  
    65       iret = NF90_CREATE(TRIM(filename), NF90_CLOBBER, trajid) 
     63      IF ( lwp .AND. nn_verbose_level >= 0) WRITE(numout,'(2a)') 'icebergs, traj_init: creating ',TRIM(cl_filename) 
     64 
     65      iret = NF90_CREATE(TRIM(cl_filename), NF90_CLOBBER, ntrajid) 
    6666      IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_init: nf_create failed') 
    6767 
    6868      ! Dimensions 
    69       iret = NF90_DEF_DIM(trajid, 'n', NF90_UNLIMITED, n_dim) 
     69      iret = NF90_DEF_DIM(ntrajid, 'n', NF90_UNLIMITED, n_dim) 
    7070      IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_init: nf_def_dim n failed') 
    71       iret = NF90_DEF_DIM(trajid, 'k', nkounts, k_dim) 
     71      iret = NF90_DEF_DIM(ntrajid, 'k', nkounts, m_dim) 
    7272      IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_init: nf_def_dim k failed') 
    7373 
    7474      ! Variables 
    75       iret = NF90_DEF_VAR(trajid, 'iceberg_number', NF90_INT, (/k_dim,n_dim/), numberid) 
    76       iret = NF90_DEF_VAR(trajid, 'timestep', NF90_INT, n_dim, stepid) 
    77       iret = NF90_DEF_VAR(trajid, 'mass_scaling', NF90_DOUBLE, n_dim, scaling_id) 
    78       iret = NF90_DEF_VAR(trajid, 'lon', NF90_DOUBLE, n_dim, lonid) 
    79       iret = NF90_DEF_VAR(trajid, 'lat', NF90_DOUBLE, n_dim, latid) 
    80       iret = NF90_DEF_VAR(trajid, 'xi', NF90_DOUBLE, n_dim, xid) 
    81       iret = NF90_DEF_VAR(trajid, 'yj', NF90_DOUBLE, n_dim, yid) 
    82       iret = NF90_DEF_VAR(trajid, 'uvel', NF90_DOUBLE, n_dim, uvelid) 
    83       iret = NF90_DEF_VAR(trajid, 'vvel', NF90_DOUBLE, n_dim, vvelid) 
    84       iret = NF90_DEF_VAR(trajid, 'uto', NF90_DOUBLE, n_dim, uoid) 
    85       iret = NF90_DEF_VAR(trajid, 'vto', NF90_DOUBLE, n_dim, void) 
    86       iret = NF90_DEF_VAR(trajid, 'uta', NF90_DOUBLE, n_dim, uaid) 
    87       iret = NF90_DEF_VAR(trajid, 'vta', NF90_DOUBLE, n_dim, vaid) 
    88       iret = NF90_DEF_VAR(trajid, 'uti', NF90_DOUBLE, n_dim, uiid) 
    89       iret = NF90_DEF_VAR(trajid, 'vti', NF90_DOUBLE, n_dim, viid) 
    90       iret = NF90_DEF_VAR(trajid, 'ssh_x', NF90_DOUBLE, n_dim, sshyid) 
    91       iret = NF90_DEF_VAR(trajid, 'ssh_y', NF90_DOUBLE, n_dim, sshxid) 
    92       iret = NF90_DEF_VAR(trajid, 'sst', NF90_DOUBLE, n_dim, sstid) 
    93       iret = NF90_DEF_VAR(trajid, 'icnt', NF90_DOUBLE, n_dim, cntid) 
    94       iret = NF90_DEF_VAR(trajid, 'ithk', NF90_DOUBLE, n_dim, thkid) 
    95       iret = NF90_DEF_VAR(trajid, 'mass', NF90_DOUBLE, n_dim, massid) 
    96       iret = NF90_DEF_VAR(trajid, 'thickness', NF90_DOUBLE, n_dim, thicknessid) 
    97       iret = NF90_DEF_VAR(trajid, 'width', NF90_DOUBLE, n_dim, widthid) 
    98       iret = NF90_DEF_VAR(trajid, 'length', NF90_DOUBLE, n_dim, lengthid) 
    99       iret = NF90_DEF_VAR(trajid, 'year', NF90_INT, n_dim, yearid) 
    100       iret = NF90_DEF_VAR(trajid, 'day', NF90_DOUBLE, n_dim, dayid) 
    101       iret = NF90_DEF_VAR(trajid, 'mass_of_bits', NF90_DOUBLE, n_dim, mass_of_bits_id) 
    102       iret = NF90_DEF_VAR(trajid, 'heat_density', NF90_DOUBLE, n_dim, heat_density_id) 
     75      iret = NF90_DEF_VAR(ntrajid, 'iceberg_number', NF90_INT, (/m_dim,n_dim/), numberid) 
     76      iret = NF90_DEF_VAR(ntrajid, 'timestep', NF90_INT, n_dim, nstepid) 
     77      iret = NF90_DEF_VAR(ntrajid, 'mass_scaling', NF90_DOUBLE, n_dim, nscaling_id) 
     78      iret = NF90_DEF_VAR(ntrajid, 'lon', NF90_DOUBLE, n_dim, nlonid) 
     79      iret = NF90_DEF_VAR(ntrajid, 'lat', NF90_DOUBLE, n_dim, nlatid) 
     80      iret = NF90_DEF_VAR(ntrajid, 'xi', NF90_DOUBLE, n_dim, nxid) 
     81      iret = NF90_DEF_VAR(ntrajid, 'yj', NF90_DOUBLE, n_dim, nyid) 
     82      iret = NF90_DEF_VAR(ntrajid, 'uvel', NF90_DOUBLE, n_dim, nuvelid) 
     83      iret = NF90_DEF_VAR(ntrajid, 'vvel', NF90_DOUBLE, n_dim, nvvelid) 
     84      iret = NF90_DEF_VAR(ntrajid, 'uto', NF90_DOUBLE, n_dim, nuoid) 
     85      iret = NF90_DEF_VAR(ntrajid, 'vto', NF90_DOUBLE, n_dim, nvoid) 
     86      iret = NF90_DEF_VAR(ntrajid, 'uta', NF90_DOUBLE, n_dim, nuaid) 
     87      iret = NF90_DEF_VAR(ntrajid, 'vta', NF90_DOUBLE, n_dim, nvaid) 
     88      iret = NF90_DEF_VAR(ntrajid, 'uti', NF90_DOUBLE, n_dim, nuiid) 
     89      iret = NF90_DEF_VAR(ntrajid, 'vti', NF90_DOUBLE, n_dim, nviid) 
     90      iret = NF90_DEF_VAR(ntrajid, 'ssh_x', NF90_DOUBLE, n_dim, nsshyid) 
     91      iret = NF90_DEF_VAR(ntrajid, 'ssh_y', NF90_DOUBLE, n_dim, nsshxid) 
     92      iret = NF90_DEF_VAR(ntrajid, 'sst', NF90_DOUBLE, n_dim, nsstid) 
     93      iret = NF90_DEF_VAR(ntrajid, 'icnt', NF90_DOUBLE, n_dim, ncntid) 
     94      iret = NF90_DEF_VAR(ntrajid, 'ithk', NF90_DOUBLE, n_dim, nthkid) 
     95      iret = NF90_DEF_VAR(ntrajid, 'mass', NF90_DOUBLE, n_dim, nmassid) 
     96      iret = NF90_DEF_VAR(ntrajid, 'thickness', NF90_DOUBLE, n_dim, nthicknessid) 
     97      iret = NF90_DEF_VAR(ntrajid, 'width', NF90_DOUBLE, n_dim, nwidthid) 
     98      iret = NF90_DEF_VAR(ntrajid, 'length', NF90_DOUBLE, n_dim, nlengthid) 
     99      iret = NF90_DEF_VAR(ntrajid, 'year', NF90_INT, n_dim, nyearid) 
     100      iret = NF90_DEF_VAR(ntrajid, 'day', NF90_DOUBLE, n_dim, ndayid) 
     101      iret = NF90_DEF_VAR(ntrajid, 'mass_of_bits', NF90_DOUBLE, n_dim, nmass_of_bits_id) 
     102      iret = NF90_DEF_VAR(ntrajid, 'heat_density', NF90_DOUBLE, n_dim, nheat_density_id) 
    103103 
    104104      ! Attributes 
    105       iret = NF90_PUT_ATT(trajid, numberid, 'long_name', 'iceberg number on this processor') 
    106       iret = NF90_PUT_ATT(trajid, numberid, 'units', 'count') 
    107       iret = NF90_PUT_ATT(trajid, stepid, 'long_name', 'timestep number kt') 
    108       iret = NF90_PUT_ATT(trajid, stepid, 'units', 'count') 
    109       iret = NF90_PUT_ATT(trajid, lonid, 'long_name', 'longitude') 
    110       iret = NF90_PUT_ATT(trajid, lonid, 'units', 'degrees_E') 
    111       iret = NF90_PUT_ATT(trajid, latid, 'long_name', 'latitude') 
    112       iret = NF90_PUT_ATT(trajid, latid, 'units', 'degrees_N') 
    113       iret = NF90_PUT_ATT(trajid, xid, 'long_name', 'x grid box position') 
    114       iret = NF90_PUT_ATT(trajid, xid, 'units', 'fractional') 
    115       iret = NF90_PUT_ATT(trajid, yid, 'long_name', 'y grid box position') 
    116       iret = NF90_PUT_ATT(trajid, yid, 'units', 'fractional') 
    117       iret = NF90_PUT_ATT(trajid, uvelid, 'long_name', 'zonal velocity') 
    118       iret = NF90_PUT_ATT(trajid, uvelid, 'units', 'm/s') 
    119       iret = NF90_PUT_ATT(trajid, vvelid, 'long_name', 'meridional velocity') 
    120       iret = NF90_PUT_ATT(trajid, vvelid, 'units', 'm/s') 
    121       iret = NF90_PUT_ATT(trajid, uoid, 'long_name', 'ocean u component') 
    122       iret = NF90_PUT_ATT(trajid, uoid, 'units', 'm/s') 
    123       iret = NF90_PUT_ATT(trajid, void, 'long_name', 'ocean v component') 
    124       iret = NF90_PUT_ATT(trajid, void, 'units', 'm/s') 
    125       iret = NF90_PUT_ATT(trajid, uaid, 'long_name', 'atmosphere u component') 
    126       iret = NF90_PUT_ATT(trajid, uaid, 'units', 'm/s') 
    127       iret = NF90_PUT_ATT(trajid, vaid, 'long_name', 'atmosphere v component') 
    128       iret = NF90_PUT_ATT(trajid, vaid, 'units', 'm/s') 
    129       iret = NF90_PUT_ATT(trajid, uiid, 'long_name', 'sea ice u component') 
    130       iret = NF90_PUT_ATT(trajid, uiid, 'units', 'm/s') 
    131       iret = NF90_PUT_ATT(trajid, viid, 'long_name', 'sea ice v component') 
    132       iret = NF90_PUT_ATT(trajid, viid, 'units', 'm/s') 
    133       iret = NF90_PUT_ATT(trajid, sshxid, 'long_name', 'sea surface height gradient from x points') 
    134       iret = NF90_PUT_ATT(trajid, sshxid, 'units', 'm/m') 
    135       iret = NF90_PUT_ATT(trajid, sshyid, 'long_name', 'sea surface height gradient from y points') 
    136       iret = NF90_PUT_ATT(trajid, sshyid, 'units', 'm/m') 
    137       iret = NF90_PUT_ATT(trajid, sstid, 'long_name', 'sea surface temperature') 
    138       iret = NF90_PUT_ATT(trajid, sstid, 'units', 'degC') 
    139       iret = NF90_PUT_ATT(trajid, cntid, 'long_name', 'sea ice concentration') 
    140       iret = NF90_PUT_ATT(trajid, cntid, 'units', 'degC') 
    141       iret = NF90_PUT_ATT(trajid, thkid, 'long_name', 'sea ice thickness') 
    142       iret = NF90_PUT_ATT(trajid, thkid, 'units', 'm') 
    143       iret = NF90_PUT_ATT(trajid, massid, 'long_name', 'mass') 
    144       iret = NF90_PUT_ATT(trajid, massid, 'units', 'kg') 
    145       iret = NF90_PUT_ATT(trajid, thicknessid, 'long_name', 'thickness') 
    146       iret = NF90_PUT_ATT(trajid, thicknessid, 'units', 'm') 
    147       iret = NF90_PUT_ATT(trajid, widthid, 'long_name', 'width') 
    148       iret = NF90_PUT_ATT(trajid, widthid, 'units', 'm') 
    149       iret = NF90_PUT_ATT(trajid, lengthid, 'long_name', 'length') 
    150       iret = NF90_PUT_ATT(trajid, lengthid, 'units', 'm') 
    151       iret = NF90_PUT_ATT(trajid, yearid, 'long_name', 'calendar year') 
    152       iret = NF90_PUT_ATT(trajid, yearid, 'units', 'years') 
    153       iret = NF90_PUT_ATT(trajid, dayid, 'long_name', 'day of year') 
    154       iret = NF90_PUT_ATT(trajid, dayid, 'units', 'days') 
    155       iret = NF90_PUT_ATT(trajid, scaling_id, 'long_name', 'scaling factor for mass of berg') 
    156       iret = NF90_PUT_ATT(trajid, scaling_id, 'units', 'none') 
    157       iret = NF90_PUT_ATT(trajid, mass_of_bits_id, 'long_name', 'mass of bergy bits') 
    158       iret = NF90_PUT_ATT(trajid, mass_of_bits_id, 'units', 'kg') 
    159       iret = NF90_PUT_ATT(trajid, heat_density_id, 'long_name', 'heat density') 
    160       iret = NF90_PUT_ATT(trajid, heat_density_id, 'units', 'J/kg') 
     105      iret = NF90_PUT_ATT(ntrajid, numberid, 'long_name', 'iceberg number on this processor') 
     106      iret = NF90_PUT_ATT(ntrajid, numberid, 'units', 'count') 
     107      iret = NF90_PUT_ATT(ntrajid, nstepid, 'long_name', 'timestep number kt') 
     108      iret = NF90_PUT_ATT(ntrajid, nstepid, 'units', 'count') 
     109      iret = NF90_PUT_ATT(ntrajid, nlonid, 'long_name', 'longitude') 
     110      iret = NF90_PUT_ATT(ntrajid, nlonid, 'units', 'degrees_E') 
     111      iret = NF90_PUT_ATT(ntrajid, nlatid, 'long_name', 'latitude') 
     112      iret = NF90_PUT_ATT(ntrajid, nlatid, 'units', 'degrees_N') 
     113      iret = NF90_PUT_ATT(ntrajid, nxid, 'long_name', 'x grid box position') 
     114      iret = NF90_PUT_ATT(ntrajid, nxid, 'units', 'fractional') 
     115      iret = NF90_PUT_ATT(ntrajid, nyid, 'long_name', 'y grid box position') 
     116      iret = NF90_PUT_ATT(ntrajid, nyid, 'units', 'fractional') 
     117      iret = NF90_PUT_ATT(ntrajid, nuvelid, 'long_name', 'zonal velocity') 
     118      iret = NF90_PUT_ATT(ntrajid, nuvelid, 'units', 'm/s') 
     119      iret = NF90_PUT_ATT(ntrajid, nvvelid, 'long_name', 'meridional velocity') 
     120      iret = NF90_PUT_ATT(ntrajid, nvvelid, 'units', 'm/s') 
     121      iret = NF90_PUT_ATT(ntrajid, nuoid, 'long_name', 'ocean u component') 
     122      iret = NF90_PUT_ATT(ntrajid, nuoid, 'units', 'm/s') 
     123      iret = NF90_PUT_ATT(ntrajid, nvoid, 'long_name', 'ocean v component') 
     124      iret = NF90_PUT_ATT(ntrajid, nvoid, 'units', 'm/s') 
     125      iret = NF90_PUT_ATT(ntrajid, nuaid, 'long_name', 'atmosphere u component') 
     126      iret = NF90_PUT_ATT(ntrajid, nuaid, 'units', 'm/s') 
     127      iret = NF90_PUT_ATT(ntrajid, nvaid, 'long_name', 'atmosphere v component') 
     128      iret = NF90_PUT_ATT(ntrajid, nvaid, 'units', 'm/s') 
     129      iret = NF90_PUT_ATT(ntrajid, nuiid, 'long_name', 'sea ice u component') 
     130      iret = NF90_PUT_ATT(ntrajid, nuiid, 'units', 'm/s') 
     131      iret = NF90_PUT_ATT(ntrajid, nviid, 'long_name', 'sea ice v component') 
     132      iret = NF90_PUT_ATT(ntrajid, nviid, 'units', 'm/s') 
     133      iret = NF90_PUT_ATT(ntrajid, nsshxid, 'long_name', 'sea surface height gradient from x points') 
     134      iret = NF90_PUT_ATT(ntrajid, nsshxid, 'units', 'm/m') 
     135      iret = NF90_PUT_ATT(ntrajid, nsshyid, 'long_name', 'sea surface height gradient from y points') 
     136      iret = NF90_PUT_ATT(ntrajid, nsshyid, 'units', 'm/m') 
     137      iret = NF90_PUT_ATT(ntrajid, nsstid, 'long_name', 'sea surface temperature') 
     138      iret = NF90_PUT_ATT(ntrajid, nsstid, 'units', 'degC') 
     139      iret = NF90_PUT_ATT(ntrajid, ncntid, 'long_name', 'sea ice concentration') 
     140      iret = NF90_PUT_ATT(ntrajid, ncntid, 'units', 'degC') 
     141      iret = NF90_PUT_ATT(ntrajid, nthkid, 'long_name', 'sea ice thickness') 
     142      iret = NF90_PUT_ATT(ntrajid, nthkid, 'units', 'm') 
     143      iret = NF90_PUT_ATT(ntrajid, nmassid, 'long_name', 'mass') 
     144      iret = NF90_PUT_ATT(ntrajid, nmassid, 'units', 'kg') 
     145      iret = NF90_PUT_ATT(ntrajid, nthicknessid, 'long_name', 'thickness') 
     146      iret = NF90_PUT_ATT(ntrajid, nthicknessid, 'units', 'm') 
     147      iret = NF90_PUT_ATT(ntrajid, nwidthid, 'long_name', 'width') 
     148      iret = NF90_PUT_ATT(ntrajid, nwidthid, 'units', 'm') 
     149      iret = NF90_PUT_ATT(ntrajid, nlengthid, 'long_name', 'length') 
     150      iret = NF90_PUT_ATT(ntrajid, nlengthid, 'units', 'm') 
     151      iret = NF90_PUT_ATT(ntrajid, nyearid, 'long_name', 'calendar year') 
     152      iret = NF90_PUT_ATT(ntrajid, nyearid, 'units', 'years') 
     153      iret = NF90_PUT_ATT(ntrajid, ndayid, 'long_name', 'day of year') 
     154      iret = NF90_PUT_ATT(ntrajid, ndayid, 'units', 'days') 
     155      iret = NF90_PUT_ATT(ntrajid, nscaling_id, 'long_name', 'scaling factor for mass of berg') 
     156      iret = NF90_PUT_ATT(ntrajid, nscaling_id, 'units', 'none') 
     157      iret = NF90_PUT_ATT(ntrajid, nmass_of_bits_id, 'long_name', 'mass of bergy bits') 
     158      iret = NF90_PUT_ATT(ntrajid, nmass_of_bits_id, 'units', 'kg') 
     159      iret = NF90_PUT_ATT(ntrajid, nheat_density_id, 'long_name', 'heat density') 
     160      iret = NF90_PUT_ATT(ntrajid, nheat_density_id, 'units', 'J/kg') 
    161161 
    162162      ! End define mode 
    163       iret = NF90_ENDDEF(trajid) 
     163      iret = NF90_ENDDEF(ntrajid) 
    164164 
    165165   END SUBROUTINE traj_init 
     
    173173      INTEGER, INTENT( in )                 :: kt 
    174174      ! Local variables 
    175       INTEGER                               :: iret, k 
    176       CHARACTER(len=80)                     :: filename 
     175      INTEGER                               :: iret, jn 
     176      CHARACTER(len=80)                     :: cl_filename 
    177177      TYPE(iceberg), POINTER                :: this 
    178178      TYPE(point)  , POINTER                :: pt 
     
    182182 
    183183      this => first_berg 
    184       k = kount_traj 
     184      jn = num_traj 
    185185      DO WHILE (ASSOCIATED(this)) 
    186186         pt => this%current_point 
    187          k=k+1 
    188  
    189          iret = NF90_PUT_VAR(trajid, numberid, this%number, (/1,k/), (/nkounts,1/) ) 
    190          iret = NF90_PUT_VAR(trajid, stepid, kt, (/ k /) ) 
    191          iret = NF90_PUT_VAR(trajid, scaling_id, this%mass_scaling, (/ k /) ) 
    192  
    193          iret = NF90_PUT_VAR(trajid, lonid, pt%lon, (/ k /) ) 
    194          iret = NF90_PUT_VAR(trajid, latid, pt%lat, (/ k /) ) 
    195          iret = NF90_PUT_VAR(trajid, xid, pt%xi, (/ k /) ) 
    196          iret = NF90_PUT_VAR(trajid, yid, pt%yj, (/ k /) ) 
    197          iret = NF90_PUT_VAR(trajid, uvelid, pt%uvel, (/ k /) ) 
    198          iret = NF90_PUT_VAR(trajid, vvelid, pt%vvel, (/ k /) ) 
    199          iret = NF90_PUT_VAR(trajid, uoid, pt%uo, (/ k /) ) 
    200          iret = NF90_PUT_VAR(trajid, void, pt%vo, (/ k /) ) 
    201          iret = NF90_PUT_VAR(trajid, uaid, pt%ua, (/ k /) ) 
    202          iret = NF90_PUT_VAR(trajid, vaid, pt%va, (/ k /) ) 
    203          iret = NF90_PUT_VAR(trajid, uiid, pt%ui, (/ k /) ) 
    204          iret = NF90_PUT_VAR(trajid, viid, pt%vi, (/ k /) ) 
    205          iret = NF90_PUT_VAR(trajid, sshxid, pt%ssh_x, (/ k /) ) 
    206          iret = NF90_PUT_VAR(trajid, sshyid, pt%ssh_y, (/ k /) ) 
    207          iret = NF90_PUT_VAR(trajid, sstid, pt%sst, (/ k /) ) 
    208          iret = NF90_PUT_VAR(trajid, cntid, pt%cn, (/ k /) ) 
    209          iret = NF90_PUT_VAR(trajid, thkid, pt%hi, (/ k /) ) 
    210          iret = NF90_PUT_VAR(trajid, massid, pt%mass, (/ k /) ) 
    211          iret = NF90_PUT_VAR(trajid, thicknessid, pt%thickness, (/ k /) ) 
    212          iret = NF90_PUT_VAR(trajid, widthid, pt%width, (/ k /) ) 
    213          iret = NF90_PUT_VAR(trajid, lengthid, pt%length, (/ k /) ) 
    214          iret = NF90_PUT_VAR(trajid, yearid, pt%year, (/ k /) ) 
    215          iret = NF90_PUT_VAR(trajid, dayid, pt%day, (/ k /) ) 
    216          iret = NF90_PUT_VAR(trajid, mass_of_bits_id, pt%mass_of_bits, (/ k /) ) 
    217          iret = NF90_PUT_VAR(trajid, heat_density_id, pt%heat_density, (/ k /) ) 
     187         jn=jn+1 
     188 
     189         iret = NF90_PUT_VAR(ntrajid, numberid, this%number, (/1,jn/), (/nkounts,1/) ) 
     190         iret = NF90_PUT_VAR(ntrajid, nstepid, kt, (/ jn /) ) 
     191         iret = NF90_PUT_VAR(ntrajid, nscaling_id, this%mass_scaling, (/ jn /) ) 
     192 
     193         iret = NF90_PUT_VAR(ntrajid, nlonid, pt%lon, (/ jn /) ) 
     194         iret = NF90_PUT_VAR(ntrajid, nlatid, pt%lat, (/ jn /) ) 
     195         iret = NF90_PUT_VAR(ntrajid, nxid, pt%xi, (/ jn /) ) 
     196         iret = NF90_PUT_VAR(ntrajid, nyid, pt%yj, (/ jn /) ) 
     197         iret = NF90_PUT_VAR(ntrajid, nuvelid, pt%uvel, (/ jn /) ) 
     198         iret = NF90_PUT_VAR(ntrajid, nvvelid, pt%vvel, (/ jn /) ) 
     199         iret = NF90_PUT_VAR(ntrajid, nuoid, pt%uo, (/ jn /) ) 
     200         iret = NF90_PUT_VAR(ntrajid, nvoid, pt%vo, (/ jn /) ) 
     201         iret = NF90_PUT_VAR(ntrajid, nuaid, pt%ua, (/ jn /) ) 
     202         iret = NF90_PUT_VAR(ntrajid, nvaid, pt%va, (/ jn /) ) 
     203         iret = NF90_PUT_VAR(ntrajid, nuiid, pt%ui, (/ jn /) ) 
     204         iret = NF90_PUT_VAR(ntrajid, nviid, pt%vi, (/ jn /) ) 
     205         iret = NF90_PUT_VAR(ntrajid, nsshxid, pt%ssh_x, (/ jn /) ) 
     206         iret = NF90_PUT_VAR(ntrajid, nsshyid, pt%ssh_y, (/ jn /) ) 
     207         iret = NF90_PUT_VAR(ntrajid, nsstid, pt%sst, (/ jn /) ) 
     208         iret = NF90_PUT_VAR(ntrajid, ncntid, pt%cn, (/ jn /) ) 
     209         iret = NF90_PUT_VAR(ntrajid, nthkid, pt%hi, (/ jn /) ) 
     210         iret = NF90_PUT_VAR(ntrajid, nmassid, pt%mass, (/ jn /) ) 
     211         iret = NF90_PUT_VAR(ntrajid, nthicknessid, pt%thickness, (/ jn /) ) 
     212         iret = NF90_PUT_VAR(ntrajid, nwidthid, pt%width, (/ jn /) ) 
     213         iret = NF90_PUT_VAR(ntrajid, nlengthid, pt%length, (/ jn /) ) 
     214         iret = NF90_PUT_VAR(ntrajid, nyearid, pt%year, (/ jn /) ) 
     215         iret = NF90_PUT_VAR(ntrajid, ndayid, pt%day, (/ jn /) ) 
     216         iret = NF90_PUT_VAR(ntrajid, nmass_of_bits_id, pt%mass_of_bits, (/ jn /) ) 
     217         iret = NF90_PUT_VAR(ntrajid, nheat_density_id, pt%heat_density, (/ jn /) ) 
    218218 
    219219         this=>this%next 
    220220      ENDDO 
    221       IF( lwp .and. nn_verbose_level > 0 ) WRITE(numout,*) 'trajectory write to frame ', k 
    222       kount_traj = k 
     221      IF( lwp .and. nn_verbose_level > 0 ) WRITE(numout,*) 'trajectory write to frame ', jn 
     222      num_traj = jn 
    223223 
    224224   END SUBROUTINE traj_write 
     
    231231 
    232232      ! flush to file 
    233       iret = NF90_SYNC(trajid) 
     233      iret = NF90_SYNC(ntrajid) 
    234234      IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_sync: nf_sync failed') 
    235235 
     
    243243 
    244244      ! Finish up 
    245       iret = NF90_CLOSE(trajid) 
     245      iret = NF90_CLOSE(ntrajid) 
    246246      IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_end: nf_close failed') 
    247247 
Note: See TracChangeset for help on using the changeset viewer.