Changeset 1897
- Timestamp:
- Oct 25, 2013, 10:12:38 AM (11 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/arch/arch-X64_ADA.fcm
r1890 r1897 11 11 %MPI_FFLAGS 12 12 %OMP_FFLAGS -openmp 13 %BASE_LD -L/smplocal/pub/FFTW/3.3.3_dyn/lib -lfftw3 -shared-intel -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -Wl,-rpath=/smplocal/pub/NetCDF/4.1.3/ lib:/smplocal/pub/HDF5/1.8.9/seq/lib:/smplocal/pub/FFTW/3.3.3_dyn/lib13 %BASE_LD -L/smplocal/pub/FFTW/3.3.3_dyn/lib -lfftw3 -shared-intel -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -Wl,-rpath=/smplocal/pub/NetCDF/4.1.3/mpi/lib:/smplocal/pub/HDF5/1.8.9/par/lib:/smplocal/pub/FFTW/3.3.3_dyn/lib 14 14 %MPI_LD -L/smplocal/pub/IdrMemMPI/1.3/lib -lidrmem 15 15 %OMP_LD -openmp -
LMDZ5/trunk/arch/arch-X64_ADA.path
r1718 r1897 1 NETCDF_LIBDIR="${NETCDF_LDFLAGS:--L/smplocal/pub/NetCDF/4.1.3/ lib -lnetcdff -lnetcdf -L/smplocal/pub/HDF5/1.8.9/seq/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lz}"2 NETCDF_INCDIR="${NETCDF_FFLAGS:--I/smplocal/pub/HDF5/1.8.9/ seq/include -I/smplocal/pub/NetCDF/4.1.3/include}"1 NETCDF_LIBDIR="${NETCDF_LDFLAGS:--L/smplocal/pub/NetCDF/4.1.3/mpi/lib -lnetcdff -lnetcdf -L/smplocal/pub/HDF5/1.8.9/par/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lz}" 2 NETCDF_INCDIR="${NETCDF_FFLAGS:--I/smplocal/pub/HDF5/1.8.9/par/include -I/smplocal/pub/NetCDF/4.1.3/mpi/include}" 3 3 IOIPSL_INCDIR=$LMDGCM/../../lib 4 4 IOIPSL_LIBDIR=$LMDGCM/../../lib 5 XIOS_INCDIR=$LMDGCM/../XIOS/inc 6 XIOS_LIBDIR=$LMDGCM/../XIOS/lib 5 7 ORCH_INCDIR=$LMDGCM/../../lib 6 8 ORCH_LIBDIR=$LMDGCM/../../lib -
LMDZ5/trunk/bld.cfg
r1869 r1897 82 82 bld::excl_dep use::mod_prism_get_proto 83 83 bld::excl_dep use::mod_prism_put_proto 84 bld::excl_dep use::xios 85 bld::excl_dep use::iaxis 86 bld::excl_dep use::iaxis_attr 87 bld::excl_dep use::icontext_attr 88 bld::excl_dep use::idate 89 bld::excl_dep use::idomain_attr 90 bld::excl_dep use::ifield_attr 91 bld::excl_dep use::ifile_attr 92 bld::excl_dep use::ixml_tree 84 93 85 94 # Don't generate interface files -
LMDZ5/trunk/libf/bibio/wxios.F90
r1852 r1897 121 121 INTEGER :: xios_comm 122 122 123 IF (prt_level >= 10) WRITE(lunout,*) " Xios.Initialization"123 IF (prt_level >= 10) WRITE(lunout,*) "wxios_init: Initialization" 124 124 125 125 126 126 127 127 IF (PRESENT(locom)) THEN 128 IF (prt_level >= 10) WRITE(lunout,*) "Xios. ctx=",xios_ctx_name,"local_comm=",locom,",return_comm=",xios_comm129 CALL xios_initialize(xios_ctx_name, local_comm = locom, return_comm = xios_comm )130 ELSE 131 IF (prt_level >= 10) WRITE(lunout,*) "Xios. ctx=",xios_ctx_name,"return_comm=",outcom132 CALL xios_initialize(xios_ctx_name, return_comm = xios_comm )128 CALL xios_initialize(xios_ctx_name, local_comm = locom, return_comm = xios_comm ) 129 IF (prt_level >= 10) WRITE(lunout,*) "wxios_init: ctx=",xios_ctx_name," local_comm=",locom,", return_comm=",xios_comm 130 ELSE 131 CALL xios_initialize(xios_ctx_name, return_comm = xios_comm ) 132 IF (prt_level >= 10) WRITE(lunout,*) "wxios_init: ctx=",xios_ctx_name," return_comm=",xios_comm 133 133 END IF 134 134 135 135 IF (PRESENT(outcom)) THEN 136 outcom = xios_comm 136 outcom = xios_comm 137 IF (prt_level >= 10) WRITE(lunout,*) "wxios_init: ctx=",xios_ctx_name," outcom=",outcom 137 138 END IF 138 139 … … 157 158 g_ctx = xios_ctx 158 159 159 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Current context is ", g_ctx_name160 IF (prt_level >= 10) WRITE(lunout,*) "wxios_context_init: Current context is ",trim(g_ctx_name) 160 161 161 162 !Une première analyse des héritages: … … 191 192 CASE('earth_360d') 192 193 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "D360") 193 IF (prt_level >= 10) WRITE(lunout,*) ' Xios.Calendrier terrestre a 360 jours/an'194 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 360 jours/an' 194 195 CASE('earth_365d') 195 196 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "NoLeap") 196 IF (prt_level >= 10) WRITE(lunout,*) ' Xios.Calendrier terrestre a 365 jours/an'197 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 365 jours/an' 197 198 CASE('earth_366d') 198 199 CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "Gregorian") 199 IF (prt_level >= 10) WRITE(lunout,*) ' Xios.Calendrier gregorien'200 IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier gregorien' 200 201 CASE DEFAULT 201 abort_message = ' Xios.Mauvais choix de calendrier'202 abort_message = 'wxios_set_cal: Mauvais choix de calendrier' 202 203 CALL abort_gcm('Gcm:Xios',abort_message,1) 203 204 END SELECT … … 206 207 WRITE(date, "(i4.4,'-',i2.2,'-',i2.2,' 00:00:00')") annee, mois, jour 207 208 208 IF (prt_level >= 10) WRITE(lunout,*) " Xios.Initial time: ", date209 IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: Initial time: ", date 209 210 210 211 CALL xios_set_context_attr_hdl(g_ctx, start_date= date) … … 212 213 !Et enfin,le pas de temps: 213 214 CALL xios_set_timestep(mdtime) 214 IF (prt_level >= 10) WRITE(lunout,*) " Xios.ts=",mdtime215 IF (prt_level >= 10) WRITE(lunout,*) "wxios_set_cal: ts=",mdtime 215 216 END SUBROUTINE wxios_set_cal 216 217 … … 230 231 ibegin, iend, ii_begin, ii_end, jbegin, jend, & 231 232 data_ni, data_ibegin, data_iend, & 232 io_lat, io_lon )233 io_lat, io_lon,is_south_pole,mpi_rank) 233 234 234 IMPLICIT NONE 235 INCLUDE 'iniprint.h' 236 237 CHARACTER (len=*), INTENT(IN) :: dom_id 238 LOGICAL, INTENT(IN) :: is_sequential 239 INTEGER, INTENT(IN) :: ni, nj, ni_glo, nj_glo, ibegin, iend, ii_begin, ii_end, jbegin, jend 240 INTEGER, INTENT(IN) :: data_ni, data_ibegin, data_iend 241 REAL, DIMENSION(:) :: io_lat, io_lon 242 235 236 IMPLICIT NONE 237 INCLUDE 'iniprint.h' 238 239 CHARACTER(len=*),INTENT(IN) :: dom_id ! domain identifier 240 LOGICAL,INTENT(IN) :: is_sequential ! flag 241 INTEGER,INTENT(IN) :: ni ! local MPI domain number of longitudes 242 INTEGER,INTENT(IN) :: nj ! local MPI domain number of latitudes 243 INTEGER,INTENT(IN) :: ni_glo ! global grid number of longitudes 244 INTEGER,INTENT(IN) :: nj_glo ! global grid number of latitudes 245 INTEGER,INTENT(IN) :: ibegin ! start index, on global grid, of local MPI domain 246 INTEGER,INTENT(IN) :: iend ! end index, on global grid, of local MPI domain 247 INTEGER,INTENT(IN) :: ii_begin ! i index at which local data starts (first row) 248 INTEGER,INTENT(IN) :: ii_end ! i index at which local data ends (last row) 249 INTEGER,INTENT(IN) :: jbegin ! start index, on global grid, of local MPI domain 250 INTEGER,INTENT(IN) :: jend ! end index, on global grid, of local MPI domain 251 INTEGER,INTENT(IN) :: data_ni 252 INTEGER,INTENT(IN) :: data_ibegin 253 INTEGER,INTENT(IN) :: data_iend 254 REAL,INTENT(IN) :: io_lat(:) ! latitudes (of global grid) 255 REAL,INTENT(IN) :: io_lon(:) ! longitudes (of global grid) 256 logical,intent(in) :: is_south_pole ! does this process include the south pole? 257 integer,intent(in) :: mpi_rank ! rank of process 243 258 244 259 TYPE(xios_domain) :: dom … … 251 266 CALL xios_get_domain_handle(dom_id, dom) 252 267 253 IF (prt_level >= 10) WRITE(lunout,*) "Xios. ni:",ni," ni_glo:", ni_glo, " nj:", nj, " nj_glo:", nj_glo 254 IF (prt_level >= 10) WRITE(lunout,*) "Xios. ibegin:",ibegin," iend:", iend, " jbegin:", jbegin, " jend:", jend 255 IF (prt_level >= 10) WRITE(lunout,*) "Xios. Size lon:", SIZE(io_lon(ibegin:iend)), " lat:", SIZE(io_lat(jbegin:jend)) 268 IF (prt_level >= 10) THEN 269 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," ni:",ni," ni_glo:", ni_glo, " nj:", nj, " nj_glo:", nj_glo 270 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," ibegin:",ibegin," iend:", iend, " jbegin:", jbegin, " jend:", jend 271 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," ii_begin:",ii_begin," ii_end:", ii_end 272 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," Size io_lon:", SIZE(io_lon(ibegin:iend)), " io_lat:", SIZE(io_lat(jbegin:jend)) 273 ENDIF 256 274 257 275 !On parametrise le domaine: … … 262 280 IF (.NOT.is_sequential) THEN 263 281 mask(:,:)=.TRUE. 264 mask(1:ii_begin-1,1) = .FALSE. 265 mask(ii_end+1:ni,nj) = .FALSE. 266 IF (prt_level >= 10) WRITE(lunout,*) "Xios. mask" 267 !CALL xios_set_domain_attr_hdl(dom, mask=mask) 282 if (ii_begin>1) mask(1:ii_begin-1,1) = .FALSE. 283 if (ii_end<ni) mask(ii_end+1:ni,nj) = .FALSE. 284 ! special case for south pole 285 if ((ii_end.eq.1).and.(is_south_pole)) mask(1:ni,nj)=.true. 286 IF (prt_level >= 10) THEN 287 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," mask(:,1)=",mask(:,1) 288 WRITE(lunout,*) "wxios_domain_param: mpirank=",mpi_rank," mask(:,nj)=",mask(:,nj) 289 ENDIF 290 CALL xios_set_domain_attr_hdl(dom, mask=mask) 268 291 END IF 269 292 … … 271 294 !Vérification: 272 295 IF (xios_is_valid_domain(dom_id)) THEN 273 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Domain initialized: ", dom_id, boool274 ELSE 275 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Invalid domain: ", dom_id296 IF (prt_level >= 10) WRITE(lunout,*) "wxios_domain_param: Domain initialized: ", trim(dom_id), boool 297 ELSE 298 IF (prt_level >= 10) WRITE(lunout,*) "wxios_domain_param: Invalid domain: ", trim(dom_id) 276 299 END IF 277 300 END SUBROUTINE wxios_domain_param … … 307 330 !Vérification: 308 331 IF (xios_is_valid_axis(TRIM(ADJUSTL(axis_id)))) THEN 309 IF (prt_level >= 10) WRITE(lunout,*) " Xios.Axis created: ", TRIM(ADJUSTL(axis_id))310 ELSE 311 WRITE(*,*) " Xios.Invalid axis: ", TRIM(ADJUSTL(axis_id))332 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_vaxis: Axis created: ", TRIM(ADJUSTL(axis_id)) 333 ELSE 334 WRITE(*,*) "wxios_add_vaxis: Invalid axis: ", TRIM(ADJUSTL(axis_id)) 312 335 END IF 313 336 … … 344 367 345 368 IF (xios_is_valid_file("X"//fname)) THEN 346 IF (prt_level >= 10) WRITE(lunout,*) " Xios.New file: ", "X"//fname347 IF (prt_level >= 10) WRITE(lunout,*) " Xios.output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl369 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: New file: ", "X"//fname 370 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl 348 371 ELSE 349 WRITE(*,*) " Xios. Error, invalid file: ", "X"//fname350 WRITE(*,*) " Xios.output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl372 WRITE(*,*) "wxios_add_file: Error, invalid file: ", "X"//trim(fname) 373 WRITE(*,*) "wxios_add_file: output_freq=",TRIM(ADJUSTL(nffreq)),"; output_lvl=",flvl 351 374 END IF 352 375 ELSE 353 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Fichier ", fname, " défini parXML."376 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_file: File ",trim(fname), " défined using XML." 354 377 CALL xios_set_file_attr(fname, enabled=.TRUE.) 355 378 END IF … … 360 383 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 361 384 SUBROUTINE wxios_add_field(fieldname, fieldgroup, fieldlongname, fieldunit) 362 USE netcdf 385 USE netcdf, only: nf90_fill_real 363 386 364 387 IMPLICIT NONE … … 385 408 !On ajoute le champ: 386 409 CALL xios_add_field(fieldgroup, field, fieldname) 387 !IF (prt_level >= 10) WRITE(lunout,*) " Xios.",fieldname,fieldgroup, fieldlongname, fieldunit410 !IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field: ",fieldname,fieldgroup, fieldlongname, fieldunit 388 411 389 412 !On rentre ses paramètres: 390 413 CALL xios_set_field_attr_hdl(field, standard_name=fieldlongname, unit=newunit, default_value=def) 391 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Champ ", fieldname, "cree:"392 IF (prt_level >= 10) WRITE(lunout,*) " Xios. long_name=",fieldlongname,"; unit=",newunit,"; default_value=",nf90_fill_real414 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field: Field ",trim(fieldname), "cree:" 415 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field: long_name=",trim(fieldlongname),"; unit=",trim(newunit),"; default_value=",nf90_fill_real 393 416 394 417 END SUBROUTINE wxios_add_field … … 436 459 IF (xios_is_valid_field(fieldname) .AND. .NOT. g_field_name == fieldname) THEN 437 460 !Si ce champ existe via XML (ie, dès le premier passage, ie g_field_name != fieldname) alors rien d'autre à faire 438 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Champ ", fieldname, "existevia XML"461 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field_to_file: Field ", trim(fieldname), "exists via XML" 439 462 g_flag_xml = .TRUE. 440 463 g_field_name = fieldname … … 443 466 !Si premier pssage et champ indéfini, alors on le créé 444 467 445 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Champ ", fieldname, "nexiste pas"468 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field_to_file: Field ", trim(fieldname), "does not exist" 446 469 447 470 !On le créé: 448 471 CALL wxios_add_field(fieldname, fieldgroup, fieldlongname, fieldunit) 449 472 IF (xios_is_valid_field(fieldname)) THEN 450 IF (prt_level >= 10) WRITE(lunout,*) " Xios. Champ ", fieldname, "cree"473 IF (prt_level >= 10) WRITE(lunout,*) "wxios_add_field_to_file: Field ", trim(fieldname), "created" 451 474 ENDIF 452 475 … … 472 495 IF (fdim.EQ.2) THEN 473 496 !Si c'est un champ 2D: 474 IF (prt_level >= 10) WRITE(lunout,*) "Xios. Champ 2D ", fieldname, " de ", "X"//fname ," configure:" 475 IF (prt_level >= 10) WRITE(lunout,*) "Xios. op=", TRIM(ADJUSTL(operation)) 476 IF (prt_level >= 10) WRITE(lunout,*) "Xios. freq_op=1ts","; lvl=",field_level 497 IF (prt_level >= 10) THEN 498 WRITE(lunout,*) "wxios_add_field_to_file: 2D Field ", trim(fieldname), " in ", "X"//trim(fname) ," configured with:" 499 WRITE(lunout,*) "wxios_add_field_to_file: op=", TRIM(ADJUSTL(operation)) 500 WRITE(lunout,*) "wxios_add_field_to_file: freq_op=1ts","; lvl=",field_level 501 ENDIF 477 502 ELSE 478 503 !Si 3D : … … 480 505 CALL xios_set_field_attr_hdl(field, axis_ref=TRIM(ADJUSTL(axis_id))) 481 506 482 IF (prt_level >= 10) WRITE(lunout,*) "Xios. Champ 3D ", fieldname, " de ", "X"//fname, "configure:" 483 IF (prt_level >= 10) WRITE(lunout,*) "Xios. freq_op=1ts","; lvl=",field_level 484 IF (prt_level >= 10) WRITE(lunout,*) "Xios. axe=",TRIM(ADJUSTL(axis_id)) 507 IF (prt_level >= 10) THEN 508 WRITE(lunout,*) "wxios_add_field_to_file: 3D Field",trim(fieldname), " in ", "X"//trim(fname), "configured with:" 509 WRITE(lunout,*) "wxios_add_field_to_file: freq_op=1ts","; lvl=",field_level 510 WRITE(lunout,*) "wxios_add_field_to_file: axis=",TRIM(ADJUSTL(axis_id)) 511 ENDIF 485 512 END IF 486 513 -
LMDZ5/trunk/libf/dyn3dmem/mod_const_mpi.F90
r1856 r1897 3 3 ! 4 4 MODULE mod_const_mpi 5 5 IMPLICIT NONE 6 6 INTEGER,SAVE :: COMM_LMDZ 7 7 INTEGER,SAVE :: MPI_REAL_LMDZ … … 12 12 SUBROUTINE Init_const_mpi 13 13 #ifdef CPP_IOIPSL 14 USE IOIPSL 14 USE IOIPSL, ONLY: getin 15 15 #else 16 16 ! if not using IOIPSL, we still need to use (a local version of) getin 17 USE ioipsl_getincom 17 USE ioipsl_getincom, only: getin 18 18 #endif 19 19 … … 53 53 SUBROUTINE Init_mpi 54 54 #ifdef CPP_XIOS 55 USE wxios 55 USE wxios, only: wxios_init 56 56 #endif 57 57 IMPLICIT NONE -
LMDZ5/trunk/libf/dyn3dpar/mod_const_mpi.F90
r1856 r1897 3 3 ! 4 4 MODULE mod_const_mpi 5 5 IMPLICIT NONE 6 6 INTEGER,SAVE :: COMM_LMDZ 7 7 INTEGER,SAVE :: MPI_REAL_LMDZ … … 12 12 SUBROUTINE Init_const_mpi 13 13 #ifdef CPP_IOIPSL 14 USE IOIPSL 14 USE IOIPSL, ONLY: getin 15 15 #else 16 16 ! if not using IOIPSL, we still need to use (a local version of) getin 17 USE ioipsl_getincom 17 USE ioipsl_getincom, only: getin 18 18 #endif 19 19 … … 22 22 INCLUDE 'mpif.h' 23 23 #endif 24 24 25 INTEGER :: ierr 25 26 INTEGER :: comp_id … … 52 53 SUBROUTINE Init_mpi 53 54 #ifdef CPP_XIOS 54 USE wxios 55 USE wxios, only: wxios_init 55 56 #endif 56 57 IMPLICIT NONE … … 73 74 COMM_LMDZ=MPI_COMM_WORLD 74 75 MPI_REAL_LMDZ=MPI_REAL8 75 76 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 77 ! Initialisation de XIOS 78 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 76 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 77 ! Initialisation de XIOS 78 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 79 79 #ifdef CPP_XIOS 80 80 CALL wxios_init("LMDZ", outcom=COMM_LMDZ) … … 88 88 #endif 89 89 #endif 90 90 91 END SUBROUTINE Init_mpi 91 92 -
LMDZ5/trunk/libf/phydev/iophy.F90
r1883 r1897 1 1 ! 2 ! $ Header$2 ! $Id: $ 3 3 ! 4 4 module iophy … … 40 40 41 41 subroutine init_iophy_new(rlat,rlon) 42 USE dimphy 43 USE mod_phys_lmdz_para 44 USE mod_grid_phy_lmdz 45 USE ioipsl 42 USE dimphy, only: klon 43 USE mod_phys_lmdz_para, only: gather, bcast, & 44 jj_nb, jj_begin, jj_end, ii_begin, ii_end, & 45 mpi_size, mpi_rank, klon_mpi, & 46 is_sequential, is_south_pole 47 USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo 48 #ifdef CPP_IOIPSL 49 USE ioipsl, only: flio_dom_set 50 #endif 51 #ifdef CPP_XIOS 52 use wxios, only: wxios_domain_param 53 #endif 46 54 implicit none 47 include 'dimensions.h' 55 include 'dimensions.h' 56 include 'iniprint.h' 48 57 real,dimension(klon),intent(in) :: rlon 49 58 real,dimension(klon),intent(in) :: rlat … … 60 69 INTEGER,DIMENSION(2) :: dhe 61 70 INTEGER :: i 71 integer :: data_ibegin,data_iend 62 72 63 73 CALL gather(rlat,rlat_glo) … … 109 119 #endif 110 120 #ifdef CPP_XIOS 111 ! Pour els soucis en MPI, réglage du masque:121 ! Set values for the mask: 112 122 IF (mpi_rank == 0) THEN 113 123 data_ibegin = 0 … … 122 132 END IF 123 133 124 WRITE(*,*) "TOTO mpirank=",mpi_rank,"iibeg=",ii_begin , "jjbeg=",jj_begin,"jjnb=",jj_nb,"jjend=",jj_end 125 126 !On initialise le domaine xios, maintenant que tout est connu: 127 !SUBROUTINE wxios_domain_param(dom_id, is_sequential, ni, nj, ni_glo, nj_glo, & 128 ! ibegin, iend, jbegin, jend, & 129 ! data_ni, data_ibegin, & 130 ! io_lat, io_lon) 134 if (prt_level>=10) then 135 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," iibegin=",ii_begin , " ii_end=",ii_end," jjbegin=",jj_begin," jj_nb=",jj_nb," jj_end=",jj_end 136 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," nbp_lon=",nbp_lon," nbp_lat=",nbp_lat 137 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend 138 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend 139 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole 140 endif 141 142 ! Initialize the XIOS domain coreesponding to this process: 131 143 CALL wxios_domain_param("dom_glo", is_sequential, nbp_lon, jj_nb, nbp_lon, nbp_lat, & 132 144 1, nbp_lon, ii_begin, ii_end, jj_begin, jj_end, & 133 145 klon_mpi+2*(nbp_lon-1), data_ibegin, data_iend, & 134 io_lat, io_lon )146 io_lat, io_lon,is_south_pole,mpi_rank) 135 147 #endif 136 148 !$OMP END MASTER … … 141 153 142 154 subroutine histbeg_phy(name,itau0,zjulian,dtime,nhori,nid_day) 143 USE dimphy 144 USE mod_phys_lmdz_para 145 use ioipsl 146 use write_field 155 USE mod_phys_lmdz_para, only: is_sequential, jj_begin, jj_end, jj_nb 156 use ioipsl, only: histbeg 147 157 implicit none 148 158 include 'dimensions.h' … … 173 183 ! SUBROUTINE histbeg_phyxios(name,itau0,zjulian,dtime,ffreq,lev,nhori,nid_day) 174 184 SUBROUTINE histbeg_phyxios(name,ffreq,lev) 175 USE dimphy 176 USE mod_phys_lmdz_para 177 ! use ioipsl 178 use write_field 185 USE mod_phys_lmdz_para, only: is_using_mpi, is_mpi_root 186 use wxios, only: wxios_add_file 179 187 IMPLICIT NONE 180 188 include 'dimensions.h' … … 206 214 207 215 subroutine histwrite2d_phy(nid,lpoint,name,itau,field) 208 USE dimphy 209 USE mod_phys_lmdz_para 210 USE ioipsl 216 USE dimphy, only: klon 217 USE mod_phys_lmdz_para, only: Gather_omp, grid1Dto2D_mpi, & 218 is_sequential, klon_mpi_begin, klon_mpi_end, & 219 jj_nb, klon_mpi 220 USE ioipsl, only: histwrite 211 221 implicit none 212 222 include 'dimensions.h' … … 263 273 264 274 subroutine histwrite3d_phy(nid,lpoint,name,itau,field) 265 USE dimphy 266 USE mod_phys_lmdz_para 267 268 use ioipsl 275 USE dimphy, only: klon 276 USE mod_phys_lmdz_para, only: Gather_omp, grid1Dto2D_mpi, & 277 is_sequential, klon_mpi_begin, klon_mpi_end, & 278 jj_nb, klon_mpi 279 USE ioipsl, only: histwrite 269 280 implicit none 270 281 include 'dimensions.h' … … 283 294 IF (size(field,1)/=klon) CALL abort_gcm('iophy::histwrite3d','Field first dimension not equal to klon',1) 284 295 nlev=size(field,2) 285 286 ! print*,'hist3d_phy mpi_rank npstn=',mpi_rank,npstn287 288 ! DO ip=1, npstn289 ! print*,'hist3d_phy mpi_rank nptabij',mpi_rank,nptabij(ip)290 ! ENDDO291 296 292 297 CALL Gather_omp(field,buffer_omp) … … 332 337 #ifdef CPP_XIOS 333 338 SUBROUTINE histwrite2d_xios(field_name,field) 334 USE dimphy 335 USE mod_phys_lmdz_para 336 USE wxios 339 USE dimphy, only: klon 340 USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, & 341 jj_nb, klon_mpi 342 USE wxios, only: wxios_write_2D 337 343 338 344 … … 345 351 346 352 REAL,DIMENSION(klon_mpi) :: buffer_omp 347 INTEGER, allocatable, DIMENSION(:) :: index2d348 353 REAL :: Field2d(iim,jj_nb) 349 354 350 INTEGER :: ip 351 REAL, ALLOCATABLE, DIMENSION(:) :: fieldok 352 353 IF (prt_level >= 9) WRITE(lunout,*)'Begin histrwrite2d_xios ',field_name 354 355 !Et sinon on.... écrit 355 IF (prt_level >= 10) WRITE(lunout,*)'Begin histrwrite2d_xios ',trim(field_name) 356 356 357 IF (SIZE(field)/=klon) CALL abort_gcm('iophy::histwrite2d_xios','Field first DIMENSION not equal to klon',1) 357 358 … … 360 361 CALL grid1Dto2D_mpi(buffer_omp,Field2d) 361 362 362 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 363 !ATTENTION, STATIONS PAS GEREES ! 364 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 365 !IF(.NOT.clef_stations(iff)) THEN 366 IF (.TRUE.) THEN 367 ALLOCATE(index2d(iim*jj_nb)) 368 ALLOCATE(fieldok(iim*jj_nb)) 369 370 371 CALL wxios_write_2D(field_name, Field2d) 372 373 ELSE 374 ALLOCATE(fieldok(npstn)) 375 ALLOCATE(index2d(npstn)) 376 377 IF (is_sequential) THEN 378 DO ip=1, npstn 379 fieldok(ip)=buffer_omp(nptabij(ip)) 380 ENDDO 381 ELSE 382 DO ip=1, npstn 383 PRINT*,'histwrite2d_xios is_sequential npstn ip namenptabij',npstn,ip,field_name,nptabij(ip) 384 IF(nptabij(ip).GE.klon_mpi_begin.AND. & 385 nptabij(ip).LE.klon_mpi_end) THEN 386 fieldok(ip)=buffer_omp(nptabij(ip)-klon_mpi_begin+1) 387 ENDIF 388 ENDDO 389 ENDIF 390 391 ENDIF 392 393 deallocate(index2d) 394 deallocate(fieldok) 363 CALL wxios_write_2D(field_name, Field2d) 395 364 !$OMP END MASTER 396 365 397 IF (prt_level >= 9) WRITE(lunout,*)'End histrwrite2d_xios ',field_name366 IF (prt_level >= 10) WRITE(lunout,*)'End histrwrite2d_xios ',trim(field_name) 398 367 END SUBROUTINE histwrite2d_xios 399 368 #endif … … 404 373 #ifdef CPP_XIOS 405 374 SUBROUTINE histwrite3d_xios(field_name, field) 406 USE dimphy 407 USE mod_phys_lmdz_para 408 USE wxios 375 USE dimphy, only: klon, klev 376 USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, & 377 jj_nb, klon_mpi 378 USE wxios, only: wxios_write_3D 409 379 410 380 … … 419 389 REAL :: Field3d(iim,jj_nb,SIZE(field,2)) 420 390 INTEGER :: ip, n, nlev 421 INTEGER, ALLOCATABLE, DIMENSION(:) :: index3d 422 REAL,ALLOCATABLE, DIMENSION(:,:) :: fieldok 423 424 IF (prt_level >= 9) write(lunout,*)'Begin histrwrite3d_xios ',field_name 391 392 IF (prt_level >= 10) write(lunout,*)'Begin histrwrite3d_xios ',trim(field_name) 425 393 426 394 !Et on.... écrit … … 433 401 CALL grid1Dto2D_mpi(buffer_omp,field3d) 434 402 435 IF(.TRUE.)THEN 436 ALLOCATE(index3d(iim*jj_nb*nlev)) 437 ALLOCATE(fieldok(iim*jj_nb,nlev)) 438 CALL wxios_write_3D(field_name, Field3d(:,:,1:klev)) 439 440 ELSE 441 nlev=size(field,2) 442 ALLOCATE(index3d(npstn*nlev)) 443 ALLOCATE(fieldok(npstn,nlev)) 444 445 IF (is_sequential) THEN 446 DO n=1, nlev 447 DO ip=1, npstn 448 fieldok(ip,n)=buffer_omp(nptabij(ip),n) 449 ENDDO 450 ENDDO 451 ELSE 452 DO n=1, nlev 453 DO ip=1, npstn 454 IF(nptabij(ip).GE.klon_mpi_begin.AND. & 455 nptabij(ip).LE.klon_mpi_end) THEN 456 fieldok(ip,n)=buffer_omp(nptabij(ip)-klon_mpi_begin+1,n) 457 ENDIF 458 ENDDO 459 ENDDO 460 ENDIF 461 ENDIF 462 deallocate(index3d) 463 deallocate(fieldok) 403 CALL wxios_write_3D(field_name, Field3d(:,:,1:klev)) 464 404 !$OMP END MASTER 465 405 466 IF (prt_level >= 9) write(lunout,*)'End histrwrite3d_xios ',field_name406 IF (prt_level >= 10) write(lunout,*)'End histrwrite3d_xios ',trim(field_name) 467 407 END SUBROUTINE histwrite3d_xios 468 408 #endif -
LMDZ5/trunk/libf/phydev/physiq.F90
r1882 r1897 21 21 22 22 #ifdef CPP_XIOS 23 USE wxios 23 USE wxios, only: wxios_add_vaxis, wxios_set_timestep, wxios_closedef, & 24 wxios_update_calendar, histwrite_phy 24 25 #endif 25 26 … … 168 169 169 170 170 !print*,'PHYDEV: itau=',itau171 print*,'PHYDEV: itau=',itau 171 172 172 173 ! write some outputs: … … 186 187 !Increment XIOS time 187 188 CALL wxios_update_calendar(itau) 189 !$OMP END MASTER 190 !$OMP BARRIER 188 191 189 192 !Send fields to XIOS: … … 192 195 CALL histwrite_phy("v",v) 193 196 CALL histwrite_phy("ps",paprs(:,1)) 194 !$OMP END MASTER195 197 #endif 196 198 … … 200 202 endif 201 203 202 end 204 end subroutine physiq -
LMDZ5/trunk/libf/phylmd/iophy.F90
r1852 r1897 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 MODULE iophy 5 6 USE phys_output_var_mod7 #ifdef CPP_XIOS8 USE wxios9 #endif10 11 #ifdef CPP_XIOS12 USE wxios13 #endif14 5 15 6 ! abd REAL,private,allocatable,DIMENSION(:),save :: io_lat … … 49 40 50 41 SUBROUTINE init_iophy_new(rlat,rlon) 51 USE dimphy 52 USE mod_phys_lmdz_para 53 USE mod_grid_phy_lmdz 54 USE ioipsl 55 42 USE dimphy, only: klon 43 USE mod_phys_lmdz_para, only: gather, bcast, & 44 jj_nb, jj_begin, jj_end, ii_begin, ii_end, & 45 mpi_size, mpi_rank, klon_mpi, & 46 is_sequential, is_south_pole 47 USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo 48 #ifdef CPP_IOIPSL 49 USE ioipsl, only: flio_dom_set 50 #endif 51 #ifdef CPP_XIOS 52 use wxios, only: wxios_domain_param 53 #endif 56 54 IMPLICIT NONE 57 INCLUDE 'dimensions.h' 55 INCLUDE 'dimensions.h' 56 include 'iniprint.h' 58 57 REAL,DIMENSION(klon),INTENT(IN) :: rlon 59 58 REAL,DIMENSION(klon),INTENT(IN) :: rlat … … 121 120 #endif 122 121 #ifdef CPP_XIOS 123 ! Pour els soucis en MPI, réglage du masque:122 ! Set values for the mask: 124 123 IF (mpi_rank == 0) THEN 125 124 data_ibegin = 0 … … 134 133 END IF 135 134 136 WRITE(*,*) "TOTO mpirank=",mpi_rank,"iibeg=",ii_begin , "jjbeg=",jj_begin,"jjnb=",jj_nb,"jjend=",jj_end 137 138 !On initialise le domaine xios, maintenant que tout est connu: 139 !SUBROUTINE wxios_domain_param(dom_id, is_sequential, ni, nj, ni_glo, nj_glo, & 140 ! ibegin, iend, jbegin, jend, & 141 ! data_ni, data_ibegin, & 142 ! io_lat, io_lon) 135 if (prt_level>=10) then 136 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," iibegin=",ii_begin , " ii_end=",ii_end," jjbegin=",jj_begin," jj_nb=",jj_nb," jj_end=",jj_end 137 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," nbp_lon=",nbp_lon," nbp_lat=",nbp_lat 138 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend 139 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend 140 write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole 141 endif 142 143 ! Initialize the XIOS domain coreesponding to this process: 143 144 CALL wxios_domain_param("dom_glo", is_sequential, nbp_lon, jj_nb, nbp_lon, nbp_lat, & 144 145 1, nbp_lon, ii_begin, ii_end, jj_begin, jj_end, & 145 146 klon_mpi+2*(nbp_lon-1), data_ibegin, data_iend, & 146 io_lat, io_lon )147 io_lat, io_lon,is_south_pole,mpi_rank) 147 148 #endif 148 149 !$OMP END MASTER … … 151 152 152 153 SUBROUTINE init_iophy(lat,lon) 153 USE dimphy154 USE mod_phys_lmdz_para155 USE ioipsl 154 USE mod_phys_lmdz_para, only: jj_begin, jj_end, ii_begin, ii_end, jj_nb, & 155 mpi_size, mpi_rank 156 USE ioipsl, only: flio_dom_set 156 157 IMPLICIT NONE 157 158 INCLUDE 'dimensions.h' … … 194 195 195 196 SUBROUTINE histbeg_phyxios(name,itau0,zjulian,dtime,ffreq,lev,nhori,nid_day) 196 USE dimphy 197 USE mod_phys_lmdz_para 198 use ioipsl 199 use write_field 197 ! USE dimphy 198 USE mod_phys_lmdz_para, only: is_sequential, is_using_mpi, is_mpi_root, & 199 jj_begin, jj_end, jj_nb 200 use ioipsl, only: histbeg 201 #ifdef CPP_XIOS 202 use wxios, only: wxios_add_file 203 #endif 200 204 IMPLICIT NONE 201 205 include 'dimensions.h' … … 231 235 232 236 SUBROUTINE histbeg_phy(name,itau0,zjulian,dtime,nhori,nid_day) 233 USE dimphy 234 USE mod_phys_lmdz_para 235 use ioipsl 236 use write_field 237 238 USE mod_phys_lmdz_para, only: jj_begin, jj_end, jj_nb, is_sequential 239 use ioipsl, only: histbeg 240 237 241 IMPLICIT NONE 238 242 include 'dimensions.h' … … 263 267 plon,plat,plon_bounds,plat_bounds, & 264 268 nname,itau0,zjulian,dtime,nnhori,nnid_day) 265 USE dimphy 266 USE mod_phys_lmdz_para 267 USE mod_grid_phy_lmdz 268 use ioipsl 269 use write_field 269 USE dimphy, only: klon 270 USE mod_phys_lmdz_para, only: gather, bcast, & 271 is_sequential, klon_mpi_begin, klon_mpi_end, & 272 mpi_rank 273 USE mod_grid_phy_lmdz, only: klon_glo 274 use ioipsl, only: histbeg 275 270 276 IMPLICIT NONE 271 277 include 'dimensions.h' … … 383 389 ! 384 390 ENDDO 385 ! print*,'iophy is_sequential nname, nnhori, nnid_day=',trim(nname),nnhori,nnid_day 391 386 392 #ifndef CPP_NO_IOIPSL 387 393 call histbeg(nname,pim,plon,plon_bounds, & … … 438 444 SUBROUTINE histdef2d_old (iff,lpoint,flag_var,nomvar,titrevar,unitvar) 439 445 440 USE ioipsl 441 USE dimphy442 USE mod_phys_lmdz_para443 446 USE ioipsl, only: histdef 447 USE mod_phys_lmdz_para, only: jj_nb 448 use phys_output_var_mod, only: type_ecri, zoutm, zdtime_moy, lev_files, & 449 nid_files, nhorim, swaero_diag, nfiles 444 450 IMPLICIT NONE 445 451 … … 492 498 SUBROUTINE histdef3d_old (iff,lpoint,flag_var,nomvar,titrevar,unitvar) 493 499 494 USE ioipsl 495 USE dimphy 496 USE mod_phys_lmdz_para 497 500 USE ioipsl, only: histdef 501 USE dimphy, only: klev 502 USE mod_phys_lmdz_para, only: jj_nb 503 use phys_output_var_mod, only: type_ecri, zoutm, lev_files, nid_files, & 504 nhorim, zdtime_moy, levmin, levmax, & 505 nvertm, nfiles 498 506 IMPLICIT NONE 499 507 … … 547 555 SUBROUTINE histdef2d (iff,var) 548 556 549 USE ioipsl 550 USE dimphy 551 USE mod_phys_lmdz_para 552 557 USE ioipsl, only: histdef 558 USE mod_phys_lmdz_para, only: jj_nb 559 use phys_output_var_mod, only: ctrl_out, type_ecri_files, zoutm, zdtime_moy, & 560 clef_stations, phys_out_filenames, lev_files, & 561 nid_files, nhorim, swaero_diag 562 #ifdef CPP_XIOS 563 use wxios, only: wxios_add_field_to_file 564 #endif 553 565 IMPLICIT NONE 554 566 … … 618 630 SUBROUTINE histdef3d (iff,var) 619 631 620 USE ioipsl 621 USE dimphy 622 USE mod_phys_lmdz_para 623 632 USE ioipsl, only: histdef 633 USE dimphy, only: klev 634 USE mod_phys_lmdz_para, only: jj_nb 635 use phys_output_var_mod, only: ctrl_out, type_ecri_files, zoutm, zdtime_moy, & 636 clef_stations, phys_out_filenames, lev_files, & 637 nid_files, nhorim, swaero_diag, levmin, & 638 levmax, nvertm 639 #ifdef CPP_XIOS 640 use wxios, only: wxios_add_field_to_file 641 #endif 624 642 IMPLICIT NONE 625 643 … … 686 704 !!! Lecture des noms et niveau de sortie des variables dans output.def 687 705 ! en utilisant les routines getin de IOIPSL 688 use ioipsl 689 706 use ioipsl, only: getin 707 use phys_output_var_mod, only: nfiles 690 708 IMPLICIT NONE 691 709 … … 705 723 706 724 SUBROUTINE histwrite2d_phy_old(nid,lpoint,name,itau,field) 707 USE dimphy 708 USE mod_phys_lmdz_para 709 USE ioipsl 725 USE dimphy, only: klon 726 USE mod_phys_lmdz_para, only: Gather_omp, grid1Dto2D_mpi, & 727 is_sequential, klon_mpi_begin, klon_mpi_end, & 728 jj_nb, klon_mpi 729 USE ioipsl, only: histwrite 710 730 IMPLICIT NONE 711 731 include 'dimensions.h' … … 733 753 ALLOCATE(index2d(iim*jj_nb)) 734 754 ALLOCATE(fieldok(iim*jj_nb)) 735 IF (prt_level >= 9) write(lunout,*)'Sending ',name,' to IOIPSL'755 IF (prt_level >= 10) write(lunout,*)'Sending ',name,' to IOIPSL' 736 756 CALL histwrite(nid,name,itau,Field2d,iim*jj_nb,index2d) 737 IF (prt_level >= 9) write(lunout,*)'Finished sending ',name,' to IOIPSL'757 IF (prt_level >= 10) write(lunout,*)'Finished sending ',name,' to IOIPSL' 738 758 else 739 759 ALLOCATE(fieldok(npstn)) … … 755 775 ENDDO 756 776 endif 757 IF (prt_level >= 9) write(lunout,*)'Sending ',name,' to IOIPSL'777 IF (prt_level >= 10) write(lunout,*)'Sending ',name,' to IOIPSL' 758 778 CALL histwrite(nid,name,itau,fieldok,npstn,index2d) 759 IF (prt_level >= 9) write(lunout,*)'Finished sending ',name,' to IOIPSL'779 IF (prt_level >= 10) write(lunout,*)'Finished sending ',name,' to IOIPSL' 760 780 ! 761 781 endif … … 768 788 769 789 SUBROUTINE histwrite3d_phy_old(nid,lpoint,name,itau,field) 770 USE dimphy 771 USE mod_phys_lmdz_para 772 773 use ioipsl 790 USE dimphy, only: klon 791 USE mod_phys_lmdz_para, only: Gather_omp, grid1Dto2D_mpi, & 792 is_sequential, klon_mpi_begin, klon_mpi_end, & 793 jj_nb, klon_mpi 794 use ioipsl, only: histwrite 774 795 IMPLICIT NONE 775 796 include 'dimensions.h' … … 791 812 nlev=size(field,2) 792 813 793 ! print*,'hist3d_phy mpi_rank npstn=',mpi_rank,npstn794 795 ! DO ip=1, npstn796 ! print*,'hist3d_phy mpi_rank nptabij',mpi_rank,nptabij(ip)797 ! ENDDO798 799 814 CALL Gather_omp(field,buffer_omp) 800 815 !$OMP MASTER … … 803 818 ALLOCATE(index3d(iim*jj_nb*nlev)) 804 819 ALLOCATE(fieldok(iim*jj_nb,nlev)) 805 IF (prt_level >= 9) write(lunout,*)'Sending ',name,' to IOIPSL'820 IF (prt_level >= 10) write(lunout,*)'Sending ',name,' to IOIPSL' 806 821 CALL histwrite(nid,name,itau,Field3d,iim*jj_nb*nlev,index3d) 807 IF (prt_level >= 9) write(lunout,*)'Finished sending ',name,' to IOIPSL'822 IF (prt_level >= 10) write(lunout,*)'Finished sending ',name,' to IOIPSL' 808 823 else 809 824 nlev=size(field,2) … … 829 844 ENDDO 830 845 endif 831 IF (prt_level >= 9) write(lunout,*)'Sending ',name,' to IOIPSL'846 IF (prt_level >= 10) write(lunout,*)'Sending ',name,' to IOIPSL' 832 847 CALL histwrite(nid,name,itau,fieldok,npstn*nlev,index3d) 833 IF (prt_level >= 9) write(lunout,*)'Finished sending ',name,' to IOIPSL'848 IF (prt_level >= 10) write(lunout,*)'Finished sending ',name,' to IOIPSL' 834 849 endif 835 850 deallocate(index3d) … … 844 859 ! ug NOUVELLE VERSION DES WRITE AVEC LA BOUCLE DO RENTREE 845 860 SUBROUTINE histwrite2d_phy(var,field, STD_iff) 846 USE dimphy 847 USE mod_phys_lmdz_para 848 USE ioipsl 849 850 851 852 #ifdef CPP_XIOS 853 USE wxios 861 USE dimphy, only: klon 862 USE mod_phys_lmdz_para, only: gather_omp, grid1dto2d_mpi, & 863 jj_nb, klon_mpi, klon_mpi_begin, & 864 klon_mpi_end, is_sequential 865 USE ioipsl, only: histwrite 866 use phys_output_var_mod, only: ctrl_out, clef_files, lev_files, & 867 nfiles, vars_defined, clef_stations, & 868 nid_files 869 #ifdef CPP_XIOS 870 USE wxios, only: wxios_write_2D 854 871 #endif 855 872 … … 872 889 REAL, ALLOCATABLE, DIMENSION(:) :: fieldok 873 890 874 IF (prt_level >= 9) WRITE(lunout,*)'Begin histrwrite2d ',var%name891 IF (prt_level >= 10) WRITE(lunout,*)'Begin histwrite2d_phy ',trim(var%name) 875 892 876 893 ! ug RUSTINE POUR LES STD LEVS..... … … 896 913 897 914 !Et sinon on.... écrit 898 IF (SIZE(field)/=klon) CALL abort_gcm('iophy::histwrite2d ','Field first DIMENSION not equal to klon',1)915 IF (SIZE(field)/=klon) CALL abort_gcm('iophy::histwrite2d_phy','Field first DIMENSION not equal to klon',1) 899 916 900 CALL Gather_omp(field,buffer_omp) 917 if (prt_level >= 10) then 918 write(lunout,*)"histwrite2d_phy: .not.vars_defined ; time to gather and write ", & 919 trim(var%name) 920 endif 921 922 CALL Gather_omp(field,buffer_omp) 901 923 !$OMP MASTER 902 924 CALL grid1Dto2D_mpi(buffer_omp,Field2d) 903 925 904 926 ! La boucle sur les fichiers: 905 927 DO iff=iff_beg, iff_end … … 914 936 #ifdef CPP_XIOS 915 937 IF (iff == iff_beg) THEN 916 CALL wxios_write_2D(var%name, Field2d) 938 if (prt_level >= 10) then 939 write(lunout,*)"histwrite2d_phy: .NOT.clef_stations(iff) and iff==iff_beg, call wxios_write_2D" 940 endif 941 CALL wxios_write_2D(var%name, Field2d) 917 942 ENDIF 918 943 #endif … … 922 947 923 948 IF (is_sequential) THEN 949 DO ip=1, npstn 950 fieldok(ip)=buffer_omp(nptabij(ip)) 951 ENDDO 952 ELSE 924 953 DO ip=1, npstn 925 fieldok(ip)=buffer_omp(nptabij(ip)) 926 ENDDO 927 ELSE 928 DO ip=1, npstn 929 PRINT*,'histwrite2d is_sequential npstn ip namenptabij',npstn,ip,var%name,nptabij(ip) 954 write(lunout,*)'histwrite2d_phy is_sequential npstn ip namenptabij',npstn,ip,var%name,nptabij(ip) 930 955 IF(nptabij(ip).GE.klon_mpi_begin.AND. & 931 956 nptabij(ip).LE.klon_mpi_end) THEN … … 933 958 ENDIF 934 959 ENDDO 935 ENDIF 960 ENDIF ! of IF (is_sequential) 936 961 #ifndef CPP_NO_IOIPSL 962 if (prt_level >= 10) then 963 write(lunout,*)"histwrite2d_phy: clef_stations(iff) and iff==iff_beg, call wxios_write_2D" 964 endif 937 965 CALL histwrite(nid_files(iff),var%name,itau_iophy,fieldok,npstn,index2d) 938 966 #endif 939 ENDIF 967 ENDIF ! of IF(.NOT.clef_stations(iff)) 940 968 941 969 deallocate(index2d) 942 970 deallocate(fieldok) 943 971 ENDIF !levfiles 944 ENDDO 972 ENDDO ! of DO iff=iff_beg, iff_end 945 973 !$OMP END MASTER 946 974 ENDIF ! vars_defined 947 IF (prt_level >= 9) WRITE(lunout,*)'End histrwrite2d ',var%name975 IF (prt_level >= 10) WRITE(lunout,*)'End histwrite2d_phy ',trim(var%name) 948 976 END SUBROUTINE histwrite2d_phy 949 977 … … 951 979 ! ug NOUVELLE VERSION DES WRITE AVEC LA BOUCLE DO RENTREE 952 980 SUBROUTINE histwrite3d_phy(var, field, STD_iff) 953 USE dimphy 954 USE mod_phys_lmdz_para 955 USE ioipsl 956 957 958 #ifdef CPP_XIOS 959 ! USE WXIOS 981 USE dimphy, only: klon, klev 982 USE mod_phys_lmdz_para, only: gather_omp, grid1dto2d_mpi, & 983 jj_nb, klon_mpi, klon_mpi_begin, & 984 klon_mpi_end, is_sequential 985 USE ioipsl, only: histwrite 986 use phys_output_var_mod, only: ctrl_out, clef_files, lev_files, & 987 nfiles, vars_defined, clef_stations, & 988 nid_files 989 #ifdef CPP_XIOS 990 USE wxios, only: wxios_write_3D 960 991 #endif 961 992 … … 977 1008 REAL,ALLOCATABLE, DIMENSION(:,:) :: fieldok 978 1009 979 IF (prt_level >= 9) write(lunout,*)'Begin histrwrite3d ',var%name1010 IF (prt_level >= 10) write(lunout,*)'Begin histrwrite3d ',var%name 980 1011 981 1012 ! ug RUSTINE POUR LES STD LEVS..... … … 1057 1088 !$OMP END MASTER 1058 1089 ENDIF ! vars_defined 1059 IF (prt_level >= 9) write(lunout,*)'End histrwrite3d ',var%name1090 IF (prt_level >= 10) write(lunout,*)'End histrwrite3d ',var%name 1060 1091 END SUBROUTINE histwrite3d_phy 1061 1092 … … 1064 1095 #ifdef CPP_XIOS 1065 1096 SUBROUTINE histwrite2d_xios(field_name,field) 1066 USE dimphy 1067 USE mod_phys_lmdz_para 1068 USE wxios 1097 USE dimphy, only: klon 1098 USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, & 1099 is_sequential, klon_mpi_begin, klon_mpi_end, & 1100 jj_nb, klon_mpi 1101 USE wxios, only: wxios_write_2D 1069 1102 1070 1103 … … 1083 1116 REAL, ALLOCATABLE, DIMENSION(:) :: fieldok 1084 1117 1085 IF (prt_level >= 9) WRITE(lunout,*)'Begin histrwrite2d_xios ',field_name1118 IF (prt_level >= 10) WRITE(lunout,*)'Begin histrwrite2d_xios ',field_name 1086 1119 1087 1120 !Et sinon on.... écrit … … 1127 1160 !$OMP END MASTER 1128 1161 1129 IF (prt_level >= 9) WRITE(lunout,*)'End histrwrite2d_xios ',field_name1162 IF (prt_level >= 10) WRITE(lunout,*)'End histrwrite2d_xios ',field_name 1130 1163 END SUBROUTINE histwrite2d_xios 1131 1164 … … 1133 1166 ! ug NOUVELLE VERSION DES WRITE AVEC LA BOUCLE DO RENTREE 1134 1167 SUBROUTINE histwrite3d_xios(field_name, field) 1135 USE dimphy 1136 USE mod_phys_lmdz_para 1137 USE wxios 1168 USE dimphy, only: klon, klev 1169 USE mod_phys_lmdz_para, only: gather_omp, grid1Dto2D_mpi, & 1170 is_sequential, klon_mpi_begin, klon_mpi_end, & 1171 jj_nb, klon_mpi 1172 USE wxios, only: wxios_write_3D 1138 1173 1139 1174 … … 1151 1186 REAL,ALLOCATABLE, DIMENSION(:,:) :: fieldok 1152 1187 1153 IF (prt_level >= 9) write(lunout,*)'Begin histrwrite3d_xios ',field_name1188 IF (prt_level >= 10) write(lunout,*)'Begin histrwrite3d_xios ',field_name 1154 1189 1155 1190 !Et on.... écrit … … 1197 1232 !$OMP END MASTER 1198 1233 1199 IF (prt_level >= 9) write(lunout,*)'End histrwrite3d_xios ',field_name1234 IF (prt_level >= 10) write(lunout,*)'End histrwrite3d_xios ',field_name 1200 1235 END SUBROUTINE histwrite3d_xios 1201 1236 #endif -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r1865 r1897 26 26 ! defined and initialised in phys_output_mod.F90 27 27 28 USE dimphy 29 USE control_mod 30 USE phys_output_ctrlout_mod 31 USE phys_state_var_mod 32 USE phys_local_var_mod 33 USE phys_output_var_mod 34 USE indice_sol_mod 35 USE infotrac 36 USE comgeomphy 37 USE surface_data, ONLY : type_ocean, ok_veget, ok_snow 38 USE aero_mod 39 USE ioipsl 40 USE write_field_phy 41 USE iophy 42 USE mod_phys_lmdz_para 43 USE netcdf, ONLY : nf90_fill_real 28 USE dimphy, only: klon, klev, klevp1 29 USE control_mod, only: day_step, iphysiq 30 USE phys_output_ctrlout_mod, only: o_phis, o_aire, is_ter, is_lic, is_oce, & 31 is_ave, is_sic, o_contfracATM, o_contfracOR, & 32 o_aireTER, o_flat, o_slp, o_tsol, & 33 o_t2m, o_t2m_min, o_t2m_max, & 34 o_q2m, o_ustar, o_u10m, o_v10m, & 35 o_wind10m, o_wind10max, o_sicf, & 36 o_psol, o_mass, o_qsurf, o_qsol, & 37 o_precip, o_ndayrain, o_plul, o_pluc, & 38 o_snow, o_msnow, o_fsnow, o_evap, & 39 o_tops, o_tops0, o_topl, o_topl0, & 40 o_SWupTOA, o_SWupTOAclr, o_SWdnTOA, & 41 o_SWdnTOAclr, o_nettop, o_SWup200, & 42 o_SWup200clr, o_SWdn200, o_SWdn200clr, & 43 o_LWup200, o_LWup200clr, o_LWdn200, & 44 o_LWdn200clr, o_sols, o_sols0, & 45 o_soll, o_radsol, o_soll0, o_SWupSFC, & 46 o_SWupSFCclr, o_SWdnSFC, o_SWdnSFCclr, & 47 o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, & 48 o_LWdnSFCclr, o_bils, o_bils_diss, & 49 o_bils_ec, o_bils_tke, o_bils_kinetic, & 50 o_bils_latent, o_bils_enthalp, o_sens, & 51 o_fder, o_ffonte, o_fqcalving, o_fqfonte, & 52 o_taux, o_tauy, o_snowsrf, o_qsnow, & 53 o_snowhgt, o_toice, o_sissnow, o_runoff, & 54 o_albslw3, o_pourc_srf, o_fract_srf, & 55 o_taux_srf, o_tauy_srf, o_tsol_srf, & 56 o_evappot_srf, o_ustar_srf, o_u10m_srf, & 57 o_v10m_srf, o_t2m_srf, o_evap_srf, & 58 o_sens_srf, o_lat_srf, o_flw_srf, & 59 o_fsw_srf, o_wbils_srf, o_wbilo_srf, & 60 o_tke_srf, o_tke_max_srf, o_wstar, & 61 o_cdrm, o_cdrh, o_cldl, o_cldm, o_cldh, & 62 o_cldt, o_cldq, o_lwp, o_iwp, o_ue, & 63 o_ve, o_uq, o_vq, o_cape, o_pbase, & 64 o_ptop, o_fbase, o_plcl, o_plfc, & 65 o_wbeff, o_cape_max, o_upwd, o_Ma, & 66 o_dnwd, o_dnwd0, o_ftime_con, o_mc, & 67 o_prw, o_s_pblh, o_s_pblt, o_s_lcl, & 68 o_s_therm, o_uSTDlevs, o_vSTDlevs, & 69 o_wSTDlevs, o_zSTDlevs, o_qSTDlevs, & 70 o_tSTDlevs, epsfra, o_t_oce_sic, & 71 o_ale_bl, o_alp_bl, o_ale_wk, o_alp_wk, & 72 o_ale, o_alp, o_cin, o_WAPE, o_wake_h, & 73 o_wake_s, o_wake_deltat, o_wake_deltaq, & 74 o_wake_omg, o_dtwak, o_dqwak, o_Vprecip, & 75 o_ftd, o_fqd, o_wdtrainA, o_wdtrainM, & 76 o_n2, o_s2, o_proba_notrig, & 77 o_random_notrig, o_ale_bl_stat, & 78 o_ale_bl_trig, o_alp_bl_det, & 79 o_alp_bl_fluct_m, o_alp_bl_fluct_tke, & 80 o_alp_bl_conv, o_alp_bl_stat, o_slab_bils, & 81 o_weakinv, o_dthmin, o_cldtau, & 82 o_cldemi, o_pr_con_l, o_pr_con_i, & 83 o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, & 84 o_rh2m, o_rh2m_min, o_rh2m_max, & 85 o_qsat2m, o_tpot, o_tpote, o_SWnetOR, & 86 o_SWdownOR, o_LWdownOR, o_snowl, & 87 o_solldown, o_dtsvdfo, o_dtsvdft, & 88 o_dtsvdfg, o_dtsvdfi, o_rugs, o_od550aer, & 89 o_od865aer, o_absvisaer, o_od550lt1aer, & 90 o_sconcso4, o_sconcoa, o_sconcbc, & 91 o_sconcss, o_sconcdust, o_concso4, & 92 o_concoa, o_concbc, o_concss, o_concdust, & 93 o_loadso4, o_loadoa, o_loadbc, o_loadss, & 94 o_loaddust, o_tausumaero, o_topswad, & 95 o_topswad0, o_solswad, o_solswad0, & 96 o_swtoaas_nat, o_swsrfas_nat, & 97 o_swtoacs_nat, o_swtoaas_ant, & 98 o_swsrfas_ant, o_swtoacs_ant, & 99 o_swsrfcs_ant, o_swtoacf_nat, & 100 o_swsrfcf_nat, o_swtoacf_ant, & 101 o_swsrfcs_nat, o_swsrfcf_ant, & 102 o_swtoacf_zero, o_swsrfcf_zero, & 103 o_topswai, o_solswai, o_scdnc, & 104 o_cldncl, o_reffclws, o_reffclwc, & 105 o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, & 106 o_lcc3dstra, o_reffclwtop, o_ec550aer, & 107 o_lwcon, o_iwcon, o_temp, o_theta, & 108 o_ovapinit, o_ovap, o_oliq, o_geop, & 109 o_vitu, o_vitv, o_vitw, o_pres, o_paprs, & 110 o_zfull, o_zhalf, o_rneb, o_rnebcon, & 111 o_rnebls, o_rhum, o_ozone, o_ozone_light, & 112 o_dtphy, o_dqphy, o_albe_srf, o_rugs_srf, & 113 o_ages_srf, o_alb1, o_alb2, o_tke, & 114 o_tke_max, o_kz, o_kz_max, o_clwcon, & 115 o_dtdyn, o_dqdyn, o_dudyn, o_dvdyn, & 116 o_dtcon, o_tntc, o_ducon, o_dvcon, & 117 o_dqcon, o_tnhusc, o_tnhusc, o_dtlsc, & 118 o_dtlschr, o_dqlsc, o_beta_prec, & 119 o_dtlscth, o_dtlscst, o_dqlscth, & 120 o_dqlscst, o_plulth, o_plulst, & 121 o_ptconvth, o_lmaxth, o_dtvdf, & 122 o_dtdis, o_dqvdf, o_dteva, o_dqeva, & 123 o_ptconv, o_ratqs, o_dtthe, o_ftime_th, & 124 o_f_th, o_e_th, o_w_th, o_q_th, & 125 o_a_th, o_d_th, o_f0_th, o_zmax_th, & 126 o_dqthe, o_dtajs, o_dqajs, o_dtswr, & 127 o_dtsw0, o_dtlwr, o_dtlw0, o_dtec, & 128 o_duvdf, o_dvvdf, o_duoro, o_dvoro, & 129 o_dtoro, o_dulif, o_dvlif, o_dtlif, & 130 o_duhin, o_dvhin, o_dthin, o_rsu, & 131 o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, & 132 o_rlucs, o_rldcs, o_tnt, o_tntr, & 133 o_tntscpbl, o_tnhus, o_tnhusscpbl, & 134 o_evu, o_h2o, o_mcd, o_dmc, o_ref_liq, & 135 o_ref_ice, o_rsut4co2, o_rlut4co2, & 136 o_rsutcs4co2, o_rlutcs4co2, o_rsu4co2, & 137 o_rlu4co2, o_rsucs4co2, o_rlucs4co2, & 138 o_rsd4co2, o_rld4co2, o_rsdcs4co2, & 139 o_rldcs4co2, o_tnondef, o_ta, o_zg, & 140 o_hus, o_hur, o_ua, o_va, o_wap, & 141 o_psbg, o_tro3, o_tro3_daylight, & 142 o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, & 143 o_wxT, o_uxu, o_vxv, o_TxT, o_trac, & 144 o_dtr_vdf, o_dtr_the, o_dtr_con, & 145 o_dtr_lessi_impa, o_dtr_lessi_nucl, & 146 o_dtr_insc, o_dtr_bcscav, o_dtr_evapls, & 147 o_dtr_ls, o_dtr_trsp, o_dtr_sscav, & 148 o_dtr_sat, o_dtr_uscav, o_trac_cum 149 150 USE phys_state_var_mod, only: pctsrf, paire_ter, rain_fall, snow_fall, & 151 nday_rain, rain_con, snow_con, & 152 topsw, toplw, toplw0, swup, swdn, & 153 topsw0, swup0, swdn0, SWup200, SWup200clr, & 154 SWdn200, SWdn200clr, LWup200, LWup200clr, & 155 LWdn200, LWdn200clr, solsw, solsw0, sollw, & 156 radsol, sollw0, sollwdown, sollw, & 157 sollwdownclr, lwdn0, ftsol, ustar, u10m, & 158 v10m, pbl_tke, wstar, cape, ema_pcb, ema_pct, & 159 ema_cbmf, Ma, fm_therm, ale_bl, alp_bl, ale, & 160 alp, cin, wake_pe, wake_s, wake_deltat, & 161 wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, & 162 rnebcon, wo, falb1, albsol2, coefh, clwcon0, & 163 ratqs, entr_therm, zqasc, detr_therm, f0, heat, & 164 heat0, cool, cool0, lwup, lwdn, lwup0, coefm, & 165 swupp, lwupp, swup0p, lwup0p, swdnp, lwdnp, & 166 swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, & 167 vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, & 168 vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, & 169 T2sumSTD, nlevSTD 170 171 USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, & 172 zu10m, zv10m, zq2m, zustar, zxqsurf, qsol, & 173 rain_lsc, snow_lsc, evap, bils, sens, fder, & 174 zxffonte, zxfqcalving, zxfqfonte, fluxu, & 175 fluxv, zxsnow, qsnow, snowhgt, to_ice, & 176 sissnow, runoff, albsol3_lic, evap_pot, & 177 t2m, fevap, fluxt, fluxlat, fsollw, fsolsw, & 178 wfbils, wfbilo, cdragm, cdragh, cldl, cldm, & 179 cldh, cldt, cldq, flwp, fiwp, ue, ve, uq, vq, & 180 plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, & 181 s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, & 182 vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, & 183 twriteSTD, ale_wake, alp_wake, wake_h, & 184 wake_omg, d_t_wake, d_q_wake, Vprecip, & 185 wdtrainA, wdtrainM, n2, s2, proba_notrig, & 186 random_notrig, ale_bl_stat, & 187 alp_bl_det, alp_bl_fluct_m, alp_bl_conv, & 188 alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, & 189 weak_inversion, dthmin, cldtau, cldemi, & 190 pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, & 191 qsat2m, tpote, tpot, d_ts, zxrugs, od550aer, & 192 od865aer, absvisaer, od550lt1aer, sconcso4, & 193 sconcoa, sconcbc, sconcss, sconcdust, concso4, & 194 concoa, concbc, concss, concdust, loadso4, & 195 loadoa, loadbc, loadss, loaddust, tausum_aero, & 196 topswad_aero, topswad0_aero, solswad_aero, & 197 solswad0_aero, topsw_aero, solsw_aero, & 198 topsw0_aero, solsw0_aero, topswcf_aero, & 199 solswcf_aero, topswai_aero, solswai_aero, & 200 scdnc, cldncl, reffclws, reffclwc, cldnvi, & 201 lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, & 202 ec550aer, flwc, fiwc, t_seri, theta, q_seri, & 203 ql_seri, zphi, u_seri, v_seri, omega, cldfra, & 204 rneb, zx_rh, frugs, agesno, d_t_dyn, d_q_dyn, & 205 d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, & 206 d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, & 207 d_t_eva, d_q_lsc, beta_prec, d_t_lscth, & 208 d_t_lscst, d_q_lscth, d_q_lscst, plul_th, & 209 plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, & 210 zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, & 211 d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, & 212 d_v_lif, d_t_lif, d_u_hin, d_v_hin, d_t_hin, & 213 pmfd, pmfu, ref_liq, ref_ice, rhwriteSTD 214 215 USE phys_output_var_mod, only: vars_defined, snow_o, zfra_o, bils_diss, & 216 bils_ec, bils_tke, bils_kinetic, bils_latent, & 217 bils_enthalp, itau_con, nfiles, clef_files, & 218 nid_files 219 USE indice_sol_mod, only: nbsrf 220 USE infotrac, only: nqtot 221 USE comgeomphy, only: airephy 222 USE surface_data, only: type_ocean, ok_veget, ok_snow 223 USE aero_mod, only: naero_spc 224 USE ioipsl, only: histend, histsync 225 USE iophy, only: set_itau_iophy, histwrite_phy 226 USE netcdf, only: nf90_fill_real 44 227 45 228 #ifdef CPP_XIOS 46 229 ! ug Pour les sorties XIOS 47 USE wxios 48 USE xios 230 USE wxios, only: wxios_update_calendar, wxios_closedef 49 231 #endif 50 232 … … 57 239 INCLUDE "YOMCST.h" 58 240 INCLUDE "dimensions.h" 241 include "iniprint.h" 59 242 60 243 ! Input … … 101 284 DO iinit=1, iinitend 102 285 #ifdef CPP_XIOS 103 IF (vars_defined) THEN 104 CALL wxios_update_calendar(itau_w) 286 !$OMP MASTER 287 IF (vars_defined) THEN 288 if (prt_level >= 10) then 289 write(lunout,*)"phys_output_write: call wxios_update_calendar, itau_w=",itau_w 290 endif 291 CALL wxios_update_calendar(itau_w) 105 292 END IF 293 !$OMP END MASTER 294 !$OMP BARRIER 106 295 #endif 107 296 ! On procède à l'écriture ou à la définition des nombreuses variables: -
LMDZ5/trunk/makelmdz
r1873 r1897 35 35 arch="SX8_BRODIE" 36 36 fi 37 if [[ "${machine:0: 6}" == "vargas" ]]38 then 39 arch=" PW6_VARGAS"37 if [[ "${machine:0:3}" == "ada" ]] 38 then 39 arch="X64_ADA" 40 40 fi 41 41 if [[ "${machine:0:6}" == "ciclad" ]] … … 393 393 INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}" 394 394 LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl" 395 elif [[ $io == xios ]] 396 then 397 # For now, xios implies also using ioipsl 398 CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS" 399 INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}" 400 LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios" 395 401 fi 396 402 -
LMDZ5/trunk/makelmdz_fcm
r1869 r1897 300 300 INCLUDE="$INCLUDE -I${IOIPSL_INCDIR}" 301 301 LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl" 302 fi 302 elif [[ $io == xios ]] 303 then 304 # For now, xios implies also using ioipsl 305 CPP_KEY="$CPP_KEY CPP_IOIPSL CPP_XIOS" 306 INCLUDE="$INCLUDE -I${IOIPSL_INCDIR} -I${XIOS_INCDIR}" 307 LIB="$LIB -L${IOIPSL_LIBDIR} -l${LIBPREFIX}ioipsl -L${XIOS_LIBDIR} -l${LIBPREFIX}stdc++ -l${LIBPREFIX}xios" 308 fi 309 303 310 if [[ "$cosp" == "true" ]] 304 311 then
Note: See TracChangeset
for help on using the changeset viewer.