Oasis3 4.0.2
alloc.F90
Go to the documentation of this file.
00001 SUBROUTINE alloc (id_flag)
00002 !
00003 !
00004 !**** INIALLOC
00005 !
00006 !     Purpose:
00007 !       Allocate arrays defined in the modules
00008 !
00009 !     Interface:
00010 !       none
00011 !    
00012 !     Method:
00013 !       Uses run parameters read in "inipar_alloc" routine to 
00014 !       allocate arrays.       
00015 !
00016 !     External:
00017 !       none
00018 !
00019 !     Files:
00020 !       none
00021 !   
00022 !     References:
00023 !
00024 !     History:
00025 !     --------
00026 !       Version   Programmer     Date        Description
00027 !       ------------------------------------------------
00028 !       2.5       A.Caubel       2002/03/18  created
00029 !
00030 !*-----------------------------------------------------------------------
00031 !
00032 !** + DECLARATIONS
00033 !
00034 !** ++ Use of modules
00035 !
00036   USE mod_unit
00037   USE mod_parameter
00038   USE mod_printing
00039 !
00040 !* ---------------------------- Local declarations ----------------------
00041 !
00042   INTEGER (kind=ip_intwp_p) :: id_flag
00043 !
00044 !*-----------------------------------------------------------------------
00045 !
00046   IF (nlogprt .GE. 2) THEN
00047       WRITE (UNIT = nulou,FMT = *) ' '
00048       WRITE (UNIT = nulou,FMT = *) '****** * Entering ROUTINE alloc'
00049       WRITE (UNIT = nulou,FMT = *) '*******************************'
00050       WRITE (UNIT = nulou,FMT = *) ' '
00051       call flush(nulou)
00052   ENDIF
00053 !
00054 IF (id_flag .EQ. 1) THEN
00055 !** + Module mod_experiment
00056 !
00057 !  CALL alloc_experiment
00058 !
00059 !** + Module mod_string
00060 !
00061   CALL alloc_string
00062 !
00063 !** + Following routines will be called only if one field (at least) goes
00064 !     through Oasis  
00065 !
00066   IF (lg_oasis_field) THEN 
00067 !
00068 !** + Module mod_anais
00069 !
00070      CALL alloc_anais1
00071 !
00072 !** + Module mod_analysis
00073 !
00074      CALL alloc_analysis
00075 !
00076 !** + Module mod_coast
00077 !
00078      CALL alloc_coast
00079 !
00080 !** + Module mod_extrapol
00081 !
00082      CALL alloc_extrapol1 
00083 !
00084 !** + Module mod_memory
00085 !
00086      CALL alloc_memory1
00087 !
00088 !** + Module mod_nproc
00089 !
00090      CALL alloc_nproc
00091 !
00092 !** + Module mod_parallel
00093 !
00094      CALL alloc_parallel
00095 !
00096 !** + Module mod_pipe
00097 !
00098 #ifdef use_comm_PIPE
00099      CALL alloc_pipe
00100 #endif
00101 !
00102 !** + Module mod_rainbow
00103 !
00104      CALL alloc_rainbow1
00105 !
00106 !** + Module mod_sipc
00107 !
00108 #ifdef use_comm_SIPC
00109      CALL alloc_sipc
00110 #endif
00111 !
00112 !** + Module mod_gsip
00113 !
00114 #ifdef use_comm_GSIP
00115      CALL alloc_gsip
00116 #endif
00117 !
00118 !!** + Module mod_timestep
00119 !
00120      CALL alloc_timestep
00121 !
00122 !** + Module mod_unitncdf
00123 !
00124      CALL alloc_unitncdf
00125 !
00126   ENDIF
00127 ELSE
00128   IF (lg_oasis_field) THEN 
00129 !
00130 !** + Module mod_anais
00131 !
00132      CALL alloc_anais2
00133 !
00134 !** + Module mod_extrapol
00135 !
00136      CALL alloc_extrapol2 
00137 !
00138 !** + Module mod_memory
00139 !
00140      CALL alloc_memory2
00141 !
00142 !** + Module mod_rainbow
00143 !
00144      CALL alloc_rainbow2
00145 !
00146    ENDIF
00147 ENDIF
00148 IF (nlogprt .GE. 2) THEN
00149     WRITE (UNIT = nulou,FMT = *) ' '
00150     WRITE (UNIT = nulou,FMT = *) '********* Leaving ROUTINE alloc'
00151     WRITE (UNIT = nulou,FMT = *) '*******************************'
00152     WRITE (UNIT = nulou,FMT = *) ' '
00153     call flush(nulou)
00154 ENDIF
00155 !*------------------------------------------------------------------------
00156 !
00157 END SUBROUTINE alloc
00158 !
00159 !*========================================================================
00160 
 All Data Structures Namespaces Files Functions Variables Defines