Changeset 1001 for LMDZ4/trunk/libf/phylmd/iophy.F90
- Timestamp:
- Oct 6, 2008, 11:11:53 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/iophy.F90
r931 r1001 16 16 INTERFACE histwrite_phy 17 17 MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy 18 END INTERFACE 18 END INTERFACE 19 19 20 20 21 contains 22 23 subroutine init_iophy_new(rlat,rlon) 24 USE dimphy 25 USE mod_phys_lmdz_para 26 USE mod_grid_phy_lmdz 27 USE ioipsl 28 implicit none 29 include 'dimensions.h' 30 real,dimension(klon),intent(in) :: rlon 31 real,dimension(klon),intent(in) :: rlat 32 33 REAL,dimension(klon_glo) :: rlat_glo 34 REAL,dimension(klon_glo) :: rlon_glo 35 36 INTEGER,DIMENSION(2) :: ddid 37 INTEGER,DIMENSION(2) :: dsg 38 INTEGER,DIMENSION(2) :: dsl 39 INTEGER,DIMENSION(2) :: dpf 40 INTEGER,DIMENSION(2) :: dpl 41 INTEGER,DIMENSION(2) :: dhs 42 INTEGER,DIMENSION(2) :: dhe 43 INTEGER :: i 44 45 CALL gather(rlat,rlat_glo) 46 CALL bcast(rlat_glo) 47 CALL gather(rlon,rlon_glo) 48 CALL bcast(rlon_glo) 49 50 !$OMP MASTER 51 ALLOCATE(io_lat(jjm+1-1/iim)) 52 io_lat(1)=rlat_glo(1) 53 io_lat(jjm+1-1/iim)=rlat_glo(klon_glo) 54 IF (iim > 1) then 55 DO i=2,jjm 56 io_lat(i)=rlat_glo(2+(i-2)*iim) 57 ENDDO 58 ENDIF 59 60 ALLOCATE(io_lon(iim)) 61 io_lon(:)=rlon_glo(2-1/iim:iim+1-1/iim) 62 63 64 allocate(tmp_tab2d(iim,jj_nb)) 65 allocate(tmp_tab3d(iim,jj_nb,klev)) 66 allocate(ndex2d(iim*jj_nb)) 67 allocate(ndex3d(iim*jj_nb*klev)) 68 ndex2d(:)=0 69 ndex3d(:)=0 70 71 ddid=(/ 1,2 /) 72 dsg=(/ iim, jjm+1-1/iim /) 73 dsl=(/ iim, jj_nb /) 74 dpf=(/ 1,jj_begin /) 75 dpl=(/ iim, jj_end /) 76 dhs=(/ ii_begin-1,0 /) 77 if (mpi_rank==mpi_size-1) then 78 dhe=(/0,0/) 79 else 80 dhe=(/ iim-ii_end,0 /) 81 endif 82 83 call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe, & 84 'APPLE',phys_domain_id) 85 86 !$OMP END MASTER 87 88 end subroutine init_iophy_new 21 89 22 90 subroutine init_iophy(lat,lon) … … 139 207 140 208 141 ! subroutine phy2dyn(field_phy,field_dyn,nlev) 142 ! USE dimphy_old 143 ! implicit none 144 ! include 'dimensions.h' 145 ! 146 ! real,dimension(klon_mpi,nlev),intent(in) :: field_phy 147 ! real,dimension(iim,jjphy_nb,nlev),intent(out) :: field_dyn 148 ! integer,intent(in) :: nlev 149 ! 150 ! integer :: next 151 ! integer :: j,l 152 ! 153 ! do l=1,nlev 154 ! 155 ! if (jjphy_begin==jjphy_end) then 156 ! field_dyn(:,1,l)=0. 157 ! field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon_mpi,l) 158 ! else 159 ! 160 ! if (jjphy_begin==1) then 161 ! field_dyn(:,1,l)=field_phy(1,l) 162 ! next=2 163 ! else 164 ! field_dyn(:,1,l)=0. 165 ! next=iim-iiphy_begin+2 166 ! field_dyn(iiphy_begin:iim,1,l)=field_phy(1:next-1,l) 167 ! endif 168 ! 169 ! do j=2,jjphy_nb-1 170 ! field_dyn(:,j,l)=field_phy(next:next+iim-1,l) 171 ! next=next+iim 172 ! enddo 173 ! 174 ! if (jjphy_end==jjm+1-1/iim) then 175 ! field_dyn(:,jjphy_nb,l)=field_phy(klon_mpi,l) 176 ! else 177 ! field_dyn(:,jjphy_nb,l)=0. 178 ! field_dyn(1:iiphy_end,jjphy_nb,l)=field_phy(next:next+iiphy_end-1,l) 179 ! endif 180 ! 181 ! endif 182 ! 183 ! enddo 184 ! 185 ! end subroutine phy2dyn 186 187 209 188 210 end module iophy
Note: See TracChangeset
for help on using the changeset viewer.