Ignore:
Timestamp:
Mar 31, 2017, 11:31:38 AM (8 years ago)
Author:
emillour
Message:

All GCMs: set things up to enable pluging physics with dynamico

  • dyn3d
  • gcm.F90 : move I/O initialization (dates) to be done before physics

initialization

  • dyn3dpar
  • gcm.F : move I/O initialization (dates) to be done before physics

initialization

  • dynphy_lonlat:
  • inigeomphy_mod.F90 : add ind_cell_glo computation and transfer

to init_geometry

  • phy_common:
  • geometry_mod.F90 : add ind_cell_glo module variable to store global

column index

  • print_control_mod.F90 : make initialization occur via init_print_control_mod

to avoid circular module dependencies

  • init_print_control_mod.F90 : added to initialize print_control_mod module

variables

  • mod_phys_lmdz_mpi_data.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_para.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_omp_data.F90 : add is_omp_master (alias of is_omp_root) module

variable and use print_control_mod (rather than
iniprint.h)

  • physics_distribution_mod.F90 : add call to init_dimphy in

init_physics_distribution

  • xios_writefield.F90 : generic routine to output field with XIOS (for debug)
  • misc:
  • handle_err_m.F90 : call abort_physic, rather than abort_gcm
  • wxios.F90 : updates to enable unstructured grids

set module variable g_ctx_name to "LMDZ"
wxios_init(): remove call to wxios_context_init
wxios_context_init(): call xios_context_initialize with COMM_LMDZ_PHY
add routine wxios_set_context() to get handle and set context to XIOS
wxios_domain_param(): change arguments and generate the domain in-place
add wxios_domain_param_unstructured(): generate domain for unstructured case

NB: access is via "domain group" (whereas it is via "domain" in

wxios_domain_param)

  • dynphy_lonlat/phy[std|mars|venus|titan]:
  • iniphysiq_mod.F90 : Remove call to init_dimphy (which is now done in

phy_common/physics_distribution_mod.F90)

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F

    r1672 r1682  
    441441
    442442c-----------------------------------------------------------------------
    443 c   Initialisation de la physique :
    444 c   -------------------------------
    445 
    446       IF ((iflag_phys==1).or.(iflag_phys>=100)) THEN
    447 !         latfi(1)=rlatu(1)
    448 !         lonfi(1)=0.
    449 !         zcufi(1) = cu(1)
    450 !         zcvfi(1) = cv(1)
    451 !         DO j=2,jjm
    452 !            DO i=1,iim
    453 !               latfi((j-2)*iim+1+i)= rlatu(j)
    454 !               lonfi((j-2)*iim+1+i)= rlonv(i)
    455 !               zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
    456 !               zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
    457 !            ENDDO
    458 !         ENDDO
    459 !         latfi(ngridmx)= rlatu(jjp1)
    460 !         lonfi(ngridmx)= 0.
    461 !         zcufi(ngridmx) = cu(ip1jm+1)
    462 !         zcvfi(ngridmx) = cv(ip1jm-iim)
    463 
    464          ! build airefi(), mesh area on physics grid
    465 !         CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
    466          ! Poles are single points on physics grid
    467 !         airefi(1)=airefi(1)*iim
    468 !         airefi(ngridmx)=airefi(ngridmx)*iim
    469 
    470 ! Physics
    471 #ifdef CPP_PHYS
    472 !         CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
    473 !     &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
    474 !     &                iflag_phys)
    475          CALL iniphysiq(iim,jjm,llm,
    476      &                distrib_phys(mpi_rank),comm_lmdz,
    477      &                daysec,day_ini,dtphys/nsplit_phys,
    478      &                rlatu,rlatv,rlonu,rlonv,aire,cu,cv,rad,g,r,cpp,
    479      &                iflag_phys)
    480 #endif
    481 !         call_iniphys=.false.
    482       ENDIF ! of IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100))
    483 
    484 
    485 c-----------------------------------------------------------------------
    486443c   Initialisation des I/O :
    487444c   ------------------------
     
    519476#endif
    520477
     478
     479c-----------------------------------------------------------------------
     480c   Initialisation de la physique :
     481c   -------------------------------
     482
     483      IF ((iflag_phys==1).or.(iflag_phys>=100)) THEN
     484! Physics
     485#ifdef CPP_PHYS
     486         CALL iniphysiq(iim,jjm,llm,
     487     &                distrib_phys(mpi_rank),comm_lmdz,
     488     &                daysec,day_ini,dtphys/nsplit_phys,
     489     &                rlatu,rlatv,rlonu,rlonv,aire,cu,cv,rad,g,r,cpp,
     490     &                iflag_phys)
     491#endif
     492!         call_iniphys=.false.
     493      ENDIF ! of IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100))
     494
     495
    521496      if (planet_type=="mars") then
    522497         ! For Mars we transmit day_ini
Note: See TracChangeset for help on using the changeset viewer.