- Timestamp:
- Sep 20, 2022, 4:09:49 PM (2 years ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/guide_mod.F90
r4253 r4254 1082 1082 SUBROUTINE guide_read(timestep) 1083 1083 1084 use netcdf, only: NF90_GET_VAR 1085 1084 1086 IMPLICIT NONE 1085 1087 … … 1293 1295 ! Coefs ap, bp pour calcul de la pression aux differents niveaux 1294 1296 if (guide_plevs.EQ.1) then 1295 #ifdef NC_DOUBLE 1296 status=NF_GET_VARA_DOUBLE(ncidpl,varidap,1,nlevnc,apnc) 1297 status=NF_GET_VARA_DOUBLE(ncidpl,varidbp,1,nlevnc,bpnc) 1298 #else 1299 status=NF_GET_VARA_REAL(ncidpl,varidap,1,nlevnc,apnc) 1300 status=NF_GET_VARA_REAL(ncidpl,varidbp,1,nlevnc,bpnc) 1301 #endif 1297 status=NF90_GET_VAR(ncidpl,varidap,apnc,[1],[nlevnc]) 1298 status=NF90_GET_VAR(ncidpl,varidbp,bpnc,[1],[nlevnc]) 1302 1299 ELSEIF (guide_plevs.EQ.0) THEN 1303 #ifdef NC_DOUBLE 1304 status=NF_GET_VARA_DOUBLE(ncidpl,varidpl,1,nlevnc,apnc) 1305 #else 1306 status=NF_GET_VARA_REAL(ncidpl,varidpl,1,nlevnc,apnc) 1307 #endif 1300 status=NF90_GET_VAR(ncidpl,varidpl,apnc,[1],[nlevnc]) 1308 1301 !FC Pour les corrections la pression est deja en Pascals on commente la ligne ci-dessous 1309 1302 IF(convert_Pa) apnc=apnc*100.! conversion en Pascals … … 1330 1323 ! Pression 1331 1324 if (guide_plevs.EQ.2) then 1332 #ifdef NC_DOUBLE 1333 status=NF_GET_VARA_DOUBLE(ncidp,varidp,start,count,pnat2) 1334 #else 1335 status=NF_GET_VARA_REAL(ncidp,varidp,start,count,pnat2) 1336 #endif 1325 status=NF90_GET_VAR(ncidp,varidp,pnat2,start,count) 1337 1326 IF (invert_y) THEN 1338 1327 ! PRINT*,"Invertion impossible actuellement" … … 1344 1333 ! Vent zonal 1345 1334 if (guide_u) then 1346 #ifdef NC_DOUBLE 1347 status=NF_GET_VARA_DOUBLE(ncidu,varidu,start,count,unat2) 1348 #else 1349 status=NF_GET_VARA_REAL(ncidu,varidu,start,count,unat2) 1350 #endif 1335 status=NF90_GET_VAR(ncidu,varidu,unat2,start,count) 1351 1336 IF (invert_y) THEN 1352 1337 CALL invert_lat(iip1,jjp1,nlevnc,unat2) … … 1356 1341 ! Temperature 1357 1342 if (guide_T) then 1358 #ifdef NC_DOUBLE 1359 status=NF_GET_VARA_DOUBLE(ncidt,varidt,start,count,tnat2) 1360 #else 1361 status=NF_GET_VARA_REAL(ncidt,varidt,start,count,tnat2) 1362 #endif 1343 status=NF90_GET_VAR(ncidt,varidt,tnat2,start,count) 1363 1344 IF (invert_y) THEN 1364 1345 CALL invert_lat(iip1,jjp1,nlevnc,tnat2) … … 1368 1349 ! Humidite 1369 1350 if (guide_Q) then 1370 #ifdef NC_DOUBLE 1371 status=NF_GET_VARA_DOUBLE(ncidQ,varidQ,start,count,qnat2) 1372 #else 1373 status=NF_GET_VARA_REAL(ncidQ,varidQ,start,count,qnat2) 1374 #endif 1351 status=NF90_GET_VAR(ncidQ,varidQ,qnat2,start,count) 1375 1352 IF (invert_y) THEN 1376 1353 CALL invert_lat(iip1,jjp1,nlevnc,qnat2) … … 1382 1359 if (guide_v) then 1383 1360 count(2)=jjm 1384 #ifdef NC_DOUBLE 1385 status=NF_GET_VARA_DOUBLE(ncidv,varidv,start,count,vnat2) 1386 #else 1387 status=NF_GET_VARA_REAL(ncidv,varidv,start,count,vnat2) 1388 #endif 1361 status=NF90_GET_VAR(ncidv,varidv,vnat2,start,count) 1389 1362 IF (invert_y) THEN 1390 1363 CALL invert_lat(iip1,jjm,nlevnc,vnat2) … … 1399 1372 count(3)=1 1400 1373 count(4)=0 1401 #ifdef NC_DOUBLE 1402 status=NF_GET_VARA_DOUBLE(ncidps,varidps,start,count,psnat2) 1403 #else 1404 status=NF_GET_VARA_REAL(ncidps,varidps,start,count,psnat2) 1405 #endif 1374 status=NF90_GET_VAR(ncidps,varidps,psnat2,start,count) 1406 1375 IF (invert_y) THEN 1407 1376 CALL invert_lat(iip1,jjp1,1,psnat2) … … 1413 1382 !======================================================================= 1414 1383 SUBROUTINE guide_read2D(timestep) 1384 1385 use netcdf, only: nf90_get_var 1415 1386 1416 1387 IMPLICIT NONE … … 1560 1531 ! Coefs ap, bp pour calcul de la pression aux differents niveaux 1561 1532 if (guide_plevs.EQ.1) then 1562 #ifdef NC_DOUBLE 1563 status=NF_GET_VARA_DOUBLE(ncidpl,varidap,1,nlevnc,apnc) 1564 status=NF_GET_VARA_DOUBLE(ncidpl,varidbp,1,nlevnc,bpnc) 1565 #else 1566 status=NF_GET_VARA_REAL(ncidpl,varidap,1,nlevnc,apnc) 1567 status=NF_GET_VARA_REAL(ncidpl,varidbp,1,nlevnc,bpnc) 1568 #endif 1533 status=NF90_GET_VAR(ncidpl,varidap,apnc,[1],[nlevnc]) 1534 status=NF90_GET_VAR(ncidpl,varidbp,bpnc,[1],[nlevnc]) 1569 1535 elseif (guide_plevs.EQ.0) THEN 1570 #ifdef NC_DOUBLE 1571 status=NF_GET_VARA_DOUBLE(ncidpl,varidpl,1,nlevnc,apnc) 1572 #else 1573 status=NF_GET_VARA_REAL(ncidpl,varidpl,1,nlevnc,apnc) 1574 #endif 1536 status=NF90_GET_VAR(ncidpl,varidpl,apnc,[1],[nlevnc]) 1575 1537 apnc=apnc*100.! conversion en Pascals 1576 1538 bpnc(:)=0. … … 1596 1558 ! Pression 1597 1559 if (guide_plevs.EQ.2) then 1598 #ifdef NC_DOUBLE 1599 status=NF_GET_VARA_DOUBLE(ncidp,varidp,start,count,zu) 1600 #else 1601 status=NF_GET_VARA_REAL(ncidp,varidp,start,count,zu) 1602 #endif 1560 status=NF90_GET_VAR(ncidp,varidp,zu,start,count) 1603 1561 DO i=1,iip1 1604 1562 pnat2(i,:,:)=zu(:,:) … … 1613 1571 ! Vent zonal 1614 1572 if (guide_u) then 1615 #ifdef NC_DOUBLE 1616 status=NF_GET_VARA_DOUBLE(ncidu,varidu,start,count,zu) 1617 #else 1618 status=NF_GET_VARA_REAL(ncidu,varidu,start,count,zu) 1619 #endif 1573 status=NF90_GET_VAR(ncidu,varidu,zu,start,count) 1620 1574 DO i=1,iip1 1621 1575 unat2(i,:,:)=zu(:,:) … … 1630 1584 ! Temperature 1631 1585 if (guide_T) then 1632 #ifdef NC_DOUBLE 1633 status=NF_GET_VARA_DOUBLE(ncidt,varidt,start,count,zu) 1634 #else 1635 status=NF_GET_VARA_REAL(ncidt,varidt,start,count,zu) 1636 #endif 1586 status=NF90_GET_VAR(ncidt,varidt,zu,start,count) 1637 1587 DO i=1,iip1 1638 1588 tnat2(i,:,:)=zu(:,:) … … 1647 1597 ! Humidite 1648 1598 if (guide_Q) then 1649 #ifdef NC_DOUBLE 1650 status=NF_GET_VARA_DOUBLE(ncidQ,varidQ,start,count,zu) 1651 #else 1652 status=NF_GET_VARA_REAL(ncidQ,varidQ,start,count,zu) 1653 #endif 1599 status=NF90_GET_VAR(ncidQ,varidQ,zu,start,count) 1654 1600 DO i=1,iip1 1655 1601 qnat2(i,:,:)=zu(:,:) … … 1665 1611 if (guide_v) then 1666 1612 count(2)=jjm 1667 #ifdef NC_DOUBLE 1668 status=NF_GET_VARA_DOUBLE(ncidv,varidv,start,count,zv) 1669 #else 1670 status=NF_GET_VARA_REAL(ncidv,varidv,start,count,zv) 1671 #endif 1613 status=NF90_GET_VAR(ncidv,varidv,zv,start,count) 1672 1614 DO i=1,iip1 1673 1615 vnat2(i,:,:)=zv(:,:) … … 1687 1629 count(3)=1 1688 1630 count(4)=0 1689 #ifdef NC_DOUBLE 1690 status=NF_GET_VARA_DOUBLE(ncidps,varidps,start,count,zu(:,1)) 1691 #else 1692 status=NF_GET_VARA_REAL(ncidps,varidps,start,count,zu(:,1)) 1693 #endif 1631 status=NF90_GET_VAR(ncidps,varidps,zu(:,1),start,count) 1694 1632 DO i=1,iip1 1695 1633 psnat2(i,:)=zu(:,1) -
LMDZ6/trunk/libf/phylmd/read_pstoke.F90
r2345 r4254 252 252 253 253 ! niveaux de pression 254 #ifdef NC_DOUBLE 255 status = nf_get_vara_double(ncidp, varidpl, 1, zklevo, pl) 256 #else 257 status = nf_get_vara_real(ncidp, varidpl, 1, zklevo, pl) 258 #endif 254 status = nf90_get_var(ncidp, varidpl, pl, [1], [zklevo]) 259 255 260 256 ! lecture de aire et phis … … 271 267 272 268 ! phis 273 #ifdef NC_DOUBLE 274 status = nf_get_vara_double(ncidp, varidps, start, count, phisfi2) 275 #else 276 status = nf_get_vara_real(ncidp, varidps, start, count, phisfi2) 277 #endif 269 status = nf90_get_var(ncidp, varidps, phisfi2, start, count) 278 270 CALL gr_ecrit_fi(1, klono, imo, jmo+1, phisfi2, phisfi) 279 271 280 272 ! aire 281 #ifdef NC_DOUBLE 282 status = nf_get_vara_double(ncidp, varidai, start, count, airefi2) 283 #else 284 status = nf_get_vara_real(ncidp, varidai, start, count, airefi2) 285 #endif 273 status = nf90_get_var(ncidp, varidai, airefi2, start, count) 286 274 CALL gr_ecrit_fi(1, klono, imo, jmo+1, airefi2, airefi) 287 275 ELSE … … 309 297 ! *** Lessivage****************************************************** 310 298 ! frac_impa 311 #ifdef NC_DOUBLE 312 status = nf_get_vara_double(ncidp, varidfi, start, count, frac_impa2) 313 #else 314 status = nf_get_vara_real(ncidp, varidfi, start, count, frac_impa2) 315 #endif 299 status = nf90_get_var(ncidp, varidfi, frac_impa2, start, count) 316 300 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, frac_impa2, frac_impa) 317 301 318 302 ! frac_nucl 319 #ifdef NC_DOUBLE 320 status = nf_get_vara_double(ncidp, varidfn, start, count, frac_nucl2) 321 #else 322 status = nf_get_vara_real(ncidp, varidfn, start, count, frac_nucl2) 323 #endif 303 status = nf90_get_var(ncidp, varidfn, frac_nucl2, start, count) 324 304 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, frac_nucl2, frac_nucl) 325 305 326 306 ! *** Temperature ****************************************************** 327 307 ! abder t 328 #ifdef NC_DOUBLE 329 status = nf_get_vara_double(ncidp, varidt, start, count, t2) 330 #else 331 status = nf_get_vara_real(ncidp, varidt, start, count, t2) 332 #endif 308 status = nf90_get_var(ncidp, varidt, t2, start, count) 333 309 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, t2, t) 334 310 335 311 ! *** Flux pour le calcul de la convection TIEDTK *********************** 336 312 ! mfu 337 #ifdef NC_DOUBLE 338 status = nf_get_vara_double(ncidp, varidmfu, start, count, mfu2) 339 #else 340 status = nf_get_vara_real(ncidp, varidmfu, start, count, mfu2) 341 #endif 313 status = nf90_get_var(ncidp, varidmfu, mfu2, start, count) 342 314 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, mfu2, mfu) 343 315 344 316 ! mfd 345 #ifdef NC_DOUBLE 346 status = nf_get_vara_double(ncidp, varidmfd, start, count, mfd2) 347 #else 348 status = nf_get_vara_real(ncidp, varidmfd, start, count, mfd2) 349 #endif 317 status = nf90_get_var(ncidp, varidmfd, mfd2, start, count) 350 318 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, mfd2, mfd) 351 319 352 320 ! en_u 353 #ifdef NC_DOUBLE 354 status = nf_get_vara_double(ncidp, varidenu, start, count, en_u2) 355 #else 356 status = nf_get_vara_real(ncidp, varidenu, start, count, en_u2) 357 #endif 321 status = nf90_get_var(ncidp, varidenu, en_u2, start, count) 358 322 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, en_u2, en_u) 359 323 360 324 ! de_u 361 #ifdef NC_DOUBLE 362 status = nf_get_vara_double(ncidp, variddeu, start, count, de_u2) 363 #else 364 status = nf_get_vara_real(ncidp, variddeu, start, count, de_u2) 365 #endif 325 status = nf90_get_var(ncidp, variddeu, de_u2, start, count) 366 326 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, de_u2, de_u) 367 327 368 328 ! en_d 369 #ifdef NC_DOUBLE 370 status = nf_get_vara_double(ncidp, varidend, start, count, en_d2) 371 #else 372 status = nf_get_vara_real(ncidp, varidend, start, count, en_d2) 373 #endif 329 status = nf90_get_var(ncidp, varidend, en_d2, start, count) 374 330 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, en_d2, en_d) 375 331 376 332 ! de_d 377 #ifdef NC_DOUBLE 378 status = nf_get_vara_double(ncidp, varidded, start, count, de_d2) 379 #else 380 status = nf_get_vara_real(ncidp, varidded, start, count, de_d2) 381 #endif 333 status = nf90_get_var(ncidp, varidded, de_d2, start, count) 382 334 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, de_d2, de_d) 383 335 … … 385 337 ! turbulent********************************** 386 338 ! coefh 387 #ifdef NC_DOUBLE 388 status = nf_get_vara_double(ncidp, varidch, start, count, coefh2) 389 #else 390 status = nf_get_vara_real(ncidp, varidch, start, count, coefh2) 391 #endif 339 status = nf90_get_var(ncidp, varidch, coefh2, start, count) 392 340 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, coefh2, coefh) 393 341 … … 395 343 ! Thermiques************************ 396 344 ! abder thermiques 397 #ifdef NC_DOUBLE 398 status = nf_get_vara_double(ncidp, varidfmth, start, count, fm_therm2) 399 #else 400 status = nf_get_vara_real(ncidp, varidfmth, start, count, fm_therm2) 401 #endif 345 status = nf90_get_var(ncidp, varidfmth, fm_therm2, start, count) 402 346 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, fm_therm2, fm_therm) 403 347 404 #ifdef NC_DOUBLE 405 status = nf_get_vara_double(ncidp, varidenth, start, count, en_therm2) 406 #else 407 status = nf_get_vara_real(ncidp, varidenth, start, count, en_therm2) 408 #endif 348 status = nf90_get_var(ncidp, varidenth, en_therm2, start, count) 409 349 CALL gr_ecrit_fi(klevo, klono, imo, jmo+1, en_therm2, en_therm) 410 350 … … 416 356 count(4) = 0 417 357 ! pyu1 418 #ifdef NC_DOUBLE 419 status = nf_get_vara_double(ncidp, varidyu1, start, count, pyu12) 420 #else 421 status = nf_get_vara_real(ncidp, varidyu1, start, count, pyu12) 422 #endif 358 status = nf90_get_var(ncidp, varidyu1, pyu12, start, count) 423 359 CALL gr_ecrit_fi(1, klono, imo, jmo+1, pyu12, pyu1) 424 360 425 361 ! pyv1 426 #ifdef NC_DOUBLE 427 status = nf_get_vara_double(ncidp, varidyv1, start, count, pyv12) 428 #else 429 status = nf_get_vara_real(ncidp, varidyv1, start, count, pyv12) 430 #endif 362 status = nf90_get_var(ncidp, varidyv1, pyv12, start, count) 431 363 CALL gr_ecrit_fi(1, klono, imo, jmo+1, pyv12, pyv1) 432 364 433 365 ! *** Temperature au sol ******************************************** 434 366 ! ftsol1 435 #ifdef NC_DOUBLE 436 status = nf_get_vara_double(ncidp, varidfts1, start, count, ftsol12) 437 #else 438 status = nf_get_vara_real(ncidp, varidfts1, start, count, ftsol12) 439 #endif 367 status = nf90_get_var(ncidp, varidfts1, ftsol12, start, count) 440 368 CALL gr_ecrit_fi(1, klono, imo, jmo+1, ftsol12, ftsol1) 441 369 442 370 ! ftsol2 443 #ifdef NC_DOUBLE 444 status = nf_get_vara_double(ncidp, varidfts2, start, count, ftsol22) 445 #else 446 status = nf_get_vara_real(ncidp, varidfts2, start, count, ftsol22) 447 #endif 371 status = nf90_get_var(ncidp, varidfts2, ftsol22, start, count) 448 372 CALL gr_ecrit_fi(1, klono, imo, jmo+1, ftsol22, ftsol2) 449 373 450 374 ! ftsol3 451 #ifdef NC_DOUBLE 452 status = nf_get_vara_double(ncidp, varidfts3, start, count, ftsol32) 453 #else 454 status = nf_get_vara_real(ncidp, varidfts3, start, count, ftsol32) 455 #endif 375 status = nf90_get_var(ncidp, varidfts3, ftsol32, start, count) 456 376 CALL gr_ecrit_fi(1, klono, imo, jmo+1, ftsol32, ftsol3) 457 377 458 378 ! ftsol4 459 #ifdef NC_DOUBLE 460 status = nf_get_vara_double(ncidp, varidfts4, start, count, ftsol42) 461 #else 462 status = nf_get_vara_real(ncidp, varidfts4, start, count, ftsol42) 463 #endif 379 status = nf90_get_var(ncidp, varidfts4, ftsol42, start, count) 464 380 CALL gr_ecrit_fi(1, klono, imo, jmo+1, ftsol42, ftsol4) 465 381 466 382 ! *** Nature du sol ************************************************** 467 383 ! psrf1 468 #ifdef NC_DOUBLE 469 status = nf_get_vara_double(ncidp, varidpsr1, start, count, psrf12) 470 #else 471 status = nf_get_vara_real(ncidp, varidpsr1, start, count, psrf12) 472 #endif 384 status = nf90_get_var(ncidp, varidpsr1, psrf12, start, count) 473 385 CALL gr_ecrit_fi(1, klono, imo, jmo+1, psrf12, psrf1) 474 386 475 387 ! psrf2 476 #ifdef NC_DOUBLE 477 status = nf_get_vara_double(ncidp, varidpsr2, start, count, psrf22) 478 #else 479 status = nf_get_vara_real(ncidp, varidpsr2, start, count, psrf22) 480 #endif 388 status = nf90_get_var(ncidp, varidpsr2, psrf22, start, count) 481 389 CALL gr_ecrit_fi(1, klono, imo, jmo+1, psrf22, psrf2) 482 390 483 391 ! psrf3 484 #ifdef NC_DOUBLE 485 status = nf_get_vara_double(ncidp, varidpsr3, start, count, psrf32) 486 #else 487 status = nf_get_vara_real(ncidp, varidpsr3, start, count, psrf32) 488 #endif 392 status = nf90_get_var(ncidp, varidpsr3, psrf32, start, count) 489 393 CALL gr_ecrit_fi(1, klono, imo, jmo+1, psrf32, psrf3) 490 394 491 395 ! psrf4 492 #ifdef NC_DOUBLE 493 status = nf_get_vara_double(ncidp, varidpsr4, start, count, psrf42) 494 #else 495 status = nf_get_vara_real(ncidp, varidpsr4, start, count, psrf42) 496 #endif 396 status = nf90_get_var(ncidp, varidpsr4, psrf42, start, count) 497 397 CALL gr_ecrit_fi(1, klono, imo, jmo+1, psrf42, psrf4) 498 398
Note: See TracChangeset
for help on using the changeset viewer.