- Timestamp:
- 2012-04-18T12:42:56+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3337_NOCS10_ICB/NEMOGCM/NEMO/OPA_SRC/ICB/icbtrj.F90
r3339 r3359 26 26 PRIVATE 27 27 28 INTEGER, PRIVATE :: kount_traj29 INTEGER, PRIVATE :: n_dim, k_dim30 INTEGER, PRIVATE :: trajid31 INTEGER, PRIVATE :: numberid, stepid,scaling_id32 INTEGER, PRIVATE :: lonid, latid, xid, yid, uvelid, vvelid,massid33 INTEGER, PRIVATE :: uoid, void, uaid, vaid, uiid,viid34 INTEGER, PRIVATE :: sshxid, sshyid, sstid, cntid,thkid35 INTEGER, PRIVATE :: thicknessid, widthid,lengthid36 INTEGER, PRIVATE :: yearid,dayid37 INTEGER, PRIVATE :: mass_of_bits_id,heat_density_id38 39 PUBLIC traj_init ! routine called in xxx.F90 module40 PUBLIC traj_write ! routine called in xxx.F90 module41 PUBLIC traj_sync ! routine called in xxx.F90 module42 PUBLIC traj_end ! routine called in xxx.F90 module28 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 43 43 44 44 CONTAINS … … 46 46 !!------------------------------------------------------------------------- 47 47 48 SUBROUTINE traj_init( nitend )48 SUBROUTINE traj_init( ktend ) 49 49 50 50 ! local variables 51 INTEGER, INTENT( in ) :: nitend52 ! Local variables 53 INTEGER :: iret , k54 CHARACTER(len=80) :: filename51 INTEGER, INTENT( in ) :: ktend 52 ! Local variables 53 INTEGER :: iret 54 CHARACTER(len=80) :: cl_filename 55 55 TYPE(iceberg), POINTER :: this 56 56 TYPE(point) , POINTER :: pt 57 57 58 58 IF( lk_mpp ) THEN 59 WRITE( filename,'("trajectory_icebergs_",I6.6,"_",I4.4,".nc")') nitend, narea-159 WRITE(cl_filename,'("trajectory_icebergs_",I6.6,"_",I4.4,".nc")') ktend, narea-1 60 60 ELSE 61 WRITE( filename,'("trajectory_icebergs_",I6.6,".nc")') nitend61 WRITE(cl_filename,'("trajectory_icebergs_",I6.6,".nc")') ktend 62 62 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) 66 66 IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_init: nf_create failed') 67 67 68 68 ! Dimensions 69 iret = NF90_DEF_DIM( trajid, 'n', NF90_UNLIMITED, n_dim)69 iret = NF90_DEF_DIM(ntrajid, 'n', NF90_UNLIMITED, n_dim) 70 70 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) 72 72 IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_init: nf_def_dim k failed') 73 73 74 74 ! 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) 103 103 104 104 ! 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') 161 161 162 162 ! End define mode 163 iret = NF90_ENDDEF( trajid)163 iret = NF90_ENDDEF(ntrajid) 164 164 165 165 END SUBROUTINE traj_init … … 173 173 INTEGER, INTENT( in ) :: kt 174 174 ! Local variables 175 INTEGER :: iret, k176 CHARACTER(len=80) :: filename175 INTEGER :: iret, jn 176 CHARACTER(len=80) :: cl_filename 177 177 TYPE(iceberg), POINTER :: this 178 178 TYPE(point) , POINTER :: pt … … 182 182 183 183 this => first_berg 184 k = kount_traj184 jn = num_traj 185 185 DO WHILE (ASSOCIATED(this)) 186 186 pt => this%current_point 187 k=k+1188 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 /) ) 218 218 219 219 this=>this%next 220 220 ENDDO 221 IF( lwp .and. nn_verbose_level > 0 ) WRITE(numout,*) 'trajectory write to frame ', k222 kount_traj = k221 IF( lwp .and. nn_verbose_level > 0 ) WRITE(numout,*) 'trajectory write to frame ', jn 222 num_traj = jn 223 223 224 224 END SUBROUTINE traj_write … … 231 231 232 232 ! flush to file 233 iret = NF90_SYNC( trajid)233 iret = NF90_SYNC(ntrajid) 234 234 IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_sync: nf_sync failed') 235 235 … … 243 243 244 244 ! Finish up 245 iret = NF90_CLOSE( trajid)245 iret = NF90_CLOSE(ntrajid) 246 246 IF (iret .NE. NF90_NOERR) CALL ctl_stop('icebergs, traj_end: nf_close failed') 247 247
Note: See TracChangeset
for help on using the changeset viewer.