Changeset 3284 for LMDZ6/branches/IPSLCM6.0.15/libf
- Timestamp:
- Mar 17, 2018, 9:58:45 AM (7 years ago)
- Location:
- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/iophy.F90
r3107 r3284 996 996 997 997 !Et sinon on.... écrit 998 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev ) CALL abort_physic('iophy::histwrite2d_phy','Field first DIMENSION not equal to klon/klev',1)998 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) 999 999 IF (prt_level >= 10) THEn 1000 1000 WRITE (lunout,*)"histwrite2d_phy: .not.vars_defined ; time to gather and write ", trim(var%name) … … 1154 1154 !Et sinon on.... écrit 1155 1155 1156 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)1156 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) 1157 1157 1158 1158 nlev=SIZE(field,2) … … 1287 1287 1288 1288 !Et sinon on.... écrit 1289 IF (SIZE(field)/=klon .AND. SIZE(field)/=klev ) CALL abort_physic('iophy::histwrite2d_xios','Field first DIMENSION not equal to klon/klev',1)1290 1291 IF (SIZE(field) == klev ) then1289 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) 1290 1291 IF (SIZE(field) == klev .OR. SIZE(field) == klev+1) then 1292 1292 !$OMP MASTER 1293 1293 CALL xios_send_field(field_name,field) … … 1362 1362 1363 1363 !Et on.... écrit 1364 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) 1365 1366 IF (SIZE(field,1) == klev) then 1364 IF (SIZE(field,1)/=klon .AND. SIZE(field,1)/=klev .AND. SIZE(field,1)/=klev+1) then 1365 write(lunout,*)' histrwrite3d_xios ', field_name, SIZE(field) 1366 CALL abort_physic('iophy::histwrite3d_xios','Field first DIMENSION not equal to klon/klev',1) 1367 ENDIF 1368 1369 IF (SIZE(field,1) == klev .OR. SIZE(field,1) == klev+1) then 1367 1370 !$OMP MASTER 1368 1371 CALL xios_send_field(field_name,field) -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_ctrlout_mod.F90
r3250 r3284 26 26 'io_lat', '', '', (/ ('once', i=1, 10) /)) 27 27 28 !!! Com osantes de la coordonnee sigma-hybride28 !!! Composantes de la coordonnee sigma-hybride 29 29 !!! Ap et Bp et interfaces 30 30 TYPE(ctrl_out), SAVE :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 31 'Ahyb', ' ', '', (/ ('once', i=1, 10) /))31 'Ahyb', 'Ahyb at level interface', '', (/ ('once', i=1, 10) /)) 32 32 TYPE(ctrl_out), SAVE :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 33 'Bhyb', '', '', (/ ('once', i=1, 10) /)) 34 TYPE(ctrl_out), SAVE :: o_Ahyb_inter = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 35 'Ahyb_inter', '', '', (/ ('once', i=1, 10) /)) 36 TYPE(ctrl_out), SAVE :: o_Bhyb_inter = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 37 'Bhyb_inter', '', '', (/ ('once', i=1, 10) /)) 33 'Bhyb', 'Bhyb at level interface', '', (/ ('once', i=1, 10) /)) 34 TYPE(ctrl_out), SAVE :: o_Ahyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 35 'Ahyb_bounds', '', '', (/ ('once', i=1, 10) /)) 36 TYPE(ctrl_out), SAVE :: o_Bhyb_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 37 'Bhyb_bounds', '', '', (/ ('once', i=1, 10) /)) 38 !!! Composantes de la coordonnee sigma-hybride au milieu des couches 39 !!! Aps et Bps et interfaces 40 TYPE(ctrl_out), SAVE :: o_Ahyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 41 'Ahyb_mid', 'Ahyb at the middle of the level', '', (/ ('once', i=1, 10) /)) 42 TYPE(ctrl_out), SAVE :: o_Bhyb_mid = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 43 'Bhyb_mid', 'Bhyb at the middle of the level', '', (/ ('once', i=1, 10) /)) 44 TYPE(ctrl_out), SAVE :: o_Ahyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 45 'Ahyb_mid_bounds', '', '', (/ ('once', i=1, 10) /)) 46 TYPE(ctrl_out), SAVE :: o_Bhyb_mid_bounds = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 47 'Bhyb_mid_bounds', '', '', (/ ('once', i=1, 10) /)) 48 38 49 TYPE(ctrl_out), SAVE :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1, 11, 11, 11, 11/), & 39 50 'Alt', '', '', (/ ('', i=1, 10) /)) -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_mod.F90
r3125 r3284 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/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90
r3250 r3284 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, & … … 413 414 REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 414 415 ! REAL, PARAMETER :: missing_val=nf90_fill_real 415 REAL, DIMENSION(klev,2) :: Ahyb_bounds, Bhyb_bounds 416 REAL, DIMENSION(klev+1,2) :: Ahyb_bounds, Bhyb_bounds 417 REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds 416 418 INTEGER :: ilev 417 419 #ifndef CPP_XIOS … … 442 444 ENDIF 443 445 444 DO ilev=1,klev 445 Ahyb_bounds(ilev,1) = ap(ilev) 446 Ahyb_bounds(ilev,2) = ap(ilev+1) 447 Bhyb_bounds(ilev,1) = bp(ilev) 448 Bhyb_bounds(ilev,2) = bp(ilev+1) 446 Ahyb_bounds(1,1) = 0. 447 Ahyb_bounds(1,2) = aps(1) 448 Bhyb_bounds(1,1) = 1. 449 Bhyb_bounds(1,2) = bps(1) 450 DO ilev=2,klev 451 Ahyb_bounds(ilev,1) = aps(ilev-1) 452 Ahyb_bounds(ilev,2) = aps(ilev) 453 Bhyb_bounds(ilev,1) = bps(ilev-1) 454 Bhyb_bounds(ilev,2) = bps(ilev) 455 ENDDO 456 Ahyb_bounds(klev+1,1) = aps(klev) 457 Ahyb_bounds(klev+1,2) = 0. 458 Bhyb_bounds(klev+1,1) = bps(klev) 459 Bhyb_bounds(klev+1,2) = 0. 460 461 DO ilev=1, klev 462 Ahyb_mid_bounds(ilev,1) = ap(ilev) 463 Ahyb_mid_bounds(ilev,2) = ap(ilev+1) 464 Bhyb_mid_bounds(ilev,1) = bp(ilev) 465 Bhyb_mid_bounds(ilev,2) = bp(ilev+1) 449 466 END DO 450 467 … … 561 578 CALL histwrite_phy("R_incl",R_incl) 562 579 CALL histwrite_phy("solaire",solaire) 563 CALL histwrite_phy(o_Ahyb, aps) 564 CALL histwrite_phy(o_Bhyb, bps) 565 CALL histwrite_phy(o_Ahyb_inter, Ahyb_bounds) 566 CALL histwrite_phy(o_Bhyb_inter, Bhyb_bounds) 580 CALL histwrite_phy(o_Ahyb, ap) 581 CALL histwrite_phy(o_Bhyb, bp) 582 CALL histwrite_phy(o_Ahyb_bounds, Ahyb_bounds) 583 CALL histwrite_phy(o_Bhyb_bounds, Bhyb_bounds) 584 CALL histwrite_phy(o_Ahyb_mid, aps) 585 CALL histwrite_phy(o_Bhyb_mid, bps) 586 CALL histwrite_phy(o_Ahyb_mid_bounds, Ahyb_mid_bounds) 587 CALL histwrite_phy(o_Bhyb_mid_bounds, Bhyb_mid_bounds) 567 588 CALL histwrite_phy(o_longitude, longitude_deg) 568 589 CALL histwrite_phy(o_latitude, latitude_deg)
Note: See TracChangeset
for help on using the changeset viewer.