Changeset 2475 for LMDZ5/trunk
- Timestamp:
- Mar 22, 2016, 1:19:13 PM (9 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3d/leapfrog.F
r2375 r2475 686 686 ENDIF 687 687 688 ! ! Ehouarn: re-compute geopotential for outputs 689 CALL geopot(ip1jmp1,teta,pk,pks,phis,phi) 690 688 691 IF (ok_dynzon) THEN 689 692 #ifdef CPP_IOIPSL … … 821 824 ENDIF 822 825 826 ! ! Ehouarn: re-compute geopotential for outputs 827 CALL geopot(ip1jmp1,teta,pk,pks,phis,phi) 828 823 829 IF (ok_dynzon) THEN 824 830 #ifdef CPP_IOIPSL -
LMDZ5/trunk/libf/dyn3dmem/bilan_dyn_loc.F
r1907 r2475 16 16 USE mod_hallo 17 17 use misc_mod 18 use write_field18 USE write_field_loc 19 19 IMPLICIT NONE 20 20 … … 171 171 172 172 INTEGER :: bilan_dyn_domain_id 173 174 173 175 174 c===================================================================== … … 216 215 ALLOCATE(ndex3d(jjb_v:jje_v*llm)) 217 216 ndex3d=0 218 ALLOCATE(rlong( jjb_v:jje_v))219 ALLOCATE(rlatg(jj b_v:jje_v))217 ALLOCATE(rlong(1)) 218 ALLOCATE(rlatg(jjm)) 220 219 221 220 !$OMP END MASTER … … 285 284 286 285 call histbeg(trim(infile), 287 . 1, rlong (jjb:jje), jjn, rlatg(jjb:jje),286 . 1, rlong, jjn, rlatg(jjb:jje), 288 287 . 1, 1, 1, jjn, 289 288 . tau0, zjulian, dt_cum, thoriid, fileid, … … 514 513 enddo 515 514 enddo 516 !$OMP END DO NOWAIT517 enddo 518 515 !$OMP ENDDO NOWAIT 516 !$OMP BARRIER 517 enddo 519 518 520 519 c tendances … … 540 539 CALL vitvert_loc(convm,w) 541 540 !$OMP BARRIER 541 542 542 543 543 jjb=jj_begin … … 618 618 !$OMP ENDDO NOWAIT 619 619 620 621 620 IF (pole_sud) jje=jj_end-1 622 621 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 626 625 ENDDO 627 626 !$OMP ENDDO NOWAIT 627 !$OMP BARRIER 628 628 629 629 jjb=jj_begin … … 640 640 !$OMP ENDDO NOWAIT 641 641 enddo 642 642 643 643 c===================================================================== 644 644 c Transport méridien … … 657 657 ENDDO 658 658 !$OMP ENDDO NOWAIT 659 !$OMP BARRIER 659 660 660 661 call Register_Hallo_u(masse_cum,llm,1,1,1,1,Req) … … 684 685 enddo 685 686 !$OMP ENDDO NOWAIT 687 !$OMP BARRIER 686 688 687 689 c print*,'3OK' -
LMDZ5/trunk/libf/dyn3dmem/gcm.F90
r2372 r2475 415 415 #ifdef CPP_IOIPSL 416 416 time_step = zdtvr 417 IF (mpi_rank==0) then418 417 if (ok_dyn_ins) then 419 418 ! initialize output file for instantaneous outputs … … 421 420 t_ops =((1.0*iecri)/day_step) * daysec 422 421 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 423 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 424 CALL inithist(day_ref,annee_ref,time_step, & 422 CALL inithist_loc(day_ref,annee_ref,time_step, & 425 423 t_ops,t_wrt) 426 424 endif … … 432 430 CALL initdynav_loc(day_ref,annee_ref,time_step,t_ops,t_wrt) 433 431 END IF 434 ENDIF435 432 dtav = iperiod*dtvr/daysec 436 433 #endif -
LMDZ5/trunk/libf/dyn3dmem/initdynav_loc.F
r1907 r2475 154 154 155 155 ddid=(/ 1,2 /) 156 dsg=(/ iip1,jj p1/)156 dsg=(/ iip1,jjm /) 157 157 dsl=(/ iip1,jjn /) 158 158 dpf=(/ 1,jjb /) … … 171 171 172 172 ! Grille U 173 174 do jj = 1, jjp1 175 do ii = 1, iip1 176 rlong(ii,jj) = rlonu(ii) * 180. / pi 177 rlat(ii,jj) = rlatu(jj) * 180. / pi 178 enddo 179 enddo 173 180 174 181 jjb=jj_begin … … 209 216 C Vents U 210 217 C 218 jjn=jj_nb 211 219 call histdef(histuaveid, 'u', 'vent u moyen ', 212 . 'm/s', iip1, jj p1, uhoriid, llm, 1, llm, zvertiidu,220 . 'm/s', iip1, jjn, uhoriid, llm, 1, llm, zvertiidu, 213 221 . 32, 'ave(X)', t_ops, t_wrt) 214 222 … … 216 224 C Vents V 217 225 C 226 if (pole_sud) jjn=jj_nb-1 218 227 call histdef(histvaveid, 'v', 'vent v moyen', 219 . 'm/s', iip1, jj m, vhoriid, llm, 1, llm, zvertiidv,228 . 'm/s', iip1, jjn, vhoriid, llm, 1, llm, zvertiidv, 220 229 . 32, 'ave(X)', t_ops, t_wrt) 221 230 … … 223 232 C Temperature 224 233 C 234 jjn=jj_nb 225 235 call histdef(histaveid, 'temp', 'temperature moyenne', 'K', 226 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,236 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 227 237 . 32, 'ave(X)', t_ops, t_wrt) 228 238 C … … 230 240 C 231 241 call histdef(histaveid, 'theta', 'temperature potentielle', 'K', 232 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,242 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 233 243 . 32, 'ave(X)', t_ops, t_wrt) 234 244 … … 238 248 C 239 249 call histdef(histaveid, 'phi', 'geopotentiel moyen', '-', 240 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,250 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 241 251 . 32, 'ave(X)', t_ops, t_wrt) 242 252 C … … 251 261 C Masse 252 262 C 253 call histdef(histaveid, 'masse', 'masse ', 'kg',254 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,263 call histdef(histaveid, 'masse', 'masse moyenne', 'kg', 264 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 255 265 . 32, 'ave(X)', t_ops, t_wrt) 256 266 C … … 258 268 C 259 269 call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', 260 . iip1, jj p1, thoriid, 1, 1, 1, -99,261 . 32, 'ave(X)', t_ops, t_wrt) 262 C 263 C Pressionau sol270 . iip1, jjn, thoriid, 1, 1, 1, -99, 271 . 32, 'ave(X)', t_ops, t_wrt) 272 C 273 C Geopotentiel au sol 264 274 C 265 275 ! call histdef(histaveid, 'phis', 'geopotentiel au sol', '-', … … 273 283 call histend(histvaveid) 274 284 #else 275 write(lunout,*)'initdynav_ p: Needs IOIPSL to function'285 write(lunout,*)'initdynav_loc: Needs IOIPSL to function' 276 286 #endif 277 287 ! #endif of #ifdef CPP_IOIPSL 278 return279 288 end -
LMDZ5/trunk/libf/dyn3dmem/inithist_loc.F
r1907 r2475 153 153 154 154 ddid=(/ 1,2 /) 155 dsg=(/ iip1,jj p1/)155 dsg=(/ iip1,jjm /) 156 156 dsl=(/ iip1,jjn /) 157 157 dpf=(/ 1,jjb /) … … 170 170 171 171 ! Grille U 172 173 do jj = 1, jjp1 174 do ii = 1, iip1 175 rlong(ii,jj) = rlonu(ii) * 180. / pi 176 rlat(ii,jj) = rlatu(jj) * 180. / pi 177 enddo 178 enddo 172 179 173 180 jjb=jj_begin … … 210 217 C Vents U 211 218 C 212 call histdef(histuid, 'u', 'vent u moyen ', 213 . 'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiidu, 214 . 32, 'ave(X)', t_ops, t_wrt) 219 jjn=jj_nb 220 call histdef(histuid, 'u', 'vent u', 221 . 'm/s', iip1, jjn, uhoriid, llm, 1, llm, zvertiidu, 222 . 32, 'inst(X)', t_ops, t_wrt) 215 223 216 224 C 217 225 C Vents V 218 226 C 219 call histdef(histvid, 'v', 'vent v moyen', 220 . 'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiidv, 221 . 32, 'ave(X)', t_ops, t_wrt) 227 if (pole_sud) jjn=jj_nb-1 228 call histdef(histvid, 'v', 'vent v', 229 . 'm/s', iip1, jjn, vhoriid, llm, 1, llm, zvertiidv, 230 . 32, 'inst(X)', t_ops, t_wrt) 222 231 223 232 C 224 233 C Temperature 225 234 C 226 call histdef(histid, 'temp', 'temperature moyenne', 'K', 227 . iip1, jjp1, thoriid, llm, 1, llm, zvertiid, 228 . 32, 'ave(X)', t_ops, t_wrt) 235 jjn=jj_nb 236 call histdef(histid, 'temp', 'temperature', 'K', 237 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 238 . 32, 'inst(X)', t_ops, t_wrt) 229 239 C 230 240 C Temperature potentielle 231 241 C 232 242 call histdef(histid, 'theta', 'temperature potentielle', 'K', 233 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,234 . 32, ' ave(X)', t_ops, t_wrt)243 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 244 . 32, 'inst(X)', t_ops, t_wrt) 235 245 236 246 … … 238 248 C Geopotentiel 239 249 C 240 call histdef(histid, 'phi', 'geopotentiel moyen', '-',241 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,242 . 32, ' ave(X)', t_ops, t_wrt)250 call histdef(histid, 'phi', 'geopotentiel', '-', 251 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 252 . 32, 'inst(X)', t_ops, t_wrt) 243 253 C 244 254 C Traceurs … … 247 257 ! call histdef(histid, ttext(iq), ttext(iq), '-', 248 258 ! . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 249 ! . 32, ' ave(X)', t_ops, t_wrt)259 ! . 32, 'inst(X)', t_ops, t_wrt) 250 260 ! enddo 251 261 C … … 253 263 C 254 264 call histdef(histid, 'masse', 'masse', 'kg', 255 . iip1, jj p1, thoriid, llm, 1, llm, zvertiid,256 . 32, ' ave(X)', t_ops, t_wrt)265 . iip1, jjn, thoriid, llm, 1, llm, zvertiid, 266 . 32, 'inst(X)', t_ops, t_wrt) 257 267 C 258 268 C Pression au sol 259 269 C 260 270 call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', 261 . iip1, jj p1, thoriid, 1, 1, 1, -99,262 . 32, ' ave(X)', t_ops, t_wrt)263 C 264 C Pressionau sol271 . iip1, jjn, thoriid, 1, 1, 1, -99, 272 . 32, 'inst(X)', t_ops, t_wrt) 273 C 274 C Geopotentiel au sol 265 275 C 266 276 ! call histdef(histid, 'phis', 'geopotentiel au sol', '-', 267 277 ! . iip1, jjn, thoriid, 1, 1, 1, -99, 268 ! . 32, ' ave(X)', t_ops, t_wrt)278 ! . 32, 'inst(X)', t_ops, t_wrt) 269 279 C 270 280 C Fin … … 274 284 call histend(histvid) 275 285 #else 276 write(lunout,*)'init dynav_p: Needs IOIPSL to function'286 write(lunout,*)'inithist_loc: Needs IOIPSL to function' 277 287 #endif 278 288 ! #endif of #ifdef CPP_IOIPSL 279 return280 289 end -
LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F
r2375 r2475 1603 1603 ENDIF 1604 1604 1605 ! Ehouarn: re-compute geopotential for outputs 1606 c$OMP BARRIER 1607 c$OMP MASTER 1608 CALL geopot_loc(ip1jmp1,teta,pk,pks,phis,phi) 1609 c$OMP END MASTER 1610 c$OMP BARRIER 1611 1605 1612 #ifdef CPP_IOIPSL 1606 1613 IF (ok_dynzon) THEN … … 1638 1645 #ifdef CPP_IOIPSL 1639 1646 if (ok_dyn_ins) then 1640 CALL writehist_loc(itau,vcov,ucov,teta,p hi,q,1647 CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, 1641 1648 & masse,ps,phis) 1642 1649 endif … … 1750 1757 1751 1758 #ifdef CPP_IOIPSL 1759 ! Ehouarn: re-compute geopotential for outputs 1760 c$OMP BARRIER 1761 c$OMP MASTER 1762 CALL geopot_loc(ip1jmp1,teta,pk,pks,phis,phi) 1763 c$OMP END MASTER 1764 c$OMP BARRIER 1765 1752 1766 IF (ok_dynzon) THEN 1753 1767 CALL bilan_dyn_loc(2,dtvr*iperiod,dtvr*day_step*periodav, … … 1774 1788 #ifdef CPP_IOIPSL 1775 1789 if (ok_dyn_ins) then 1776 CALL writehist_loc(itau,vcov,ucov,teta,p hi,q,1790 CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, 1777 1791 & masse,ps,phis) 1778 1792 endif ! of if (ok_dyn_ins) -
LMDZ5/trunk/libf/dyn3dmem/writedynav_loc.F
r1907 r2475 89 89 !$OMP MASTER 90 90 ALLOCATE(unat(ijb_u:ije_u,llm)) 91 ALLOCATE(vnat(ijb_ u:ije_u,llm))91 ALLOCATE(vnat(ijb_v:ije_v,llm)) 92 92 ALLOCATE(tm(ijb_u:ije_u,llm)) 93 93 ALLOCATE(ndex2d(ijnb_u*llm)) … … 127 127 C Vents V 128 128 C 129 129 ije=ij_end 130 if (pole_sud) jjn=jj_nb-1 131 if (pole_sud) ije=ij_end-iip1 130 132 !$OMP BARRIER 131 133 !$OMP MASTER … … 138 140 C Temperature potentielle moyennee 139 141 C 142 ijb=ij_begin 143 ije=ij_end 144 jjn=jj_nb 140 145 !$OMP MASTER 141 146 call histwrite(histaveid, 'theta', itau_w, teta(ijb:ije,:), … … 186 191 !$OMP MASTER 187 192 call histwrite(histaveid, 'masse', itau_w, masse(ijb:ije,:), 188 . iip1*jjn , ndexu)193 . iip1*jjn*llm, ndexu) 189 194 !$OMP END MASTER 190 195 … … 203 208 C 204 209 !$OMP MASTER 205 call histwrite(histaveid, 'phis', itau_w, phis(ijb:ije),206 . iip1*jjn, ndexu)210 ! call histwrite(histaveid, 'phis', itau_w, phis(ijb:ije), 211 ! . iip1*jjn, ndex2d) 207 212 !$OMP END MASTER 208 213 … … 218 223 !$OMP END MASTER 219 224 #else 220 write(lunout,*)'writedynav_ p: Needs IOIPSL to function'225 write(lunout,*)'writedynav_loc: Needs IOIPSL to function' 221 226 #endif 222 227 ! #endif of #ifdef CPP_IOIPSL 223 return224 228 end -
LMDZ5/trunk/libf/dyn3dmem/writehist_loc.F
r1907 r2475 89 89 !$OMP MASTER 90 90 ALLOCATE(unat(ijb_u:ije_u,llm)) 91 ALLOCATE(vnat(ijb_ u:ije_u,llm))91 ALLOCATE(vnat(ijb_v:ije_v,llm)) 92 92 ALLOCATE(tm(ijb_u:ije_u,llm)) 93 93 ALLOCATE(ndex2d(ijnb_u*llm)) … … 127 127 C Vents V 128 128 C 129 129 ije=ij_end 130 if (pole_sud) jjn=jj_nb-1 131 if (pole_sud) ije=ij_end-iip1 130 132 !$OMP BARRIER 131 133 !$OMP MASTER … … 136 138 137 139 C 138 C Temperature potentielle moyennee 139 C 140 C Temperature potentielle 141 C 142 ijb=ij_begin 143 ije=ij_end 144 jjn=jj_nb 140 145 !$OMP MASTER 141 146 call histwrite(histid, 'theta', itau_w, teta(ijb:ije,:), … … 144 149 145 150 C 146 C Temperature moyennee151 C Temperature 147 152 C 148 153 … … 186 191 !$OMP MASTER 187 192 call histwrite(histid, 'masse', itau_w, masse(ijb:ije,:), 188 . iip1*jjn , ndexu)193 . iip1*jjn*llm, ndexu) 189 194 !$OMP END MASTER 190 195 … … 194 199 C 195 200 !$OMP MASTER 196 197 201 call histwrite(histid, 'ps', itau_w, ps(ijb:ije), 198 202 . iip1*jjn, ndex2d) … … 203 207 C 204 208 !$OMP MASTER 205 call histwrite(histid, 'phis', itau_w, phis(ijb:ije),206 . iip1*jjn, ndexu)209 ! call histwrite(histid, 'phis', itau_w, phis(ijb:ije), 210 ! . iip1*jjn, ndex2d) 207 211 !$OMP END MASTER 208 212 … … 218 222 !$OMP END MASTER 219 223 #else 220 write(lunout,*)'write dynav_p: Needs IOIPSL to function'224 write(lunout,*)'writehist_loc: Needs IOIPSL to function' 221 225 #endif 222 226 ! #endif of #ifdef CPP_IOIPSL 223 return224 227 end
Note: See TracChangeset
for help on using the changeset viewer.