Changeset 862 for trunk


Ignore:
Timestamp:
Jan 10, 2013, 10:07:14 PM (12 years ago)
Author:
aslmd
Message:

LMDZ.UNIVERSAL
LMDZ.GENERIC

Added calls to Frederic Hourdin's subroutines to output physical fields in parallel. This is under precompiling flags CPP_PARA.
This allows for LMDZ.UNIVERSAL users to use writediagfi with parallel computations.
These lines are not compiled by casual users of LMDZ.GENERIC (or users of LMDZ.UNIVERSAL in sequential mode).

The precompiling flag NOWRITEDIAGFI is obsolete and has been deleted.

NOTES:

  • A better cleaner method might be proposed later
  • Added subroutines

A 0 LMDZ.UNIVERSAL/libf/phygeneric/iotd_ecrit.F90
A 0 LMDZ.UNIVERSAL/libf/phygeneric/iophys.F90
A 0 LMDZ.UNIVERSAL/libf/phygeneric/iotd.h
A 0 LMDZ.UNIVERSAL/libf/phygeneric/iotd_ini.F90
A 0 LMDZ.UNIVERSAL/libf/phygeneric/iotd_fin.F90
The iotd_* subroutines are actually supposed to be put in bibio in LMDZ.COMMON
This will be done later once agreed in the team

Location:
trunk
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r861 r862  
    858858- Fixed a small bug in a diagnostic in the end of calc_rayleigh. Some picky compilers complain.
    859859- Fixed a small bug with the array noms which is not allocated when tracer is false. But still need in physdem1.
     860
     861== 10/01/2013 == AS
     862Added calls to FH subroutines to output physical fields in parallel. This is under precompiling flags CPP_PARA.
     863This allows for LMDZ.UNIVERSAL users to use writediagfi with parallel computations.
     864These lines are not compiled by casual users of LMDZ.GENERIC (or users of LMDZ.UNIVERSAL in sequential mode).
  • trunk/LMDZ.GENERIC/libf/phystd/physiq.F90

    r861 r862  
    18561856        IF ( ALLOCATED(coslon)) DEALLOCATE(coslon)
    18571857
     1858#ifdef CPP_PARA
     1859        ! close diagfi.nc in parallel
     1860           call iotd_fin
     1861#endif
    18581862
    18591863      endif
  • trunk/LMDZ.GENERIC/libf/phystd/writediagfi.F

    r787 r862  
    9797      logical,save :: firstcall=.true.
    9898
     99      integer dimvert
     100
    99101!***************************************************************
    100102!Sortie des variables au rythme voulu
     
    108110!***************************************************************
    109111
    110 #ifndef NOWRITEDIAGFI
    111112
    112113! At very first call, check if there is a "diagfi.def" to use and read it
     
    150151      end if
    151152
     153
    152154! Initialisation of 'firstnom' and create/open the "diagfi.nc" NetCDF file
    153155! ------------------------------------------------------------------------
     
    165167         endif
    166168
     169         zitau = -1 ! initialize zitau
     170
     171#ifdef CPP_PARA
     172         !! parallel: we cannot use the usual writediagfi method
     173         call iophys_ini
     174#else
    167175         ! Create the NetCDF file
    168176         ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
     
    187195         call gr_fi_dyn(1,ngrid,iip1,jjp1,phisfi,phis)
    188196         call iniwrite(nid,day_ini,phis)
    189          
    190          zitau = -1 ! initialize zitau
     197
    191198      else
    192199         ! Open the NetCDF file
    193200         ierr = NF_OPEN(fichnom,NF_WRITE,nid)
     201#endif
    194202      endif ! if (firstnom.eq.'1234567890')
    195203
     
    214222
    215223      if ( MOD(zitau+1,irythme) .eq.0.) then
     224
     225#ifdef CPP_PARA
     226         !! parallel: we cannot use the usual writediagfi method
     227         if (dim .eq. 2) then
     228             dimvert = 1
     229         else if (dim == 3) then
     230             dimvert = llm
     231         endif
     232         call iophys_ecrit(nom,dimvert,titre,unite,px)
     233#else
    216234
    217235! Compute/write/extend 'Time' coordinate (date given in days)
     
    444462
    445463        endif ! of if (dim.eq.3) elseif(dim.eq.2)...
     464#endif
    446465
    447466      endif ! of if ( MOD(zitau+1,irythme) .eq.0.)
    448467
     468#ifndef CPP_PARA
    449469      ierr= NF_CLOSE(nid)
    450 
    451470#endif
    452471
  • trunk/LMDZ.UNIVERSAL/README.aymeric

    r852 r862  
    3232
    3333
    34 makelmdz_fcm -d 64x48x20 -arch CICLADifort -parallel mpi -p generic -debug -cpp NOWRITEDIAGFI gcm
    35 makelmdz_fcm -d 64x48x20 -arch CICLADifort -parallel mpi -p generic -cpp NOWRITEDIAGFI gcm
     34makelmdz_fcm -d 64x48x20 -arch CICLADifort -parallel mpi -p generic -debug gcm
     35makelmdz_fcm -d 64x48x20 -arch CICLADifort -parallel mpi -p generic gcm
    3636
    3737
     
    3939makegcm -d 64x48x20 -t 2 gcm
    4040
    41 makelmdz_fcm -d 128x96x20 -arch GNOMEp -parallel mpi -p generic -cpp NOWRITEDIAGFI gcm
     41makelmdz_fcm -d 128x96x20 -arch GNOMEp -parallel mpi -p generic gcm
    4242
    4343
Note: See TracChangeset for help on using the changeset viewer.