- Timestamp:
- Jun 17, 2022, 4:24:49 PM (2 years ago)
- Location:
- LMDZ6/branches/LMDZ-ECRAD
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ-ECRAD
- Property svn:mergeinfo changed
-
LMDZ6/branches/LMDZ-ECRAD/libf/phylmd/phys_output_mod.F90
r3792 r4171 35 35 USE iophy 36 36 USE dimphy 37 USE infotrac_phy, ONLY: nqtot, nqo, niadv, tname, ttext, type_trac 37 USE infotrac_phy, ONLY: nqtot, tracers, niso 38 USE strings_mod, ONLY: maxlen 38 39 USE ioipsl 39 40 USE phys_cal_mod, only : hour, calend … … 53 54 IMPLICIT NONE 54 55 include "clesphys.h" 55 include "thermcell.h"56 56 include "YOMCST.h" 57 57 … … 95 95 CHARACTER(LEN=4), DIMENSION(nlevSTD) :: clevSTD 96 96 REAL, DIMENSION(nlevSTD) :: rlevSTD 97 INTEGER :: nsrf, k, iq, i iq, iff, i, j, ilev97 INTEGER :: nsrf, k, iq, iff, i, j, ilev, itr, ixt, iiso, izone 98 98 INTEGER :: naero 99 99 LOGICAL :: ok_veget … … 114 114 LOGICAL, DIMENSION(nfiles) :: phys_out_filestations 115 115 116 CHARACTER(LEN=maxlen) :: tnam, lnam, dn 117 INTEGER :: flag(nfiles) 118 116 119 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 117 120 ! entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax] 118 119 LOGICAL, DIMENSION(nfiles), SAVE :: phys_out_regfkey = (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 120 .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 121 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmin = (/ -180., -180., -180., -180., -180., & 122 -180., -180., -180., -180., -180. /) 123 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmax = (/ 180., 180., 180., 180., 180., & 124 180., 180., 180., 180., 180. /) 125 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmin = (/ -90., -90., -90., -90., -90., & 126 -90., -90., -90., -90., -90. /) 127 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmax = (/ 90., 90., 90., 90., 90., & 128 90., 90., 90., 90., 90. /) 121 LOGICAL, DIMENSION(nfiles), SAVE :: & 122 phys_out_regfkey = [.FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE.] 123 REAL, DIMENSION(nfiles), SAVE :: & 124 phys_out_lonmin = [ -180., -180., -180., -180., -180., -180., -180., -180., -180., -180.], & 125 phys_out_lonmax = [ 180., 180., 180., 180., 180., 180., 180., 180., 180., 180.], & 126 phys_out_latmin = [ -90., -90., -90., -90., -90., -90., -90., -90., -90., -90.], & 127 phys_out_latmax = [ 90., 90., 90., 90., 90., 90., 90., 90., 90., 90.] 129 128 REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds 130 129 REAL, DIMENSION(klev+1) :: lev_index … … 163 162 ALLOCATE(o_dtr_dry(nqtot),o_dtr_vdf(nqtot)) 164 163 165 levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev /)164 levmax = [klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev] 166 165 167 166 phys_out_filenames(1) = 'histmth' … … 360 359 CALL wxios_add_vaxis("bnds", 2, (/1.,2./)) 361 360 362 361 CALL wxios_add_vaxis("Alt", & 363 362 levmax(iff) - levmin(iff) + 1, pseudoalt) 364 363 365 IF (NSW.EQ.6) THEN 366 ! 367 !wl1_sun: minimum bound of wavelength (in um) 368 ! 369 wl1_sun(1)=0.180 370 wl1_sun(2)=0.250 371 wl1_sun(3)=0.440 372 wl1_sun(4)=0.690 373 wl1_sun(5)=1.190 374 wl1_sun(6)=2.380 375 ! 376 !wl2_sun: maximum bound of wavelength (in um) 377 ! 378 wl2_sun(1)=0.250 379 wl2_sun(2)=0.440 380 wl2_sun(3)=0.690 381 wl2_sun(4)=1.190 382 wl2_sun(5)=2.380 383 wl2_sun(6)=4.000 384 ! 385 ELSE IF(NSW.EQ.2) THEN 386 ! 387 !wl1_sun: minimum bound of wavelength (in um) 388 ! 389 wl1_sun(1)=0.250 390 wl1_sun(2)=0.690 391 ! 392 !wl2_sun: maximum bound of wavelength (in um) 393 ! 394 wl2_sun(1)=0.690 395 wl2_sun(2)=4.000 396 ENDIF 364 ! wl1_sun/wl2_sun: minimum/maximum bound of wavelength (in um) 365 SELECT CASE(NSW) 366 CASE(6) 367 wl1_sun(1:6) = [0.180, 0.250, 0.440, 0.690, 1.190, 2.380] 368 wl2_sun(1:6) = [0.250, 0.440, 0.690, 1.190, 2.380, 4.000] 369 CASE(2) 370 wl1_sun(1:2) = [0.250, 0.690] 371 wl2_sun(1:2) = [0.690, 4.000] 372 END SELECT 397 373 398 374 DO ISW=1, NSW … … 492 468 ENDIF ! clef_files 493 469 494 IF (nqtot>=nqo+1) THEN 495 ! 496 DO iq=nqo+1,nqtot 497 iiq=niadv(iq) 498 o_trac(iq-nqo) = ctrl_out((/ 1, 5, 5, 5, 10, 10, 11, 11, 11, 11 /), & 499 tname(iiq),'Tracer '//ttext(iiq), "-", & 500 (/ '', '', '', '', '', '', '', '', '', '' /)) 501 o_dtr_vdf(iq-nqo) = ctrl_out((/ 4, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 502 'd'//trim(tname(iq))//'_vdf', & 503 'Tendance tracer '//ttext(iiq), "-" , & 504 (/ '', '', '', '', '', '', '', '', '', '' /)) 505 506 o_dtr_the(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 507 'd'//trim(tname(iq))//'_the', & 508 'Tendance tracer '//ttext(iiq), "-", & 509 (/ '', '', '', '', '', '', '', '', '', '' /)) 510 511 o_dtr_con(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 512 'd'//trim(tname(iq))//'_con', & 513 'Tendance tracer '//ttext(iiq), "-", & 514 (/ '', '', '', '', '', '', '', '', '', '' /)) 515 516 o_dtr_lessi_impa(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 517 'd'//trim(tname(iq))//'_lessi_impa', & 518 'Tendance tracer '//ttext(iiq), "-", & 519 (/ '', '', '', '', '', '', '', '', '', '' /)) 520 521 o_dtr_lessi_nucl(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 522 'd'//trim(tname(iq))//'_lessi_nucl', & 523 'Tendance tracer '//ttext(iiq), "-", & 524 (/ '', '', '', '', '', '', '', '', '', '' /)) 525 526 o_dtr_insc(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 527 'd'//trim(tname(iq))//'_insc', & 528 'Tendance tracer '//ttext(iiq), "-", & 529 (/ '', '', '', '', '', '', '', '', '', '' /)) 530 531 o_dtr_bcscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 532 'd'//trim(tname(iq))//'_bcscav', & 533 'Tendance tracer '//ttext(iiq), "-", & 534 (/ '', '', '', '', '', '', '', '', '', '' /)) 535 536 o_dtr_evapls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 537 'd'//trim(tname(iq))//'_evapls', & 538 'Tendance tracer '//ttext(iiq), "-", & 539 (/ '', '', '', '', '', '', '', '', '', '' /)) 540 541 o_dtr_ls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 542 'd'//trim(tname(iq))//'_ls', & 543 'Tendance tracer '//ttext(iiq), "-", & 544 (/ '', '', '', '', '', '', '', '', '', '' /)) 545 546 o_dtr_trsp(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 547 'd'//trim(tname(iq))//'_trsp', & 548 'Tendance tracer '//ttext(iiq), "-", & 549 (/ '', '', '', '', '', '', '', '', '', '' /)) 550 551 o_dtr_sscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 552 'd'//trim(tname(iq))//'_sscav', & 553 'Tendance tracer '//ttext(iiq), "-", & 554 (/ '', '', '', '', '', '', '', '', '', '' /)) 555 556 o_dtr_sat(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 557 'd'//trim(tname(iq))//'_sat', & 558 'Tendance tracer '//ttext(iiq), "-", & 559 (/ '', '', '', '', '', '', '', '', '', '' /)) 560 561 o_dtr_uscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 562 'd'//trim(tname(iq))//'_uscav', & 563 'Tendance tracer '//ttext(iiq), "-", & 564 (/ '', '', '', '', '', '', '', '', '', '' /)) 565 566 o_dtr_dry(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), & 567 'cum'//'d'//trim(tname(iq))//'_dry', & 568 'tracer tendency dry deposition'//ttext(iiq), "-", & 569 (/ '', '', '', '', '', '', '', '', '', '' /)) 570 571 o_trac_cum(iq-nqo) = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11 /), & 572 'cum'//tname(iiq),& 573 'Cumulated tracer '//ttext(iiq), "-", & 574 (/ '', '', '', '', '', '', '', '', '', '' /)) 575 ENDDO 576 ENDIF 470 itr = 0 471 DO iq = 1, nqtot 472 IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE 473 itr = itr + 1 474 dn = 'd'//TRIM(tracers(iq)%name)//'_' 475 476 flag = [1, 5, 5, 5, 10, 10, 11, 11, 11, 11] 477 lnam = 'Tracer '//TRIM(tracers(iq)%longName) 478 tnam = TRIM(tracers(iq)%name); o_trac (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 479 480 flag = [4, 7, 7, 7, 10, 10, 11, 11, 11, 11] 481 lnam = 'Tendance tracer '//TRIM(tracers(iq)%longName) 482 tnam = TRIM(dn)//'vdf'; o_dtr_vdf (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 483 484 flag = [5, 7, 7, 7, 10, 10, 11, 11, 11, 11] 485 tnam = TRIM(dn)//'the'; o_dtr_the (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 486 tnam = TRIM(dn)//'con'; o_dtr_con (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 487 488 flag = [7, 7, 7, 7, 10, 10, 11, 11, 11, 11] 489 tnam = TRIM(dn)//'lessi_impa'; o_dtr_lessi_impa(itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 490 tnam = TRIM(dn)//'lessi_nucl'; o_dtr_lessi_nucl(itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 491 tnam = TRIM(dn)//'insc'; o_dtr_insc (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 492 tnam = TRIM(dn)//'bcscav'; o_dtr_bcscav (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 493 tnam = TRIM(dn)//'evapls'; o_dtr_evapls (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 494 tnam = TRIM(dn)//'ls'; o_dtr_ls (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 495 tnam = TRIM(dn)//'trsp'; o_dtr_trsp (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 496 tnam = TRIM(dn)//'sscav'; o_dtr_sscav (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 497 tnam = TRIM(dn)//'sat'; o_dtr_sat (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 498 tnam = TRIM(dn)//'uscav'; o_dtr_uscav (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 499 500 lnam = 'tracer tendency dry deposition'//TRIM(tracers(iq)%longName) 501 tnam = 'cum'//TRIM(dn)//'dry'; o_dtr_dry (itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 502 503 flag = [1, 4, 10, 10, 10, 10, 11, 11, 11, 11] 504 lnam = 'Cumulated tracer '//TRIM(tracers(iq)%longName) 505 tnam = 'cum'//TRIM(tracers(iq)%name); o_trac_cum(itr) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 506 ENDDO 577 507 578 508 ENDDO ! iff … … 594 524 WRITE(lunout,*)'phys_output_open: ends here' 595 525 ENDIF 526 527 ! DO iq=1,nqtot 528 ! IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE 529 ! WRITE(*,'(a,i1,a,10i3)')'trac(',iq,')%flag = ',o_trac(iq)%flag 530 ! WRITE(*,'(a,i1,a)')'trac(',iq,')%name = '//TRIM(o_trac(iq)%name) 531 ! WRITE(*,'(a,i1,a)')'trac(',iq,')%description = '//TRIM(o_trac(iq)%description) 532 ! END DO 596 533 597 534 END SUBROUTINE phys_output_open
Note: See TracChangeset
for help on using the changeset viewer.