Changeset 764 for LMDZ4/trunk/libf/dyn3dpar/caldyn_p.F
- Timestamp:
- Jun 4, 2007, 4:13:10 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/dyn3dpar/caldyn_p.F
r630 r764 46 46 REAL ps(ip1jmp1),phis(ip1jmp1) 47 47 REAL pk(iip1,jjp1,llm),pkf(ip1jmp1,llm) 48 REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm)48 REAL,SAVE :: vcont(ip1jm,llm),ucont(ip1jmp1,llm) 49 49 REAL phi(ip1jmp1,llm),masse(ip1jmp1,llm) 50 50 REAL dv(ip1jm,llm),du(ip1jmp1,llm) 51 51 REAL dteta(ip1jmp1,llm),dp(ip1jmp1) 52 REAL w(ip1jmp1,llm) 52 53 REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm) 53 54 REAL time … … 56 57 c ------ 57 58 58 REAL ang(ip1jmp1,llm),p(ip1jmp1,llmp1) 59 REAL massebx(ip1jmp1,llm),masseby(ip1jm,llm),psexbarxy(ip1jm) 60 REAL vorpot(ip1jm,llm) 61 REAL w(ip1jmp1,llm),ecin(ip1jmp1,llm),convm(ip1jmp1,llm) 62 REAL bern(ip1jmp1,llm) 63 REAL massebxy(ip1jm,llm) 64 65 59 REAL,SAVE :: ang(ip1jmp1,llm) 60 REAL,SAVE :: p(ip1jmp1,llmp1) 61 REAL,SAVE :: massebx(ip1jmp1,llm),masseby(ip1jm,llm) 62 REAL,SAVE :: psexbarxy(ip1jm) 63 REAL,SAVE :: vorpot(ip1jm,llm) 64 REAL,SAVE :: ecin(ip1jmp1,llm) 65 REAL,SAVE :: bern(ip1jmp1,llm) 66 REAL,SAVE :: massebxy(ip1jm,llm) 67 REAL,SAVE :: convm(ip1jmp1,llm) 66 68 INTEGER ij,l,ijb,ije,ierr 67 69 … … 72 74 CALL pression_p ( ip1jmp1, ap , bp , ps , p ) 73 75 cym CALL psextbar ( ps , psexbarxy ) 76 c$OMP BARRIER 74 77 CALL massdair_p ( p , masse ) 75 78 CALL massbar_p ( masse, massebx , masseby ) … … 77 80 CALL flumass_p ( massebx, masseby , vcont, ucont ,pbaru, pbarv ) 78 81 CALL dteta1_p ( teta , pbaru , pbarv, dteta ) 79 CALL convmas_p ( pbaru, pbarv , convm ) 80 82 CALL convmas1_p ( pbaru, pbarv , convm ) 83 c$OMP BARRIER 84 CALL convmas2_p ( convm ) 85 c$OMP BARRIER 81 86 #ifdef DEBUG_IO 87 c$OMP BARRIER 88 c$OMP MASTER 82 89 call WriteField_p('ucont',reshape(ucont,(/iip1,jmp1,llm/))) 83 90 call WriteField_p('vcont',reshape(vcont,(/iip1,jjm,llm/))) … … 91 98 call WriteField_p('dteta',reshape(dteta,(/iip1,jmp1,llm/))) 92 99 call WriteField_p('convm',reshape(convm,(/iip1,jmp1,llm/))) 100 c$OMP END MASTER 101 c$OMP BARRIER 93 102 #endif 94 103 104 c$OMP BARRIER 105 c$OMP MASTER 95 106 ijb=ij_begin 96 107 ije=ij_end … … 99 110 dp( ij ) = convm( ij,1 ) / airesurg( ij ) 100 111 ENDDO 101 112 c$OMP END MASTER 113 c$OMP BARRIER 114 c$OMP FLUSH 102 115 CALL vitvert_p ( convm , w ) 103 116 CALL tourpot_p ( vcov , ucov , massebxy , vorpot ) … … 105 118 106 119 #ifdef DEBUG_IO 120 c$OMP BARRIER 121 c$OMP MASTER 107 122 call WriteField_p('w',reshape(w,(/iip1,jmp1,llm/))) 108 123 call WriteField_p('vorpot',reshape(vorpot,(/iip1,jjm,llm/))) 109 124 call WriteField_p('du',reshape(du,(/iip1,jmp1,llm/))) 110 125 call WriteField_p('dv',reshape(dv,(/iip1,jjm,llm/))) 126 c$OMP END MASTER 127 c$OMP BARRIER 111 128 #endif 112 129 CALL enercin_p ( vcov , ucov , vcont , ucont , ecin ) … … 115 132 116 133 #ifdef DEBUG_IO 134 c$OMP BARRIER 135 c$OMP MASTER 117 136 call WriteField_p('ecin',reshape(ecin,(/iip1,jmp1,llm/))) 118 137 call WriteField_p('bern',reshape(bern,(/iip1,jmp1,llm/))) 119 138 call WriteField_p('du',reshape(du,(/iip1,jmp1,llm/))) 120 139 call WriteField_p('dv',reshape(dv,(/iip1,jjm,llm/))) 140 call WriteField_p('pkf',reshape(pkf,(/iip1,jmp1,llm/))) 141 c$OMP END MASTER 142 c$OMP BARRIER 121 143 #endif 122 144 … … 126 148 if (pole_nord) ijb=ij_begin 127 149 if (pole_sud) ije=ij_end 128 150 151 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 129 152 DO l=1,llm 130 153 DO ij=ijb,ije … … 132 155 ENDDO 133 156 ENDDO 157 c$OMP END DO 134 158 135 136 CALL advect_p( ang, vcov, teta, w, massebx, masseby,du,dv,dteta) 159 CALL advect_new_p(ang,vcov,teta,w,massebx,masseby,du,dv,dteta) 137 160 138 161 C WARNING probleme de peridocite de dv sur les PC/linux. Pb d'arrondi … … 142 165 if (pole_sud) ije=ij_end-iip1 143 166 167 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 144 168 DO l = 1, llm 145 169 DO ij = ijb, ije, iip1 … … 152 176 enddo 153 177 enddo 178 c$OMP END DO NOWAIT 154 179 c----------------------------------------------------------------------- 155 180 c Sorties eventuelles des variables de controle:
Note: See TracChangeset
for help on using the changeset viewer.