Changeset 4056 for LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
- Timestamp:
- Jan 12, 2022, 10:54:09 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
r4046 r4056 35 35 USE iophy 36 36 USE dimphy 37 USE infotrac_phy, ONLY: nqtot, nqo, niadv, tracers, type_trac 38 USE strings_mod, ONLY: maxlen 37 USE infotrac_phy, ONLY: nqtot, tracers, type_trac, niso, ntraciso, maxlen 39 38 USE ioipsl 40 39 USE phys_cal_mod, only : hour, calend … … 96 95 CHARACTER(LEN=4), DIMENSION(nlevSTD) :: clevSTD 97 96 REAL, DIMENSION(nlevSTD) :: rlevSTD 98 INTEGER :: nsrf, k, iq, i iq, iff, i, j, ilev, jq97 INTEGER :: nsrf, k, iq, iff, i, j, ilev, itr, ixt, iiso, izone 99 98 INTEGER :: naero 100 99 LOGICAL :: ok_veget … … 115 114 LOGICAL, DIMENSION(nfiles) :: phys_out_filestations 116 115 117 CHARACTER(LEN=50) :: outiso118 CHARACTER(LEN=20) :: unit119 116 CHARACTER(LEN=maxlen) :: tnam, lnam, dn 120 117 INTEGER :: flag(nfiles) … … 122 119 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 123 120 ! entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax] 124 125 LOGICAL, DIMENSION(nfiles), SAVE :: phys_out_regfkey = (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 126 .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 127 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmin = (/ -180., -180., -180., -180., -180., & 128 -180., -180., -180., -180., -180. /) 129 REAL, DIMENSION(nfiles), SAVE :: phys_out_lonmax = (/ 180., 180., 180., 180., 180., & 130 180., 180., 180., 180., 180. /) 131 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmin = (/ -90., -90., -90., -90., -90., & 132 -90., -90., -90., -90., -90. /) 133 REAL, DIMENSION(nfiles), SAVE :: phys_out_latmax = (/ 90., 90., 90., 90., 90., & 134 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.] 135 128 REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds 136 129 REAL, DIMENSION(klev+1) :: lev_index … … 169 162 ALLOCATE(o_dtr_dry(nqtot),o_dtr_vdf(nqtot)) 170 163 171 levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev /)164 levmax = [klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev] 172 165 173 166 phys_out_filenames(1) = 'histmth' … … 366 359 CALL wxios_add_vaxis("bnds", 2, (/1.,2./)) 367 360 368 361 CALL wxios_add_vaxis("Alt", & 369 362 levmax(iff) - levmin(iff) + 1, pseudoalt) 370 363 371 IF (NSW.EQ.6) THEN 372 ! 373 !wl1_sun: minimum bound of wavelength (in um) 374 ! 375 wl1_sun(1)=0.180 376 wl1_sun(2)=0.250 377 wl1_sun(3)=0.440 378 wl1_sun(4)=0.690 379 wl1_sun(5)=1.190 380 wl1_sun(6)=2.380 381 ! 382 !wl2_sun: maximum bound of wavelength (in um) 383 ! 384 wl2_sun(1)=0.250 385 wl2_sun(2)=0.440 386 wl2_sun(3)=0.690 387 wl2_sun(4)=1.190 388 wl2_sun(5)=2.380 389 wl2_sun(6)=4.000 390 ! 391 ELSE IF(NSW.EQ.2) THEN 392 ! 393 !wl1_sun: minimum bound of wavelength (in um) 394 ! 395 wl1_sun(1)=0.250 396 wl1_sun(2)=0.690 397 ! 398 !wl2_sun: maximum bound of wavelength (in um) 399 ! 400 wl2_sun(1)=0.690 401 wl2_sun(2)=4.000 402 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 403 373 404 374 DO ISW=1, NSW … … 498 468 ENDIF ! clef_files 499 469 500 IF (nqtot>=nqo+1) THEN501 ! 502 DO iq=nqo+1,nqtot503 i iq=niadv(iq); jq = iq-nqo504 dn = 'd'//TRIM(tracers(i iq)%name)//'_'470 itr = 0 471 DO iq = 1, nqtot 472 IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE 473 itr = itr + 1 474 dn = 'd'//TRIM(tracers(iq)%name)//'_' 505 475 506 476 flag = [1, 5, 5, 5, 10, 10, 11, 11, 11, 11] 507 lnam = 'Tracer '//TRIM(tracers(iiq)%longName) 508 tnam = TRIM(tracers(iiq)%name); o_trac (jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)]) 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 509 480 flag = [4, 7, 7, 7, 10, 10, 11, 11, 11, 11] 510 lnam = 'Tendance tracer '//TRIM(tracers(i iq)%longName)511 tnam = TRIM(dn)//'vdf'; o_dtr_vdf ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])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)]) 512 483 513 484 flag = [5, 7, 7, 7, 10, 10, 11, 11, 11, 11] 514 tnam = TRIM(dn)//'the'; o_dtr_the ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])515 tnam = TRIM(dn)//'con'; o_dtr_con ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])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)]) 516 487 517 488 flag = [7, 7, 7, 7, 10, 10, 11, 11, 11, 11] 518 tnam = TRIM(dn)//'lessi_impa'; o_dtr_lessi_impa( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])519 tnam = TRIM(dn)//'lessi_nucl'; o_dtr_lessi_nucl( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])520 tnam = TRIM(dn)//'insc'; o_dtr_insc ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])521 tnam = TRIM(dn)//'bcscav'; o_dtr_bcscav ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])522 tnam = TRIM(dn)//'evapls'; o_dtr_evapls ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])523 tnam = TRIM(dn)//'ls'; o_dtr_ls ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])524 tnam = TRIM(dn)//'trsp'; o_dtr_trsp ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])525 tnam = TRIM(dn)//'sscav'; o_dtr_sscav ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])526 tnam = TRIM(dn)//'sat'; o_dtr_sat ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])527 tnam = TRIM(dn)//'uscav'; o_dtr_uscav ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])528 529 lnam = 'tracer tendency dry deposition'//TRIM(tracers(i iq)%longName)530 tnam = 'cum'//TRIM(dn)//'dry'; o_dtr_dry ( jq) = ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])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)]) 531 502 532 503 flag = [1, 4, 10, 10, 10, 10, 11, 11, 11, 11] 533 lnam = 'Cumulated tracer '//TRIM(tracers(i iq)%longName)534 tnam = 'cum'//TRIM(tracers(i iq)%name); o_trac_cum(jq)= ctrl_out(flag, tnam, lnam, "-", [('',i=1,nfiles)])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)]) 535 506 ENDDO 536 ENDIF537 507 538 508 ENDDO ! iff … … 555 525 ENDIF 556 526 557 ! DO iq=nqo+1,nqtot 558 ! iiq=niadv(iq) 559 ! dn = 'd'//TRIM(tracers(iiq)%name)//'_' 560 ! WRITE(*,'(a,i1,a,10i3)')'trac(',iiq,')%flag = ',o_trac(iiq)%flag 561 ! WRITE(*,'(a,i1,a)')'trac(',iiq,')%tnam = '//TRIM(o_trac(iiq)%name) 562 ! WRITE(*,'(a,i1,a)')'trac(',iiq,')%lnam = '//TRIM(o_trac(iiq)%description) 527 ! DO iq=1,nqtot 528 ! IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) 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) 563 532 ! END DO 564 533
Note: See TracChangeset
for help on using the changeset viewer.