Changeset 4171 for LMDZ6/branches/LMDZ-ECRAD/libf/phylmd/iophys.F90
- 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/iophys.F90
r3115 r4171 56 56 57 57 58 58 59 CALL Gather(px,xglo) 59 60 !$OMP MASTER … … 109 110 110 111 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 111 SUBROUTINE iophys_ini 112 SUBROUTINE iophys_ini(timestep) 112 113 USE mod_phys_lmdz_para, ONLY: is_mpi_root 113 114 USE vertical_layers_mod, ONLY: presnivs … … 115 116 USE dimphy, ONLY: klev 116 117 USE mod_grid_phy_lmdz, ONLY: klon_glo 118 USE time_phylmdz_mod, ONLY : annee_ref, day_ref, day_ini 119 USE phys_cal_mod, ONLY : calend 117 120 118 121 IMPLICIT NONE 119 122 123 include "YOMCST.h" 120 124 !======================================================================= 121 125 ! … … 136 140 real pi 137 141 INTEGER nlat_eff 142 INTEGER jour0,mois0,an0 143 REAL timestep,t0 144 CHARACTER(len=20) :: calendrier 138 145 139 146 ! Arguments: 140 147 ! ---------- 148 141 149 142 150 !$OMP MASTER … … 152 160 ENDIF 153 161 pi=2.*asin(1.) 154 call iotd_ini('phys.nc ', & 155 size(lon_reg),nlat_eff,klev,lon_reg(:)*180./pi,lat_reg*180./pi,presnivs) 162 163 ! print*,'day_ini,annee_ref,day_ref',day_ini,annee_ref,day_ref 164 ! print*,'jD_ref,jH_ref,start_time, calend',jD_ref,jH_ref,start_time, calend 165 166 ! Attention : les lignes ci dessous supposent un calendrier en 360 jours 167 ! Pourrait être retravaillé 168 169 jour0=day_ref-30*(day_ref/30) 170 mois0=day_ref/30+1 171 an0=annee_ref 172 t0=(day_ini-1)*RDAY 173 calendrier=calend 174 175 if ( calendrier == "earth_360d" ) calendrier="360d" 176 177 call iotd_ini('phys.nc', & 178 size(lon_reg),nlat_eff,klev,lon_reg(:)*180./pi,lat_reg*180./pi,presnivs,jour0,mois0,an0,t0,timestep,calendrier) 156 179 ENDIF 157 180 !$OMP END MASTER … … 183 206 184 207 #endif 208 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 209 ! Interface pour ecrire en netcdf avec les routines d'enseignement 210 ! iotd de Frederic Hourdin 211 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 212 213 SUBROUTINE iotd_ecrit_seq(nom,lllm,titre,unite,px) 214 215 IMPLICIT NONE 216 217 ! px arrive 218 219 #include "iotd.h" 220 221 222 ! Arguments on input: 223 integer lllm 224 character (len=*) :: nom,titre,unite 225 integer imjmax 226 parameter (imjmax=100000) 227 real px(imjmax*lllm) 228 real, allocatable :: zx(:,:,:) 229 integer i,j,l,ijl 230 231 allocate(zx(imax,jmax,lllm)) 232 233 ijl=0 234 do l=1,lllm 235 ! Pole nord 236 ijl=ijl+1 237 do i=1,imax 238 zx(i,1,l)=px(ijl) 239 enddo 240 ! Grille normale 241 do j=2,jmax-1 242 do i=1,imax 243 ijl=ijl+1 244 zx(i,j,l)=px(ijl) 245 enddo 246 enddo 247 ! Pole sud 248 if ( jmax > 1 ) then 249 ijl=ijl+1 250 do i=1,imax 251 zx(i,jmax,l)=px(ijl) 252 enddo 253 endif 254 enddo 255 256 call iotd_ecrit(nom,lllm,titre,unite,zx) 257 deallocate(zx) 258 259 return 260 end 261
Note: See TracChangeset
for help on using the changeset viewer.