Changeset 3474 for LMDZ6/trunk/libf
- Timestamp:
- Apr 15, 2019, 4:55:13 PM (6 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/iophy.F90
r3465 r3474 1037 1037 1038 1038 !Et sinon on.... écrit 1039 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev ) CALL abort_physic('iophy::histwrite2d_phy','Field first DIMENSION not equal to klon/klev',1)1039 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev .AND. SIZE(field)/=klev+1) CALL abort_physic('iophy::histwrite2d_phy','Field first DIMENSION not equal to klon/klev',1) 1040 1040 IF (prt_level >= 10) THEn 1041 1041 WRITE (lunout,*)"histwrite2d_phy: .not.vars_defined ; time to gather and write ", trim(var%name) … … 1215 1215 !Et sinon on.... écrit 1216 1216 1217 IF (SIZE(field,1)/=klon .AND. SIZE(field,1)/=klev ) CALL abort_physic('iophy::histwrite3d_xios','Field first DIMENSION not equal to klon/klev',1)1217 IF (SIZE(field,1)/=klon .AND. SIZE(field,1)/=klev .AND. SIZE(field,1)/=klev+1) CALL abort_physic('iophy::histwrite3d_phy','Field first DIMENSION not equal to klon/klev',1) 1218 1218 1219 1219 nlev=SIZE(field,2) … … 1360 1360 IF (prt_level >= 10) WRITE(lunout,*)'Begin histrwrite2d_xios ',field_name 1361 1361 1362 !Et sinon on.... écrit1363 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev) CALL abort_physic('iophy::histwrite2d_xios','Field first DIMENSION not equal to klon/klev',1)1364 1365 IF (SIZE(field) == klev) then1362 !Et sinon on.... écrit 1363 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev .AND. SIZE(field)/=klev+1) CALL abort_physic('iophy::histwrite2d_xios','Field first DIMENSION not equal to klon/klev',1) 1364 1365 IF (SIZE(field) == klev .OR. SIZE(field) == klev+1) then 1366 1366 !$OMP MASTER 1367 1367 CALL xios_send_field(field_name,field) … … 1442 1442 IF (prt_level >= 10) write(lunout,*)'Begin histrwrite3d_xios ',field_name 1443 1443 1444 !Et on.... écrit 1445 IF (SIZE(field,1)/=klon .AND. SIZE(field,1)/=klev) CALL abort_physic('iophy::histwrite3d_xios','Field first DIMENSION not equal to klon/klev',1) 1446 1447 IF (SIZE(field,1) == klev) then 1444 !Et on.... écrit 1445 IF (SIZE(field,1)/=klon .AND. SIZE(field,1)/=klev .AND. SIZE(field,1)/=klev+1) then 1446 write(lunout,*)' histrwrite3d_xios ', field_name, SIZE(field) 1447 CALL abort_physic('iophy::histwrite3d_xios','Field first DIMENSION not equal to klon/klev',1) 1448 ENDIF 1449 1450 IF (SIZE(field,1) == klev .OR. SIZE(field,1) == klev+1) then 1448 1451 !$OMP MASTER 1449 1452 CALL xios_send_field(field_name,field) -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r3453 r3474 24 24 'io_lat', '', '', (/ ('once', i=1, 10) /)) 25 25 26 !!! Com osantes de la coordonnee sigma-hybride26 !!! Composantes de la coordonnee sigma-hybride 27 27 !!! Ap et Bp et interfaces 28 28 TYPE(ctrl_out), SAVE :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 29 'Ahyb', ' ', '', (/ ('once', i=1, 10) /))29 'Ahyb', 'Ahyb at level interface', '', (/ ('once', i=1, 10) /)) 30 30 TYPE(ctrl_out), SAVE :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 31 'Bhyb', '', '', (/ ('once', i=1, 10) /)) 32 TYPE(ctrl_out), SAVE :: o_Ahyb_inter = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 33 'Ahyb_inter', '', '', (/ ('once', i=1, 10) /)) 34 TYPE(ctrl_out), SAVE :: o_Bhyb_inter = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 35 'Bhyb_inter', '', '', (/ ('once', i=1, 10) /)) 31 'Bhyb', 'Bhyb at level interface', '', (/ ('once', i=1, 10) /)) 32 TYPE(ctrl_out), SAVE :: o_Ahyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 33 'Ahyb_bounds', '', '', (/ ('once', i=1, 10) /)) 34 TYPE(ctrl_out), SAVE :: o_Bhyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 35 'Bhyb_bounds', '', '', (/ ('once', i=1, 10) /)) 36 !!! Composantes de la coordonnee sigma-hybride au milieu des couches 37 !!! Aps et Bps et interfaces 38 TYPE(ctrl_out), SAVE :: o_Ahyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 39 'Ahyb_mid', 'Ahyb at the middle of the level', '', (/ ('once', i=1, 10) /)) 40 TYPE(ctrl_out), SAVE :: o_Bhyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 41 'Bhyb_mid', 'Bhyb at the middle of the level', '', (/ ('once', i=1, 10) /)) 42 TYPE(ctrl_out), SAVE :: o_Ahyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 43 'Ahyb_mid_bounds', '', '', (/ ('once', i=1, 10) /)) 44 TYPE(ctrl_out), SAVE :: o_Bhyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 45 'Bhyb_mid_bounds', '', '', (/ ('once', i=1, 10) /)) 46 36 47 TYPE(ctrl_out), SAVE :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 37 48 'Alt', '', '', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
r3125 r3474 131 131 90., 90., 90., 90., 90. /) 132 132 REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds 133 REAL, DIMENSION(klev ) :: lev_index133 REAL, DIMENSION(klev+1) :: lev_index 134 134 135 135 #ifdef CPP_XIOS … … 156 156 lev_index(ilev) = REAL(ilev) 157 157 END DO 158 lev_index(klev+1) = REAL(klev+1) 158 159 159 160 IF (.NOT. ALLOCATED(o_trac)) ALLOCATE(o_trac(nqtot)) … … 361 362 CALL wxios_add_vaxis("klev", levmax(iff) - levmin(iff) + 1, & 362 363 lev_index(levmin(iff):levmax(iff))) 364 CALL wxios_add_vaxis("klevp1", klev+1, & 365 lev_index(1:klev+1)) 363 366 CALL wxios_add_vaxis("bnds", 2, (/1.,2./)) 364 367 -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r3453 r3474 32 32 USE phys_output_ctrlout_mod, ONLY: o_phis, o_aire, is_ter, is_lic, is_oce, & 33 33 o_longitude, o_latitude, & 34 o_Ahyb, o_Bhyb,o_Ahyb_inter, o_Bhyb_inter, & 34 o_Ahyb, o_Bhyb,o_Ahyb_bounds, o_Bhyb_bounds, & 35 o_Ahyb_mid, o_Bhyb_mid,o_Ahyb_mid_bounds, o_Bhyb_mid_bounds, & 35 36 is_ave, is_sic, o_contfracATM, o_contfracOR, & 36 37 o_aireTER, o_flat, o_slp, o_ptstar, o_pt0, o_tsol, & … … 418 419 REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 419 420 ! REAL, PARAMETER :: missing_val=nf90_fill_real 420 REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds 421 REAL, DIMENSION(klev+1,2) :: Ahyb_bounds, Bhyb_bounds 422 REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds 421 423 INTEGER :: ilev 422 424 #ifndef CPP_XIOS … … 451 453 #endif 452 454 453 DO ilev=1,klev 454 Ahyb_bounds(ilev,1) = ap(ilev) 455 Ahyb_bounds(ilev,2) = ap(ilev+1) 456 Bhyb_bounds(ilev,1) = bp(ilev) 457 Bhyb_bounds(ilev,2) = bp(ilev+1) 455 Ahyb_bounds(1,1) = 0. 456 Ahyb_bounds(1,2) = aps(1) 457 Bhyb_bounds(1,1) = 1. 458 Bhyb_bounds(1,2) = bps(1) 459 DO ilev=2,klev 460 Ahyb_bounds(ilev,1) = aps(ilev-1) 461 Ahyb_bounds(ilev,2) = aps(ilev) 462 Bhyb_bounds(ilev,1) = bps(ilev-1) 463 Bhyb_bounds(ilev,2) = bps(ilev) 464 ENDDO 465 Ahyb_bounds(klev+1,1) = aps(klev) 466 Ahyb_bounds(klev+1,2) = 0. 467 Bhyb_bounds(klev+1,1) = bps(klev) 468 Bhyb_bounds(klev+1,2) = 0. 469 470 DO ilev=1, klev 471 Ahyb_mid_bounds(ilev,1) = ap(ilev) 472 Ahyb_mid_bounds(ilev,2) = ap(ilev+1) 473 Bhyb_mid_bounds(ilev,1) = bp(ilev) 474 Bhyb_mid_bounds(ilev,2) = bp(ilev+1) 458 475 END DO 459 476 … … 570 587 CALL histwrite_phy("R_incl",R_incl) 571 588 CALL histwrite_phy("solaire",solaire) 572 CALL histwrite_phy(o_Ahyb, aps) 573 CALL histwrite_phy(o_Bhyb, bps) 574 CALL histwrite_phy(o_Ahyb_inter, Ahyb_bounds) 575 CALL histwrite_phy(o_Bhyb_inter, Bhyb_bounds) 589 CALL histwrite_phy(o_Ahyb, ap) 590 CALL histwrite_phy(o_Bhyb, bp) 591 CALL histwrite_phy(o_Ahyb_bounds, Ahyb_bounds) 592 CALL histwrite_phy(o_Bhyb_bounds, Bhyb_bounds) 593 CALL histwrite_phy(o_Ahyb_mid, aps) 594 CALL histwrite_phy(o_Bhyb_mid, bps) 595 CALL histwrite_phy(o_Ahyb_mid_bounds, Ahyb_mid_bounds) 596 CALL histwrite_phy(o_Bhyb_mid_bounds, Bhyb_mid_bounds) 576 597 CALL histwrite_phy(o_longitude, longitude_deg) 577 598 CALL histwrite_phy(o_latitude, latitude_deg)
Note: See TracChangeset
for help on using the changeset viewer.