- Timestamp:
- 2015-11-12T15:52:57+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/icebergs_restart_single_file/NEMOGCM/NEMO/OPA_SRC/ICB/icbrst.F90
r5865 r5879 70 70 TYPE(iceberg) :: localberg ! NOT a pointer but an actual local variable 71 71 TYPE(point) :: localpt ! NOT a pointer but an actual local variable 72 REAL(wp), DIMENSION(1,nkounts) :: rdata_in 72 REAL(wp), DIMENSION(1,nkounts) :: zdata_in 73 INTEGER :: ii,ij 73 74 !!---------------------------------------------------------------------- 74 75 … … 83 84 84 85 ibergs_in_file = iom_file(ncid)%lenuld 85 IF(lwp) WRITE(numout,*) '>>> Number of bergs in local file : ',ibergs_in_file86 86 DO jn = 1,ibergs_in_file 87 87 … … 92 92 CALL iom_get( ncid, 'yj' ,localpt%yj , ktime=jn ) 93 93 94 IF(lwp) WRITE(numout, *) '>>> Found iceberg ',jn,' at (i,j) ',localpt%xi,',',localpt%yj 95 IF(lwp) WRITE(numout, *) '>>> nldi, nlei, nldj, nlej, nimpp, njmpp ',nldi, nlei, nldj, nlej, nimpp, njmpp 96 97 ! Only proceed if this iceberg is on the local processor (including halos). 98 IF ( localpt%xi .GE. nimpp .AND. localpt%xi .LE. nimpp+jpi-1 .AND. & 99 & localpt%yj .GE. njmpp .AND. localpt%yj .LE. njmpp+jpj-1 ) THEN 100 101 CALL iom_get( ncid, jpdom_unknown, 'number' , (/rdata_in(1,:)/) , ktime=jn, kstart=(/1/), kcount=(/nkounts/) ) 102 localberg%number(:) = INT(rdata_in(1,:)) 94 ii = INT( localpt%xi + 0.5 ) 95 ij = INT( localpt%yj + 0.5 ) 96 ! Only proceed if this iceberg is on the local processor (excluding halos). 97 IF ( ii .GE. nldi+nimpp-1 .AND. ii .LE. nlei+nimpp-1 .AND. & 98 & ij .GE. nldj+njmpp-1 .AND. ij .LE. nlej+njmpp-1 ) THEN 99 100 CALL iom_get( ncid, jpdom_unknown, 'number' , (/zdata_in(1,:)/) , ktime=jn, kstart=(/1/), kcount=(/nkounts/) ) 101 localberg%number(:) = INT(zdata_in(1,:)) 103 102 CALL iom_get( ncid, 'mass_scaling' , localberg%mass_scaling, ktime=jn ) 104 103 CALL iom_get( ncid, 'lon' , localpt%lon , ktime=jn ) … … 110 109 CALL iom_get( ncid, 'width' , localpt%width , ktime=jn ) 111 110 CALL iom_get( ncid, 'length' , localpt%length , ktime=jn ) 112 CALL iom_get( ncid, 'year' , rdata_in(1,1) , ktime=jn )113 localpt%year = INT( rdata_in(1,1))111 CALL iom_get( ncid, 'year' , zdata_in(1,1) , ktime=jn ) 112 localpt%year = INT(zdata_in(1,1)) 114 113 CALL iom_get( ncid, 'day' , localpt%day , ktime=jn ) 115 114 CALL iom_get( ncid, 'mass_of_bits' , localpt%mass_of_bits , ktime=jn ) … … 117 116 118 117 ! 119 IF(lwp) WRITE(numout, *) '>>> Initialising iceberg ',jn,' at (i,j) ',localpt%xi,',',localpt%yj120 118 CALL icb_utl_add( localberg, localpt ) 121 119 … … 132 130 CALL iom_get( ncid, jpdom_autoglo_xy, 'stored_ice' , berg_grid%stored_ice, kstart=(/1,1,1/), kcount=(/1,1,nclasses/) ) 133 131 134 CALL iom_get( ncid, jpdom_unknown, 'kount' , (/ rdata_in(1,:)/) )135 num_bergs(:) = INT( rdata_in(1,:))132 CALL iom_get( ncid, jpdom_unknown, 'kount' , (/zdata_in(1,:)/) ) 133 num_bergs(:) = INT(zdata_in(1,:)) 136 134 137 135 ! Finish up … … 143 141 WRITE(numout,'(2(a,i5))') 'icebergs, read_restart_bergs: # bergs =',jn,' on PE',narea-1 144 142 IF( lk_mpp ) THEN 145 CALL mpp_sum(ibergs_in_file) 143 ! Only mpp_sum ibergs_in_file if we are reading from multiple restart files. 144 WRITE(numout,*) 'iom_file(ncid)%name : ',iom_file(ncid)%name 145 WRITE(numout,*) "INDEX(iom_file(ncid)%name,'icebergs.nc' ) : ",INDEX(iom_file(ncid)%name,'icebergs.nc' ) 146 IF( INDEX(iom_file(ncid)%name,'icebergs.nc' ) .EQ. 0 ) CALL mpp_sum(ibergs_in_file) 146 147 CALL mpp_sum(jn) 147 148 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.