Changeset 5084 for LMDZ6/trunk/libf/phylmd/dyn1d
- Timestamp:
- Jul 19, 2024, 6:40:44 PM (12 months ago)
- Location:
- LMDZ6/trunk/libf/phylmd/dyn1d
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/dyn1d/1DUTILS.h
r5075 r5084 673 673 USE logic_mod, ONLY: fxyhypb, ysinus 674 674 USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn 675 USE lmdz_netcdf, ONLY:nf_open,nf_write,nf_noerr676 675 677 676 IMPLICIT NONE … … 683 682 include "dimensions.h" 684 683 !!#include "control.h" 684 include "netcdf.inc" 685 685 686 686 ! Arguments: … … 820 820 USE logic_mod, ONLY: fxyhypb, ysinus 821 821 USE temps_mod, ONLY: annee_ref,day_end,day_ref,itau_dyn,itaufin 822 USE lmdz_netcdf, ONLY:nf_open,nf_write,nf_noerr823 822 824 823 IMPLICIT NONE … … 830 829 include "dimensions.h" 831 830 !!#include "control.h" 831 include "netcdf.inc" 832 832 833 833 ! Arguments: -
LMDZ6/trunk/libf/phylmd/dyn1d/1D_decl_cases.h
r5075 r5084 1 INCLUDE "netcdf.inc" 1 2 2 3 ! Declarations specifiques au cas Toga -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_amma_read.F90
r5075 r5084 1 1 MODULE mod_1D_amma_read 2 USE lmdz_netcdf, ONLY: nf90_get_var,nf_open,nf_noerr,nf_open,nf_nowrite,& 3 nf_inq_dimid,nf_inq_dimlen,nf_strerror,nf_inq_varid 2 4 3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5 4 !Declarations specifiques au cas AMMA … … 7 6 ! Option du cas AMMA ou on impose la discretisation verticale (Ap,Bp) 8 7 integer nlev_amma, nt_amma 8 9 9 10 10 integer year_ini_amma, day_ini_amma, mth_ini_amma … … 59 59 implicit none 60 60 61 INCLUDE "netcdf.inc" 62 61 63 INTEGER nid,rid,ierr 62 64 … … 65 67 ierr = NF_OPEN(fich_amma,NF_NOWRITE,nid) 66 68 print*,'fich_amma,NF_NOWRITE,nid ',fich_amma,NF_NOWRITE,nid 67 if (ierr /=NF_NOERR) then69 if (ierr.NE.NF_NOERR) then 68 70 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 69 71 write(*,*) NF_STRERROR(ierr) … … 72 74 !....................................................................... 73 75 ierr=NF_INQ_DIMID(nid,'lev',rid) 74 IF (ierr /=NF_NOERR) THEN76 IF (ierr.NE.NF_NOERR) THEN 75 77 print*, 'Oh probleme lecture dimension zz' 76 78 ENDIF … … 81 83 print*,'nid,rid',nid,rid 82 84 nt_amma=0 83 IF (ierr /=NF_NOERR) THEN85 IF (ierr.NE.NF_NOERR) THEN 84 86 stop 'probleme lecture dimension sens' 85 87 ENDIF … … 170 172 171 173 174 END MODULE mod_1D_amma_read 172 175 !===================================================================== 173 176 subroutine read_amma(nid,nlevel,ntime & … … 177 180 !program reading forcings of the AMMA case study 178 181 implicit none 182 INCLUDE "netcdf.inc" 179 183 180 184 integer ntime,nlevel … … 264 268 ! call catchaxis(nid,ntime,nlevel,time,z,ierr) 265 269 266 ierr = nf90_get_var(nid,var3didin(1),zz) 270 #ifdef NC_DOUBLE 271 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(1),zz) 272 #else 273 ierr = NF_GET_VAR_REAL(nid,var3didin(1),zz) 274 #endif 267 275 if(ierr/=NF_NOERR) then 268 276 write(*,*) NF_STRERROR(ierr) … … 271 279 ! write(*,*)'lecture z ok',zz 272 280 273 ierr = nf90_get_var(nid,var3didin(2),temp) 281 #ifdef NC_DOUBLE 282 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(2),temp) 283 #else 284 ierr = NF_GET_VAR_REAL(nid,var3didin(2),temp) 285 #endif 274 286 if(ierr/=NF_NOERR) then 275 287 write(*,*) NF_STRERROR(ierr) … … 278 290 ! write(*,*)'lecture th ok',temp 279 291 280 ierr = nf90_get_var(nid,var3didin(3),qv) 292 #ifdef NC_DOUBLE 293 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(3),qv) 294 #else 295 ierr = NF_GET_VAR_REAL(nid,var3didin(3),qv) 296 #endif 281 297 if(ierr/=NF_NOERR) then 282 298 write(*,*) NF_STRERROR(ierr) … … 285 301 ! write(*,*)'lecture qv ok',qv 286 302 287 ierr = nf90_get_var(nid,var3didin(4),u) 303 #ifdef NC_DOUBLE 304 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(4),u) 305 #else 306 ierr = NF_GET_VAR_REAL(nid,var3didin(4),u) 307 #endif 288 308 if(ierr/=NF_NOERR) then 289 309 write(*,*) NF_STRERROR(ierr) … … 292 312 ! write(*,*)'lecture u ok',u 293 313 294 ierr = nf90_get_var(nid,var3didin(5),v) 314 #ifdef NC_DOUBLE 315 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(5),v) 316 #else 317 ierr = NF_GET_VAR_REAL(nid,var3didin(5),v) 318 #endif 295 319 if(ierr/=NF_NOERR) then 296 320 write(*,*) NF_STRERROR(ierr) … … 299 323 ! write(*,*)'lecture v ok',v 300 324 301 ierr = nf90_get_var(nid,var3didin(6),dw) 325 #ifdef NC_DOUBLE 326 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(6),dw) 327 #else 328 ierr = NF_GET_VAR_REAL(nid,var3didin(6),dw) 329 #endif 302 330 if(ierr/=NF_NOERR) then 303 331 write(*,*) NF_STRERROR(ierr) … … 306 334 ! write(*,*)'lecture w ok',dw 307 335 308 ierr = nf90_get_var(nid,var3didin(7),dt) 336 #ifdef NC_DOUBLE 337 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(7),dt) 338 #else 339 ierr = NF_GET_VAR_REAL(nid,var3didin(7),dt) 340 #endif 309 341 if(ierr/=NF_NOERR) then 310 342 write(*,*) NF_STRERROR(ierr) … … 313 345 ! write(*,*)'lecture dt ok',dt 314 346 315 ierr = nf90_get_var(nid,var3didin(8),dq) 347 #ifdef NC_DOUBLE 348 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(8),dq) 349 #else 350 ierr = NF_GET_VAR_REAL(nid,var3didin(8),dq) 351 #endif 316 352 if(ierr/=NF_NOERR) then 317 353 write(*,*) NF_STRERROR(ierr) … … 320 356 ! write(*,*)'lecture dq ok',dq 321 357 322 ierr = nf90_get_var(nid,var3didin(9),sens) 358 #ifdef NC_DOUBLE 359 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(9),sens) 360 #else 361 ierr = NF_GET_VAR_REAL(nid,var3didin(9),sens) 362 #endif 323 363 if(ierr/=NF_NOERR) then 324 364 write(*,*) NF_STRERROR(ierr) … … 327 367 ! write(*,*)'lecture sens ok',sens 328 368 329 ierr = nf90_get_var(nid,var3didin(10),flat) 369 #ifdef NC_DOUBLE 370 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(10),flat) 371 #else 372 ierr = NF_GET_VAR_REAL(nid,var3didin(10),flat) 373 #endif 330 374 if(ierr/=NF_NOERR) then 331 375 write(*,*) NF_STRERROR(ierr) … … 334 378 ! write(*,*)'lecture flat ok',flat 335 379 336 ierr = nf90_get_var(nid,var3didin(11),pp) 380 #ifdef NC_DOUBLE 381 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(11),pp) 382 #else 383 ierr = NF_GET_VAR_REAL(nid,var3didin(11),pp) 384 #endif 337 385 if(ierr/=NF_NOERR) then 338 386 write(*,*) NF_STRERROR(ierr) … … 381 429 382 430 383 if (forcing_type ==6) then431 if (forcing_type.eq.6) then 384 432 ! Check that initial day of the simulation consistent with AMMA case: 385 if (annee_ref /=2006) then433 if (annee_ref.ne.2006) then 386 434 print*,'Pour AMMA, annee_ref doit etre 2006' 387 435 print*,'Changer annee_ref dans run.def' 388 436 stop 389 437 endif 390 if (annee_ref ==2006 .and. day1<day_ini_amma) then391 print*,'AMMA a d �but�le 10 juillet 2006',day1,day_ini_amma438 if (annee_ref.eq.2006 .and. day1.lt.day_ini_amma) then 439 print*,'AMMA a débuté le 10 juillet 2006',day1,day_ini_amma 392 440 print*,'Changer dayref dans run.def' 393 441 stop 394 442 endif 395 if (annee_ref ==2006 .and. day1>day_ini_amma+1) then443 if (annee_ref.eq.2006 .and. day1.gt.day_ini_amma+1) then 396 444 print*,'AMMA a fini le 11 juillet' 397 445 print*,'Changer dayref ou nday dans run.def' … … 416 464 417 465 it_amma1=INT(timeit/dt_amma)+1 418 IF (it_amma1 ==nt_amma) THEN466 IF (it_amma1 .EQ. nt_amma) THEN 419 467 it_amma2=it_amma1 420 468 ELSE … … 424 472 time_amma2=(it_amma2-1)*dt_amma 425 473 426 if (it_amma1 >nt_amma) then474 if (it_amma1 .gt. nt_amma) then 427 475 write(*,*) 'PB-stop: day, it_amma1, it_amma2, timeit: ' & 428 476 & ,day,day_ini_amma,it_amma1,it_amma2,timeit/86400. … … 431 479 432 480 ! time interpolation: 433 IF (it_amma1 ==it_amma2) THEN481 IF (it_amma1 .EQ. it_amma2) THEN 434 482 frac=0. 435 483 ELSE … … 455 503 END 456 504 457 END MODULE mod_1D_amma_read -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read.F90
r5075 r5084 1 ! 2 ! $Id$ 3 ! 1 4 MODULE mod_1D_cases_read 2 USE lmdz_netcdf, ONLY: nf_noerr,nf_strerror,nf_inq_varid,nf_inq_dimlen,nf_inq_dimid,&3 nf_nowrite,nf_open,nf90_get_var4 5 5 6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6 7 !Declarations specifiques au cas standard 7 8 character*80 :: fich_cas 8 ! Discr?tisation 9 ! Discr?tisation 9 10 integer nlev_cas, nt_cas 10 11 … … 56 57 real, allocatable:: q_prof_cas(:) 57 58 real, allocatable:: u_prof_cas(:) 58 real, allocatable:: v_prof_cas(:) 59 real, allocatable:: v_prof_cas(:) 59 60 60 61 real, allocatable:: vitw_prof_cas(:) … … 81 82 82 83 real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas 83 84 84 85 85 86 … … 87 88 88 89 SUBROUTINE read_1D_cas 90 implicit none 91 92 INCLUDE "netcdf.inc" 89 93 90 94 INTEGER nid,rid,ierr … … 95 99 ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid) 96 100 print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid 97 if (ierr /=NF_NOERR) then101 if (ierr.NE.NF_NOERR) then 98 102 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 99 103 write(*,*) NF_STRERROR(ierr) … … 102 106 !....................................................................... 103 107 ierr=NF_INQ_DIMID(nid,'lat',rid) 104 IF (ierr /=NF_NOERR) THEN108 IF (ierr.NE.NF_NOERR) THEN 105 109 print*, 'Oh probleme lecture dimension lat' 106 110 ENDIF … … 109 113 !....................................................................... 110 114 ierr=NF_INQ_DIMID(nid,'lon',rid) 111 IF (ierr /=NF_NOERR) THEN115 IF (ierr.NE.NF_NOERR) THEN 112 116 print*, 'Oh probleme lecture dimension lon' 113 117 ENDIF … … 116 120 !....................................................................... 117 121 ierr=NF_INQ_DIMID(nid,'lev',rid) 118 IF (ierr /=NF_NOERR) THEN122 IF (ierr.NE.NF_NOERR) THEN 119 123 print*, 'Oh probleme lecture dimension zz' 120 124 ENDIF … … 125 129 print*,'nid,rid',nid,rid 126 130 nt_cas=0 127 IF (ierr /=NF_NOERR) THEN131 IF (ierr.NE.NF_NOERR) THEN 128 132 stop 'probleme lecture dimension sens' 129 133 ENDIF … … 133 137 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 134 138 !profils moyens: 135 allocate(plev_cas(nlev_cas,nt_cas)) 139 allocate(plev_cas(nlev_cas,nt_cas)) 136 140 allocate(z_cas(nlev_cas,nt_cas)) 137 141 allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas)) … … 200 204 !profils environnementaux: 201 205 deallocate(plev_cas) 202 206 203 207 deallocate(z_cas) 204 208 deallocate(t_cas,q_cas,rh_cas) … … 206 210 deallocate(u_cas) 207 211 deallocate(v_cas) 208 212 209 213 !forcing 210 214 deallocate(ht_cas,vt_cas,dt_cas,dtrad_cas) … … 253 257 END SUBROUTINE deallocate_1D_cases 254 258 255 !===================================================================== 259 260 END MODULE mod_1D_cases_read 261 !===================================================================== 256 262 subroutine read_cas(nid,nlevel,ntime & 257 263 & ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w, & … … 260 266 261 267 !program reading forcing of the case study 268 implicit none 269 INCLUDE "netcdf.inc" 262 270 263 271 integer ntime,nlevel … … 288 296 integer var3didin(nbvar3d) 289 297 290 ierr=NF_INQ_VARID(nid,"zz",var3didin(1)) 298 ierr=NF_INQ_VARID(nid,"zz",var3didin(1)) 291 299 if(ierr/=NF_NOERR) then 292 300 write(*,*) NF_STRERROR(ierr) 293 301 stop 'lev' 294 302 endif 295 296 ierr=NF_INQ_VARID(nid,"pp",var3didin(2)) 303 304 ierr=NF_INQ_VARID(nid,"pp",var3didin(2)) 297 305 if(ierr/=NF_NOERR) then 298 306 write(*,*) NF_STRERROR(ierr) … … 421 429 stop 'advq' 422 430 endif 423 431 424 432 ierr=NF_INQ_VARID(nid,"hq",var3didin(23)) 425 433 if(ierr/=NF_NOERR) then … … 457 465 stop 'advr' 458 466 endif 459 467 460 468 ierr=NF_INQ_VARID(nid,"hr",var3didin(29)) 461 469 if(ierr/=NF_NOERR) then … … 523 531 stop 'q2' 524 532 endif 525 526 ierr = nf90_get_var(nid,var3didin(1),zz) 533 534 #ifdef NC_DOUBLE 535 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(1),zz) 536 #else 537 ierr = NF_GET_VAR_REAL(nid,var3didin(1),zz) 538 #endif 527 539 if(ierr/=NF_NOERR) then 528 540 write(*,*) NF_STRERROR(ierr) … … 531 543 ! write(*,*)'lecture z ok',zz 532 544 533 ierr = nf90_get_var(nid,var3didin(2),pp) 545 #ifdef NC_DOUBLE 546 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(2),pp) 547 #else 548 ierr = NF_GET_VAR_REAL(nid,var3didin(2),pp) 549 #endif 534 550 if(ierr/=NF_NOERR) then 535 551 write(*,*) NF_STRERROR(ierr) … … 539 555 540 556 541 ierr = nf90_get_var(nid,var3didin(3),temp) 557 #ifdef NC_DOUBLE 558 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(3),temp) 559 #else 560 ierr = NF_GET_VAR_REAL(nid,var3didin(3),temp) 561 #endif 542 562 if(ierr/=NF_NOERR) then 543 563 write(*,*) NF_STRERROR(ierr) … … 546 566 ! write(*,*)'lecture T ok',temp 547 567 548 ierr = nf90_get_var(nid,var3didin(4),qv) 568 #ifdef NC_DOUBLE 569 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(4),qv) 570 #else 571 ierr = NF_GET_VAR_REAL(nid,var3didin(4),qv) 572 #endif 549 573 if(ierr/=NF_NOERR) then 550 574 write(*,*) NF_STRERROR(ierr) … … 552 576 endif 553 577 ! write(*,*)'lecture qv ok',qv 554 555 ierr = nf90_get_var(nid,var3didin(5),rh) 578 579 #ifdef NC_DOUBLE 580 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(5),rh) 581 #else 582 ierr = NF_GET_VAR_REAL(nid,var3didin(5),rh) 583 #endif 556 584 if(ierr/=NF_NOERR) then 557 585 write(*,*) NF_STRERROR(ierr) … … 560 588 ! write(*,*)'lecture rh ok',rh 561 589 562 ierr = nf90_get_var(nid,var3didin(6),theta) 590 #ifdef NC_DOUBLE 591 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(6),theta) 592 #else 593 ierr = NF_GET_VAR_REAL(nid,var3didin(6),theta) 594 #endif 563 595 if(ierr/=NF_NOERR) then 564 596 write(*,*) NF_STRERROR(ierr) … … 567 599 ! write(*,*)'lecture theta ok',theta 568 600 569 ierr = nf90_get_var(nid,var3didin(7),rv) 601 #ifdef NC_DOUBLE 602 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(7),rv) 603 #else 604 ierr = NF_GET_VAR_REAL(nid,var3didin(7),rv) 605 #endif 570 606 if(ierr/=NF_NOERR) then 571 607 write(*,*) NF_STRERROR(ierr) … … 574 610 ! write(*,*)'lecture rv ok',rv 575 611 576 ierr = nf90_get_var(nid,var3didin(8),u) 612 #ifdef NC_DOUBLE 613 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(8),u) 614 #else 615 ierr = NF_GET_VAR_REAL(nid,var3didin(8),u) 616 #endif 577 617 if(ierr/=NF_NOERR) then 578 618 write(*,*) NF_STRERROR(ierr) … … 581 621 ! write(*,*)'lecture u ok',u 582 622 583 ierr = nf90_get_var(nid,var3didin(9),v) 623 #ifdef NC_DOUBLE 624 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(9),v) 625 #else 626 ierr = NF_GET_VAR_REAL(nid,var3didin(9),v) 627 #endif 584 628 if(ierr/=NF_NOERR) then 585 629 write(*,*) NF_STRERROR(ierr) … … 588 632 ! write(*,*)'lecture v ok',v 589 633 590 ierr = nf90_get_var(nid,var3didin(10),ug) 634 #ifdef NC_DOUBLE 635 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(10),ug) 636 #else 637 ierr = NF_GET_VAR_REAL(nid,var3didin(10),ug) 638 #endif 591 639 if(ierr/=NF_NOERR) then 592 640 write(*,*) NF_STRERROR(ierr) … … 595 643 ! write(*,*)'lecture ug ok',ug 596 644 597 ierr = nf90_get_var(nid,var3didin(11),vg) 645 #ifdef NC_DOUBLE 646 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(11),vg) 647 #else 648 ierr = NF_GET_VAR_REAL(nid,var3didin(11),vg) 649 #endif 598 650 if(ierr/=NF_NOERR) then 599 651 write(*,*) NF_STRERROR(ierr) … … 602 654 ! write(*,*)'lecture vg ok',vg 603 655 604 ierr = nf90_get_var(nid,var3didin(12),w) 656 #ifdef NC_DOUBLE 657 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(12),w) 658 #else 659 ierr = NF_GET_VAR_REAL(nid,var3didin(12),w) 660 #endif 605 661 if(ierr/=NF_NOERR) then 606 662 write(*,*) NF_STRERROR(ierr) … … 609 665 ! write(*,*)'lecture w ok',w 610 666 611 ierr = nf90_get_var(nid,var3didin(13),du) 667 #ifdef NC_DOUBLE 668 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(13),du) 669 #else 670 ierr = NF_GET_VAR_REAL(nid,var3didin(13),du) 671 #endif 612 672 if(ierr/=NF_NOERR) then 613 673 write(*,*) NF_STRERROR(ierr) … … 616 676 ! write(*,*)'lecture du ok',du 617 677 618 ierr = nf90_get_var(nid,var3didin(14),hu) 678 #ifdef NC_DOUBLE 679 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(14),hu) 680 #else 681 ierr = NF_GET_VAR_REAL(nid,var3didin(14),hu) 682 #endif 619 683 if(ierr/=NF_NOERR) then 620 684 write(*,*) NF_STRERROR(ierr) … … 623 687 ! write(*,*)'lecture hu ok',hu 624 688 625 ierr = nf90_get_var(nid,var3didin(15),vu) 689 #ifdef NC_DOUBLE 690 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(15),vu) 691 #else 692 ierr = NF_GET_VAR_REAL(nid,var3didin(15),vu) 693 #endif 626 694 if(ierr/=NF_NOERR) then 627 695 write(*,*) NF_STRERROR(ierr) … … 630 698 ! write(*,*)'lecture vu ok',vu 631 699 632 ierr = nf90_get_var(nid,var3didin(16),dv) 700 #ifdef NC_DOUBLE 701 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(16),dv) 702 #else 703 ierr = NF_GET_VAR_REAL(nid,var3didin(16),dv) 704 #endif 633 705 if(ierr/=NF_NOERR) then 634 706 write(*,*) NF_STRERROR(ierr) … … 637 709 ! write(*,*)'lecture dv ok',dv 638 710 639 ierr = nf90_get_var(nid,var3didin(17),hv) 711 #ifdef NC_DOUBLE 712 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(17),hv) 713 #else 714 ierr = NF_GET_VAR_REAL(nid,var3didin(17),hv) 715 #endif 640 716 if(ierr/=NF_NOERR) then 641 717 write(*,*) NF_STRERROR(ierr) … … 644 720 ! write(*,*)'lecture hv ok',hv 645 721 646 ierr = nf90_get_var(nid,var3didin(18),vv) 722 #ifdef NC_DOUBLE 723 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(18),vv) 724 #else 725 ierr = NF_GET_VAR_REAL(nid,var3didin(18),vv) 726 #endif 647 727 if(ierr/=NF_NOERR) then 648 728 write(*,*) NF_STRERROR(ierr) … … 651 731 ! write(*,*)'lecture vv ok',vv 652 732 653 ierr = nf90_get_var(nid,var3didin(19),dt) 733 #ifdef NC_DOUBLE 734 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(19),dt) 735 #else 736 ierr = NF_GET_VAR_REAL(nid,var3didin(19),dt) 737 #endif 654 738 if(ierr/=NF_NOERR) then 655 739 write(*,*) NF_STRERROR(ierr) … … 658 742 ! write(*,*)'lecture dt ok',dt 659 743 660 ierr = nf90_get_var(nid,var3didin(20),ht) 744 #ifdef NC_DOUBLE 745 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(20),ht) 746 #else 747 ierr = NF_GET_VAR_REAL(nid,var3didin(20),ht) 748 #endif 661 749 if(ierr/=NF_NOERR) then 662 750 write(*,*) NF_STRERROR(ierr) … … 665 753 ! write(*,*)'lecture ht ok',ht 666 754 667 ierr = nf90_get_var(nid,var3didin(21),vt) 755 #ifdef NC_DOUBLE 756 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(21),vt) 757 #else 758 ierr = NF_GET_VAR_REAL(nid,var3didin(21),vt) 759 #endif 668 760 if(ierr/=NF_NOERR) then 669 761 write(*,*) NF_STRERROR(ierr) … … 672 764 ! write(*,*)'lecture vt ok',vt 673 765 674 ierr = nf90_get_var(nid,var3didin(22),dq) 766 #ifdef NC_DOUBLE 767 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(22),dq) 768 #else 769 ierr = NF_GET_VAR_REAL(nid,var3didin(22),dq) 770 #endif 675 771 if(ierr/=NF_NOERR) then 676 772 write(*,*) NF_STRERROR(ierr) … … 679 775 ! write(*,*)'lecture dq ok',dq 680 776 681 ierr = nf90_get_var(nid,var3didin(23),hq) 777 #ifdef NC_DOUBLE 778 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(23),hq) 779 #else 780 ierr = NF_GET_VAR_REAL(nid,var3didin(23),hq) 781 #endif 682 782 if(ierr/=NF_NOERR) then 683 783 write(*,*) NF_STRERROR(ierr) … … 686 786 ! write(*,*)'lecture hq ok',hq 687 787 688 ierr = nf90_get_var(nid,var3didin(24),vq) 788 #ifdef NC_DOUBLE 789 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(24),vq) 790 #else 791 ierr = NF_GET_VAR_REAL(nid,var3didin(24),vq) 792 #endif 689 793 if(ierr/=NF_NOERR) then 690 794 write(*,*) NF_STRERROR(ierr) … … 693 797 ! write(*,*)'lecture vq ok',vq 694 798 695 ierr = nf90_get_var(nid,var3didin(25),dth) 799 #ifdef NC_DOUBLE 800 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(25),dth) 801 #else 802 ierr = NF_GET_VAR_REAL(nid,var3didin(25),dth) 803 #endif 696 804 if(ierr/=NF_NOERR) then 697 805 write(*,*) NF_STRERROR(ierr) … … 700 808 ! write(*,*)'lecture dth ok',dth 701 809 702 ierr = nf90_get_var(nid,var3didin(26),hth) 810 #ifdef NC_DOUBLE 811 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(26),hth) 812 #else 813 ierr = NF_GET_VAR_REAL(nid,var3didin(26),hth) 814 #endif 703 815 if(ierr/=NF_NOERR) then 704 816 write(*,*) NF_STRERROR(ierr) … … 707 819 ! write(*,*)'lecture hth ok',hth 708 820 709 ierr = nf90_get_var(nid,var3didin(27),vth) 821 #ifdef NC_DOUBLE 822 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(27),vth) 823 #else 824 ierr = NF_GET_VAR_REAL(nid,var3didin(27),vth) 825 #endif 710 826 if(ierr/=NF_NOERR) then 711 827 write(*,*) NF_STRERROR(ierr) … … 714 830 ! write(*,*)'lecture vth ok',vth 715 831 716 ierr = nf90_get_var(nid,var3didin(28),dr) 832 #ifdef NC_DOUBLE 833 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(28),dr) 834 #else 835 ierr = NF_GET_VAR_REAL(nid,var3didin(28),dr) 836 #endif 717 837 if(ierr/=NF_NOERR) then 718 838 write(*,*) NF_STRERROR(ierr) … … 721 841 ! write(*,*)'lecture dr ok',dr 722 842 723 ierr = nf90_get_var(nid,var3didin(29),hr) 843 #ifdef NC_DOUBLE 844 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(29),hr) 845 #else 846 ierr = NF_GET_VAR_REAL(nid,var3didin(29),hr) 847 #endif 724 848 if(ierr/=NF_NOERR) then 725 849 write(*,*) NF_STRERROR(ierr) … … 728 852 ! write(*,*)'lecture hr ok',hr 729 853 730 ierr = nf90_get_var(nid,var3didin(30),vr) 854 #ifdef NC_DOUBLE 855 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(30),vr) 856 #else 857 ierr = NF_GET_VAR_REAL(nid,var3didin(30),vr) 858 #endif 731 859 if(ierr/=NF_NOERR) then 732 860 write(*,*) NF_STRERROR(ierr) … … 735 863 ! write(*,*)'lecture vr ok',vr 736 864 737 ierr = nf90_get_var(nid,var3didin(31),dtrad) 865 #ifdef NC_DOUBLE 866 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(31),dtrad) 867 #else 868 ierr = NF_GET_VAR_REAL(nid,var3didin(31),dtrad) 869 #endif 738 870 if(ierr/=NF_NOERR) then 739 871 write(*,*) NF_STRERROR(ierr) … … 742 874 ! write(*,*)'lecture dtrad ok',dtrad 743 875 744 ierr = nf90_get_var(nid,var3didin(32),sens) 876 #ifdef NC_DOUBLE 877 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(32),sens) 878 #else 879 ierr = NF_GET_VAR_REAL(nid,var3didin(32),sens) 880 #endif 745 881 if(ierr/=NF_NOERR) then 746 882 write(*,*) NF_STRERROR(ierr) … … 749 885 ! write(*,*)'lecture sens ok',sens 750 886 751 ierr = nf90_get_var(nid,var3didin(33),flat) 887 #ifdef NC_DOUBLE 888 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(33),flat) 889 #else 890 ierr = NF_GET_VAR_REAL(nid,var3didin(33),flat) 891 #endif 752 892 if(ierr/=NF_NOERR) then 753 893 write(*,*) NF_STRERROR(ierr) … … 756 896 ! write(*,*)'lecture flat ok',flat 757 897 758 ierr = nf90_get_var(nid,var3didin(34),ts) 898 #ifdef NC_DOUBLE 899 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(34),ts) 900 #else 901 ierr = NF_GET_VAR_REAL(nid,var3didin(34),ts) 902 #endif 759 903 if(ierr/=NF_NOERR) then 760 904 write(*,*) NF_STRERROR(ierr) … … 763 907 ! write(*,*)'lecture ts ok',ts 764 908 765 ierr = nf90_get_var(nid,var3didin(35),ustar) 909 #ifdef NC_DOUBLE 910 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(35),ustar) 911 #else 912 ierr = NF_GET_VAR_REAL(nid,var3didin(35),ustar) 913 #endif 766 914 if(ierr/=NF_NOERR) then 767 915 write(*,*) NF_STRERROR(ierr) … … 770 918 ! write(*,*)'lecture ustar ok',ustar 771 919 772 ierr = nf90_get_var(nid,var3didin(36),uw) 920 #ifdef NC_DOUBLE 921 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(36),uw) 922 #else 923 ierr = NF_GET_VAR_REAL(nid,var3didin(36),uw) 924 #endif 773 925 if(ierr/=NF_NOERR) then 774 926 write(*,*) NF_STRERROR(ierr) … … 777 929 ! write(*,*)'lecture uw ok',uw 778 930 779 ierr = nf90_get_var(nid,var3didin(37),vw) 931 #ifdef NC_DOUBLE 932 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(37),vw) 933 #else 934 ierr = NF_GET_VAR_REAL(nid,var3didin(37),vw) 935 #endif 780 936 if(ierr/=NF_NOERR) then 781 937 write(*,*) NF_STRERROR(ierr) … … 784 940 ! write(*,*)'lecture vw ok',vw 785 941 786 ierr = nf90_get_var(nid,var3didin(38),q1) 942 #ifdef NC_DOUBLE 943 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(38),q1) 944 #else 945 ierr = NF_GET_VAR_REAL(nid,var3didin(38),q1) 946 #endif 787 947 if(ierr/=NF_NOERR) then 788 948 write(*,*) NF_STRERROR(ierr) … … 791 951 ! write(*,*)'lecture q1 ok',q1 792 952 793 ierr = nf90_get_var(nid,var3didin(39),q2) 953 #ifdef NC_DOUBLE 954 ierr = NF_GET_VAR_DOUBLE(nid,var3didin(39),q2) 955 #else 956 ierr = NF_GET_VAR_REAL(nid,var3didin(39),q2) 957 #endif 794 958 if(ierr/=NF_NOERR) then 795 959 write(*,*) NF_STRERROR(ierr) … … 799 963 800 964 801 return 965 return 802 966 end subroutine read_cas 803 967 !====================================================================== … … 817 981 & ,hq_prof_cas,vq_prof_cas,lat_prof_cas,sens_prof_cas & 818 982 & ,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas) 819 983 820 984 821 985 implicit none … … 826 990 ! day: current julian day (e.g. 717538.2) 827 991 ! day1: first day of the simulation 828 ! nt_cas: total nb of data in the forcing 992 ! nt_cas: total nb of data in the forcing 829 993 ! pdt_cas: total time interval (in sec) between 2 forcing data 830 994 !--------------------------------------------------------------------------------------- … … 917 1081 918 1082 it_cas1=INT(timeit/pdt_cas)+1 919 IF (it_cas1 ==nt_cas) THEN920 it_cas2=it_cas1 1083 IF (it_cas1 .EQ. nt_cas) THEN 1084 it_cas2=it_cas1 921 1085 ELSE 922 1086 it_cas2=it_cas1 + 1 … … 929 1093 print *,'time_cas2=',time_cas2 930 1094 931 if (it_cas1 >nt_cas) then1095 if (it_cas1 .gt. nt_cas) then 932 1096 write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: ' & 933 1097 & ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit … … 936 1100 937 1101 ! time interpolation: 938 IF (it_cas1 ==it_cas2) THEN1102 IF (it_cas1 .EQ. it_cas2) THEN 939 1103 frac=0. 940 1104 ELSE … … 944 1108 945 1109 lat_prof_cas = lat_cas(it_cas2) & 946 & -frac*(lat_cas(it_cas2)-lat_cas(it_cas1)) 1110 & -frac*(lat_cas(it_cas2)-lat_cas(it_cas1)) 947 1111 sens_prof_cas = sens_cas(it_cas2) & 948 1112 & -frac*(sens_cas(it_cas2)-sens_cas(it_cas1)) … … 1009 1173 1010 1174 !********************************************************************************************** 1011 END MODULE mod_1D_cases_read -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read2.F90
r5075 r5084 3 3 ! 4 4 MODULE mod_1D_cases_read2 5 USE lmdz_netcdf, ONLY: nf90_get_var,nf_noerr,nf_inq_varid,nf_inq_dimlen,nf_strerror,nf_open,& 6 nf_nowrite,nf_inq_dimid 5 7 6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 8 7 !Declarations specifiques au cas standard … … 82 81 implicit none 83 82 83 INCLUDE "netcdf.inc" 84 84 85 INTEGER nid,rid,ierr 85 86 INTEGER ii,jj … … 89 90 ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid) 90 91 print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid 91 if (ierr /=NF_NOERR) then92 if (ierr.NE.NF_NOERR) then 92 93 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 93 94 write(*,*) NF_STRERROR(ierr) … … 96 97 !....................................................................... 97 98 ierr=NF_INQ_DIMID(nid,'lat',rid) 98 IF (ierr /=NF_NOERR) THEN99 IF (ierr.NE.NF_NOERR) THEN 99 100 print*, 'Oh probleme lecture dimension lat' 100 101 ENDIF … … 103 104 !....................................................................... 104 105 ierr=NF_INQ_DIMID(nid,'lon',rid) 105 IF (ierr /=NF_NOERR) THEN106 IF (ierr.NE.NF_NOERR) THEN 106 107 print*, 'Oh probleme lecture dimension lon' 107 108 ENDIF … … 110 111 !....................................................................... 111 112 ierr=NF_INQ_DIMID(nid,'lev',rid) 112 IF (ierr /=NF_NOERR) THEN113 IF (ierr.NE.NF_NOERR) THEN 113 114 print*, 'Oh probleme lecture dimension zz' 114 115 ENDIF … … 119 120 print*,'nid,rid',nid,rid 120 121 nt_cas=0 121 IF (ierr /=NF_NOERR) THEN122 IF (ierr.NE.NF_NOERR) THEN 122 123 stop 'probleme lecture dimension sens' 123 124 ENDIF … … 191 192 implicit none 192 193 194 INCLUDE "netcdf.inc" 195 193 196 INTEGER nid,rid,ierr 194 197 INTEGER ii,jj … … 198 201 ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid) 199 202 print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid 200 if (ierr /=NF_NOERR) then203 if (ierr.NE.NF_NOERR) then 201 204 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 202 205 write(*,*) NF_STRERROR(ierr) … … 205 208 !....................................................................... 206 209 ierr=NF_INQ_DIMID(nid,'lat',rid) 207 IF (ierr /=NF_NOERR) THEN210 IF (ierr.NE.NF_NOERR) THEN 208 211 print*, 'Oh probleme lecture dimension lat' 209 212 ENDIF … … 212 215 !....................................................................... 213 216 ierr=NF_INQ_DIMID(nid,'lon',rid) 214 IF (ierr /=NF_NOERR) THEN217 IF (ierr.NE.NF_NOERR) THEN 215 218 print*, 'Oh probleme lecture dimension lon' 216 219 ENDIF … … 219 222 !....................................................................... 220 223 ierr=NF_INQ_DIMID(nid,'nlev',rid) 221 IF (ierr /=NF_NOERR) THEN224 IF (ierr.NE.NF_NOERR) THEN 222 225 print*, 'Oh probleme lecture dimension nlev' 223 226 ENDIF … … 227 230 ierr=NF_INQ_DIMID(nid,'time',rid) 228 231 nt_cas=0 229 IF (ierr /=NF_NOERR) THEN232 IF (ierr.NE.NF_NOERR) THEN 230 233 stop 'Oh probleme lecture dimension time' 231 234 ENDIF … … 314 317 !********************************************************************************************** 315 318 SUBROUTINE old_read_SCM_cas 319 use netcdf, only: nf90_get_var 316 320 implicit none 317 321 322 INCLUDE "netcdf.inc" 318 323 INCLUDE "date_cas.h" 319 324 … … 326 331 ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid) 327 332 print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid 328 if (ierr /=NF_NOERR) then333 if (ierr.NE.NF_NOERR) then 329 334 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 330 335 write(*,*) NF_STRERROR(ierr) … … 333 338 !....................................................................... 334 339 ierr=NF_INQ_DIMID(nid,'lat',rid) 335 IF (ierr /=NF_NOERR) THEN340 IF (ierr.NE.NF_NOERR) THEN 336 341 print*, 'Oh probleme lecture dimension lat' 337 342 ENDIF … … 340 345 !....................................................................... 341 346 ierr=NF_INQ_DIMID(nid,'lon',rid) 342 IF (ierr /=NF_NOERR) THEN347 IF (ierr.NE.NF_NOERR) THEN 343 348 print*, 'Oh probleme lecture dimension lon' 344 349 ENDIF … … 347 352 !....................................................................... 348 353 ierr=NF_INQ_DIMID(nid,'lev',rid) 349 IF (ierr /=NF_NOERR) THEN354 IF (ierr.NE.NF_NOERR) THEN 350 355 print*, 'Oh probleme lecture dimension nlev' 351 356 ENDIF … … 359 364 ierr=NF_INQ_DIMID(nid,'time',rid) 360 365 nt_cas=0 361 IF (ierr /=NF_NOERR) THEN366 IF (ierr.NE.NF_NOERR) THEN 362 367 stop 'Oh probleme lecture dimension time' 363 368 ENDIF … … 528 533 529 534 535 END MODULE mod_1D_cases_read2 530 536 !===================================================================== 531 537 subroutine read_cas2(nid,nlevel,ntime & … … 535 541 536 542 !program reading forcing of the case study 543 use netcdf, only: nf90_get_var 537 544 implicit none 545 INCLUDE "netcdf.inc" 538 546 539 547 integer ntime,nlevel … … 581 589 do i=1,nbvar3d 582 590 print *,'Dans read_cas2, on va lire ',var3didin(i),name_var(i) 583 if(i <=35) then591 if(i.LE.35) then 584 592 ierr = NF90_GET_VAR(nid,var3didin(i),resul, count = [1, 1, nlevel, ntime]) 585 593 print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i) … … 650 658 651 659 !program reading forcing of the case study 660 use netcdf, only: nf90_get_var 652 661 implicit none 662 INCLUDE "netcdf.inc" 653 663 654 664 integer ntime,nlevel … … 701 711 else 702 712 !----------------------------------------------------------------------- 703 if(i <=4) then ! Lecture des coord pression en (nlevelp1,lat,lon)713 if(i.LE.4) then ! Lecture des coord pression en (nlevelp1,lat,lon) 704 714 ierr = NF90_GET_VAR(nid,var3didin(i),apbp, count = [1, 1, nlevel + 1]) 705 715 print *,'read2_cas(apbp), on a lu ',i,name_var(i) … … 709 719 endif 710 720 !----------------------------------------------------------------------- 711 else if(i >4.and.i<=45) then ! Lecture des variables en (time,nlevel,lat,lon)721 else if(i.gt.4.and.i.LE.45) then ! Lecture des variables en (time,nlevel,lat,lon) 712 722 ierr = NF90_GET_VAR(nid,var3didin(i),resul, count = [1, 1, nlevel, ntime]) 713 723 print *,'read2_cas(resul), on a lu ',i,name_var(i) … … 717 727 endif 718 728 !----------------------------------------------------------------------- 719 else if (i >45.and.i<=51) then ! Lecture des variables en (time,lat,lon)729 else if (i.gt.45.and.i.LE.51) then ! Lecture des variables en (time,lat,lon) 720 730 ierr = NF90_GET_VAR(nid,var3didin(i),resul2, count = [1, 1, ntime]) 721 731 print *,'read2_cas(resul2), on a lu ',i,name_var(i) … … 819 829 820 830 !program reading forcing of the case study 831 use netcdf, only: nf90_get_var 821 832 implicit none 833 INCLUDE "netcdf.inc" 822 834 823 835 integer ntime,nlevel,k,t … … 876 888 else 877 889 !----------------------------------------------------------------------- 878 if(i <=4) then ! Lecture des coord pression en (nlevelp1,lat,lon)890 if(i.LE.4) then ! Lecture des coord pression en (nlevelp1,lat,lon) 879 891 ierr = NF90_GET_VAR(nid,var3didin(i),apbp) 880 892 print *,'read2_cas(apbp), on a lu ',i,name_var(i) … … 884 896 endif 885 897 !----------------------------------------------------------------------- 886 else if(i >4.and.i<=12) then ! Lecture des variables en (time,nlevel,lat,lon)898 else if(i.gt.4.and.i.LE.12) then ! Lecture des variables en (time,nlevel,lat,lon) 887 899 ierr = NF90_GET_VAR(nid,var3didin(i),resul1) 888 900 print *,'read2_cas(resul1), on a lu ',i,name_var(i) … … 893 905 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul1),maxval(resul1) 894 906 !----------------------------------------------------------------------- 895 else if(i >12.and.i<=54) then ! Lecture des variables en (time,nlevel,lat,lon)907 else if(i.gt.12.and.i.LE.54) then ! Lecture des variables en (time,nlevel,lat,lon) 896 908 ierr = NF90_GET_VAR(nid,var3didin(i),resul) 897 909 print *,'read2_cas(resul), on a lu ',i,name_var(i) … … 902 914 print*,'Lecture de la variable #i ',i,name_var(i),minval(resul),maxval(resul) 903 915 !----------------------------------------------------------------------- 904 else if (i >54.and.i<=65) then ! Lecture des variables en (time,lat,lon)916 else if (i.gt.54.and.i.LE.65) then ! Lecture des variables en (time,lat,lon) 905 917 ierr = NF90_GET_VAR(nid,var3didin(i),resul2) 906 918 print *,'read2_cas(resul2), on a lu ',i,name_var(i) … … 1136 1148 1137 1149 it_cas1=INT(timeit/pdt_cas)+1 1138 IF (it_cas1 ==nt_cas) THEN1150 IF (it_cas1 .EQ. nt_cas) THEN 1139 1151 it_cas2=it_cas1 1140 1152 ELSE … … 1145 1157 !print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2 1146 1158 1147 if (it_cas1 >nt_cas) then1159 if (it_cas1 .gt. nt_cas) then 1148 1160 write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: ' & 1149 1161 ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit … … 1152 1164 1153 1165 ! time interpolation: 1154 IF (it_cas1 ==it_cas2) THEN1166 IF (it_cas1 .EQ. it_cas2) THEN 1155 1167 frac=0. 1156 1168 ELSE … … 1351 1363 1352 1364 it_cas1=INT(timeit/pdt_cas)+1 1353 IF (it_cas1 ==nt_cas) THEN1365 IF (it_cas1 .EQ. nt_cas) THEN 1354 1366 it_cas2=it_cas1 1355 1367 ELSE … … 1361 1373 !print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2 1362 1374 1363 if (it_cas1 > nt_cas) then1375 if (it_cas1 .gt. nt_cas) then 1364 1376 write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: ' & 1365 1377 ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit … … 1368 1380 1369 1381 ! time interpolation: 1370 IF (it_cas1 ==it_cas2) THEN1382 IF (it_cas1 .EQ. it_cas2) THEN 1371 1383 frac=0. 1372 1384 ELSE … … 1463 1475 !********************************************************************************************** 1464 1476 1465 END MODULE mod_1D_cases_read2 -
LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read_std.F90
r5075 r5084 3 3 ! 4 4 MODULE mod_1D_cases_read_std 5 USE lmdz_netcdf, ONLY:nf_noerr,nf_inq_varid,nf_inq_dimid,nf_inq_dimlen,nf_open,nf_nowrite,&6 nf_strerror,nf90_get_var7 5 8 6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 89 87 !********************************************************************************************** 90 88 SUBROUTINE read_SCM_cas 89 use netcdf, only: nf90_get_var 91 90 implicit none 92 91 92 INCLUDE "netcdf.inc" 93 93 INCLUDE "date_cas.h" 94 94 … … 101 101 ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid) 102 102 print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid 103 if (ierr /=NF_NOERR) then103 if (ierr.NE.NF_NOERR) then 104 104 write(*,*) 'ERROR: GROS Pb opening forcings nc file ' 105 105 write(*,*) NF_STRERROR(ierr) … … 108 108 !....................................................................... 109 109 ierr=NF_INQ_DIMID(nid,'lat',rid) 110 IF (ierr /=NF_NOERR) THEN110 IF (ierr.NE.NF_NOERR) THEN 111 111 print*, 'Oh probleme lecture dimension lat' 112 112 ENDIF … … 115 115 !....................................................................... 116 116 ierr=NF_INQ_DIMID(nid,'lon',rid) 117 IF (ierr /=NF_NOERR) THEN117 IF (ierr.NE.NF_NOERR) THEN 118 118 print*, 'Oh probleme lecture dimension lon' 119 119 ENDIF … … 122 122 !....................................................................... 123 123 ierr=NF_INQ_DIMID(nid,'lev',rid) 124 IF (ierr /=NF_NOERR) THEN124 IF (ierr.NE.NF_NOERR) THEN 125 125 print*, 'Oh probleme lecture dimension nlev' 126 126 ENDIF … … 134 134 ierr=NF_INQ_DIMID(nid,'time',rid) 135 135 nt_cas=0 136 IF (ierr /=NF_NOERR) THEN136 IF (ierr.NE.NF_NOERR) THEN 137 137 stop 'Oh probleme lecture dimension time' 138 138 ENDIF … … 329 329 330 330 !program reading forcing of the case study 331 use netcdf, only: nf90_get_var 331 332 implicit none 333 INCLUDE "netcdf.inc" 332 334 INCLUDE "compar1d.h" 333 335 … … 453 455 ! Reading variables 1D (N+1) vertical variables (nlevelp1,lat,lon) 454 456 !----------------------------------------------------------------------- 455 if(i <=4) then457 if(i.LE.4) then 456 458 ierr = NF90_GET_VAR(nid,var3didin(i),apbp) 457 459 print *,'read_SCM(apbp), on a lu ',i,name_var(i) … … 464 466 ! Reading 1D (N) vertical varialbes (nlevel,lat,lon) 465 467 !----------------------------------------------------------------------- 466 else if(i >4.and.i<=12) then468 else if(i.gt.4.and.i.LE.12) then 467 469 ierr = NF90_GET_VAR(nid,var3didin(i),resul1) 468 470 print *,'read_SCM(resul1), on a lu ',i,name_var(i) … … 477 479 ! TBD : seems to be the same as above. 478 480 !----------------------------------------------------------------------- 479 else if(i >12.and.i<=61) then481 else if(i.gt.12.and.i.LE.61) then 480 482 ierr = NF90_GET_VAR(nid,var3didin(i),resul) 481 483 print *,'read_SCM(resul), on a lu ',i,name_var(i) … … 489 491 ! Reading 1D time variables (time,lat,lon) 490 492 !----------------------------------------------------------------------- 491 else if (i >62.and.i<=75) then493 else if (i.gt.62.and.i.LE.75) then 492 494 ierr = NF90_GET_VAR(nid,var3didin(i),resul2) 493 495 print *,'read_SCM(resul2), on a lu ',i,name_var(i) … … 775 777 776 778 it_cas1=INT(timeit/pdt_cas)+1 777 IF (it_cas1 ==nt_cas) THEN779 IF (it_cas1 .EQ. nt_cas) THEN 778 780 it_cas2=it_cas1 779 781 ELSE … … 785 787 ! print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2 786 788 787 if (it_cas1 > nt_cas) then789 if (it_cas1 .gt. nt_cas) then 788 790 write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: ' & 789 791 ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit … … 792 794 793 795 ! time interpolation: 794 IF (it_cas1 ==it_cas2) THEN796 IF (it_cas1 .EQ. it_cas2) THEN 795 797 frac=0. 796 798 ELSE … … 987 989 do l = 1, llm 988 990 989 if (play(l) >=plev_prof_cas(nlev_cas)) then991 if (play(l).ge.plev_prof_cas(nlev_cas)) then 990 992 991 993 mxcalc=l … … 994 996 k2=0 995 997 996 if (play(l) <=plev_prof_cas(1)) then998 if (play(l).le.plev_prof_cas(1)) then 997 999 998 1000 do k = 1, nlev_cas-1 999 if (play(l) <=plev_prof_cas(k).and. play(l)>plev_prof_cas(k+1)) then1001 if (play(l).le.plev_prof_cas(k).and. play(l).gt.plev_prof_cas(k+1)) then 1000 1002 k1=k 1001 1003 k2=k+1 … … 1003 1005 enddo 1004 1006 1005 if (k1 ==0 .or. k2==0) then1007 if (k1.eq.0 .or. k2.eq.0) then 1006 1008 write(*,*) 'PB! k1, k2 = ',k1,k2 1007 1009 write(*,*) 'l,play(l) = ',l,play(l)/100 … … 1017 1019 t_mod_cas(l)= t_prof_cas(k2) - frac*(t_prof_cas(k2)-t_prof_cas(k1)) 1018 1020 theta_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1)) 1019 if(theta_mod_cas(l) /=0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)1021 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 1020 1022 thv_mod_cas(l)= thv_prof_cas(k2) - frac*(thv_prof_cas(k2)-thv_prof_cas(k1)) 1021 1023 thl_mod_cas(l)= thl_prof_cas(k2) - frac*(thl_prof_cas(k2)-thl_prof_cas(k1)) … … 1066 1068 t_mod_cas(l)= frac1*t_prof_cas(k1) - frac2*t_prof_cas(k2) 1067 1069 theta_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2) 1068 if(theta_mod_cas(l) /=0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)1070 if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD) 1069 1071 thv_mod_cas(l)= frac1*thv_prof_cas(k1) - frac2*thv_prof_cas(k2) 1070 1072 thl_mod_cas(l)= frac1*thl_prof_cas(k1) - frac2*thl_prof_cas(k2) … … 1163 1165 do l = 1, llm+1 1164 1166 1165 if (plev(l) >=plev_prof_cas(nlev_cas)) then1167 if (plev(l).ge.plev_prof_cas(nlev_cas)) then 1166 1168 1167 1169 mxcalc=l … … 1169 1171 k2=0 1170 1172 1171 if (plev(l) <=plev_prof_cas(1)) then1173 if (plev(l).le.plev_prof_cas(1)) then 1172 1174 1173 1175 do k = 1, nlev_cas-1 1174 if (plev(l) <=plev_prof_cas(k).and. plev(l)>plev_prof_cas(k+1)) then1176 if (plev(l).le.plev_prof_cas(k).and. plev(l).gt.plev_prof_cas(k+1)) then 1175 1177 k1=k 1176 1178 k2=k+1 … … 1178 1180 enddo 1179 1181 1180 if (k1 ==0 .or. k2==0) then1182 if (k1.eq.0 .or. k2.eq.0) then 1181 1183 write(*,*) 'PB! k1, k2 = ',k1,k2 1182 1184 write(*,*) 'l,plev(l) = ',l,plev(l)/100 -
LMDZ6/trunk/libf/phylmd/dyn1d/old_1DUTILS_read_interp.h
r5075 r5084 146 146 !program reading forcings of the TWP-ICE experiment 147 147 148 use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,& 149 nf_inq_dimid,nf_inq_dimlen 150 148 use netcdf, only: nf90_get_var 151 149 152 150 implicit none 151 152 INCLUDE "netcdf.inc" 153 153 154 154 integer ntime,nlevel … … 492 492 subroutine catchaxis(nid,ttm,llm,time,lev,ierr) 493 493 494 use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,& 495 nf_inq_dimid,nf_inq_dimlen 494 use netcdf, only: nf90_get_var 496 495 497 496 implicit none 497 INCLUDE "netcdf.inc" 498 498 integer nid,ttm,llm 499 499 real*8 time(ttm) … … 2170 2170 2171 2171 2172 use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,& 2173 nf_inq_dimid,nf_inq_dimlen 2172 use netcdf, only: nf90_get_var 2174 2173 implicit none 2174 2175 INCLUDE "netcdf.inc" 2175 2176 2176 2177 integer ntime,nlevel … … 2380 2381 !program reading initial profils and forcings of the Dice case study 2381 2382 2382 use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,& 2383 nf_inq_dimid,nf_inq_dimlen 2383 use netcdf, only: nf90_get_var 2384 2384 2385 2385 implicit none 2386 2386 2387 INCLUDE "netcdf.inc" 2387 2388 INCLUDE "YOMCST.h" 2388 2389 … … 2714 2715 !program reading initial profils and forcings of the Gabls4 case study 2715 2716 2716 use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,& 2717 nf_inq_dimid,nf_inq_dimlen 2717 use netcdf, only: nf90_get_var 2718 2718 2719 2719 implicit none 2720 2721 INCLUDE "netcdf.inc" 2720 2722 2721 2723 integer ntime,nlevel,nsol -
LMDZ6/trunk/libf/phylmd/dyn1d/old_1D_decl_cases.h
r5075 r5084 1 INCLUDE "netcdf.inc" 1 2 2 3 ! Declarations specifiques au cas Toga -
LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90
r5075 r5084 44 44 USE temps_mod, ONLY: annee_ref, calend, day_end, day_ini, day_ref, & 45 45 itau_dyn, itau_phy, start_time, year_len 46 USE phys_cal_mod, ONLY : year_len_phys_cal_mod => year_len 47 USE mod_1D_cases_read, ONLY: interp_case_time ! used in included old_1D_read_forc_cases.h 48 46 USE phys_cal_mod, ONLY : year_len_phys_cal_mod => year_len 49 47 50 48 implicit none … … 368 366 if (forcing_type <=0) THEN 369 367 forcing_les = .true. 370 elseif (forcing_type ==1) THEN368 elseif (forcing_type .eq.1) THEN 371 369 forcing_radconv = .true. 372 elseif (forcing_type ==2) THEN370 elseif (forcing_type .eq.2) THEN 373 371 forcing_toga = .true. 374 elseif (forcing_type ==3) THEN372 elseif (forcing_type .eq.3) THEN 375 373 forcing_GCM2SCM = .true. 376 elseif (forcing_type ==4) THEN374 elseif (forcing_type .eq.4) THEN 377 375 forcing_twpice = .true. 378 elseif (forcing_type ==5) THEN376 elseif (forcing_type .eq.5) THEN 379 377 forcing_rico = .true. 380 elseif (forcing_type ==6) THEN378 elseif (forcing_type .eq.6) THEN 381 379 forcing_amma = .true. 382 elseif (forcing_type ==7) THEN380 elseif (forcing_type .eq.7) THEN 383 381 forcing_dice = .true. 384 elseif (forcing_type ==8) THEN382 elseif (forcing_type .eq.8) THEN 385 383 forcing_gabls4 = .true. 386 elseif (forcing_type ==101) THEN ! Cindynamo starts 1-10-2011 0h384 elseif (forcing_type .eq.101) THEN ! Cindynamo starts 1-10-2011 0h 387 385 forcing_case = .true. 388 386 year_ini_cas=2011 … … 391 389 heure_ini_cas=0. 392 390 pdt_cas=3*3600. ! forcing frequency 393 elseif (forcing_type ==102) THEN ! Bomex starts 24-6-1969 0h391 elseif (forcing_type .eq.102) THEN ! Bomex starts 24-6-1969 0h 394 392 forcing_case = .true. 395 393 year_ini_cas=1969 … … 398 396 heure_ini_cas=0. 399 397 pdt_cas=1800. ! forcing frequency 400 elseif (forcing_type ==103) THEN ! Arm_cu starts 21-6-1997 11h30398 elseif (forcing_type .eq.103) THEN ! Arm_cu starts 21-6-1997 11h30 401 399 forcing_case2 = .true. 402 400 year_ini_cas=1997 … … 405 403 heure_ini_cas=11.5 406 404 pdt_cas=1800. ! forcing frequency 407 elseif (forcing_type ==104) THEN ! rico starts 16-12-2004 0h405 elseif (forcing_type .eq.104) THEN ! rico starts 16-12-2004 0h 408 406 forcing_case2 = .true. 409 407 year_ini_cas=2004 … … 412 410 heure_ini_cas=0. 413 411 pdt_cas=1800. ! forcing frequency 414 elseif (forcing_type ==105) THEN ! bomex starts 16-12-2004 0h412 elseif (forcing_type .eq.105) THEN ! bomex starts 16-12-2004 0h 415 413 forcing_case2 = .true. 416 414 year_ini_cas=1969 … … 419 417 heure_ini_cas=0. 420 418 pdt_cas=1800. ! forcing frequency 421 elseif (forcing_type ==106) THEN ! ayotte_24SC starts 6-11-1992 0h419 elseif (forcing_type .eq.106) THEN ! ayotte_24SC starts 6-11-1992 0h 422 420 forcing_case2 = .true. 423 421 year_ini_cas=1992 … … 426 424 heure_ini_cas=10. 427 425 pdt_cas=86400. ! forcing frequency 428 elseif (forcing_type ==113) THEN ! Arm_cu starts 21-6-1997 11h30426 elseif (forcing_type .eq.113) THEN ! Arm_cu starts 21-6-1997 11h30 429 427 forcing_SCM = .true. 430 428 year_ini_cas=1997 … … 434 432 mth_ini_cas=1 ! pour le moment on compte depuis le debut de l'annee 435 433 call getin('time_ini',heure_ini_cas) 436 elseif (forcing_type ==40) THEN434 elseif (forcing_type .eq.40) THEN 437 435 forcing_GCSSold = .true. 438 elseif (forcing_type ==50) THEN436 elseif (forcing_type .eq.50) THEN 439 437 forcing_fire = .true. 440 elseif (forcing_type ==59) THEN438 elseif (forcing_type .eq.59) THEN 441 439 forcing_sandu = .true. 442 elseif (forcing_type ==60) THEN440 elseif (forcing_type .eq.60) THEN 443 441 forcing_astex = .true. 444 elseif (forcing_type ==61) THEN442 elseif (forcing_type .eq.61) THEN 445 443 forcing_armcu = .true. 446 IF(llm /=19.AND.llm/=40) stop 'Erreur nombre de niveaux !!'444 IF(llm.NE.19.AND.llm.NE.40) stop 'Erreur nombre de niveaux !!' 447 445 else 448 446 write (*,*) 'ERROR : unknown forcing_type ', forcing_type … … 463 461 jcode = iflag_nudge 464 462 do i = 1,nudge_max 465 nudge(i) = mod(jcode,10) >=1463 nudge(i) = mod(jcode,10) .ge. 1 466 464 jcode = jcode/10 467 465 enddo … … 530 528 531 529 ! Special case for arm_cu which lasts less than one day : 53100s !! (MPL 20111026) 532 IF(forcing_type ==61) fnday=53100./86400.533 IF(forcing_type ==103) fnday=53100./86400.530 IF(forcing_type .EQ. 61) fnday=53100./86400. 531 IF(forcing_type .EQ. 103) fnday=53100./86400. 534 532 ! Special case for amma which lasts less than one day : 64800s !! (MPL 20120216) 535 IF(forcing_type ==6) fnday=64800./86400.533 IF(forcing_type .EQ. 6) fnday=64800./86400. 536 534 ! IF(forcing_type .EQ. 6) fnday=50400./86400. 537 IF(forcing_type == 8 ) fnday=129600./86400.535 IF(forcing_type .EQ. 8 ) fnday=129600./86400. 538 536 annee_ref = anneeref 539 537 mois = 1 … … 546 544 day_end = day_ini + int(fnday) 547 545 548 IF (forcing_type ==2) THEN546 IF (forcing_type .eq.2) THEN 549 547 ! Convert the initial date of Toga-Coare to Julian day 550 548 call ymds2ju & 551 549 & (year_ini_toga,mth_ini_toga,day_ini_toga,heure,day_ju_ini_toga) 552 550 553 ELSEIF (forcing_type ==4) THEN551 ELSEIF (forcing_type .eq.4) THEN 554 552 ! Convert the initial date of TWPICE to Julian day 555 553 call ymds2ju & 556 554 & (year_ini_twpi,mth_ini_twpi,day_ini_twpi,heure_ini_twpi & 557 555 & ,day_ju_ini_twpi) 558 ELSEIF (forcing_type ==6) THEN556 ELSEIF (forcing_type .eq.6) THEN 559 557 ! Convert the initial date of AMMA to Julian day 560 558 call ymds2ju & 561 559 & (year_ini_amma,mth_ini_amma,day_ini_amma,heure_ini_amma & 562 560 & ,day_ju_ini_amma) 563 ELSEIF (forcing_type ==7) THEN561 ELSEIF (forcing_type .eq.7) THEN 564 562 ! Convert the initial date of DICE to Julian day 565 563 call ymds2ju & 566 564 & (year_ini_dice,mth_ini_dice,day_ini_dice,heure_ini_dice & 567 565 & ,day_ju_ini_dice) 568 ELSEIF (forcing_type ==8 ) THEN566 ELSEIF (forcing_type .eq.8 ) THEN 569 567 ! Convert the initial date of GABLS4 to Julian day 570 568 call ymds2ju & 571 569 & (year_ini_gabls4,mth_ini_gabls4,day_ini_gabls4,heure_ini_gabls4 & 572 570 & ,day_ju_ini_gabls4) 573 ELSEIF (forcing_type >100) THEN571 ELSEIF (forcing_type .gt.100) THEN 574 572 ! Convert the initial date to Julian day 575 573 day_ini_cas=day_deb … … 579 577 & ,day_ju_ini_cas) 580 578 print*,'time case 2',day_ini_cas,day_ju_ini_cas 581 ELSEIF (forcing_type ==59) THEN579 ELSEIF (forcing_type .eq.59) THEN 582 580 ! Convert the initial date of Sandu case to Julian day 583 581 call ymds2ju & … … 585 583 & time_ini*3600.,day_ju_ini_sandu) 586 584 587 ELSEIF (forcing_type ==60) THEN585 ELSEIF (forcing_type .eq.60) THEN 588 586 ! Convert the initial date of Astex case to Julian day 589 587 call ymds2ju & … … 591 589 & time_ini*3600.,day_ju_ini_astex) 592 590 593 ELSEIF (forcing_type ==61) THEN591 ELSEIF (forcing_type .eq.61) THEN 594 592 ! Convert the initial date of Arm_cu case to Julian day 595 593 call ymds2ju & … … 598 596 ENDIF 599 597 600 IF (forcing_type >100) THEN598 IF (forcing_type .gt.100) THEN 601 599 daytime = day + heure_ini_cas/24. ! 1st day and initial time of the simulation 602 600 ELSE … … 640 638 call phys_state_var_init(read_climoz) 641 639 642 if (ngrid /=klon) then640 if (ngrid.ne.klon) then 643 641 print*,'stop in inifis' 644 642 print*,'Probleme de dimensions :' … … 704 702 zlay=-rd*300.*log(play/psurf)/rg ! moved after reading profiles 705 703 706 IF (forcing_type ==59) THEN704 IF (forcing_type .eq. 59) THEN 707 705 ! pour forcing_sandu, on cherche l'indice le plus proche de 700hpa#3000m 708 706 write(*,*) '***********************' 709 707 do l = 1, llm 710 708 write(*,*) 'l,play(l),presnivs(l): ',l,play(l),presnivs(l) 711 if (trouve_700 .and. play(l) <=70000) then709 if (trouve_700 .and. play(l).le.70000) then 712 710 llm700=l 713 711 print *,'llm700,play=',llm700,play(l)/100. … … 828 826 print*,'avant phyredem' 829 827 pctsrf(1,:)=0. 830 if (nat_surf ==0.) then828 if (nat_surf.eq.0.) then 831 829 pctsrf(1,is_oce)=1. 832 830 pctsrf(1,is_ter)=0. 833 831 pctsrf(1,is_lic)=0. 834 832 pctsrf(1,is_sic)=0. 835 else if (nat_surf == 1) then833 else if (nat_surf .eq. 1) then 836 834 pctsrf(1,is_oce)=0. 837 835 pctsrf(1,is_ter)=1. 838 836 pctsrf(1,is_lic)=0. 839 837 pctsrf(1,is_sic)=0. 840 else if (nat_surf == 2) then838 else if (nat_surf .eq. 2) then 841 839 pctsrf(1,is_oce)=0. 842 840 pctsrf(1,is_ter)=0. 843 841 pctsrf(1,is_lic)=1. 844 842 pctsrf(1,is_sic)=0. 845 else if (nat_surf == 3) then843 else if (nat_surf .eq. 3) then 846 844 pctsrf(1,is_oce)=0. 847 845 pctsrf(1,is_ter)=0. … … 872 870 pbl_tke(:,2,:)=1.e-2 873 871 PRINT *, ' pbl_tke dans lmdz1d ' 874 if (prt_level >= 5) then872 if (prt_level .ge. 5) then 875 873 DO nsrf = 1,4 876 874 PRINT *,'pbl_tke(1,:,',nsrf,') ',pbl_tke(1,:,nsrf) … … 1023 1021 endif 1024 1022 !Al1 ================ end restart ================================= 1025 IF (ecrit_slab_oc ==1) then1023 IF (ecrit_slab_oc.eq.1) then 1026 1024 open(97,file='div_slab.dat',STATUS='UNKNOWN') 1027 elseif (ecrit_slab_oc ==0) then1025 elseif (ecrit_slab_oc.eq.0) then 1028 1026 open(97,file='div_slab.dat',STATUS='OLD') 1029 1027 endif … … 1048 1046 it_end = nint(fnday*day_step) 1049 1047 !test JLD it_end = 10 1050 do while(it <=it_end)1051 1052 if (prt_level >=1) then1048 do while(it.le.it_end) 1049 1050 if (prt_level.ge.1) then 1053 1051 print*,'XXXXXXXXXXXXXXXXXXX ITAP,day,time=', & 1054 1052 & it,day,time,it_end,day_step … … 1056 1054 endif 1057 1055 !Al1 demande de restartphy.nc 1058 if (it ==it_end) lastcall=.True.1056 if (it.eq.it_end) lastcall=.True. 1059 1057 1060 1058 !--------------------------------------------------------------------- … … 1151 1149 1152 1150 if (forcing_toga .or. forcing_GCSSold .or. forcing_twpice & 1153 & .or.forcing_amma .or. forcing_type ==101) then1151 & .or.forcing_amma .or. forcing_type.eq.101) then 1154 1152 fcoriolis=0.0 ; ug=0. ; vg=0. 1155 1153 endif … … 1166 1164 !on calcule dt_cooling 1167 1165 do l=1,llm 1168 if (play(l) >=20000.) then1166 if (play(l).ge.20000.) then 1169 1167 dt_cooling(l)=-1.5/86400. 1170 elseif ((play(l) >=10000.).and.((play(l)<20000.))) then1168 elseif ((play(l).ge.10000.).and.((play(l).lt.20000.))) then 1171 1169 dt_cooling(l)=-1.5/86400.*(play(l)-10000.)/(10000.)-1./86400.*(20000.-play(l))/10000.*(temp(l)-200.) 1172 1170 else … … 1275 1273 & +d_q_nudge(1:mxcalc,:) ) 1276 1274 1277 if (prt_level >=3) then1275 if (prt_level.ge.3) then 1278 1276 print *, & 1279 1277 & 'physiq-> temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1) ', & … … 1353 1351 1354 1352 !Al1 1355 if (ecrit_slab_oc /=-1) close(97)1353 if (ecrit_slab_oc.ne.-1) close(97) 1356 1354 1357 1355 !Al1 Call to 1D equivalent of dynredem (an,mois,jour,heure ?)
Note: See TracChangeset
for help on using the changeset viewer.