My Project
Functions/Subroutines
mod_startup Module Reference

Functions/Subroutines

subroutine, public startup
 
subroutine, public read_ssh
 
subroutine, public read_wetdry
 
subroutine read_atmo
 
subroutine, public read_ts
 
subroutine, public read_uv
 
subroutine, public read_turb
 

Function/Subroutine Documentation

◆ read_atmo()

subroutine mod_startup::read_atmo ( )

Definition at line 415 of file mod_startup.f90.

415  IMPLICIT NONE
416  TYPE(NCVAR), POINTER :: VAR
417  TYPE(NCDIM), POINTER :: DIM
418  LOGICAL :: FOUND
419  INTEGER :: STKCNT
420 
421  IF(dbg_set(dbg_sbr)) write(ipt,*) "START: READ_ATMO"
422 
423  stkcnt = nc_start%FTIME%PREV_STKCNT
424 
425  ! LOAD ATMO
426  var => find_var(nc_start,'el_atmo',found)
427  IF(.not. found) CALL fatal_error&
428  &("COULD NOT FIND VARIABLE 'el_atmo' IN THE HOTSTART FILE OBJECT")
429  CALL nc_connect_avar(var, el_atmo)
430  CALL nc_read_var(var,stkcnt)
431 
432  IF(dbg_set(dbg_sbr)) write(ipt,*) "End: READ_ATMO"
433 
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
real(sp), dimension(:), allocatable, target el_atmo
Definition: mod_main.f90:1154
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:

◆ read_ssh()

subroutine, public mod_startup::read_ssh ( )

Definition at line 312 of file mod_startup.f90.

312  IMPLICIT NONE
313  TYPE(NCVAR), POINTER :: VAR
314  TYPE(NCDIM), POINTER :: DIM
315  LOGICAL :: FOUND
316  INTEGER :: STKCNT
317 
318  IF(dbg_set(dbg_sbr)) write(ipt,*) "Start: READ_SSH"
319 
320  stkcnt = nc_start%FTIME%PREV_STKCNT
321 
322  ! LOAD EL
323  var => find_var(nc_start,'zeta',found)
324  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'zeta'&
325  & IN THE HOTSTART FILE OBJECT")
326  CALL nc_connect_avar(var, el)
327  CALL nc_read_var(var,stkcnt)
328 
329  ! LOAD ET
330  var => find_var(nc_start,'et',found)
331  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'et'&
332  & IN THE HOTSTART FILE OBJECT")
333  CALL nc_connect_avar(var, et)
334  CALL nc_read_var(var,stkcnt)
335 
336  !----------------------------------------------------------------
337  ! Read the most recent bathymetry if Morphodynamics is Active
338  !----------------------------------------------------------------
339 
340 
341  !----------------------------------------------------------------
342  ! Given SSH and Bathy, Update the Bathymetry
343  !----------------------------------------------------------------
344  d = h + el
345  dt = h + et
346 
347 
348  CALL n2e2d(h,h1)
349  CALL n2e2d(el,el1)
350  CALL n2e2d(d,d1)
351  CALL n2e2d(dt,dt1)
352 
353  IF(dbg_set(dbg_sbr)) write(ipt,*) "Start: READ_SSH"
354 
real(sp), dimension(:), allocatable, target d
Definition: mod_main.f90:1132
real(sp), dimension(:), allocatable, target d1
Definition: mod_main.f90:1116
real(sp), dimension(:), allocatable, target h
Definition: mod_main.f90:1131
real(sp), dimension(:), allocatable, target el
Definition: mod_main.f90:1134
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:), allocatable, target el1
Definition: mod_main.f90:1118
real(sp), dimension(:), allocatable, target et
Definition: mod_main.f90:1135
subroutine n2e2d(NVAR, EVAR)
Definition: mod_main.f90:1390
real(sp), dimension(:), allocatable, target dt1
Definition: mod_main.f90:1117
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
real(sp), dimension(:), allocatable, target h1
Definition: mod_main.f90:1115
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
real(sp), dimension(:), allocatable, target dt
Definition: mod_main.f90:1133
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_ts()

subroutine, public mod_startup::read_ts ( )

Definition at line 464 of file mod_startup.f90.

464  IMPLICIT NONE
465  TYPE(NCVAR), POINTER :: VAR
466  TYPE(NCDIM), POINTER :: DIM
467  LOGICAL :: FOUND
468  INTEGER :: STKCNT, K
469  REAL(SP), DIMENSION(0:MT,KB) :: PRESSURE
470 
471  IF(dbg_set(dbg_sbr)) write(ipt,*) "Start: READ_TS"
472 
473  stkcnt = nc_start%FTIME%PREV_STKCNT
474 
475 
476  ! LOAD TEMPERATURE
477  var => find_var(nc_start,'temp',found)
478  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'temp'&
479  & IN THE HOTSTART FILE OBJECT")
480  CALL nc_connect_avar(var, t1)
481  CALL nc_read_var(var,stkcnt)
482 
483 
484  ! LOAD MEAN INITIAL TEMPERATURE
485  var => find_var(nc_start,'tmean1',found)
486  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'tmean1'&
487  & IN THE HOTSTART FILE OBJECT")
488  CALL nc_connect_avar(var, tmean1)
489  CALL nc_read_var(var)
490 
491  ! LOAD SALINITY
492  var => find_var(nc_start,'salinity',found)
493  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'saltinity'&
494  & IN THE HOTSTART FILE OBJECT")
495  CALL nc_connect_avar(var, s1)
496  CALL nc_read_var(var,stkcnt)
497 
498  ! LOAD MEAN INITIAL SALINITY
499  var => find_var(nc_start,'smean1',found)
500  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'smean1'&
501  & IN THE HOTSTART FILE OBJECT")
502  CALL nc_connect_avar(var, smean1)
503  CALL nc_read_var(var)
504 
505  ! LOAD DENSITY
506  var => find_var(nc_start,'rho1',found)
507  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'rho1'&
508  & IN THE HOTSTART FILE OBJECT")
509  CALL nc_connect_avar(var, rho1)
510  CALL nc_read_var(var,stkcnt)
511 
512  ! LOAD MEAN DENSITY
513  var => find_var(nc_start,'rmean1',found)
514  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'rmean1'&
515  & IN THE HOTSTART FILE OBJECT")
516  CALL nc_connect_avar(var, rmean1)
517  CALL nc_read_var(var)
518 
519 
520  ! AVERAGE FROM CELLS TO FACE CENTERS
521 
522 
523 !JQI SELECT CASE(SEA_WATER_DENSITY_FUNCTION)
524 !JQI CASE(SW_DENS1)
525 
526 !JQI ! SET MEAN DENSITY
527 !JQI DO K=1,KBM1
528 !JQI PRESSURE(:,K) = -GRAV_N*1.025_SP*(ZZ(:,K)*D(:))*0.1_SP
529 !JQI END DO
530 !JQI CALL FOFONOFF_MILLARD(SMEAN1,TMEAN1,PRESSURE,0.0_SP,RMEAN1)
531 !JQI RMEAN1(0,:)=0.0_SP
532 !JQI RMEAN1(:,KB)=0.0_SP
533 
534 !JQI ! SET REAL DENSITY
535 !JQI CALL DENS1 ! GENERIC CALL TO FOFONOFF_MILLARD FOR S1,T1...
536 
537 !JQI CASE(SW_DENS2)
538 !JQI ! SET MEAN DENSITY
539 !JQI CALL DENS2G(SMEAN1,TMEAN1,RMEAN1)
540 !JQI RMEAN1(0,:)=0.0_SP
541 !JQI RMEAN1(:,KB)=0.0_SP
542 
543 !JQI ! SET REAL DENSITY
544 !JQI CALL DENS2 ! GENERIC CALL TO DENS2G FOR S1,T1...
545 
546 !JQI CASE(SW_DENS3)
547 
548 !JQI ! SET MEAN DENSITY
549 !JQI DO K=1,KBM1
550 !JQI PRESSURE(:,K) = -GRAV_N*1.025_SP*(ZZ(:,K)*D(:))*0.01_SP
551 !JQI END DO
552 !JQI CALL JACKET_MCDOUGALL(SMEAN1,TMEAN1,PRESSURE,RMEAN1)
553 !JQI RMEAN1(0,:)=0.0_SP
554 !JQI RMEAN1(:,KB)=0.0_SP
555 
556 !JQI ! SET REAL DENSITY
557 !JQI CALL DENS3 ! GENERIC CALL TO JACKET_MCDOUGALL FOR S1,T1.
558 
559 !JQI CASE DEFAULT
560 !JQI CALL FATAL_ERROR("INVALID DENSITY FUNCTION SELECTED:",&
561 !JQI & " "//TRIM(SEA_WATER_DENSITY_FUNCTION) )
562 !JQI END SELECT
563 
564 !J. GE
565  t0=t1
566  s0=s1
567 !J. GE
568  CALL n2e3d(t1,t)
569  CALL n2e3d(s1,s)
570  CALL n2e3d(rho1,rho)
571  CALL n2e3d(tmean1,tmean)
572  CALL n2e3d(smean1,smean)
573  CALL n2e3d(rmean1,rmean)
574 
575 
576  IF(dbg_set(dbg_sbr)) write(ipt,*) "End: READ_TS"
577 
real(sp), dimension(:,:), allocatable, target s
Definition: mod_main.f90:1288
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:,:), allocatable, target rho1
Definition: mod_main.f90:1309
real(sp), dimension(:,:), allocatable, target t1
Definition: mod_main.f90:1307
real(sp), dimension(:,:), allocatable, target rho
Definition: mod_main.f90:1284
real(sp), dimension(:,:), allocatable, target tmean1
Definition: mod_main.f90:1318
real(sp), dimension(:,:), allocatable, target s1
Definition: mod_main.f90:1308
real(sp), dimension(:,:), allocatable, target smean1
Definition: mod_main.f90:1319
real(sp), dimension(:,:), allocatable, target tmean
Definition: mod_main.f90:1287
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
real(sp), dimension(:,:), allocatable, target t0
Definition: mod_main.f90:1313
subroutine n2e3d(NVAR, EVAR)
Definition: mod_main.f90:1370
real(sp), dimension(:,:), allocatable, target smean
Definition: mod_main.f90:1289
real(sp), dimension(:,:), allocatable, target t
Definition: mod_main.f90:1286
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
real(sp), dimension(:,:), allocatable, target s0
Definition: mod_main.f90:1315
real(sp), dimension(:,:), allocatable, target rmean
Definition: mod_main.f90:1285
real(sp), dimension(:,:), allocatable, target rmean1
Definition: mod_main.f90:1320
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_turb()

subroutine, public mod_startup::read_turb ( )

Definition at line 960 of file mod_startup.f90.

960  IMPLICIT NONE
961  TYPE(NCVAR), POINTER :: VAR
962  TYPE(NCDIM), POINTER :: DIM
963  LOGICAL :: FOUND
964  INTEGER :: STKCNT
965 
966  IF(dbg_set(dbg_sbr)) write(ipt,*) "START: READ_TURB"
967 
968  stkcnt = nc_start%FTIME%PREV_STKCNT
969 
970 
971  var => find_var(nc_start,'q2',found)
972  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'q2'&
973  & IN THE HOTSTART FILE OBJECT")
974  CALL nc_connect_avar(var, q2)
975  CALL nc_read_var(var,stkcnt)
976 
977  var => find_var(nc_start,'q2l',found)
978  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'q2l'&
979  & IN THE HOTSTART FILE OBJECT")
980  CALL nc_connect_avar(var, q2l)
981  CALL nc_read_var(var,stkcnt)
982 
983  var => find_var(nc_start,'l',found)
984  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'l'&
985  & IN THE HOTSTART FILE OBJECT")
986  CALL nc_connect_avar(var, l)
987  CALL nc_read_var(var,stkcnt)
988 
989 
990  var => find_var(nc_start,'km',found)
991  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'km'&
992  & IN THE HOTSTART FILE OBJECT")
993  CALL nc_connect_avar(var, km)
994  CALL nc_read_var(var,stkcnt)
995 
996  var => find_var(nc_start,'kq',found)
997  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'kq'&
998  & IN THE HOTSTART FILE OBJECT")
999  CALL nc_connect_avar(var, kq)
1000  CALL nc_read_var(var,stkcnt)
1001 
1002  var => find_var(nc_start,'kh',found)
1003  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'kh'&
1004  & IN THE HOTSTART FILE OBJECT")
1005  CALL nc_connect_avar(var, kh)
1006  CALL nc_read_var(var,stkcnt)
1007 
1008 
1009  CALL n2e3d(km,km1)
1010 
1011  IF(dbg_set(dbg_sbr)) write(ipt,*) "END: READ_TURB"
1012 
real(sp), dimension(:,:), allocatable, target q2
Definition: mod_main.f90:1290
real(sp), dimension(:,:), allocatable, target km
Definition: mod_main.f90:1293
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:,:), allocatable, target q2l
Definition: mod_main.f90:1292
real(sp), dimension(:,:), allocatable, target l
Definition: mod_main.f90:1291
real(sp), dimension(:,:), allocatable, target kh
Definition: mod_main.f90:1294
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
subroutine n2e3d(NVAR, EVAR)
Definition: mod_main.f90:1370
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
real(sp), dimension(:,:), allocatable, target km1
Definition: mod_main.f90:1299
real(sp), dimension(:,:), allocatable, target kq
Definition: mod_main.f90:1295
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_uv()

subroutine, public mod_startup::read_uv ( )

Definition at line 905 of file mod_startup.f90.

905  IMPLICIT NONE
906  TYPE(NCVAR), POINTER :: VAR
907  TYPE(NCDIM), POINTER :: DIM
908  LOGICAL :: FOUND
909  INTEGER :: STKCNT
910 
911  IF(dbg_set(dbg_sbr)) write(ipt,*) "START: READ_UV"
912 
913 
914  stkcnt = nc_start%FTIME%PREV_STKCNT
915 
916  var => find_var(nc_start,'u',found)
917  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'u'&
918  & IN THE HOTSTART FILE OBJECT")
919  CALL nc_connect_avar(var, u)
920  CALL nc_read_var(var,stkcnt)
921 
922 
923  var => find_var(nc_start,'v',found)
924  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'v'&
925  & IN THE HOTSTART FILE OBJECT")
926  CALL nc_connect_avar(var, v)
927  CALL nc_read_var(var,stkcnt)
928 
929  var => find_var(nc_start,'omega',found)
930  IF(found) THEN
931  CALL nc_connect_avar(var, wts)
932  CALL nc_read_var(var,stkcnt)
933 
934  CALL n2e3d(wts,w)
935  ELSE
936  var => find_var(nc_start,'w',found)
937  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'w' &
938  & or 'omega' IN THE HOTSTART FILE OBJECT")
939  CALL nc_connect_avar(var, w)
940  CALL nc_read_var(var,stkcnt)
941  END IF
942 
943  var => find_var(nc_start,'ua',found)
944  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'ua'&
945  & IN THE HOTSTART FILE OBJECT")
946  CALL nc_connect_avar(var, ua)
947  CALL nc_read_var(var,stkcnt)
948 
949  var => find_var(nc_start,'va',found)
950  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'va'&
951  & IN THE HOTSTART FILE OBJECT")
952  CALL nc_connect_avar(var, va)
953  CALL nc_read_var(var,stkcnt)
954 
955  IF(dbg_set(dbg_sbr)) write(ipt,*) "END: READ_UV"
956 
real(sp), dimension(:), allocatable, target va
Definition: mod_main.f90:1104
real(sp), dimension(:,:), allocatable, target v
Definition: mod_main.f90:1269
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:,:), allocatable, target w
Definition: mod_main.f90:1279
real(sp), dimension(:,:), allocatable, target u
Definition: mod_main.f90:1268
real(sp), dimension(:), allocatable, target ua
Definition: mod_main.f90:1103
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
subroutine n2e3d(NVAR, EVAR)
Definition: mod_main.f90:1370
real(sp), dimension(:,:), allocatable, target wts
Definition: mod_main.f90:1321
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_wetdry()

subroutine, public mod_startup::read_wetdry ( )

Definition at line 359 of file mod_startup.f90.

359  USE mod_wd
360  IMPLICIT NONE
361  TYPE(NCVAR), POINTER :: VAR
362  TYPE(NCDIM), POINTER :: DIM
363  LOGICAL :: FOUND
364  INTEGER :: STKCNT
365 
366  IF(dbg_set(dbg_sbr)) write(ipt,*) "Start: READ_WETDRY"
367 
368  stkcnt = nc_start%FTIME%PREV_STKCNT
369 
370  ! LOAD ISWETN
371  var => find_var(nc_start,'wet_nodes',found)
372  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'wet_nodes'&
373  & IN THE HOTSTART FILE OBJECT")
374  CALL nc_connect_avar(var, iswetn)
375  CALL nc_read_var(var,stkcnt)
376 
377  ! LOAD ISWETC
378  var => find_var(nc_start,'wet_cells',found)
379  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'wet_cells'&
380  & IN THE HOTSTART FILE OBJECT")
381  CALL nc_connect_avar(var, iswetc)
382  CALL nc_read_var(var,stkcnt)
383 
384 
385  ! LOAD ISWETNT
386  var => find_var(nc_start,'wet_nodes_prev_int',found)
387  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'wet_nodes_prev_int'&
388  & IN THE HOTSTART FILE OBJECT")
389  CALL nc_connect_avar(var, iswetnt)
390  CALL nc_read_var(var,stkcnt)
391 
392  ! LOAD ISWETCT
393  var => find_var(nc_start,'wet_cells_prev_int',found)
394  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'wet_cells_prev_int'&
395  & IN THE HOTSTART FILE OBJECT")
396  CALL nc_connect_avar(var, iswetct)
397  CALL nc_read_var(var,stkcnt)
398 
399  ! LOAD ISWETCE
400  var => find_var(nc_start,'wet_cells_prev_ext',found)
401  IF(.not. found) CALL fatal_error("COULD NOT FIND VARIABLE 'wet_cells_prev_ext'&
402  & IN THE HOTSTART FILE OBJECT")
403  ! ------ new: Karsten Lettmann, May 2016 -------------
404  !CALL NC_CONNECT_AVAR(VAR, ISWETC) ! original line
405  CALL nc_connect_avar(var, iswetce)
406  ! ------------- end new ------------------------------
407  CALL nc_read_var(var,stkcnt)
408 
409  IF(dbg_set(dbg_sbr)) write(ipt,*) "End: READ_WETDRY"
410 
integer, dimension(:), allocatable iswetce
Definition: mod_wd.f90:55
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
integer, dimension(:), allocatable iswetct
Definition: mod_wd.f90:54
integer, dimension(:), allocatable iswetnt
Definition: mod_wd.f90:53
integer, dimension(:), allocatable iswetc
Definition: mod_wd.f90:52
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
integer, dimension(:), allocatable iswetn
Definition: mod_wd.f90:51
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function:

◆ startup()

subroutine, public mod_startup::startup ( )

Definition at line 71 of file mod_startup.f90.

71  IMPLICIT NONE
72 
73  IF(dbg_set(dbg_sbr)) write(ipt,*) "Start: Startup"
74 
75  IF(dbg_set(dbg_log)) THEN
76  WRITE(ipt,* )'!'
77  WRITE(ipt,* )'! SETTING INITIAL CONDITIONS '
78  WRITE(ipt,* )'!'
79  END IF
80 
81  IF (ASSOCIATED(nc_start))THEN
82  IF(dbg_set(dbg_log)) write(ipt,*) "! NC_START FILE INFO:"
83  CALL print_file(nc_start)
84  END IF
85 
86 ! SET THE SEA SURFACE HEIGHT
87  if (dbg_set(dbg_log)) write(ipt,*) &
88  & "! INITIALIZING SEA SURFACE HEIGHT"
89  SELECT CASE(startup_type)
90 ! =================================================
92 ! =================================================
93 
94  CALL read_ssh
95 
96  IF(wetting_drying_on) CALL read_wetdry
97 
98 
99 
100 
101 
102 ! ------- New: Karsten Lettmann, June 2016 -----------------------
103 ! ---------- end new --------------------------------------------
104 
105 ! if (dbg_set(dbg_log)) write(ipt,*) &
106 ! & "! INITIALIZING SEA ICE"
107 
108 
109 
110 ! if (dbg_set(dbg_log)) write(ipt,*) &
111 ! & "! INITIALIZING SEA ICE222"
112 
113 
114 
115 
116 
117 ! =================================================
119 ! =================================================
120  CALL read_ssh
121 
122  IF(wetting_drying_on) CALL read_wetdry
123 
124 
125 
126 
127 
128 ! ------- New: Karsten Lettmann, June 2016 -----------------------
129 ! ---------- end new --------------------------------------------
130 
131 
132 
133 
134 
135 
136 ! =================================================
138 ! =================================================
139 
140  CALL set_water_depth
142 
143 ! =================================================
144  CASE DEFAULT
145 ! =================================================
146  CALL fatal_error("STARTUP: UNKNOWN STARTUP TYPE: "//trim(startup_type))
147  END SELECT
148 
149 
150  if (dbg_set(dbg_log)) write(ipt,*) &
151  & "! INITIALIZING VELOCITY FIELDS"
152 
153 ! SET STARTUP VALUES FOR VELOCITY
154  SELECT CASE (startup_uv_type)
155  CASE (startup_type_observed)
156  CALL fatal_error("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
157  CASE(startup_type_linear)
158  CALL fatal_error("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
160  !CALL FATAL_ERROR("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
161  CALL set_constant_uv
163  ! OKAY - it is zero
165 
166  CALL read_uv
167 
168  CASE DEFAULT
169  CALL fatal_error("UNKNOWN STARTUP_UV_TYPE")
170  END SELECT
171 
172  if (dbg_set(dbg_log)) write(ipt,*) &
173  & "! INITIALIZING TURBULENCE FIELDS"
174 
175 ! SET STARTUP VALUES FOR TURBULENCE
176  SELECT CASE(startup_turb_type)
177  CASE(startup_type_observed)
178  CALL fatal_error("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
179  CASE(startup_type_linear)
180  CALL fatal_error("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
182  CALL fatal_error("I DON'T KNOW HOW TO DO THAT KIND OF STARTUP")
184 
185  CALL set_default_turb
186 
188 
189  CALL read_turb
190 
191  CASE DEFAULT
192  CALL fatal_error("UNKNOWN STARTUP_TURB_TYPE")
193  END SELECT
194 
195  if (dbg_set(dbg_log)) write(ipt,*) &
196  & "! INITIALIZING TEMPERATURE AND SALINITY"
197 
198 ! SET STARTUP VALUES FOR TEMPERATER AND SALINITY
199  SELECT CASE(startup_ts_type)
200  CASE(startup_type_observed)
201 
202  CALL set_observed_ts
203 
204  CASE(startup_type_linear)
205 
206  CALL set_linear_ts
207 
209 
210  CALL set_constant_ts
211 
213  CALL fatal_error("There is no default startup for Temperature and Salinity")
215 
216  CALL read_ts
217 
218  CASE DEFAULT
219  CALL fatal_error("UNKNOWN STARTUP_TS_TYPE")
220  END SELECT
221 
222 
223 
224  ! ONCE WE HAVE STARTED THE MODEL POINT THE START FILE OBJECT TO
225  ! ITS OWN OUTPUT TO RELOAD OLD TIME STATES
226  IF(.not. associated(nc_start,nc_rst)) THEN
227 
228  ! SOME START UPS DO NOT HAVE A START FILE
229  IF(Associated(nc_start)) CALL kill_file(nc_start)
230 
231  nc_start => nc_rst
232  END IF
233 
234  IF(dbg_set(dbg_sbr)) write(ipt,*) "End: Startup"
235 
236 
logical wetting_drying_on
Definition: mod_main.f90:394
character(len=80) startup_ts_type
Definition: mod_main.f90:143
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
character(len=80), parameter startup_type_hotstart
Definition: mod_main.f90:155
character(len=80), parameter startup_type_linear
Definition: mod_main.f90:163
character(len=80) startup_type
Definition: mod_main.f90:141
character(len=80) startup_uv_type
Definition: mod_main.f90:144
character(len=80), parameter startup_type_constant
Definition: mod_main.f90:162
character(len=80) startup_turb_type
Definition: mod_main.f90:145
character(len=80), parameter startup_type_coldstart
Definition: mod_main.f90:154
character(len=80), parameter startup_type_crashrestart
Definition: mod_main.f90:156
subroutine set_wd_data
Definition: mod_wd.f90:95
character(len=80), parameter startup_type_default
Definition: mod_main.f90:161
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
integer ipt
Definition: mod_main.f90:922
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
type(ncfile), pointer nc_rst
Definition: mod_input.f90:50
character(len=80), parameter startup_type_setvalues
Definition: mod_main.f90:165
integer, parameter dbg_log
Definition: mod_utils.f90:65
character(len=80), parameter startup_type_observed
Definition: mod_main.f90:164
type(ncfile), pointer nc_start
Definition: mod_input.f90:51
Here is the call graph for this function:
Here is the caller graph for this function: