Changeset 72
- Timestamp:
- 06/21/16 11:42:45 (8 years ago)
- Location:
- trunk/SOURCES
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/Fichiers-parametres/Makefile.tof-lsce3130.inc
r71 r72 39 39 IFORT= ifort 40 40 41 ARITHMi = -O2 -fp-model precise -heap-arrays -traceback -mcmodel=medium # -warn -traceback -CB -g # options pour une meilleure arithmetique41 ARITHMi = -O2 -fp-model precise -heap-arrays -traceback -mcmodel=medium #-openmp # -warn -traceback -CB -g # options pour une meilleure arithmetique 42 42 # (normalement reproductible) 43 43 ifeq ($(debug), 1) -
trunk/SOURCES/New-remplimat/diagno-L2_mod.f90
r71 r72 110 110 call calc_pvi ! calcule les viscosites integrees 111 111 112 !$OMP PARALLEL 113 !$OMP WORKSHARE 112 114 where (flot(:,:).and.(H.gt.1)) ! valeur analytique pour les shelfs 113 115 pvi(:,:) = (4./coef_Sflot/rog)**2/btt(:,:,1,1)/H(:,:) 114 116 end where 115 117 !$OMP END WORKSHARE 118 !$OMP END PARALLEL 116 119 ! avec couplage thermomecanique 117 120 ! write(166,*) ' apres call calc_pvi',itour_pvi … … 178 181 179 182 ! nouvelles vitesses 180 183 !$OMP PARALLEL 184 !$OMP WORKSHARE 181 185 uxbar(:,:)=uxb1(:,:) 182 186 uybar(:,:)=uyb1(:,:) 183 187 !$OMP END WORKSHARE 184 188 185 189 186 190 ! calcul de tobmx et tobmy (frottement basal) apres calcul des vitesses 187 191 ! --------------------------------------------------------------------- 192 !$OMP DO 188 193 do j=1,ny 189 194 do i=1,nx … … 192 197 enddo 193 198 enddo 199 !$OMP END DO 194 200 195 201 ! Mise ne réserve des vitesses flgzmx et flgzmy 202 !$OMP WORKSHARE 196 203 where (flgzmx(:,:)) 197 204 uxflgz(:,:)=uxbar(:,:) … … 205 212 uyflgz(:,:)=0. 206 213 endwhere 207 214 !$OMP END WORKSHARE 215 !$OMP END PARALLEL 208 216 !i=92 209 217 !j=152 -
trunk/SOURCES/New-remplimat/eq_ellipt_sgbsv_mod-0.2.f90
r4 r72 8 8 9 9 ! declaration des variables 10 10 !$ USE OMP_LIB 11 11 use remplimat_declar ! toutes les routines de ce module connaissent les Tuij.... 12 12 … … 154 154 ! write(6,*) 'sortie ok de sgbsv' 155 155 ! write(6,*)'-----------------------' 156 156 !$OMP PARALLEL 157 !$OMP DO 157 158 do j = ny1,ny2 158 159 do i = nx1,nx2 … … 171 172 end do 172 173 end do 173 174 174 !$OMP END DO 175 !$OMP END PARALLEL 175 176 176 177 else … … 181 182 182 183 else ! nblig=0, pas de passage par sgbsv 184 !$OMP PARALLEL 185 !$OMP WORKSHARE 183 186 uxnew(nx1:nx2,ny1:ny2)=uxprec(nx1:nx2,ny1:ny2) 184 187 uynew(nx1:nx2,ny1:ny2)=uyprec(nx1:nx2,ny1:ny2) 188 !$OMP END WORKSHARE 189 !$OMP END PARALLEL 185 190 end if 186 191 … … 209 214 ! numerotation des lignes 210 215 !-------------------------- 211 216 !$OMP PARALLEL 217 !$OMP WORKSHARE 212 218 ligu_L2(:,:) = -9999 213 219 ligv_L2(:,:) = -9999 214 220 pos_ligu(:,:) = -9999 215 221 pos_ligv(:,:) = -9999 216 222 !$OMP END WORKSHARE 223 !$OMP END PARALLEL 217 224 ! Boucle sur les noeuds avec la dimension la plus grande a l'interieur 218 225 … … 248 255 end do count 249 256 257 250 258 nblig = count_line-1 251 259 … … 253 261 ! calcul de la largeur de bande. depend de la numerotation des lignes 254 262 !-------------------------------------------------------------------- 263 !$OMP PARALLEL 264 !$OMP WORKSHARE 255 265 lu_band(:) = 0 256 266 ll_band(:) = 0 267 !$OMP END WORKSHARE 268 !$OMP END PARALLEL 257 269 258 270 larg_band: do j = ny1,ny2 … … 367 379 ! ecriture de la matrice proprement dite et du vecteur bdr 368 380 !------------------------------------------------------------ 381 !$OMP PARALLEL 382 !$OMP WORKSHARE 369 383 mmat(:,:) = 0. 370 384 bdr(:,:) = 0. 371 372 385 !$OMP END WORKSHARE 386 387 !$OMP DO PRIVATE(ligne,ilmin,ilmax,jlmin,jlmax,colonne) 373 388 ij_loop : do j = ny1,ny2 ! attention, on rempli 2 lignes par 2 lignes (u,v) 374 389 do i = nx1,nx2 … … 481 496 end do 482 497 end do ij_loop 498 !$OMP END DO 499 !$OMP END PARALLEL 483 500 484 501 -
trunk/SOURCES/flottab2-0.7.f90
r71 r72 630 630 631 631 !On compte comme englacé uniquement les calottes dont une partie est posée 632 !$OMP PARALLEL PRIVATE(smax_,smax_coord,smax_i,smax_j )632 !$OMP PARALLEL PRIVATE(smax_,smax_coord,smax_i,smax_j,mask_tache_ij) 633 633 !$OMP DO 634 do i=3,nx-2635 do j=3,ny-2634 do j=3,ny-2 635 do i=3,nx-2 636 636 test1: if (.not.iceberg(table_out(i,j))) then ! on est pas sur un iceberg 637 637 if (nb_pts_tache(table_out(i,j)).ge.1) then … … 748 748 subroutine determin_tache 749 749 750 ! !$ USE OMP_LIB750 !$ USE OMP_LIB 751 751 752 752 implicit none … … 769 769 enddo 770 770 ! table_in = .false. 771 ! !$OMP PARALLEL772 ! !$OMP WORKSHARE771 !$OMP PARALLEL 772 !$OMP WORKSHARE 773 773 table_out(:,:) = 0 774 774 iceberg(:) = .true. 775 775 icetrim (:) = .true. 776 776 nb_pts_tache(:) = 0 777 ! !$OMP END WORKSHARE778 ! !$OMP END PARALLEL777 !$OMP END WORKSHARE 778 !$OMP END PARALLEL 779 779 ! open(unit=100,file="tache.data",status='replace') 780 780 781 781 ! 2-reperage des taches 782 782 !---------------------- 783 !!$OMP PARALLEL PRIVATE(mask,label,indice) 784 !!$OMP DO 785 do i=2,nx-1 786 do j=2,ny-1 783 784 do j=2,ny-1 785 do i=2,nx-1 787 786 788 787 … … 852 851 enddo 853 852 enddo 854 !!$OMP END DO 855 !!$OMP END PARALLEL 853 856 854 857 855 … … 869 867 enddo 870 868 871 ! !$OMP PARALLEL872 ! !$OMP DO REDUCTION(+:nb_pts_tache)873 do i=1,nx874 do j=1,ny869 !$OMP PARALLEL 870 !$OMP DO REDUCTION(+:nb_pts_tache) 871 do j=1,ny 872 do i=1,nx 875 873 if (table_out(i,j).ne.0) then 876 874 table_out(i,j)=compt(table_out(i,j)) … … 879 877 enddo 880 878 enddo 881 ! !$OMP END DO882 ! !$OMP END PARALLEL879 !$OMP END DO 880 !$OMP END PARALLEL 883 881 884 882 … … 915 913 integer :: j_moins1,j_plus1,j_plus2 916 914 917 ! !$OMP PARALLEL918 ! !$OMP DO915 !$OMP PARALLEL 916 !$OMP DO 919 917 do j=3,ny-2 920 918 do i=3,nx-2 … … 970 968 end do 971 969 end do 972 !!$OMP END DO 970 !$OMP END DO 971 !$OMP ENd PARALLEL 973 972 974 973 !!$call detect_assym(nx,ny,0,41,1,0,1,0,H,itestf) … … 985 984 986 985 baies: do k=1,2 987 !!$OMP DO PRIVATE(i_moins1,j_moins1,i_plus1,j_plus1,i_plus2,j_plus2) 986 !$OMP PARALLEL 987 !$OMP DO PRIVATE(i_moins1,j_moins1,i_plus1,j_plus1,i_plus2,j_plus2) 988 988 do j=1,ny 989 989 do i=1,nx … … 1020 1020 end do 1021 1021 end do 1022 !!$OMP END DO 1022 !$OMP END DO 1023 !$OMP END PARALLEL 1023 1024 end do baies 1024 1025 … … 1032 1033 !!$end if 1033 1034 1034 !!$OMP DO 1035 !$OMP PARALLEL 1036 !$OMP DO 1035 1037 do j=2,ny-1 1036 1038 do i=2,nx-1 … … 1046 1048 end do 1047 1049 end do 1048 ! !$OMP END DO1050 !$OMP END DO 1049 1051 1050 1052 ! traitement des bords. On considere que l'exterieur n'a pas de glace 1051 1053 ! attention ce n'est vrai que sur la grande grille 1052 1054 1053 ! !$OMP DO PRIVATE(i)1055 !$OMP DO PRIVATE(i) 1054 1056 do j=2,ny-1 1055 1057 i=1 … … 1058 1060 front(i,j)=(ice(i-1,j)+ice(i,j+1)+ice(i,j-1)) 1059 1061 end do 1060 ! !$OMP END DO1061 1062 ! !$OMP DO PRIVATE(j)1062 !$OMP END DO 1063 1064 !$OMP DO PRIVATE(j) 1063 1065 do i=2,nx-1 1064 1066 j=1 … … 1067 1069 front(i,j)=(ice(i-1,j)+ice(i+1,j)+ice(i,j-1)) 1068 1070 end do 1069 !!$OMP END DO 1071 !$OMP END DO 1072 1070 1073 ! traitement des coins 1071 1074 … … 1089 1092 ! si ces deux taches sont posées (ou une des deux), il n'y a pas assez de conditions aux limites 1090 1093 1091 ! !$OMP DO1094 !$OMP DO 1092 1095 do j=1,ny 1093 1096 do i=1,nx-1 … … 1102 1105 end do 1103 1106 end do 1104 ! !$OMP END DO1105 1106 ! !$OMP DO1107 !$OMP END DO 1108 1109 !$OMP DO 1107 1110 do j=1,ny-1 1108 1111 do i=1,nx … … 1117 1120 end do 1118 1121 end do 1119 ! !$OMP END DO1122 !$OMP END DO 1120 1123 1121 1124 !isolx signifie pas de voisins en x … … 1125 1128 1126 1129 ! calcul de frontfacex et isolx 1127 ! !$OMP DO1130 !$OMP DO 1128 1131 do j=1,ny 1129 1132 do i=2,nx-1 … … 1145 1148 end do 1146 1149 end do 1147 ! !$OMP END DO1150 !$OMP END DO 1148 1151 1149 1152 ! calcul de frontfacey et isoly 1150 ! !$OMP DO1153 !$OMP DO 1151 1154 do j=2,ny-1 1152 1155 do i=1,nx … … 1168 1171 end do 1169 1172 end do 1170 ! !$OMP END DO1173 !$OMP END DO 1171 1174 1172 1175 … … 1174 1177 ! attention ce n'est vrai que sur la grande grille 1175 1178 1176 ! !$OMP DO PRIVATE(i)1179 !$OMP DO PRIVATE(i) 1177 1180 do j=2,ny-1 1178 1181 i=1 … … 1193 1196 end if 1194 1197 end do 1195 ! !$OMP END DO1196 1197 ! !$OMP DO PRIVATE(j)1198 !$OMP END DO 1199 1200 !$OMP DO PRIVATE(j) 1198 1201 do i=2,nx-1 1199 1202 j=1 … … 1214 1217 end if 1215 1218 end do 1216 ! !$OMP END DO1217 ! !OMP END PARALLEL1219 !$OMP END DO 1220 !$OMP END PARALLEL 1218 1221 1219 1222 return -
trunk/SOURCES/velocities-polyn-0.3.f90
r4 r72 23 23 ! Attention la vitesse verticale est "super reduite" 24 24 ! ========================================================================== 25 25 !$ USE OMP_LIB 26 26 use module3d_phy 27 27 !use deform_declar … … 32 32 if (itracebug.eq.1) call tracebug(' Entree dans routine SIA_velocity') 33 33 34 34 !$OMP PARALLEL 35 !$OMP DO COLLAPSE(2) 35 36 do k=1,nz 36 37 do j=2,ny-1 … … 101 102 end do 102 103 end do 103 104 !$OMP END DO 104 105 105 106 ! *************************** Z VELOCITIES ****************** 106 107 107 108 !$OMP DO 108 109 do j=2,ny-1 109 110 do i=2,nx-1 … … 144 145 end do 145 146 end do 147 !$OMP END DO 146 148 149 !$OMP DO 147 150 do j=2,ny-1 148 151 do i=2,nx-1 … … 151 154 end do 152 155 end do 153 156 !$OMP END DO 157 !$OMP END PARALLEL 154 158 155 159 end subroutine SIA_velocities
Note: See TracChangeset
for help on using the changeset viewer.