- Timestamp:
- 09/16/16 15:30:46 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/checksum.f90
r327 r477 12 12 USE icosa 13 13 IMPLICIT NONE 14 TYPE(t_field), POINTER :: field(:) 14 TYPE(t_field) :: field(:) 15 15 16 INTEGER :: intval(2) 16 17 INTEGER :: ind,i,j,ij,l,k … … 25 26 CALL swap_geometry(ind) 26 27 27 IF (field(ind)%ndim==2) THEN 28 DO j=jj_begin,jj_end 29 DO i=ii_begin,ii_end 30 ij=(j-1)*iim+i 31 IF (domain(ind)%own(i,j)) THEN 32 intval=transfer(field(ind)%rval2d(ij),intval,2) 33 tot_sum=tot_sum+intval(1)+intval(2) 34 ENDIF 35 ENDDO 36 ENDDO 37 38 ELSE IF (field(ind)%ndim==3) THEN 39 40 DO l=1,size(field(ind)%rval3d,2) 28 IF (field(ind)%field_type==field_T) THEN 29 30 IF (field(ind)%ndim==2) THEN 41 31 DO j=jj_begin,jj_end 42 32 DO i=ii_begin,ii_end 43 33 ij=(j-1)*iim+i 44 34 IF (domain(ind)%own(i,j)) THEN 45 intval=transfer(field(ind)%rval 3d(ij,l),intval,2)35 intval=transfer(field(ind)%rval2d(ij),intval,2) 46 36 tot_sum=tot_sum+intval(1)+intval(2) 47 37 ENDIF 48 38 ENDDO 49 39 ENDDO 50 ENDDO 51 52 ELSE IF (field(ind)%ndim==4) THEN 53 54 DO k=1,size(field(ind)%rval4d,3) 55 DO l=1,size(field(ind)%rval4d,2) 40 41 ELSE IF (field(ind)%ndim==3) THEN 42 43 DO l=1,size(field(ind)%rval3d,2) 56 44 DO j=jj_begin,jj_end 57 45 DO i=ii_begin,ii_end 58 46 ij=(j-1)*iim+i 59 47 IF (domain(ind)%own(i,j)) THEN 60 intval=transfer(field(ind)%rval 4d(ij,l,k),intval,2)48 intval=transfer(field(ind)%rval3d(ij,l),intval,2) 61 49 tot_sum=tot_sum+intval(1)+intval(2) 62 50 ENDIF … … 64 52 ENDDO 65 53 ENDDO 66 ENDDO 67 68 ENDIF 54 55 ELSE IF (field(ind)%ndim==4) THEN 56 57 DO k=1,size(field(ind)%rval4d,3) 58 DO l=1,size(field(ind)%rval4d,2) 59 DO j=jj_begin,jj_end 60 DO i=ii_begin,ii_end 61 ij=(j-1)*iim+i 62 IF (domain(ind)%own(i,j)) THEN 63 intval=transfer(field(ind)%rval4d(ij,l,k),intval,2) 64 tot_sum=tot_sum+intval(1)+intval(2) 65 ENDIF 66 ENDDO 67 ENDDO 68 ENDDO 69 ENDDO 70 71 ENDIF 72 73 ELSE IF (field(ind)%field_type==field_U) THEN 74 75 IF (field(ind)%ndim==2) THEN 76 DO j=jj_begin,jj_end 77 DO i=ii_begin,ii_end-1 78 ij=(j-1)*iim+i 79 intval=transfer(field(ind)%rval2d(ij+u_right),intval,2) 80 tot_sum=tot_sum+intval(1)+intval(2) 81 ENDDO 82 ENDDO 83 84 DO j=jj_begin,jj_end-1 85 DO i=ii_begin+1,ii_end 86 ij=(j-1)*iim+i 87 intval=transfer(field(ind)%rval2d(ij+u_lup),intval,2) 88 tot_sum=tot_sum+intval(1)+intval(2) 89 ENDDO 90 ENDDO 91 92 DO j=jj_begin+1,jj_end 93 DO i=ii_begin,ii_end 94 ij=(j-1)*iim+i 95 intval=transfer(field(ind)%rval2d(ij+u_ldown),intval,2) 96 tot_sum=tot_sum+intval(1)+intval(2) 97 ENDDO 98 ENDDO 99 100 ELSE IF (field(ind)%ndim==3) THEN 101 102 DO l=1,size(field(ind)%rval3d,2) 103 DO j=jj_begin,jj_end 104 DO i=ii_begin,ii_end-1 105 ij=(j-1)*iim+i 106 intval=transfer(field(ind)%rval3d(ij+u_right,l),intval,2) 107 tot_sum=tot_sum+intval(1)+intval(2) 108 ENDDO 109 ENDDO 110 111 DO j=jj_begin,jj_end-1 112 DO i=ii_begin+1,ii_end 113 ij=(j-1)*iim+i 114 intval=transfer(field(ind)%rval3d(ij+u_lup,l),intval,2) 115 tot_sum=tot_sum+intval(1)+intval(2) 116 ENDDO 117 ENDDO 118 119 DO j=jj_begin+1,jj_end 120 DO i=ii_begin,ii_end 121 ij=(j-1)*iim+i 122 intval=transfer(field(ind)%rval3d(ij+u_ldown,l),intval,2) 123 tot_sum=tot_sum+intval(1)+intval(2) 124 ENDDO 125 ENDDO 126 ENDDO 127 128 129 ENDIF 130 ENDIF 131 69 132 ENDDO 70 133 !$OMP END MASTER
Note: See TracChangeset
for help on using the changeset viewer.